Приложение для игры Connect 4

Полную статью в блоге Sicara читайте здесь.

Легко приступите к обучению с подкреплением с помощью JavaScript, применив глубокое Q-обучение к простой игре: connect4. Благодаря этому я построил свой первый ИИ!

Зачем подключать 4?

Когда я решил узнать об обучении с подкреплением, я подумал, что могу начать с Generals.io. В конце концов, казалось довольно простым создать непревзойденный AI в Chess, Go и DOTA II. Как я мог не сделать то же самое?

Будучи новичком в нейронных сетях и обучении с подкреплением, я наконец решил начать с малого: подключить 4. Первое, что мне сказали?

Зачем подключать 4? Вы можете легко перебрать это!

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

Что такое знаменитое Q-обучение?

Q-Learning - это первый алгоритм, предоставленный Google при поиске обучения с подкреплением. Я не буду объяснять всю концепцию, вы можете найти отличное введение здесь. Я просто дам краткое резюме.

Q-Learning - это решение MDP, также известного как процесс принятия решений Маркова. MDP определяется агентом, действующим в среде с помощью действий. Среда может находиться в разных состояниях.

Учитывая эти 3, идея Q-обучения состоит в том, чтобы вознаградить агента, если его действие привело его к лучшему состоянию. Или накажи, если нет. Эти награды будут использоваться для построения функции Q, которая является оценкой окончательного выигрыша с учетом состояния s и действия a.

Чтобы гарантировать, что игра учитывает потенциальный будущий результат игры, коэффициент гамма используется для использования максимального Q-значения следующее состояние s + 1 среди возможных действий.

Обучение временной разнице

В соединении 4 невозможно узнать, было ли действие хорошим или плохим. Вам нужно дождаться конца игры, чтобы узнать, привела ли последовательность ваших действий к победе. Это идея, лежащая в основе обучения временной разнице (TD-обучение): агент получает вознаграждение, когда он выигрывает игру, затем эта награда распределяется между предыдущими действиями со скидкой.

При объединении Q-обучения и TD-Learning каждый раз, когда агент награждается или наказывается, функция Q обновляется по следующему алгоритму:

После нескольких итераций вы изучите функцию Q (поняли?).

Нам нужно идти глубже!

Для простых игр (несколько действий, еще несколько состояний) вы можете оценить точную функцию Q как 2D-массив. Для более сложных игр вам необходимо подойти к функции Q. Здесь в игру вступают нейронные сети. Они могут быть достаточно гибкими для этой задачи.

Нейронная сеть примет состояние окружающей среды в качестве входных данных и выведет массив, соответствующий доступным действиям.

Ваша миссия - обучить нейронную сеть приближаться к функции Q, которая будет делать лучший выбор.

На практике

Теперь вопрос: как использовать это для подключения 4?

… Читайте полную статью в блоге Sicara здесь.