Как подготовить нейронную сеть для круглой настольной игры?

11

Мне интересно, как подготовить нейронную сеть для настольной игры, основанной на раундах, такой как крестики-нолики, шахматы, риск или любая другая игра на основе раундов. Получить следующий ход по логическому выводу, кажется, довольно просто, путем подачи состояния игры в качестве входных данных и использования выходных данных в качестве хода для текущего игрока. Однако подготовка ИИ для этой цели не кажется такой уж простой, потому что:

  1. Там может не быть рейтинга, если один ход хорош или нет, поэтому обучение отдельных ходов не кажется правильным выбором
  2. Использование всех игровых состояний (входов) и ходов (выходов) всей игры для обучения нейронной сети не представляется правильным выбором, поскольку не все ходы в проигранной игре могут быть плохими

Итак, мне интересно, как подготовить нейронную сеть для настольной игры на основе раунда? Я хотел бы создать нейронную сеть для крестики-нолики с использованием тензорного потока.

soriak
источник

Ответы:

10

Отличный вопрос! NN очень многообещающе для этого типа проблемы: шахматы жирафа . Достижение Лая считалось довольно большим делом , но, к сожалению, это произошло всего за несколько месяцев до того, как AlphaGo привлекла к себе внимание. (Все получилось хорошо, Лай был впоследствии нанят DeepMind, хотя и не очень хорошо для движка Giraffe ;)

Я нашел подход Лая весьма полезным, и он подкреплен солидными результатами.


Возможно, вы захотите использовать « последовательный », а не «основанный на раундах», поскольку «последовательный» является предпочтительным термином в теории игр и комбинаторной теории игр , и это те области, которые применяют математический анализ к играм.

Игры, которые вы перечисляете, далее называют « абстрактными », чтобы отличать их от современных настольных игр или игр в целом, которые используют сильную тему и, как правило, менее компактны, чем абстрактные игры с точки зрения механики и элементов. Это подразумевает, что абстрактные игры не ограничиваются последовательными играми, настольными играми или даже играми конкретно, как в случае с головоломками, такими как судоку.

Формальное название для этой группы игр, как правило, « партизанская , последовательная, детерминистическая , совершенная информация » с дальнейшей категоризацией Крестики-нолики как «тривиальные» (решаемые и легко решаемые) и нетривиальные (неразрешимые и неразрешенные) для такие игры, как шахматы и го.

DukeZhou
источник
7

Я шахматист, и мой ответ будет только о шахматах.

Обучение нейтральной сети с обучением с подкреплением не ново, это было сделано много раз в литературе.

Я кратко объясню общие стратегии.

  • Цель сети - научиться оценивать положение. Мы все знаем, что королева сильнее епископа, но можем ли мы сообщить об этом сети без явного программирования? А как насчет пешечной структуры? Сеть понимает, как оценить, выигрывает ли позиция или нет?

  • Теперь мы знаем, зачем нам сеть, нам нужно ее спроектировать. Дизайн радикально отличается между исследованиями. До того, как глубокое обучение стало популярным, люди использовали мелкую сеть. В настоящее время сеть с множеством слоев выделяется.

  • Как только у нас будет сеть, вам нужно будет создать шахматный движок. Нейронная сеть не может волшебно играть в шахматы сама по себе, ей нужно подключиться к шахматному движку. К счастью, нам не нужно писать код оценки позиции, потому что сеть может сделать это за нас.

  • Теперь мы должны играть в игры. Мы могли бы начать с некоторых высококачественных шахматных баз данных или вместо этого заставить нашего агента ИИ играть в игры с другим игроком (например, с самим собой, с другим агентом ИИ или человеком). Это известно как обучение подкреплению .

  • Пока мы играем в игры, мы обновляем параметр сети. Это может быть сделано с помощью стохастического градиентного спуска (или других аналогичных методов). Мы повторяем наше обучение столько, сколько хотим, обычно через миллионы итераций.

  • Наконец, у нас есть обученная нейтральная сетевая модель для шахмат!

Посмотрите на следующие ресурсы для деталей:

https://chessprogramming.wikispaces.com/Learning

Привет, мир
источник
Здесь есть только маленькая шахматка
пятнадцатое
Это пример того, как предоставление внешней ссылки без подведения итогов может нанести ущерб в будущем. Поскольку предоставленная ссылка теперь мертва
Грег Хилстон
4

Я думаю, вы должны ознакомиться с обучением подкреплению. В этой области машинного обучения агент взаимодействует со своей средой, и после этого агент получает некоторое вознаграждение. Теперь агент - это нейронная сеть, а среда - игра, и агент может получить награду +1, если он выиграет, или -1, если проиграет. Вы можете использовать это состояние, действие, кортеж опыта, чтобы обучить агента. Я могу порекомендовать лекции Дэвида Сильвера на YouTube и книгу Саттона.

Мольнар Иштван
источник