Найти в Дзене

Темы дипломных работ, или чему вы сможете научиться на матфаке? Часть 4

Продолжаю серию публикаций о темах дипломных работ. На очереди - ВКР магистра направления "Математика и компьютерные науки" на тему "Использование нейронных сетей для распознавания объектов на примере ImageNet". Объектом исследования в работе были выбраны #нейронные сети и их применение для решения задачи классификации изображений. Нейронные сети и машинное обучение — это мощный инструмент для решения задач, которые не могут быть решены стандартными методами или сложность их решений слишком высока для явного кодирования. #Дипломная работа на эту тему была очень интересна. Одной из актуальных задач такого рода является базовая задача компьютерного зрения — классификация изображений. Чтобы составить и реализовать алгоритмы, способные с высокой точностью распознать и классифицировать трехмерный объект в различных условиях освещения, с других точек зрения или в другом окружении, должно быть учтено огромное количество параметров для каждого класса объектов, всех условий и точек зрения. М

Продолжаю серию публикаций о темах дипломных работ. На очереди - ВКР магистра направления "Математика и компьютерные науки" на тему "Использование нейронных сетей для распознавания объектов на примере ImageNet".

Объектом исследования в работе были выбраны #нейронные сети и их применение для решения задачи классификации изображений. Нейронные сети и машинное обучение — это мощный инструмент для решения задач, которые не могут быть решены стандартными методами или сложность их решений слишком высока для явного кодирования. #Дипломная работа на эту тему была очень интересна.

Картинка взята для иллюстрации статьи. Источник: Яндекс.Картинки
Картинка взята для иллюстрации статьи. Источник: Яндекс.Картинки

Одной из актуальных задач такого рода является базовая задача компьютерного зрения — классификация изображений. Чтобы составить и реализовать алгоритмы, способные с высокой точностью распознать и классифицировать трехмерный объект в различных условиях освещения, с других точек зрения или в другом окружении, должно быть учтено огромное количество параметров для каждого класса объектов, всех условий и точек зрения. Машинное обучение позволяет получать модели нейронных сетей, решающих подобные задачи с высокой точностью.

Картинка взята для иллюстрации статьи. Источник: Яндекс.Картинки
Картинка взята для иллюстрации статьи. Источник: Яндекс.Картинки

Цель работы — рассмотреть существующие архитектуры нейронных сетей, применяемые для распознавания объектов и классификации изображений, и на примере одной из перспективных архитектур показать достоинства и недостатки использования предварительно обученных нейронных сетей. Для построения и обучения нейронной сети было использовано программное обеспечение Keras и база изображений ImageNet, вспомогательный код написан на языке Python.

Подход машинного обучения позволяет создавать программы по множеству примеров верных решений для конкретных задачи и условий вместо написания программ вручную. Точность работы такой программы можно увеличивать в реальном времени, предоставляя ей новые данные для корректировки или обучения. Программа, создаваемая с помощью машинного обучения, будет сильно отличаться от типичной рукописной программы, но она сможет работать как для тех случаев, на которых ее обучали, так и для новых случаев. Сейчас с помощью машинного обучения в основном решаются задачи распознавания паттернов (объектов, лиц, жестов, речи), аномалий (необычных последовательностей транзакций или показаний датчиков) и прогнозирования (цен или курсов валют, предпочтений пользователя). Это позволяет внедрять нейронные сети в медицину (для раннего обнаружения болезней и аномалий), автомобилестроение (для автономного управления и предотвращения аварий), энергетику (для эффективного и безопасного управления ядерной реакцией), робототехнику и в другие отрасли научной и практической деятельности.

В ходе работы были изучены разные типы нейронных сетей, в результате работы была построена и обучена модель нейронной сети для распознавания объектов четырех классов. Для обучения полученной нейронной сети для каждого из классов были собраны наборы изображений для обучения (около 1000) проверки качества обучения и тестирования точности после обучения (по 400 изображений). Для увеличения объема данных (до 2000) использовались встроенные генераторы, позволяющие использовать не только исходные данные, но и их случайные модификации, например повернутые, симметрично отраженные, смещенные или с измененным масштабом. Обучение производилось в 20 эпох, так как часть сети предварительно обучена. На имеющихся для обучения и тестирования данных удалось добиться почти 90% точности классификации. На рисунке можно увидеть, как изменялась точность после каждой эпохи обучения.

График изменения точности классификации на проверочных изображениях в процессе обучения
График изменения точности классификации на проверочных изображениях в процессе обучения

В заключительной части работы автором был сделан вывод:

В процессе обучения нейронная сеть сама определяет, какие признаки в данных важны, а какие нет. Сеть может подобрать такое сложное сочетание признаков, до которого человек никогда бы не догадался. Поэтому с помощью глубоких нейронных сетей удается решать такие задачи, с которыми не справляются традиционные алгоритмы машинного обучения.

Нельзя не отметить, что #тема диплома интересна, актуальна и перспективна. Защита прошла успешно, в настоящее время автор работы продолжает обучение в аспирантуре. Кстати, прочитать о других темах дипломных и курсовых работ моих (и не только моих) студентов можно в этих статьях: