机器学习方法篇(26)------蒙特卡罗方法

● 每周一言

易怒与躁动,是不成熟的表现。

导语

蒙特卡洛,是袖珍之国摩纳哥的一座赌城名字。冯·诺依曼用一个赌城的名字命名蒙特卡洛方法,增加了这个方法的神秘性。那么,MC的算法思想是什么?

蒙特卡罗方法

如上一节所述,MC是一种基于样本而不基于模型的价值学习方法,只需要在不断试错过程当中学习到的经验。总体来说,MC的核心思路步骤是:探索 → 模拟 → 抽样 → 估值 → 策略优化

fig1

在上一节中我们了解到,MC每次对样本进行完整的采样模拟,用最终的实际价值收获来更新策略和价值函数。而这个过程中间的价值计算有两种方式: first-visitevery-visit

其中 first-visit 是指在计算价值回报时,对所有第一次遍历到的状态所获得的价值进行平均,every-visit 则是对每一次遍历到的状态所获得的价值进行平均。

fig2

这里存在的一个问题是,有可能有一些 状态-行为对从未被遍历过,导致无法对该 状态-行为对评估。因此,个体在每一次遍历的时候,需要保持一定的探索精神,直观来讲就是让所有的 状态-行为对都有可能被选中。

所对应的MC法就是Exploring Starts法,ES法规定每一状态-行为对都能以非零的概率被选中作为某一次遍历的起点,具体算法实现步骤如下:
1> 探索,选择一个状态-行为对(s, a);
2> 模拟,使用当前策略F,从(s, a)开始模拟遍历直到结束,产生一段序列;
3> 抽样,统计这段序列上每个状态的奖励R(s, a);
4> 估值,对R(s, a)求和取平均更新价值函数V;
5> 策略优化,用新的价值函数V优化策略函数F。

第三步 抽样 不太好理解,这里补充解释一下:第二步模拟 虽然能够使任一种行动方式都有可能出现,但在实际情形当中没办法穷举所有可能的行动方式,因此用于计算状态-行为对奖励的序列,只能算一种抽样。

ES法适用于围棋这类具有特定状态起点的应用场景,然而由于存在 既定状态 的差别,对于无人驾驶这样的场景却束手无策。

fig3

不妨仔细思考一下无人驾驶和围棋这两类场景之间的区别,会发现对于无人驾驶而言,其实只需要保证所有的驾驶操作都可能被选中就可以了。通常有两种方法: on−policyoff−policy

on−policy通过设置一个0-1之间的概率参数ε,让个体在 1−ε的概率下不去选择当前具有最大奖励的行为,而是从其他行为中随机选择一个,这就保证了所有行为都有可能被选中。

fig4

off−policy则是把评估优化策略和模拟策略分开,前者专门负责策略更新,后者则专门负责行为模拟,同样保证了所有行为都有可能被选中。on-policy相比之下更简单,但off-policy往往表现更为强大,更具有一般性。

以上便是MC的讲解,敬请期待下节内容。

结语

感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白

face

猜你喜欢

转载自blog.csdn.net/cherrylvlei/article/details/79834962