论文提出了一个统一框架来处理通过后向传播来学习连续的控制策略,通过在bellman等式的确定性函数中增加噪声因素来支持策略的随机性,论文的算法覆盖范围很广,包括基于model-free或者model-based。
大多数的策略梯度的算法基本上都是通过likelihoodratio的方法(公式我们见过很多次了,几乎所有的策略梯度的论文都是用这个公式打头的)来估算,估算方法除了需要大量的采样外,也有很高的方差。
还有一种办法是通过后向传播的方式来估算策略梯度,如果我们能获得可微的环境的model,我们就可以把策略/model和奖赏联系在一起,通过沿着轨迹后向传播奖赏的办法计算一个策略的梯度。当然我们可以通过一个学习到的Q函数不借助model来反向计算策略梯度,也就是常说的价值梯度算法。
论文提到的方法就是SVG(Stochastic Value Gradientmethods),简单点说,就是通过“re-parameterization”把噪声引入到策略和model中。
首先,MDP中的bellman的价值函数:
在一个确定性策略中,价值函数对状态和参数theta的导数如下:
在DPG算法中,我们其实就是根据上面的公式来计算和更新梯度的(要进一步变形才能一致)。
“re-parameterization”的思路就是,我们可以把一个条件高斯分布写成下面的形式:
这样我们就假设针对一个系统的采样是基于确定性策略和模型夹杂着噪声产生的。原来的公式变形成这样:
通过贝叶斯定律,我们可以推测出噪声这个参数,公式就演变成:
SVG(无限)就是通过有限状态的轨迹中通过后向的迭代计算价值的梯度,在每一个episode中,训练model,然后计算策略梯度,伪代码如下:
SVG(无限)是一个on-policy方法,每次梯度更新后产生新的采样,原来的数据不会再被访问,为了提供数据高效性,experiencerelay和SVG结合生成SVG(1) with Experience Replay(SVG(1)-ER),算法伪代码如下:
其中引入了重点采样的比率参数。
论文还提供了一个model-free的算法,成为SVG(0)。相当于SVG(1)和DPG的结合,但是策略公式中引入了噪声。使用SVG(1)还是SVG(0)取决于model和价值函数哪个更容易训练和任务的独立性。
最后提一下,算法中的model按照我的理解应该基于有监督的学习根据采样来训练的。价值网络的训练应该跟之前一样。