繁体   English   中英

Q 学习应用于两人游戏

[英]Q Learning Applied To a Two Player Game

我正在尝试实施 Q Learning 代理来学习在 Tic Tac Toe 游戏中与随机代理对战的最佳策略。

我制定了一个我相信会奏效的计划。 只有一部分我无法理解。 这是因为环境中有两个参与者。

现在,Q Learning agent 应该根据当前状态s 、给定某个策略采取的行动a 、给定该行动的后续状态s'以及从该后续状态收到的任何奖励r采取行动。

让我们把它放到一个元组(s, a, r, s')

现在通常情况下,代理会根据给定的操作发现自己遇到的每个状态,并使用 Q 学习方程来更新先前状态的值。

然而,由于 Tic Tac Toe 有两个玩家,我们可以将状态集分成两个。 一组状态可以是学习代理转向行动的状态。 另一组状态可以是对手轮到采取行动的地方。

那么,我们需要将状态一分为二吗? 或者学习代理是否需要更新游戏中访问的每个状态?

我觉得好像应该是后者,因为这可能会影响对手赢得比赛时更新 Q 值。

任何对此的帮助都会很棒,因为网上似乎没有任何东西可以帮助我解决困境。

一般来说,如果假设对手也可以学习,直接将 Q-learning 应用于两人游戏(或其他类型的多智能体环境)不太可能产生很好的结果。 但是,你特别提到

与随机代理人对战

这意味着它实际上可以工作,因为这意味着对手没有学习/改变它的行为,所以你可以可靠地将对手视为“环境的一部分”

完全做到这一点也可能是您可以采取的最佳方法。 将对手(和他的行为)视为环境的一部分意味着您基本上应该完全忽略对手移动的所有状态。 每当你的智能体采取行动时,你也应该立即为对手产生一个行动,然后才将结果状态作为下一个状态。

因此,在元组(s, a, r, s')中,我们有:

  • s = 你的代理人要移动的状态
  • a = 您的代理执行的操作
  • r = 一步奖励
  • s' =您的代理将再次移动的下一个状态

对方要动的状态,做出的动作,完全没有出现。 它们应该被简单地视为环境中不可观察的、不确定的部分。 从您的算法的角度来看, ss'之间没有其他状态,其中有一个对手可以采取行动。 从您的算法的角度来看,环境只是不确定的,这意味着在状态s中采取行动a有时会随机导致s' ,但有时也可能随机导致不同的状态s''


请注意,这只会准确地起作用,因为您写道对手是随机代理(或者更重要的是,具有固定策略的非学习代理)。 一旦对手也获得了学习能力,这将完全崩溃,您必须继续使用适当的强化学习算法的多代理版本。

Q-Learning是来自MDP(Markov Decision Process)领域的一种算法,即MDP和Learning在实际面对一个正在行动的世界。 每个动作都会改变代理的状态(有一定的概率)

该算法的基础是,对于任何动作,世界都会给出反馈(反应)。

当任何行动都有某种即时且可衡量的反应时,Q-Learning 效果最佳

此外,这种方法从一个代理人的角度看待世界

我的建议是将代理实施为世界的一部分。 就像一个使用各种策略的 be bot,例如随机、最佳动作、固定布局,甚至是一个工具,它的逻辑就像 q-learning

为了向前看 n 步并运行所有状态(以便稍后您可以选择最好的状态)如果空间大小太大,您可以使用蒙特卡洛树搜索(就像使用 GO 一样)

Tic-Tac-Toe游戏已经解决了,如果玩家遵循最优策略,则可以获胜或平局,并且2个最优玩家将平局,完整的游戏树很容易构建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM