第四章:基于蒙特卡洛的强化学习方法
Last updated
Was this helpful?
Last updated
Was this helpful?
无模型的强化学习算法主要包括蒙特卡洛方法和时间差分法,如下图
状态值函数和行为值函数的计算实际上是计算返回值的期望,动态规划的思想是利用模型计算该期望。在没有模型时,我们可以采用蒙特卡洛的方法计算该期望,即利用随机样本估计期望。在计算值函数时,蒙特卡罗方法是利用经验平均代替随即变量的期望。
经验:利用该策略做很多次实验,产生很多组数据。
平均:求均值。
第一次访问蒙特卡罗方法:在计算s处的值函数时,只利用每次实验中第一次访问到状态s时的返回值。
每次访问蒙特卡罗方法:在计算s处的值函数时,利用每次实验中所有访问到状态s时的返回值。
蒙特卡罗方法中必须采取一定的策略来保证每个状态都能被访问到。
探索性初始化蒙特卡罗方法
根据探索策略和评估策略是否是同一个策略,蒙特卡洛方法分成同策略(on-policy)和异策略(off-policy):
同策略:产生数据的策略与评估和要改善的策略是同一个策略。
异策略:产生数据的策略(μ)与评估和要改善的策略(π)不是同一个策略。
基于异策略的目标策略(π)和行动策略(μ)的旋转要满足覆盖性条件,即行动策略产生的行为要覆盖或者包含目标策略产生的行为。
利用行为策略产生的数据评估目标策略需要利用重要性采样方法。
重要性采样来源于求期望
上图中的p(z)是一个非常复杂的分布,无法通过解析的方法产生用于逼近期望的样本,这时,可以采用一个简单的分布。原来的分布可以变成
因为上面的f(z)很难计算,所以可以通过大量实验来拟合期望。
该估计为无偏估计(估计的期望等于真实期望),但是方差为无穷大,一种减小方差的方法是采用加权重要性采样。
回归到蒙特卡洛方法,行动策略μ用来产生样本,对应的轨迹是重要性采样中的q[z],用来评估和改进的策略π对应的轨迹概率分布是p[z]。加权重要性采样值函数估计为
其中G(t)是从t到T(t)的返回值
蒙特卡洛方法伪代码
总结:重点讲解了如何利用MC的方法估计值函数。与基于动态规划的方法相比,基于MC的方法只是在值函数估计上有所不同,在整个框架上则是相同的,即评估当前策略,在利用学到的值函数进行策略改善。本届需要重点理解on-policy和off-policy的概念,并学会利用重要性采样来评估目标函数的值函数。
当无法通过模型更新值函数时,可以通过经验平均代替值函数。使用经验平均就涉及到采样,如何保证采样样本的无偏估计是非常重要的,通常有两类方案。
使用一个已知的概率p来采样,包括拒绝采样和重要性采样,但此方法只适用于低维情况
第二种是马尔科夫蒙特卡洛方法(MCMC)采样
MCMC不需要提议分布,只需要一个随机样本点,下一个样本会由当前的随机样本点产生,如此循环源源不断地产生很多样本点,最终这些样本点服从目标分布。
MCMC背后的原理是:目标分步为马氏链平稳分布:
定理:细致平稳条件
于是上式式就成立了。
MCMC采样算法
利用蒙特卡洛方法评估策略应该包括两个过程:模拟和平均。
随机策略的样本产生:模拟
蒙特卡洛样本采集
得到值函数:平均
蒙特卡洛评估
探索性初始化在迭代每一幕时,初始状态时随机分配的。初始化需要精心设计,以保证每一个状态都有可能被访问到,即对任意状态s,a都满足:,折中策略叫做温和的,一个典型的策略是策略:
定义重要性权重:,普通的重要性采样求积分变成方程:
[1] 可以参考这篇文章:
该目标分步存在一个转移概率矩阵P,满足; 是方程的唯一非负解。
当转移矩阵满足此条件时,从任意出事分步出发,经过一段时间迭代,分步都会收敛到目标分步。给定一个初始状态,那么会得到连续的转移序列。如果该马氏链在n时收敛到目标分步,我们就得到了目标分步的样本。那么如何构造转移概率呢?
如果非周期马氏链的转移矩阵和分布满足
则是马氏链的平稳分布,上式叫做细致平稳条件。
假设我们已经有一个转移矩阵为的马氏链,显然,通常情况下:
也就是细致平稳条件不成立,所以不太可能是这个马氏链的平稳分布。我们可否对马氏链做一个改造,使得细致平稳条件成立呢?譬如,我们引入一个, 我们希望:
取什么样的以上等式能成立呢?最简单的,按照对称性,我们可以取:
于是我们把原来具有转移矩阵的一个很普通的马氏链,改造为了具有转移矩阵 的马氏链,而恰好满足细致平稳条件,由此马氏链的平稳分布就是。
在改造的过程中引入的称为接受率,物理意义可以理解为在原来的马氏链上,从状态以的概率转跳转到状态的时候,我们以的概率接受这个转移,于是得到新的马氏链的转移概率为。
假设我们已经有一个转移矩阵(对应元素为), 把以上的过程整理一下,我们就得到了如下的用于采样概率分布的算法。
为了提高接受率,使样本多样化,Metropolis-Hasting算法将改为