我已经开发了一个基于蒙特卡罗树搜索的简单六角棋玩家,用于六角棋游戏。现在我想通过使用RAVE(快速动作价值估计)和LGP(最后一次有效回复)来扩展这个六角棋玩家。相关文章在这里链接1和链接2。
我想知道这里是否有人使用过这些方法来改进树搜索性能,并且能帮助我理解这些方法?
我还想知道为什么这些算法被称为AMAF(所有动作作为首选)启发式方法?
回答:
在利用强化学习的游戏中,蒙特卡罗树搜索领域有两种类型的反向传播,AMAF和UCT。
UCT方法反向传播在选择阶段经过的路径。只有在选择阶段遇到的节点才会在其状态下被精确反向传播。但在AMAF中,所有在展开阶段遇到的节点都被存储,并且在反向传播阶段,与选择路径中的节点一起,不考虑状态地进行反向传播。
UCT为(状态,动作)对提供了一个非常精确和局部的值,但其收敛速度太慢。另一方面,AMAF启发式方法收敛速度非常快,但(状态,动作)对的值过于一般化,无法保证可靠性。
我们可以通过使用一个递减系数来结合这两种策略的好处,像这样:
a * UCT + (1 – a) * AMAF
这就是RAVE(快速动作价值估计)启发式方法。
最后一次有效回复基于AMAF,但可以从RAVE中受益。其基本思想是在展开阶段,当我们使用动作对抗对手的动作时,如果这些动作成功对抗了对手的动作,那么我们可以存储这些动作,并在下一次展开中使用它们。