Введение 4
1 Нейронные сети 6
1.1 Биологическая нейронная сеть 6
1.2 Искусственные нейронные сети 6
1.3 Виды нейронных сетей 8
1.3.1 Многослойные нейронные сети 8
1.3.2 Сверточные нейронные сети 9
1.3.3 Рекуррентные нейронные сети 10
1.4 Перцептрон 12
2 Методы оптимизации 14
2.1 Функция активации 14
2.1.1 ReLu 14
2.2.2 Softmax 16
2.2 Функция потерь 16
2.3 Алгоритмы оптимизации 17
3 Сверточные нейронные сети 21
3.1 Сверточный слой 22
3.2 Слой пула 24
3.3 Слой «исключения» 25
3.4 Выходной слой 26
4. Распознавание рукописных цифр 27
4.1 Keras 27
4.2 Написание многослойной нейронной сети 28
4.3 Написание сверточной нейронной сети 34
Заключение 39
Список использованных источников и литературы 40
Приложение А Программа многослойной нейронной сети 41
Приложение Б Программа сверточной нейронной сети 42
В настоящее время машинное обучение набирает все большую популярность. Технологии не стоят на месте. С каждым годом объем данных увеличивается, а вместе с ним и необходимость в автоматическом анализе этих данных, а также выявлении закономерностей и принятия решения без участия человека.
Активное развитие машинного обучения привело к распространению нейронных сетей. Они являются перспективной и быстроразвивающейся технологией, которая нашла применение в различных областях науки. С их помощью выполняют распознавание оптических или звуковых сигналов, создают самообучающиеся системы, автоматизируют процесс адаптивного управления, аппроксимации функционалов и т. д. В настоящее время они активно применяются для решения различных задач.
Актуальность данной работы заключается в том, что задача распознавания рукописного текста является одной из классических задач распознавания образов и имеет практическую ценность. В связи с этим целью исследования стало изучение и программирование нейронной сети для распознавания рукописного текста.
Методы исследования, применяемые в работе:
- Анализ литературы и информации из открытых источников,
- Математическое моделирование работы нейронной сети.
Теоретическая значимость исследования заключается в расширении научных знаний в процесс распознавания рукописного текста. Практическая значимость заключается в применении теоретических знаний для достижения лучшей точности распознавания рукописного текста.
Задачи, которые решаются в работе:
1. Изучение принципа работы нейронной сети и подходов к оптимизации обучения нейронной сети;
2. Программирование сверточной нейронной сети для
распознавания рукописных цифр. Анализ полученных результатов.
3. Программирование многослойной нейронной сети для распознавания рукописных цифр. Анализ полученных результатов.
Работа состоит из трех глав. Первая содержит общие сведения о нейронных сетях и их видах. Во второй дается обзор на методы оптимизации, применяемые в практической части. В третьей собрана изученная информация о сверточных нейронных сетях. И в четвертой дается описание практической работы.
В данной работе были изучены разные виды нейронных сетей. В ходе изучения были выбраны многослойные и светочные нейронные сети, которые лучше подходят для решения поставленной задачи. Была изучена простейшая нейронная сеть, на принципе работы которой основаны более сложные нейронные сети. Ее изучение было важным для лучшего понимания работы нейронных сетей
В ходе изучения различных методов оптимизации я выбрала методы стохастического градиентного спуска и метод Адам. На практике метод Адам оказался лучше, поэтому для построения сверточной нейронной сети я выбрала этот метод.
С помощью библиотеки Keras были построены сети, рассматриваемые в работе. Обе сети показали точность выше 0.95, что является хорошим результатом.