Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Всем привет! Первый пост на Хабре и сразу хардкорная тема на злобу дня. Думаю, многие разработчики искусственного интеллекта для решения прикладных задач задумывались, какие архитектуры нейронок наиболее эффективны в контексте конкретных задач. Сразу оговорюсь, что приведенные примеры разработаны сотрудниками Университета искусственного интеллекта. Но мне, как участнику их интенсива, посчастливилось потестить их архитектуры и собрать полезную статистику по их эффективности.
1. Распознавание рукописных цифр
Начнем с с простейшей архитектуры. Данная сетка состоит из одного входного и 3-х полносвязных слоев:
Данная простая сетка при обучении показала весьма неплохие результаты. Точность на обучающей выборке составила 99,4%, в то время как на проверочной - 98,5%. И это за 2,57 секунд! Идем дальше.
2. Распознавание марки автомобиля
Вторая сетка потяжелее, но и задача стояла по амбициознее. Для эксперимента были взяты снимки трех марок - Рено, Мерседес и Феррари. Модель состоит из следующих слоев:
Как можно понять по долго тянущейся "простыне" из блоков, в модели представлены различные слои. К примеру использованы Сверточный2D, МаксПуллинг2D, Дропаут, Выравнивающий и Полносвязный слои в различных сочетаниях. Точность на обучающей выборке составила 76,7%, в то время как на проверочной - 73,6%. На обучение модель затратила немного времени - всего 1,7 секунд.
3. Распознавание голосовых команд
Третья задача формулируется просто - в потоке речи нужно распознать конкретное слово или фразу для управления умным домом. Сетка вышла следующего формата:
Модель получилась достаточно подтянутой и получила на выходе обучения следующие результаты. Точность на обучающей выборке составила 100,0%, на проверочной - 99,9% (!). Явно рабочая система. Время обучения - 0,7 секунд. Все это иллюстрирует красивая картина графика обучения.
4. Трейдинг акциями
Двигаемся дальше, и на очереди одна из самых горячих тем на рынке искусственного интеллекта - как лежать на диване, пока нейронка автономно генерирует профит. С такой задачей в теории должна прекрасно справляться следующая наша гостья - нейронка, торгующая на рынке акций. Модель выглядит следующим образом.
На выходе получили достаточно полновесную нейронку с множественными слоями. Она состоит к примеру из таких видов слоев, как Выравнивающий, Повтор, Сверточный1D, МаксПуллинг1D, Полносвязный и Дропаут. Точность на обучающей выборке составила 82,7%, на проверочной - 85,1%. Как видим, точность проверочной выборки здесь даже превысила обучающую. Модель выглядит достаточно перспективной. Время обучения - 0,16 секунд.
5. Сегментация...губ
Да, почему бы не внести порцию веселья в нашу сугубо научную статью? Вот и задача по сегментации изображения. В данном случае нас интересует, как на рандомном снимке выделить исключительно те участки, которые относятся к человеческим губам. Модель строим такую:
Первая серьезная модель, состоящая из различных слоев и блоков. Блоков здесь три - стартовый, PSP и финальный. Ключевой блок - второй, там всего один Сверточный слой. В первом применены Сверточный и Нормализация, по 2 штуки каждый. В финальном - Сверточный (3 щтуки) и Нормализация (2 штуки). Точность на обучающей выборке составила 99,8%, на проверочной - 99,8%. Как видим, точность проверочной выборки здесь совпала с обучающей. Время обучения составило 4,7 секунд.
Приведенные примеры архитектур в ходе тестов показали неплохие результаты и могут быть применены в решении практических задач. По каждой из моделей было проведено порядка 20-30 тестов по изменению их параметров. Возможно в следующих публикациях приведу подробные диапазоны тестирования представленных моделей. Спасибо за внимание!