Monte Carlo Methods
提出背景
在DP方法中,需要指导转移概率的先验知识,但是一般情况夏是不知道这个概率的,即无法知晓
蒙特卡洛方法指的是一系列从重复采样中进行估计的方法。在强化学习中,蒙特卡洛方法通过对大量样本的回报进行平均,来进行价值估计。随着收集到的样本越来越多,平均值就会收敛到期望值。MC算法是在每一幕结束之后进行更新的。
关于 visit
访问的定义
如果状态 访问
, 第一次访问称为 首次访问
两种MC算法
MC算法分为首次访问和每次访问两种,首次访问是只计算每一幕的首次访问的回报,而每次访问则是每一次遇到状态
去掉关于
利用蒙特卡洛方法估计动作价值
如果问题是 Model-unaware
的那么就可以考虑利用蒙特卡洛方法去估计动作-状态价值函数
,只需要把上面的算法中的
消除初始策略带来的影响
为了尽可能多的探索可能的情况,减小策略带来的影响而学习到全局的最优解,通常有 on-policy
和 off-policy
两种方式。
on-policy
on-policy
的方法,本质上还是使用
不过因为这个策略不要求试探性假设,得到的结果不是最优的
off-policy
off-policy
采用两份不同的策略,一个用于学习,称为 目标策略
,一个用于生成动作,称为 行动策略
。需要注意的是,行动策略必须包含目标策略,即
重要性采样
重要性采样就是一种通过一种策略的采样来衡量另一种策略的价值函数的技巧,数学推导见下:
首先,我们知道一串序列
那么这一串事件在行动策略和目标策略下出现的概率之比就是:
那么就可以在这个基础上,得到通过行为策略获取回报并转换成目标策略的价值函数的方法:
注意到前面的
加权的重要性采样
重要性采样还有一个加权版本,分为 Ordinary
的和 Weighted
的两种,其中的记法是一样的,记 Ordinary
版本的公式如下:
这个和前面的那个 every-visit
的很像,只不过加上了重要度采样比
而 weighted
版本如下:
如果式
误差和方差分析
Ordinary
版本的加权重要性采样是无偏的而 Weighted
的版本是有偏的(但是偏差渐进趋近于0),但是 Ordinary
版本的方式往往是无上界的,而 Weighted
的是 bounded 的
通常选择加权版本。
增量实现
假设有一个回报序列
稍作变形可以得到:
其中的
初始值
由此得到 off-policy
的增量实现算法:
off-policy
蒙特卡罗控制
前面提到了 on-policy
的蒙特卡罗控制,这里给出 off-policy
的版本:
这个和上面那个增量算法没有本质区别,只是每一步加了一个更新目标策略而已。
我个人的感觉,离线算法的好处是行为策略是不更新的,所以可以选择一个高效的行为策略更偏向于
exploration
这样可能得到的策略是更好的。
书上给出了离线算法的潜在问题,即如果在行为策略中,非贪婪的选择太多的话,会导致乘上那个重要性比例之后,值的占比很小,策略收敛的速度会很慢