Tic Tac Toe的Q学习算法

时间:2015-01-19 09:47:26

标签: machine-learning artificial-intelligence tic-tac-toe reinforcement-learning q-learning

我无法理解如何更新tic tac toe游戏的Q值。我读了所有这些,但我无法想象如何做到这一点。我读到Q值在游戏结束时更新了,但我不明白,如果每个动作都有Q值?

2 个答案:

答案 0 :(得分:6)

每个状态 - 操作对都有Q值。在执行每个操作后,您将更新一个Q值。更确切地说,如果从状态a1应用操作s1,您将进入状态s2并为您带来一些奖励r,那么您更新Q(s1, a1)如下:< / p>

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

在许多游戏中,例如井字游戏,直到游戏结束才获得奖励,这就是为什么你必须通过几集来运行算法。这就是关于最终状态效用的信息如何传播到其他状态。

答案 1 :(得分:2)

标准Q学习算法的问题在于,将值从最终值传播到第一步只需要太长时间,因为您只知道游戏结束时的结果。

因此应修改Q学习算法。以下文章提供了可能的修改的一些细节:

  1. 在游戏结束后给予非负奖励(抽奖除外),然后在每个动作步骤(不改变任何内容)都不执行Q更新,但是 只有在比赛结束后
  2. 通过从最后一次移动传播其新值来执行Q更新 向后移动第一步
  3. 由于双人游戏的转折性质,还考虑了另一个更新公式,也考虑了对手的观点
  4. 摘要:

      

    本文报道了我们应用Q学习算法的实验   学习玩Tic-tac-toe。原始算法由。修改   仅在游戏终止时更新Q值,传播   更新过程从最后一步向后移动到第一步,并且   合并新的更新规则。我们评估代理商的表现   使用全板和部分板表示。在这   评估时,代理人会玩人类的井字游戏   玩家。评估结果表明改进后的性能   具有部分板表示的Q学习算法具有可比性   对于人类玩家而言。

    Learning to Play Tic-Tac-Toe (2009) by Dwi H. Widyantoro & Yus G. Vembrina

    (不幸的是,它是在付费墙后面。要么您可以访问IEEE档案,要么可以要求作者提供研究门户的副本:https://www.researchgate.net/publication/251899151_Learning_to_play_Tic-tac-toe