蒙特卡洛方法
MC方法是一类通过与环境(真实环境或模拟仿真)交互得到采样序列来估计值函数的方法。依据大数定律,在样本数量足够大时可以通过计算平均回报来解决强化学习问题,对于分幕式任务则可以在每一幕结束后进行价值估计和策略改进,也就是蒙特卡洛控制的价值迭代。。
1.蒙特卡洛预测 -给定策略下
估计
1.首次访问型MC算法
问题背景:在给定策略下,考虑一个分幕式任务,Agent有多次达到了状态,在某一幕中,每次状态出现就称为对的一次访问,在整个任务甚至在同一幕中,状态有可能被多次访问到
首次访问:第一次访问状态
被称为对状态s的首次访问
用 首次访问的回报平均值估计
就是
首次访问型MC,用每次访问到状态
的所有回报平均值就是
每次访问型MC。不论是每次访问型和首次访问型,当对
的访问次数趋于无穷时,只要策略保持不变,对于状态在策略
下的估计值都会收敛到
。
2.首次访问型MC预测算法伪代码
## 首次访问型MC预测算法 ##
输入:待评估策略
初始化 v(s)
初始化列表 L
循环N次{
依据输入策略生成一幕序列:S0,A0,R1,S1,A1,R2,...S_{T-1},A_{T-1},R_{T}
G=0
for t in {
T-1,T-2,...0}
计算序列中每个节点的回报 G = gamma * G+ R_{
t+1}
G加入列表L #列表是每个状态的回报的表格,推到最后就是第一个状态S0的
if St 在序列{
S0,S1,...S_{T-1}}中出现过
把列表中该状态的回报换成时间靠前的回报 #因为是从后往前考察
continue
end if
end for
}
对于表格L中每种状态的回报,统计其平均值,就是各状态的价值函数估计
在策略
下从
待考察状态
计算对应状态的平均回报,作为策略
下的
状态
,
状态的价值只
按最先出现的那个状态的回报来估算。
3.MC方法与DP的比较
与DP不同的是,MC方法对于每个状态的值函数估计是独立的,每个状态价值函数之间没有明显关系(尊重试验事实),这不像DP是基于自举的推断方法。
MC方法的回溯树就是一条确定的采样轨迹,而不是DP的树状形式。
MC需要依赖一条完整的采样轨迹数据计算值函数,而DP依据上个状态值函数计算下一状态值函数。 这是也是MC方法的特色- 从实际环境采样和仿真模拟中学习
2.动作价值的MC估计法- 给定策略下
估计
动作价值函数的策略评估:在DP问题中,由于模型完备,所以依靠状态的价值函数$v(s)$就可以用贝尔曼方程得到最优策略。而在一些无模型问题中,由于动力学方程或状态转移概率未知,所以需要依据状态-动作二元组的价值函数
来实现表格型问题的策略生成。
MC估计法:与上一小节中
状态价值函数的估计方法类似,我们将
访问考察对象改为
状态-动作二元组,用同样的方法计算所有碰到的(或是第一次碰到的)状态-动作二元组价值函数的平均值作为其估计值。
MC方法对于确定性策略的困境:对于概率型策略,次数足够大都能保证一些状态被访问到并更新,但对于确定性策略,一旦策略固定后只会转移到
特定的状态-动作二元组上,也就是
某些状态-动作二元组在该策略下永远无法被访问到,而策略提升需要收集尽可能多的值函数,而不是局限于某些值函数。因此,需要Agent
保持探索能力。
MC的试探性改进:
有两种方法:试探性出发( Exploring Start)、随机策略(比如后面我们会用软贪婪策略)
试探性出发就是随机将状态-动作空间中二元组作为起点,这样只要幕数足够,确定性策略中难涉及到的二元组就可能被全部访问到;随机策略就是将确定性策略变为“任何动作都有非零概率被选中”。
3.基于蒙特卡洛的控制方法-MC GPI
表格型强化学习的控制问题:通过交互产生经验估计Qtable,用固定的动作选取策略依据Qtable去产生动作输出
基于理想条件的MC的广义策略迭代GPI: 策略评估(E)后进行策略提升(I),策略评估使值函数接近真实值,策略提升选取最优动作,最终趋近于最优值函数和最优动作,这里借用原书中图片和知乎张文大佬专栏上图片。
MC的GPI很容易实现,考虑下面的GPI序列,以
为初始序列,假设E代表
执行无数幕(理想条件1),
假设满足试探性出发(理想条件2),通过MC就可以遍历估计求得所有二元组值函数
,通过贪婪方法将值函数映射到策略中:
策略改进(I)依据DP中的策略改进定理: