Примеры архитектур нейронных сетей для решения пяти прикладных задач

Всем привет! Первый пост на Хабре и сразу хардкорная тема на злобу дня. Думаю, многие разработчики искусственного интеллекта для решения прикладных задач задумывались, какие архитектуры нейронок наиболее эффективны в контексте конкретных задач. Сразу оговорюсь, что приведенные примеры разработаны сотрудниками Университета искусственного интеллекта. Но мне, как участнику их интенсива, посчастливилось потестить их архитектуры и собрать полезную статистику по их эффективности.

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 тестов по изменению их параметров. Возможно в следующих публикациях приведу подробные диапазоны тестирования представленных моделей. Спасибо за внимание!

Let’s block ads! (Why?)

Read More

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *