Гонка за Галактикой ИИ

От TD-Gammon к гонке за галактикой

Что делает игру воспроизводимой с течением времени? Он предлагает новые вызовы снова и снова. Один из способов сделать это - подключить искусного противника с искусным интеллектом, и даже опытные игроки будут испытывать трудности после сотен часов игры. Гонка была одной из Лучшие продажи Настольные игры в этом году отчасти из-за нейронной сети, которая питает его ИИ. Гонка за Галактикой использует временную разницу нейронной сети. Эта система без знаний не требует участия человека для создания обучающих данных, что делает ее эффективной для небольшой команды с ограниченными ресурсами. Вместо этого он учится, играя случайным образом, делая прогнозы на уровне хода, на котором игрок выигрывает, и обновляя весовые коэффициенты в своей многослойной архитектуре персептрона, так что разница между предсказаниями от одного хода к следующему уменьшается. Используя этот метод в более чем 30 000 обучающих играх, он узнал функцию черного ящика, которая наилучшим образом представляет взаимосвязь между входом (состоянием игры) и выходом (предсказанием того, кто победит) для нейронной сети, которая управляет нашим ИИ. Это довольно невероятный метод, впервые использованный для настольных игр Джеральдом Тесавро, который создал TD Gammon, а теперь применил к Race for the Galaxy наш эксперт по искусственному интеллекту Келдон Джонс.

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

Клиент Keldon Как любой преданный наркоман настольной игры, иногда я гуглю мои любимые настольные игры, чтобы посмотреть, оцифровывал ли кто-нибудь их. Несколько лет назад я погуглил мою любимую игру Race, чтобы посмотреть, существует ли цифровая версия, и я нашел ее! Это было нелицензионное проект разработанный Келдоном Джонсом. Я запустил сотни игр, и мне нужна была только одна особенность: звук, предупреждающий игрока, что его очередь. К счастью, это был открытый исходный код, так что я мог начать ковыряться под капотом, и там происходили некоторые интересные вещи. У этого клиента был AI мирового класса. Я подумал обо всех других функциях, которые мне нужны, и о «Городе крипов», в конце концов я захотел это сделать на своем телефоне.

Лицензирование Вернувшись в Google, я посмотрел на дизайнера Race и связался с Томом Леманом, чтобы узнать, смогу ли я это сделать. У Тома была только одна просьба. Он хотел убедиться, что Келдон может быть вовлечен в проект. Видимо у него был довольно аккуратный ИИ!

TD Gammon Этот ИИ был основан на оригинальное исследование для TD Gammon Джеральда Тесавро , Да, одна из самых передовых игровых ИИ, когда-либо созданных, основана на 5000-летней игре: нарды. Тесавро был пионером в искусственном интеллекте, основанном на нейронных сетях, что в конечном итоге изменило традиционное представление о том, как играть в нарды. Этот ИИ успешно развивался по собственным неортодоксальным стратегиям, которые в конечном итоге были приняты на самых высоких турнирных уровнях и теперь широко приняты игроками по всему миру. Например, слоты против расщепления. Традиционно игроки, чей стартовый бросок включает 1, используют 1 для перемещения из позиции 6 в позицию 5. Это рискованный ход с высокой наградой, если противник не отскочит вас, им будет намного труднее побег из 1 позиции позже. Но TD Gammon, основанный на нейронной сети, обнаружил более высокие показатели успеха в тысячах игр, «разделив», а не «разделив», и переместив одну шашку с 24 до 23.

Но TD Gammon, основанный на нейронной сети, обнаружил более высокие показатели успеха в тысячах игр, «разделив», а не «разделив», и переместив одну шашку с 24 до 23

Не имеет значения, почему это лучшая стратегия. У него просто больше выигрышей. И прогнозы, и результаты способствовали расщеплению.

И прогнозы, и результаты способствовали расщеплению

Как этот ИИ обнаружил превосходство стратегии, которой у людей не было за 5000 лет? ИИ начинается с нуля начальных знаний. Так что, в отличие от нашего эвристического ИИ в Вознесении, он не предопределен императивами, основанными на человеческом опыте, по сути, он не имеет учителя. И это хорошо, потому что человеческий опыт может быть ошибочным ..

формула ТД Гаммон использует нейронную сеть для определения своих ходов. Это дало формулу для изменения весов NN на каждом ходу, чтобы уменьшить разницу между текущим и предыдущим положением доски. Это временная разница обучения.

