笔者看过有关RL的论文里,很多论文的工作都专注于减少policy gradient的方差,以得到更加优质且稳定的policy。其中一项最经典的工作就是对policy gradient的累积奖励减去一个baseline,但为什么减去一个baseline就可以达到减小方差,同时又不引入偏差的效果呢?
关于这个问题,Daniel Seita大佬在他的博客中有详细的讲解(链接给在最后),但笔者水平不够,仍然有部分未看明白的地方,强作此文说说自己的理解,希望有大佬看到并给出指导。
写在前面:符号约定
在强化学习的policy gradient中,通常会通过环境仿真出一系列的trajectories,以起到类似于对某种概率分布进行采样的作用,某个以时刻T为结束时刻的trajectory可以约定如下:
其中
接下来,本文将按照简单的结论->证明->结论的结构来探讨减小方差这个问题。
一、结论
对policy gradient的表达式中的累积奖励项减去一个baseline项,可以起到减小policy gradient的方差且同时不引入偏差的效果。如下式:
在实际工作中,通常把baseline取为状态
二、证明
首先需要写明两个技巧:
(1)log-derivative
此技巧是介绍如何将对数塞入对某个函数
这个过程看起来似乎十分简单直接,相当于乘了一项
就在积分里增加了对数项,最后根据期望的定义得到了最终的表达式。
但这里是有一个疑问的,那就是在第二个等式中,直接把微分号放入了积分号里面,这种直接交换微分和积分次序的变换应满足什么条件才成立?在这里是否成立?,笔者不甚理解,希望理解的朋友给予指导。
(2)对trajectory
假设trajectory
其中
第一个等式是根据乘法原理,把生成trajectory
第二个等式就是简单的取对数运算。
第三个等式就是关于参数
接下来,应用这两个技巧看看期望奖励关于参数
这里第一个等式即期望的定义式;
第二个等式即log-derivative技巧;
第三个等式即对trajectory
第四个等式即写回期望。
在正式引入baseline之前,还需要对上式做一些变换:
等式(i)是简单的替换
等式(ii)是个难点。首先定义这个新冒出来的符号
上式成立是因为在时刻
等式(i)想要得到等式(ii),关键在于以下等式的成立:
这个等式的左边仍然是policy gradient的定义,右边却变成了以不同的时刻
为什么这个等式成立呢?这里说说我的理解,不一定正确。直观上来看,等式右边就是的期望内容是把以下trajectories的最后一个奖励求和了:
如果考虑对以时刻
理解了这一步转换,就可以开始下一步推导了。
第一个等式上面已经说明;
第二个等式,Daniel Seita的博客里提到了“Assume we can exchange the sum with the gradient,”也就是说,假设求和符号和微分符号位置可以互换,笔者不太明白为啥可以这样假设,但还是先假设下去吧。
第三个等式,这里就很直观了。再使用前面的两个技巧,就把微分符号变换进去咯;
第四个等式,这里需要注意,期望的下标已经发生变化了,相当于把trajectories变回了one trajectory,这里前面已有说明。
等式(ii)到这里就扯完了。现在来看等式(iii)。等式(iii)是个简单的将等式(ii)加和项进行重组。把等式(ii)单项都拆开写,以符号
将上面这个形似下三角的累加项逐列累加,则每一列的累加结果为:
扯了这么多。终于可以开始减去baseline项了。基于上面最后一个等式给出的结果,对累加的期望减去baseline可以得到:
首先看引入了baseline以后,为什么不会引入偏差:
根据期望的线性性质,直接看baseline的期望:
第一个等式是简单的split,即把序列trajectory
第二个等式值得注意:这里的baseline
第三个等式又是个难点。展开过程如下:
这里期望的变换的第一个等式即将期望按定义式展开;
期望的变换第二个等式应该是乘法分配律,即:
根据
期望的变换的第三个等式就是简单的把后面的和式用1替换,替换后再按期望的定义式写回期望的形式,就得到了baseline的期望中的第三个等式。
再看到baseline的期望中的第四个等式。直接按期望的定义展开即可证明其等于0:
至此,证明了baseline项的加入,是不会对policy gradient引入额外偏差的。
接下来再看baseline项为什么可以减小方差。
根据方差的定义式
方差的定义展开式的等式(i)代表我们只需要看
等式(ii)做了变量独立性的假设,将乘积拆开了。我们仔细观察乘积第二项就会发现,这其实就是Mean Square Error啊,什么时候才能使MSE最小呢,当然是
所以说,当我们把baseline取成是
至此,就证明了当baseline取对期望奖励的某个估计时,可以达到减小方差的效果。
三、再次结论
证明过程较长,再理一理步骤:
(1),两个技巧,log-derivative和对率求导,用于将policy gradient的表达式进行变换,得到:
(2),对(1)中的表达式使用多个trajectories和加法重组的技巧,得到可以引入baseline的表达式:
(3),加入baseline,并证明它没有给policy gradient带来偏差,并且能够减少方差。
可能的不严谨之处也再强调一遍:
(1),log-derivative中有微分和积分次序的变换,是否严谨未知;
(2),证明过程中有求和符号和微分符号次序的变换的假设;
(3),有变量独立的假设。
最后,我们就探索出了添加baseline为什么可以在不给policy gradient带来的偏差的情况下起到减少其方差的原因啦。
心血之作,本文转载请注明出处!×3
参考链接:
【1】Going Deeper Into Reinforcement Learning: Fundamentals of Policy Gradients
【2】Notes on Exact Inference in Graphical Models