1. Примеры реализации игровых стратегий на основе нейронных
сетей с подкреплением 7
1.1. Примеры построения искусственного интеллекта в
настольных играх. Сравнение классического и нейросетевого подходов 7
1.2 Примеры игровых моделей и подходов для реализации среды
для обучения нейронных сетей 19
2. Проектирование игровой модели на примере игры крестики
нолики пят в ряд 23
2.1. Логика реализации игры 23
2.2. Параметры оценочной функции 27
2.3. Использование альфа-бета отсечения для оптимизации
вычислений 30
3. Примеры из сыгранных партий и пояснения 32
3.1. Соревнование между агентами и человеком 32
3.2. Перспективные направления дальнейшего развития проекта... 34
Заключение 36
Библиографический список 38
Приложение 39
РЕФЕРАТ
Тема выпускной работы: «Построение и реализация набора игровых стратегий на основе обучения нейронных сетей с подкреплением».
Цель работы - реализация двух подходов построения нейросетей для генерации неочевидных для человека стратегии на примере одной игры (игра крестики-нолики пять в ряд).
Предмет исследования - создание агентов на основе обучения нейронных сетей с подкреплением.
Объект исследования - способы построения целевой и оценочной функций в играх, а также влияние изменений правил игры на эти функции.
В результате исследования решены следующие задачи: построена целевые функции для обучения нейросетевых агентов, разработана среда взаимодействия нейросетевых агентов, проведено обучение нейросетей, построен GUI игры, проанализированы результаты обучения соревновательным путём.
Объем работы 41 страница, количество рисунков - 17, таблиц - 7, приложений - 1, 15 использованных источников литературы.
Ключевые слова: обучение с подкреплением, нейронные сети, целевая функция, оценочная функция, среда взаимодействия агентов.
На сегодняшний день методы машинного обучения с подкреплением являются одним из самых перспективных направлений в области искусственного интеллекта. Типичным примером подобного способа компьютерного самообучения являются системы поддержки принятия решений в реальном времени.
Одна из основных идей подобных систем состоит в том, что изначально агенты обучения не имеют представления о правилах, действующих в той среде, в которой существует агент.
На первом этапе необходимо создать саму среду, в которой будут взаимодействовать агенты. На втором этапе создателю системы необходимо задать целевую функцию для агента, которую необходимо максимизировать (или минимизировать).
На третьем этапе необходимо создать события, за которые мы будем награждать искусственный интеллект и за которые мы будем его наказывать и запускаем первые эпохи обучения. В ходе процесса обучения агенты, достигшие наилучших результатов, будут выбраны в качестве основы для следующего поколения обучения.
На данном этапе происходят наиболее важные события с точки зрения анализа последующих результатов. Заранее невозможно предсказать результат обучения с подкреплением ввиду случайности принимаемых решений на ранних этапах обучения. Вероятен следующий исход: на раннем этапе стратегия, наиболее слабая в долгосрочной перспективе, приносит наиболее высокий выигрыш на раннем этапе игры, искусственный интеллект видит, что у данной стратегии наиболее высокий выигрыш, и отбрасывает остальные стратегии, и дальнейшая эволюция обучения происходит на основе заведомо наиболее слабейшей стратегии в долгосрочной перспективе. Возможные способы решения данной проблемы заключаются в изменении правил игры (как отдельных количественно для отдельных параметров, так и добавление новых параметров, создание новых ключевых событий в игре, переоценка важности целевой функции, применение комбинированных алгоритмов (вроде альфа-бета отсечения)).
За последнее десятилетие обучения с подкреплением достигло ощутимого прогресса, данная область успела пройти путь от первых робких попыток, до победы над человеком в таких играх как го, хотя классическое программирование исключало подобных исход. На сегодняшний день уже возникла острая потребность в специалистах, способных создавать модели обучения с подкреплением и анализировать результаты, полученные в ходе обучения.
Сложно переоценить, насколько важным является анализ самого процесса обучения агентов - неэффективно просто создать среду, задать правила и целевую функцию, и запустить процесс обучения в надежде, что искусственный интеллект сам определит оптимальную стратегию. Необходимо непрерывно корректировать процесс его обучения для исключения заведомо неэффективных стратегий методами, описанными выше.
Целью данной работы являет реализация двух подходов построения нейросетей для генерации неочевидных для человека стратегии на примере одной игры (игра крестики-нолики пять в ряд)
Но, суть данной работы заключается в создании нейронных сетей, которые будет генерировать неочевидные игровые стратегии.
На основе реализации двух подходов в обучении нейросетевых агентов можно сравнить их результаты и выявить наилучший. В процессе игры с человеком можно запросить подсказку от любого из двух агентов для указания на сильнейшее решение.
Для реализации цели следует решить следующие задачи:
1. Построить целевые функции для обучения нейросетевых агентов
2. Разработать среду взаимодействия нейросетевых агентов.
3. Провести обучение нейросетей
4. Построить GUI игры
5. Проанализировать результаты обучения соревновательным путём
6. Определить и зафиксировать неочевидные игровые стратегии (и попытаться найти им обоснование)
Объект исследования - решение задач на основе обучения с подкреплением
Предметом исследования является применение нейронных сетей с подкреплением для реализации игровых стратегии на примере игры «крестики нолики».
Научная новизна. В исследовании предложен и продемонстрирован подход построения целевой функции игры с учетом возможности получений «награды» за очередной «безопасный» ход. Максимальный выигрыш ИИ (искусственный интеллект) получает не только от победы в партии, но и за очередной «безопасный» ход в выигранной позиции.
Практическая значимость. Данное исследование актуализирует проблематику применения нейронных сетей для поиска неочевидных игровых стратегий. Такие неочевидные игровые стратегии имеют достаточно широкую область практического применения от простейших настольных игр до биржевых торговых агентов.
Моделирование искусственного интеллекта с 1950-х годов проделало большой путь от простой попытки хотя бы просто сыграть в игру по предложенным правилам, до расширения границ человеческих возможностей. В середине 2010х годов появились первые успешные попытки в применении различных архитектур нейронных сетей к обучению, что позволило обойти state-of-art подходы в большинстве известных настольных игр с нулевой суммой. В свою очередь это привело к увеличению количества инвестиций в данную отрасль. Почти каждую неделю появляются новые способы практического применения нейронных сетей в различных областях человеческой деятельности. Меняется сама структура мировой экономики, те компании, которые вовремя не смогут адекватно откликнуться на повсеместное введение методов искусственного интеллекта в бизнес вынуждены будут уйти с рынка под напором более высокоэффективных инновационных компаний. Важным аспектом при практическом применении агентов обучения с подкреплением является способность данных агентов к адаптации к стремительно меняющимся правилам игры. Современных инвесторов мало заинтересует биржевой бот, не способный к самостоятельной реакции на слабозаметные изменения в торгах.
Первой ступенью в исследованиях нейронных сетей в силу своей простоты были некооперативные игры. Современная теория игр разработала довольно широкий математический аппарат для таких игр. Однако, экономическое взаимодействие субъектов больше похоже на игры кооперативные. Для таких игр математический аппарат разработан гораздо меньше. Обучение в мультиагентной среде - следующий перспективный шаг в развитии искусственного интеллекта. Анализ взаимодействия агентов может позволить выявить методы и стратегии, ранее скрытые от исследователей в силу своей неочевидности. В реальной ситуации на рынке агенту может как противостоять другой агент, так и играть с ним в команде. Поэтому агент должен уметь в равной степени как эффективно взаимодействовать с дружественными агентами, так и противостоять оппонирующим агентам не только в одиночку, но и используя особенности, преимущества каждого члена своей команды, а также учитывать их слабые стороны.
В ходе обучения двух агентов выявлено преимущество подхода обучения, использующего игровые особенности конкретной игры (паттерны поведения), однако двух тысяч эпох обучения было явно недостаточно для соперничества с человеком на равных. Но в машинном обучении такое количество эпох является довольно невысоким показателем, и проигрыш сети не был разгромным. Существует несколько возможных подходов к решению данной проблемы: нарастить количество эпох обучения до 10000, или же попытаться ввести дополнительные параметры (плотность расстановки собственных клеток, более полное раскрытие опасных паттернов соперника). Также в ходе обучения выявлены случаи необычного поведения агента, основанного на паттернах. В некоторых ситуациях он имел форсированный выигрыш в один ход, но просчитывая свою целевую функцию в глубину, при нахождении того, что соперник не может выиграть его раньше, старался построить новый паттерн, продолжая партию, и получая дополнительный бонус к целевой функции за совершенный ход и за построение паттерна. Данная особенность при применении к другим играм (как мультиагентным, так и с одним агентом) сможет помочь выявить скрытые ранее в силу своей неочевидности стратегии.
Однако, без оптимизации время вычислений неоправданно затягивается, а мощность современных компьютеров не позволяет рассчитывать крупные деревья игр до конца в краткие сроки. Однако, даже если бы они могли рассчитывать их до конца - это не стало бы поводом к отказу от оптимизации - снижение потенциального количества пользователей из-за высоких системных требований не шло на пользу ни одному из программных продуктов.
1. Ботвинник М. М., Алгоритм игры в шахматы - Наука: Москва, 1968.
2. Ботвинник М. М., О кибернетической цели игры. М.: Советское Радио, 1975.
3. Каспаров Г.К., Мои великие предшественники: Новейшая история развития шахматной игры: в 5.т. Т.1: От Стейница до Алехина. - 2-е изд.
4. Кольчерин Д.В., Применение мультиагентных систем, основанных на нейронных сетях, Санкт-Петербург, 2018.
5. Лапань М., Глубокое обучение с подкреплением. AlphaGo и другие технологии. - СПб.: Питер, 2020. - 496 с.: ил. - (Серия «Для профессионалов»).
6. Николенко С., Кадурин А., Архангельская Е., Глубокое обучение, погружение в мир нейронных сетей. - СПб.: Питер, 2018. - 480с.: ил. - (Серия «Библиотека программиста).
7. Альфа-Зеро, Владимир Крамник и изобретение новых шахмат. [Электронный ресурс]. Заглавие с экрана. Режим доступа: https://chess24.com/ru/read/news/alphazero-vladimir-kramnik-and- reinventing-chess (дата обращения 03.03.2021).
8. Игры, в которых победил искусственный интеллект. [Электронный
ресурс]. Заглавие с экрана. Режим доступа:
https://www.ixbt.com/live/games/igry-kotorye-pobedil-ai-iskusstvennyy- intellekt.html (дата обращения 05.05.2021).
9. Искусственый интеллект: реальность и будущее. [Электронный
ресурс]. Заглавие с экрана. Режим доступа:
https://kapital.kz/tehnology/83063/iskusstvennyy-intellekt-istoriya-real-nost- i-budushcheye.html (дата обращения 03.03.2021).
10. Искусственный интеллект в настольных играх. [Электронный ресурс]. Заглавие с экрана. Режим доступа: https://rb.ru/story/the-bots-beat-us- now-what/ (дата обращения 05.05.2021).
11. Крамник и AlphaZero: переосмыслить шахматы, [Электронный ресурс].
Заглавие с экрана. Режим доступа:
https://www.chess.com/ru/article/view/kramnik-i-alphazero-pereosmyslit- shakhmaty (дата обращения 03.03.2021).
12. Теория игр в искусственном интеллекте. Заглавие с экрана. Режим доступа: https://www.machinelearningmastery.ru/game-theory-in-artificial- intelligence-57a7937e1b88/ (дата обращения 05.05.2021).
13. Creswell A., Bharath A.A. Denoising Adversal Autoencoders // arXiv, 2017.
14. Deep Generative Adversal Networks for Compressed Sensing Automates MRI/ M/Mardani et al. // arXiv, 2017.
15. Emergent Tool Use from Multi-Agent Interaction // arXiv, 2019.
[Электронный ресурс]. Заглавие с экрана. Режим доступа:
https://openai.com/blog/emergent-tool-use/