это сумма, на которую можно изменить вес по сравнению со значением на предыдущем ходу это сумма, на которую можно изменить вес по сравнению со значением на предыдущем ходу. это обучающий параметр. это разница между текущей и предыдущей оценками доски. скорость распада в обратно распространяющихся старых оценок и насколько изменение веса влияет на производительность. Мы используем аналогичную формулу в Race for the Galaxy.

Тренировочные данные? Нейронные сети, как правило, становятся лучше, регулируя их граничные веса так, чтобы вычисления приводили к тому, что входные и выходные данные лучше соответствовали обучающим данным. Обучающие данные обычно поступают с подачи экспертных данных в нейронную сеть.

Обучающие данные обычно поступают с подачи экспертных данных в нейронную сеть

Если вы хотите, чтобы нейронная сеть могла идентифицировать фотографии кошек, сначала вы отправляете ей кучу фотографий, которые человек называет кошками. Это дорого Это требует человеческого труда. ИИ Келдона делает что-то другое, и это основано на той системе без учителей, которая была впервые разработана с TD gammon.

Укрепление обучения Итак, мы интегрировали его. Мы используем так называемую систему «без знаний». Где мы получаем наши данные обучения? Нейронная сеть фактически генерирует это, играя себя. ИИ получает входной сигнал, производит выходной сигнал и получает вознаграждение на основе сигнала обратной связи. Обратная связь заключается в том, привел ли ход к выигрышной игровой доске, но как получить обратную связь от поворота к повороту, когда вы еще не знаете, была ли игра выиграна? Награда в конце игры задерживается. Решение: временный кредит или обвинение назначается на каждом ходу, приводя к окончательному вознаграждению в конце игры. В этом суть метода временных разниц.

Временное присвоение кредита Этот стиль обучения подкрепления основан на временных последовательных предсказаниях. То, что я имею в виду, это включить n поезда, включить n-1. И эта спина размножается с распадом. Таким образом, если он делает прогноз выигрыша игрока 3 на 2-м ходу, но затем на 3-м ходу он делает прогноз выигрыша игрока 5, он тренируется, что в этом состоянии на втором ходу он должен был наклониться к игроку 5 - он корректирует его веса. В конце игры, вместо того, чтобы использовать прогнозирование, он использует фактического победителя в качестве тренировочных данных, но он тренируется каждый раз, когда выполняется шаг или ход. Каждый противник эффективно толкает NN. 30 000 игр x 4 игрока x # поворотов - это около миллиона временных шагов, на которых он тренировался.

30 000 игр x 4 игрока x # поворотов - это около миллиона временных шагов, на которых он тренировался

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

Тактика кристаллизуется. То, что происходит здесь, заключается в том, что стратегия азиата случайна. Во время первой тысячи тренировочных игр появляются такие тактики, как Piggy Backing. ИИ Келдона разработал стратегии Piggy Backing, полностью независимые от человеческого участия.

Например, здесь ИИ выбрал «Торговля», хотя у него нет товаров для торговли. Я попал в ловушку, выбрал урегулирование, ИИ может урегулировать мир, который приходит с хорошей, эффективной копилкой, поддерживающей мое урегулирование, и торговать им. Применяемая тактика может быть тонкой и контекстно-зависимой, в отличие от эвристического ИИ.

Входы В нашей нейронной сети, какие входы? Это 800 узлов, включая тонну данных о состоянии игры.

Это 800 узлов, включая тонну данных о состоянии игры

Бифуркации ИИ На самом деле эти входы не просто подаются в одну нейронную сеть. Келдон раздваивает модель. Одна из самых важных вещей - это решить, как спроектировать ваши бифуркации. У нас есть двенадцать уникальных моделей нейронных сетей, каждая из которых подготовлена ​​для различного набора расширений и количества игроков. Если вы используете игру для двух игроков, ИИ находится в другой сети, чем игра для трех игроков. Мы всегда можем разделить дальше, но отдача уменьшается, и вы обременены сложностью и размером - что плохо. Размер NN составляет четверть нашего объема загрузки, что довольно неплохо, учитывая объем искусства, который мы поставляем со всех игровых карт.

И для каждой бифуркации на самом деле работают два вида нейронных сетей, каждый со своей основной функцией. Так что на самом деле мы поставляем с 24 нейронными специализированными нейронными сетями.

