Аннотация 2
Введение 5
1 Анализ проблемы 7
1.1 Описание нейронных сетей 7
1.2 Архитектура сверточных нейронных сетей 11
1.3 Особенности используемых алгоритмов для обучения сверточных нейронных сетей 15
2 Математический алгоритм 20
2.1 Алгоритм обратного распространения ошибки 20
2.2 Методы оптимизации нейронных сетей 28
2.3 Выбор критериев для сравнения алгоритмов обучения 37
3 Программная реализация 42
3.1 Формирование набора данных 42
3.2 Описание используемых библиотек 44
3.3 Описание структуры используемой нейронной сети и ее процесса ее обучения 46
3.4 Реализация проектного решения с выбранными алгоритмами обучения 50
3.5 Проведение эксперимента и описание результатов тестирования 53
3.6 Оценка эффективности различных алгоритмов 57
Заключение 60
Список используемых источников 61
Приложение А Режим доступа к разработанному программному обеспечению 64
Серьезный толчок в развитии новых технологий анализа данных произошел благодаря тому, что практически во всех сферах жизни довольно значительным стало применение информационных технологий. Стандартные методы прогнозирования, основанные на математических моделях уже не в полной мере удовлетворяют специалистов при создании адаптивных структур, отражающих процессы, протекающие в реальных открытых системах.
В таких условиях получила сильное развитие теория, основанная на принципах работы человеческого мозга с использованием технологий работы нейрона. Искусственная нейронная сеть получает точные знания на базе уже прошедших процессов и продуцирует новые знания с использованием уже имеющихся. Положительные результаты применения искусственных нейронных сетей в экономике и исследовании социальных процессов способствовали созданию новых, более сложных конструкций, называемых сверточными нейронными сетями.
Анализ сигнала в такой сети происходит в несколько уровней: поступающий на вход нейрона импульс преобразуется до выхода в нескольких скрытых слоях. Оказалось, что такая сложная система более эффективно решает поставленные задачи.
При этом в процессе «работы» такой сети на последнем этапе, при формировании выходного сигнала могут быть использованы различные оптимизационные методы, от которых зависит близость выходного сигнала к реальному результату.
Таким образом, возникает вопрос о необходимости сравнения используемых методов, для выбора наиболее эффективного.
Исследованию данный проблемы посвящено множество работ, которые можно разделить по нескольким направлениям. Наиболее популярным является направление, связанное с применением сверточных нейронных сетей для классификации изображений. Это направление представлено, например, работами А.А. Воеводы, Д.О. Романникова [1], Е.А. Гузия, В.В. Федоренко [8], Ле Мань Ха [11], Hou B., Luo X., Wang SS., Jiao L., Zhang X. [21].
Целью данной работы является разработка программного обеспечения для сравнения эффективности различных алгоритмов обучения сверточных нейронных сетей.
Таким образом, достичь поставленной в данной работе цели позволит решение следующих задач:
• анализ проблемы, включающий изучение принципов построения сверточных нейронных сетей и особенностей используемых алгоритмов;
• описание сравниваемых алгоритмов обучения;
• выбор критериев для сравнения алгоритмов обучения сверточных нейронных сетей;
• разработка проекта и реализация системы для сравнения алгоритмов обучения;
• проведение эксперимента и описание результатов тестирования;
• оценка эффективности различных алгоритмов.
Структура работы представлена тремя главами. В первой главе рассматриваются сверточные нейронные сети и принципы их построения, а также отмечаются особенности используемых методов обучения нейронных сетей.
Вторая глава посвящена рассматриваемым алгоритмам обучения, в том числе алгоритму обратного распространения ошибки, исследуются метод Адамса и его модификации, проводится выбор критериев для сравнения алгоритмов обучения.
Третья глава отражает формирование необходимого набора данных, описание используемых библиотек для проработки методов обучения. Реализация проектного решения с выбранными алгоритмами обучения также отмечена в третьей главе, в которой освещены проведение эксперимента и описание результатов тестирования. Результатом третьей главы становится оценка эффективности различных алгоритмов.
В ходе работы, целью которой является разработка программного обеспечения для сравнения эффективности различных алгоритмов обучения сверточных нейронных сетей, были решены все поставленные задачи исследования.
1. Проведен анализ проблемы, включающий изучение принципов построения сверточных нейронных сетей и особенностей используемых алгоритмов. Описаны сверточные нейронные сети и отражены особенности используемых алгоритмов для их обучения. Рассмотрены глубокие нейронные сети их архитектура и методы обучения.
2. Приведены алгоритмы обучения, которые выбраны для проведения сравнения. Основными используемыми методами являются SGD RMSProp, Adagrad, Adadelta, Adam, Adamax, Nadam.
3. Осуществлен выбор критериев для сравнения алгоритмов обучения сверточных нейронных сетей.
4. Разработан проект и реализована система для сравнения алгоритмов обучения с использованием языка программирования Python и современных инструментов TensorFlow и библиотеки Keras, позволяющей проводить обучение сверточных нейронных сетей с применением разных оптимизационных алгоритмов.
5. Проведен эксперимент и описаны его результаты, полученные в ходе тестирования разработанного приложения, оценена эффективность различных алгоритмов обучения.
Полученные результаты свидетельствуют о высокой точности распознавания для данного набора данных. Полученные различия между алгоритмами могут считаться значительными только условно, скорее всего оптимального метода для всех наборов данных не существует, поэтому если по результатам обучения нейронной сети получена ошибка, серьёзным образом влияющая на принятие некоторого решения необходимо использовать несколько методов.
1. Бейдер Д. Чистый Python. Тонкости программирования для про-
фи / Д. Бейдер. – СПб.: Питер, 2018. – 288 с.
2. Берри П. Изучаем программирование на Python / П. Берри. – М.:
Эксмо, 2017. – 611 с.
3. Бредихин А.И. Алгоритмы обучения сверточных нейронных се-
тей / А.И. Бредихин // Вестник Югорского государственного университета.
2019. No 1 (52). С. 41-54.
4. Воевода А.А. Синтез нейронных сетей с несколькими перемен-
ными / А.А. Воевода, Д.О. Романников // Сборник научных трудов Новоси-
бирского государственного технического университета. 2018. No 1 (91). С. 86-94.
5. Галимянов Ф.А. Сравнительный анализ алгоритмов реализации
метода обратного распространения ошибки для обучения нейронных сетей /
Ф.А. Галимянов // Научно-технический вестник Поволжья. 2020. No 2. С. 69-71.
6. Гафаров Ф.М Искусственные нейронные сети и приложения:
учеб. пособие / Ф.М. Гафаров, А.Ф. Галимянов. – Казань: Изд-во Казан. ун-
та, 2018. – 121 с.
7. Голубинский А. Н., Выбор архитектуры искусственной нейрон-
ной сети на основе сравнения эффективности методов распознавания изоб-
ражений / А.Н. Голубинский, А.А. Толстых // Вестник ВИ МВД России.
2018. No1. С. 24-30.
8. Гузий Е.А. Сверточная нейронная сеть для разработки системы
распознавания и классификации изображений / Е.А. Гузий, В.В. Федоренко //
Молодежный научно-технический вестник. 2017. No 7. С. 51.
9. Землевский А. Д. Исследование архитектуры сверточных
нейронных сетей для задачи распознавания образов / А.Д. Замлевский //
Вестник науки и образования. 2017. No6 (30). С. 12-18.
10. Иванов И. А. Гибридный алгоритм обучения конволюционной
нейронной сети / И.А. Иванов, Е.А. Сопов // Вестник СибГ. 2016. Том 17, No
4. С. 871–877.
11. Ле Мань Ха Свёрточная нейронная сеть для решения задачи
классификации / Ле Мань Ха // Труды МФТИ. 2016. No3 (31). С. 56-62.
12. Любанович Б. Простой Python. Современный стиль программи-
рования / Б. Любанович. –СПб.: Питер ,2016. – 480 с.
13. Манукян А.К. Анализ алгоритмов обучения нейронных сетей /
А.К. Манукян // Аллея науки. 2019. Т. 1. No 1 (28). С. 935-939.
14. Попова Е.C. Программа и алгоритм сегментации и распознавания
рукопечатных символов с помощью сверточных нейронных сетей / Е.С. По-
пова, В.Г. Спицын, Ю.А. Болотова // Computer Vision GraphiCon 2018. 24–27
сентября 2018, Томск, Россия. – С. 230-233.
15. Романников Д.О. О синтезе нейронных сетей / Д.О. Романников //
Сборник научных трудов Новосибирского государственного технического
университета. 2018. No 1 (91). С. 104-111.
...