1 Введение 2
2 Постановка задачи 3
3 Обзор литературы 4
4 Глава 1. Теоретические сведения о нейронных сетях 5
4.1 Нейронные сети прямого распространения 5
4.2 Обучение нейронных сетей прямого распространения 9
4.3 Трудности обучения нейронных сетей 13
4.4 Сверточные сети 15
4.5 Перенос обучения 21
4.6 Distance Metric Learning 22
5 Глава 2. Подход к решению задачи 23
5.1 Анализ данных 23
5.2 Алгоритм решения задачи 24
5.3 Архитектура нейронных сетей 26
6 Глава 3. Реализация и результаты 29
6.1 Подготовка данных 29
6.2 Обучение моделей 32
6.3 Результаты 38
6.4 Оценка быстродействия 41
7 Выводы 42
8 Заключение 43
Список литературы 44
В последнее десятилетие, в связи с ростом вычислительной мощности и количества доступных данных, большой подъём испытывает область машинного обучения - глубокое обучение. В этой области произошли значительные успехи в способности компьютеров понимать данные всевозможных форматов: изображения, речь, языки и так далее.
Алгоритмы машинного обучения, и глубокое обучение в частности, отличаются от других видов компьютерного программирования тем, что они преобразуют входные данные в выходные с помощью статистических правил, которые автоматически выводятся из большого набора примеров, а не задаются явно людьми. Исторически сложилось так, что для построения системы машинного обучения требовались знания предметной области, чтобы спроектировать функции, преобразовывающие необработанные данные в подходящие представления, из которых алгоритм обучения мог бы определять некоторые паттерны. Модели глубокого обучения, напротив, способны сами из необработанных данных выделять признаки, предназначенные для распознавания паттернов.
Модели глубокого изучения масштабируются до больших наборов данных, отчасти благодаря их способности работать на специализированном компьютерном оборудовании, и продолжают совершенствоваться с увеличением объема данных, позволяя им превосходить многие классические подходы машинного обучения. Наиболее распространенные модели обучаются с использованием обучения с учителем, в котором наборы данных состоят из точек входных данных (например, изображений собак) и соответствующих меток выходных данных (например, порода этой собаки).
Актуальность темы исследования обуславливается тем, что в настоящее время производится огромное количество данных, которые человек не может обработать самостоятельно, и методы интеллектуального анализа данных являются подходящим инструментом для решения этой проблемы.
В данной работе был собран, проанализирован и частично размечен набор данных, содержащий изображения автомобилей. На нём были обучены нейронные сети для решения задач классификации, детектирования, сегментации и верификации. На основе этим сетей были предложены способы предобработки изображений. С помощью тестового набора данных была проанализирована работа всех предложенных подходов и выбран лучший из них.
Отталкиваясь от полученных результатов, можно сказать, что нейронные сети способны в достаточной мере решать поставленную задачу на имеющемся наборе данных. Из-за ограничений производительности, ограничивающих выбор архитектуры сети, предложенный подход не смог показать максимально возможное качество работы, однако имеющийся результат, тем не менее, можно считать успешным.