首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蒙特卡洛树搜索,反向传播(备份)步骤:为什么改变奖励价值的观点?

蒙特卡洛树搜索,反向传播(备份)步骤:为什么改变奖励价值的观点?
EN

Stack Overflow用户
提问于 2015-05-28 14:13:53
回答 4查看 3.2K关注 0票数 6

我一直在阅读Browne等人的蒙特卡洛树搜索调查论文。艾尔:

1.pdf

蒙特卡罗树搜索方法综述

在第9页中,我只处理了一段伪代码。我的问题在备份和BackupNegamax函数中都是以类似的形式出现的。

假设我是2人零和游戏中的玩家1。(因此,使用BackupNegamax函数。)轮到我移动了,我用MCTS来选择我的动作。在BackupNegamax中,为什么在备份树时忽略增量值?我知道在一场二人零和游戏中,如果对玩家1(我)的奖励是增量,那么对于第2名玩家来说是-delta,但是整棵树不应该从玩家1的角度出发吗?(如果我没有弄错的话,这将类似于在minimax树中对节点的评级。)

如果Q值的透视图来回切换取决于您所处的树的级别,难道这不会使BestChild函数中显示的计算混乱吗?具体来说,假设某个节点v的Q值很高,因为它通常会给玩家1带来很高的奖励。给定的伪代码似乎表明,v的父(我称之为u )很可能有一个非常低(非常负)的Q值(当然,u的Q值也会考虑到它的其他子节点的Q值)。

所以,对于我来说,u(父母)的Q值很低,而v(子)的Q值很高,这对我来说是没有意义的。我知道v是从玩家1的角度看伪码的,而u是从第2玩家的角度看的,但我的问题是为什么。为什么两个节点的Q值都不从播放器1的角度存储?这样,u和v都将具有较高的Q值,从而具有较高的利用等级,并且根据BestChild函数,它们都将被认为对进一步的开发有价值。

(我来到MCTS时,是从使用minimax的经验中来的,在minimax中,整棵树都是从Max的角度来看的,所以这就是为什么我在这里挣扎于不同的想法。)

我的问题也适用于备份--为什么每个Q值都根据玩家在树的那个层次上的透视图进行更新,而不是从“我的”角度更新所有的东西?

我希望我的问题已经说清楚了。非常感谢您的帮助!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-29 05:22:15

描述这一机制的方法有两种:

  1. 全局:从根玩家的角度来看,在这种情况下,每一秒的播放值都会被否定,因为对手正在与根玩家作对。
  2. 局部:从刚刚在每一层移动的玩家的角度来看,在这种情况下,打出去的价值不会被否定,因为每个玩家都试图最大化他们自己的回报。

标准公式使用选项1,因为它更容易描述,并且在两人组合游戏中有它的基础。然而,我倾向于在我的实际实现中使用第二个公式,因为它更灵活;它处理多个玩家的游戏,少于两个玩家,可变移动顺序,多部分移动,合作目标等等。

这正好证实了其他答案中所说的话。

票数 6
EN

Stack Overflow用户

发布于 2015-05-28 14:30:18

有两种方法可以查看MCTS算法:

  1. 从根玩家的角度来看。
  2. 从刚刚移动的球员的角度来看。

我发现第一条路更受欢迎。例如,维基百科解释使用它。

使用方法1:C++Java参考MCTS实现。

票数 2
EN

Stack Overflow用户

发布于 2016-10-16 08:44:03

我和MCTS混淆了一段时间,尤其是反向传播部分。如果每个节点的赢值(称为Q)用于指示当前节点的胜利者次数。在每个不可展开节点中,我们选择了最大的UCT节点。这怎么可能是个好选择呢?考虑以下两个玩家游戏,完整的树如下所示:

代码语言:javascript
复制
`A /  |   \ B1 B2 B3    |    A1` 

在树型B1中,B3是一个B- win终端节点,而B2只有一种导致A- win终端节点A1的选择。

如果我们在MCTS方法中计算游戏,结果将如下图所示:

所以最好的选择是B1或B3对于A,这是荒谬的,怎么解释呢?

参考文献:MCTS计算过程参考

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30509132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档