Алгоритм обучения Q для крестиков-ноликов

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




Ответы (2)


У вас есть значение Q для каждой пары состояние-действие. Вы обновляете одно значение Q после каждого выполняемого вами действия. Точнее, если применение действия a1 из состояния s1 переводит вас в состояние s2 и приносит вам некоторое вознаграждение r, то вы обновляете Q(s1, a1) следующим образом:

Q(s1, a1) = Q(s1, a1) + learning_rate * (r + discount_factor * max Q(s2, _) - Q(s1, a1))

Во многих играх, таких как крестики-нолики, вы не получаете награды до конца игры, поэтому вам нужно запустить алгоритм через несколько эпизодов. Так информация о полезности конечных состояний распространяется на другие состояния.

person Tudor Berariu    schedule 19.01.2015
comment
Спасибо за ваш ответ. Но я не могу понять Q обучения для крестиков-ноликов. Вы сказали, что не получите награды до конца игры. Я понял. Но я не могу понять, как машина решает первое действие? Например, я поставил X, а машина поставит O. Как машина решает, куда поставить этот O, потому что я понимаю, что для полной игры есть только одно значение Q. - person bzkrtmurat; 19.01.2015
comment
Крестики-нолики — игра для двух игроков. При обучении с использованием Q-Learning вам нужен противник, с которым вы будете играть во время обучения. Это означает, что вам нужно реализовать другой алгоритм (например, Minimax), сыграть самому или использовать другой агент обучения с подкреплением (может быть тот же алгоритм Q-обучения). - person Tudor Berariu; 19.01.2015
comment
Чтобы решить, какое действие предпринять в конкретном состоянии, вам нужна политика. Распространенным вариантом при реализации Q-Learning является использование эпсилон-жадного (с затухающим эпсилон), который учитывает компромисс между исследованием и эксплуатацией. - person Tudor Berariu; 19.01.2015
comment
Спасибо за ваши ответы - person bzkrtmurat; 19.01.2015
comment
Нет, в алгоритме SARSA вы не берете максимальное значение для Q в s2. В SARSA вы выбираете действие a2 с помощью политики, а затем обновляете Q(s1, a1) с учетом Q(s2, a2) вместо max(Q(s2, _)). - person Tudor Berariu; 18.02.2015

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

Поэтому алгоритм Q Learning должен быть изменен. В следующем документе приведены некоторые подробности о возможных модификациях:

  1. неотрицательная награда дается после окончания игры (кроме розыгрыша), то обновление Q выполняется не на каждом шаге действия (что ничего не меняет), а только после окончания игры
  2. обновление Q выполняется путем распространения его нового значения от последнего хода назад к первому ходу
  3. включена другая формула обновления, которая также учитывает точку зрения противника из-за поочередного характера игры для двух игроков.

Абстрактный:

В этой статье сообщается о нашем эксперименте по применению алгоритма Q Learning для обучения игре в крестики-нолики. Исходный алгоритм модифицируется путем обновления значения Q только после завершения игры, распространения процесса обновления от последнего хода назад к первому ходу и включения нового правила обновления. Мы оцениваем производительность агента, используя представления полного и частичного пансиона. В этой оценке агент играет в крестики-нолики против игроков-людей. Результаты оценки показывают, что производительность модифицированного алгоритма Q Learning с частичным представлением доски сравнима с производительностью игроков-людей.

Учимся играть в крестики-нолики (2009 г.) Дви Х. Видьянторо и Юс Г. Вембрина

(К сожалению, это платный доступ. Либо у вас есть доступ к архиву IEEE, либо вы можете попросить авторов предоставить копию на сайте researchgate: https://www.researchgate.net/publication/251899151_Learning_to_play_Tic-tac-toe)

person vonjd    schedule 10.04.2016