ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ 4
ВВЕДЕНИЕ 5
1 Описание средств разработки 7
2 Описание предметной области 9
3 Анализ предметной области 11
3.1 Сравнение архитектур нейронных сетей 11
3.2 Сравнение алгоритмов машинного обучения 20
3.2.1 Метод Хебба 22
3.2.2 Правило коррекции по ошибке 23
3.2.3 Обучение с помощью алгоритмов соревнования 24
3.2.4 Генетический алгоритм 25
4 Описание генетического алгоритма 26
5 Описание базы данных 29
7 Принцип работы нейронной сети 32
8 Интерфейс приложения «Змейка» 37
9 Анализ результативности генетического алгоритма 42
ЗАКЛЮЧЕНИЕ 49
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 50
Как известно, наш мозг состоит из огромного количества связанных между собой нейронов. Именно благодаря этому органу у нас есть самосознание и стремление к постоянному обучению. С давних пор люди пытаются создать аналог человеческого разума и философствуют на тему, возможно ли это.
В современном мире преобладающее количество возникающих задач решают различные вычислительные системы. С развитием технологий, их вычислительная мощность росла, и с теми задачами, которые для человека были недостижимы или трудновыполнимы, сейчас спокойно справляется компьютер. Он может без проблем просчитать сложное уравнение или смоделировать прогноз погоды. Но есть и те задачи, которые компьютеру решить не под силу. Благодаря нашему мозгу и органам чувств, мы можем созидать, заниматься творчеством, воспринимать и заниматься искусством. Как не старайся, компьютеру тяжело объяснить разницу между восприятием двух разных людей. Для того, чтобы решить данную проблему были разработаны первые искусственные нейронные сети.
В 20 веке появилось первое упоминание понятие нейронной сети. С развитием технологий люди стали больше уделять внимания этому направлению, о чём свидетельствует невероятное количество различных нейронных сетей в современном мире, которые созданы для решения самых разнообразных задач.
Работа головного мозга заключается в последовательной передаче электрических импульсов сквозь плотные и взаимосвязанные слои нейронов, которые соединены между собой с помощью нейронных проводков. Благодаря этим наблюдениям был разработан самый первый искусственный нейрон, который представлял собой переключатель и имел два положения, активное и бездействующее. В зависимости от данных, которые поступали к нейрону, переключатель приходил в действие. В дальнейшем из таких нейронов создали нейронную сеть, в узле которой весовые коэффициенты нейронов в зависимости от её архитектуры суммировались и множились между собой, передавая информацию на выход этой сети. У каждой нейронной сети должна быть своя архитектура и метод обучения, потому что она не программируется в привычном понимании этого слова, а обучается. На данный момент появилось множество архитектур и алгоритмов обучения нейронных сетей, но их суть остается прежней, а именно: передавать информацию от одного нейрона к другому, и получать с помощью преобразований решение поставленных задач.
В сути своей искусственные нейронные сети проектируются на вычислительных машинах с помощью слоёв нейронов, расположение и действие которых зависит от типа 5
поставленной задачи. Они представляют собой сложные средства машинного обучения, в том числе и методы эволюционной оптимизации. В разрабатываемой ИНС обучение осуществляется с помощью генетического алгоритма и её структура включает в себя всего 4 слоя искусственных нейронов, что существенно снижает требуемую вычислительную мощность и упрощает её реализацию. Выходной слой состоит из 4 нейронов. Столь малая численность составляющих неизбежно затрудняет комбинирование стратегий, в соответствии с этим, это решение менее трудоемко на фоне других.
Практическая значимость реализации алгоритмов естественного отбора в ИНС заключается в решении задач с минимальными исходными данными, задач требующих оптимизации простых процессов и вероятностных расчётов.
Цель работы - определение пригодности алгоритмов естественного отбора в машинном обучении в приложении «Змейка».
Для достижения данной цели были поставлены следующие задачи:
1) Проанализировать аналогичные алгоритмы машинного обучения;
2) Изучить архитектуры нейронных сетей;
3) Выбрать средства для разработки приложения «Змейка»;
4) Спроектировать и создать базу данных;
5) Разработать приложение «Змейка»;
6) Разработать нейронную сеть, обучающуюся с помощью генетического алгоритма;
7) Реализовать возможности нейронной сети в приложении «Змейка».
В ходе выполнения данной работы была проанализирована предметная область искусственных нейронных сетей. В том числе изучены их архитектуры и основополагающие алгоритмы обучения.
После анализа были разработаны нейронная сеть прямого распространения, генетический алгоритм обучения данной сети и спроектировано приложение «Змейка», которое показывает возможности генетического алгоритма и нейронной сети.
По итогам данной работы поставленная нейросети задача выполнена, а именно набор 80% возможных очков в приложении «Змейка». Целью работы было определение пригодности генетического алгоритма в машинном обучении в приложении "Змейка". Поскольку результативность нейронной сети достигла нужной точки, разработанные алгоритм обучения и нейронную сеть можно считать полноценными и завершенными.
В игре нет универсального решения для её прохождения, поэтому можно сказать, что данные результаты доказывают, что алгоритм пригоден для решения задач оптимизации и задач с минимальными исходными данными. Минимальными исходными данными выступают правила игры "Змейка".
1. Основы ИНС [Электронный ресурс]. - URL:
https://neuralnet.info/chapter/%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D1%8B- %D0%B8%D0%BD%D1%81 (дата доступа 22.05.2020).
2. Как работает нейронная сеть [Электронный ресурс]. - URL:
https://neurohive.io/ru/osnovy-data-science/osnovy-nejronnyh-setej-algoritmy-obuchenie- funkcii-aktivacii-i-poteri/ (дата доступа 22.05.2020).
3. Нейронные сети: правило Хебба [Электронный ресурс]. - URL:
https://morphs.ru/posts/2016/10/03/nn-hebb# (дата доступа 22.05.2020).
4. Методы скрещивания в генетических алгоритмах [Электронный ресурс]. - URL:
http://www.aiportal.ru/articles/genetic-algorithms/methods-crossing.html (дата доступа
22.05.2020).
5. Нейронные сети: практическое применение [Электронный ресурс]. - URL: https://habr.com/ru/post/322392/ (дата доступа 22.05.2020).
6. Правило коррекции по ошибке [Электронный ресурс]. - URL:
https://prog.bobrodobro.ru/38446 (дата доступа 22.05.2020).
7. Введение в архитектуры нейронных сетей [Электронный ресурс]. - URL: https://habr.com/ru/company/oleg-bunin/blog/340184/ (дата доступа 22.05.2020).
8. Обучение персептронов [Электронный ресурс]. - URL: https://goo-gl.su/NELfvF (дата доступа 22.05.2020).
9. Андреева В. В., Самохина С.И., Петелин А.Е. Программирование на языке C: учебное пособие: [для бакалавров направлений подготовки «Прикладная математика и информатика», «Математика и компьютерные науки» и др.] М-во науки и высш. образования, Нац. исслед. Том. гос. ун-т. - Томск: Издательский Дом Томского государственного университета, 2019. - 108 с.
10. Троелсен Э., Джепикс Ф. Язык программирования C# 7 и платформы. NET и. NET Core. - Litres, 2019.
11. Unity: core platform [Электронный ресурс]. - URL:
https://unity.com/ru/products/core-platform (дата доступа 22.05.2020).