Выходы Эти функции определяют выходы. Функции таковы: «Какой ход сделает игрок X в состоянии Y?» Мы называем эту функцию Eval_Role. Вторая функция дана этой доске, оцените ее: скажите мне, насколько это было бы хорошо для меня по шкале от -1 до 1. Мы называем это Eval_Board.

Мы называем это Eval_Board

Имитация движения вперед В свою очередь ИИ симулирует каждое возможное движение, которое он может сделать, и запускает функцию Eval_Board для результатов и выбирает лучший. Фактически, чтобы продвинуть симуляцию вперед, шаг может включать один или несколько вызовов Eval_Role, чтобы угадать выбор роли оппонента.

Сложность настройки В результате всего этого ИИ действительно сложен. Или, по крайней мере, так может быть. Вы можете подумать, что жесткий ИИ не идеален для некоторых людей, возможно, для новых игроков. И ты прав! Очень сложно сделать ИИ сложнее, но вы можете легко и просто справиться с ИИ. В наших выходах нейронной сети мы добавляем шум к оценке. Увеличение шума заставит ИИ выбирать 2-й или 3-й лучший вариант. Вы можете настроить количество шума, которое вы добавляете, чтобы найти правильные настройки сложности. При определении шума для среднего ИИ вы хотите, чтобы он выиграл примерно 25% игр против жесткого ИИ.

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

  • Прекращение Игре необходимо окончательное завершение, чтобы окончательный сигнал вознаграждения мог распространиться назад к предыдущим ходам. Шахматы - плохой кандидат, потому что они могут привести к заторможенному танцу между ходами и никогда не генерировать этот окончательный сигнал награды.
  • Высокая стохастичность Широкое пространство возможностей, открываемое вероятностями ветвления, дает NN-пространство такого типа для открытия новых стратегий. Много RNG отлично, так что перетасовка колоды и игра в кости работают хорошо.
  • Непространственный Ваш NN пытается изучить функцию, которую он еще не знает. Функция легче выучить, когда она гладкая. Небольшое изменение на входе должно привести к небольшому изменению на выходе. Если у вас есть шахматное соглашение и вы вносите небольшое изменение в положение фигуры, это может привести к резкому изменению вероятности выигрыша. По этой причине игры, в которых относительное расположение имеет решающее значение, являются плохими кандидатами для TD NN.

По этой причине игры, в которых относительное расположение имеет решающее значение, являются плохими кандидатами для TD NN

  • Входы с фиксированным числом Ваш ИИ учится лучше, когда входы фиксированы. Вот почему мы разветвляем наши NN, когда добавляем новое расширение. ИИ наиболее эффективен, когда входящие переменные одинаковы при каждом воспроизведении.
  • Несколько ходов Хотя теоретически возможно создать TD NN, чтобы помочь в совместной игре, вы не захотите выбирать такую ​​игру, как One Night Werewolf. Это потому, что оборотень решает всю игру за один ход, поэтому у nn не может быть обратного убывающего вознаграждения. Кроме того, сообразительность TD NN падает к концу игры, потому что она выигрывает от меньшего количества прямых наград.

Следующий? Мы расследуем добавление поиска по NN-дереву в наш Ролл для Галактики ИИ для повышения производительности, основанный на недавней публикации об AlphaGo Zero, которая расширяет технику NN для обработки деревьев глубокого поиска. Прямо сейчас с Race мы делаем полный двухслойный просмотр, но коэффициент разветвления Roll кажется выше и может быть слишком большим для телефонов. Посмотрим.

В таких играх, как Race, часто бывает так, что простая механика создает большие пространства для поиска. Самое последнее расширение для Race, Грань войны иногда приводит к игровым состояниям, в которых требуется более 500 000 оценок нейронных сетей для продвижения игры за один ход. Чтобы преодолеть это, мы в настоящее время эвристически отбрасываем маловероятные ветви дерева поиска. В будущем мы могли бы использовать методы AlphaGo Zero для сокращения этих оценок и повышения производительности, особенно на платформах, таких как телефоны и планшеты.

Тереза ​​Во время

Тереза ​​Во время

связанные с

Как этот ИИ обнаружил превосходство стратегии, которой у людей не было за 5000 лет?
Тренировочные данные?
Где мы получаем наши данные обучения?
Обратная связь заключается в том, привел ли ход к выигрышной игровой доске, но как получить обратную связь от поворота к повороту, когда вы еще не знаете, была ли игра выиграна?
Функции таковы: «Какой ход сделает игрок X в состоянии Y?
Следующий?