Введение 3
Глава 1. Нейронная сеть и методы ее обучения 6
1.1 Нейронная сеть 6
1.2 Математическая модель нейрона 7
1.2.1 Формальный нейрон 9
1.2.2 Однослойный перцептрон 10
1.2.3 Многослойный перцептрон 11
1.2.4 Сигмоидный нейрон 12
1.3. Методы обучения сети 15
1.3.. Обучение с учителем 15
1.3.2 Метод Хэбба 15
1.3.3 Правило коррекции по ошибке 16
1.3.4 Обучение методом соревнования 16
1.3.5 Метод обратного распространения 17
1.3.6 Генетический алгоритм 20
Глава 2. Создание моделируемой среды 23
2.1 Описание моделируемой среды и агентов 23
2.2 Реализация среды 28
2.2.1 Описание архитектуры 39
2.2.2 Алгоритм работы приложения 33
2.3 Эксперименты 35
Заключение 41
Список литературы 42
Приложение 43
Теория искусственных нейронных сетей появилась в 40-х годах благодаря достижениям биологии, это связано с тем, что искусственные нейроны содержат наборы элементов, которые моделируют элементарные функции биологических нейронов. Элементы организуются таким способом, чтобы соответствовать анатомии мозга. Искусственные нейросети имеют лишь поверхностное сходство с естественной нервной системой, но несмотря на это такие сети демонстрируют интересные свойства, подобные свойствам органического мозга. Примером может служить поведение искусственной нейронной сети, в зависимости от внешней среды, сеть может менять свое поведение, адаптируясь под внешнюю среду. Наиболее особенной и интересной способностью нейросетей является обучение и запоминание информации, имитация мыслительного процесса человека. Сеть способна обучиться путем получения определенных входных сигналов и в зависимости от ситуации среагировать на нее. Пройдя обучение определенное количество раз, сеть перестает реагировать на небольшие изменения входных сигналов. Это можно назвать способностью сети видеть образ сквозь шум и искажения. Такие сети также обладают надежностью: в случае некорректной работы или отказа нескольких элементов, сеть все равно способна выдать правильный результат, но с меньшей точностью. Несмотря на это, стоит отметить, что искусственные нейронные сети не являются панацеей. Они очень плохо подходят для задач, где требуются точные и безошибочные математические расчет.
В общем, нейронные сети обеспечивают хорошие решения проблем со следующими особенностями:
1) В этой проблеме используются «шумные» данные.
2) Может потребоваться быстрая обработка.
3) Может не понадобиться наиболее совершенное решение проблемы.
Нет простых правил для решения проблемы - все, что есть, это набор типовых решений. Сеть может «обучиться» таким образом, чтобы она давала хорошие ответы на подобные новые случаи.
Существуют две основные проблемы с использованием таких сетей. Во- первых, не существует точного понимания того, насколько велика (сколько узлов и соединений) сеть должна быть для решения проблемы определенной сложности. Вторым недостатком этих сетей может быть очень продолжительное время, которое иногда необходимо для того, чтобы научить сеть соответствующим ответам - эти сети учатся контролируемым образом - входные данные многократно передаются в сеть, а соединения настраиваются так, чтобы попытаться достичь целевого выхода.
Следует помнить, что в сетях именно человек решает, как сеть должна реагировать и адаптироваться во время обучения. Это явно отличается от поведения мозга, который «сам по себе» способен устанавливать связи между нейронами для выполнения определенных функций - другими словами, проявляет самоорганизацию.
Нет сомнений в актуальности данной проблемы, ведь в последнее время наблюдается высокий интерес к искусственному интеллекту и искусственным нейронным сетям. Рост интереса довольно понятен, ведь искусственная нейронная сеть является ничем иным, как моделью естественной нервной системы, исходя из этого можно утверждать, что изучение и воссоздание таких сетей предоставляет возможность многое узнать о функционировании самих естественных систем.
В данной работе проводились исследования влияния нейронной сети на игровой процесс приложения. И если рассматривать актуальное использование нейронных сетей в игровой индустрии, то можно выделить несколько хороших примеров использования данной технологии. Например, исследователями из Эдинбургского университета была разработана фазово - функциональная нейронная сеть, которая процедурно генерирует анимацию модели игрового персонажа для разных ландшафтов.
Еще одним хорошим примером является нейронная сеть “Борис” для искусственного интеллекта в компьютерной игре “Блицкриг 3”. Это первая нейронная сеть, созданная для стратегии в режиме реального времени. “Борис” может реагировать на различные игровые ситуации, а также способен предугадывать некоторые действия игрока, не используя при этом вспомогательных данных, т.е. искусственный интеллект получает данные симметричные данным игрока и таким образом игра проходит честно.
Целью работы является реализация системы с задаваемыми параметрами для обучения простого искусственного интеллекта в игре. Обучение искусственного интеллекта через такую систему позволит разнообразить игровой процесс и избежать искусственного усложнения уровня игры за счет одного лишь повышения характеристик и количества игровых ИИ.
Для достижения цели выделен ряд задач:
1) Построение структуры нейронной сети.
2) Реализация генетического алгоритма.
3) Описание простого ИИ и среды.
4) Проведение ряда экспериментов для получения данных о полученной системе.
Первая глава является теоретической и в ней подробно рассматривается понятие нейронной сети, ее структура, модели нейрона и виды функций активации. Так же в главе описываются возможные методы обучения нейронных сетей.
Вторая глава описывает практическую часть работы. В главе раскрывается идея моделируемой среды и устройство взаимодействия агентов в этой среде. В данной части работы описывается устройство самой системы, ее архитектура. И в заключении главы предоставлен отчет о работе системы в виде описания экспериментов.
По итогам работы была разработана система, позволяющая создать среду с задаваемыми заранее параметрами. Среда содержит в себе агентов, управляемых нейронной сетью, обучение которой происходит через генетический алгоритм. Генетический алгоритм хорошо подошел для задачи, конечный результат которой заранее не известен. Так же система предоставляет пользователю набор функций для управления эволюцией агентов, сохранения или загрузки нейронной сети. Система разрабатывалась на игровом движке Unity 3D, что позволило воспользоваться продвинутыми методами визуализации, а также облегчить внедрение среды в игровые проекты, что позволяет получить наглядный результат работы не только в виде цифр.
В ходе работы было проведено определенное количество экспериментов. Каждый эксперимент преследовал определенную цель и имел собственные настройки параметров и конфигурации нейронной сети, генетического алгоритма или самих агентов. Это позволило сделать ряд выводов по работе самой системы и, на основе этих выводов, оценить результаты исследования.
По итогу работы нельзя сказать, что были получены исключительно положительные результаты. Часто происходят такие ситуации, когда агенты не предпринимают попыток уйти от столкновения друг с другом. Но в целом, агенты стремятся выполнить поставленную перед ними задачу и даже предпринимают интересные попытки преодоления ограничений среды.
В заключении, хочется отметить, что в дальнейшем требуется выделить больше времени и мощности на проведение одной итерации при проведении эксперимента, так же необходимо найти более четкий баланс плотности агентов и, возможно, пересмотреть структуру нейронной сети или методов обучения генетического алгоритма.
1. Michael A. Nielsen, "Neural Networks and Deep Learning", Determination Press, 2015.
Chapter 1. Using neural nets to recognize handwritten digits [Электронный ресурс] - Режим доступа: http://neuralnetworksanddeeplearning.com/chap1.html
Chapter 2. How the backpropagation algorithm works [Элетронный ресурс] -
Режим доступа: http://neuralnetworksanddeeplearning.com/chap2.html
2. Филип Вассерман, Neural Computing Theory and Practice, 1989, pp. 23-20.
3.Smith L., An Introduction to Neural Networks, 2001, pp. 5-18.
4. Nilsson N., Introduction to Machine Learning, 1996, p. 13.
5. Zurada J.M., Introduction To Artificial Neural Systems, 1992, p. 14.
6. Nigrin A., Neural Networks for Pattern Recognition, 1993, p. 10.
7. Haykin S., Neural Networks: A Comprehensive Foundation, 1994, p. 12.
8. Данила Васенков, Методы обучения искусственных нейронных сетей, 2007 [Элетронный ресурс] - Режим доступа: http://www.ipo.spb.ru/journal/content/733/
9. Юрий Лаходюк, Эволюция агентов управляемых нейронной сетью, 2013 [Элетронный ресурс] - Режим доступа: https://habr.com/post/168067/