前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【总结】为什么对累积奖励减去baseline项能起到减小方差的作用?

【总结】为什么对累积奖励减去baseline项能起到减小方差的作用?

作者头像
深度强化学习实验室
发布2022-09-23 14:42:33
9440
发布2022-09-23 14:42:33
举报

深度强化学习实验室

官网:http://www.neurondance.com/

论坛:http://deeprl.neurondance.com/

来源:https://zhuanlan.zhihu.com/p/98506549

作者: 风清云

很多论文的工作都专注于减少policy gradient的方差,以得到更加优质且稳定的policy。其中一项最经典的工作就是对policy gradient的累积奖励减去一个baseline,但为什么减去一个baseline就可以达到减小方差,同时又不引入偏差的效果呢?

关于这个问题,Daniel Seita大佬在他的博客中有详细的讲解(链接给在最后),但笔者水平不够,仍然有部分未看明白的地方,强作此文说说自己的理解,希望有大佬看到并给出指导。

写在前面:符号约定

在强化学习的policy gradient中,通常会通过环境仿真出一系列的trajectories,以起到类似于对某种概率分布进行采样的作用,某个以时刻T为结束时刻的trajectory可以约定如下:

其中

分别代表状态,动作和奖励。接下来,本文将按照简单的结论->证明->结论的结构来探讨减小方差这个问题。

结论

对policy gradient的表达式中的累积奖励项减去一个baseline项,可以起到减小policy gradient的方差且同时不引入偏差的效果。如下式:

在实际工作中,通常把baseline取为状态

的状态-值函数,即

证明

首先需要写明两个技巧:

(1)log-derivative

此技巧是介绍如何将对数塞入对某个函数发f(x)的期望的梯度中去的。过程如下

这个过程看起来似乎十分简单直接,相当于乘了一项

,再把分母移动到微分项下 面,利用简单的复合函数求导:

就在积分里增加了对数项,最后根据期望的定义得到了最终的表达式。

但这里是有一个疑问的,那就是在第二个等式中,直接把微分号放入了积分号里面,这种直接交换微分和积分次序的变换应满足什么条件才成立?在这里是否成立?,笔者不甚理解,希望理解的朋友给予指导。

第二个等式就是简单的取对数运算。

第三个等式就是关于参数

的求微分运算,因为与参数

有关的项仅有

, 因此其他项对 参数

的导数为0。

接下来,应用这两个技巧看看期望奖励关于参数

的导数,即policy gradient的表达式。

\begin{aligned} \nabla_{\theta} E_{\tau \sim \pi_{\theta}}[R(\tau)] &=\nabla_{\theta} \int p_{\theta}(\tau) R(\tau) d \tau \\ &=\int p_{\theta}(\tau) R(\tau) \nabla_{\theta} \log p_{\theta}(\tau) d \tau \\ &=\int p_{\theta}(\tau) R(\tau) \nabla_{\theta}\left(\sum_{t=0}^{T-1} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right) d \tau \\ &=E_{\tau \sim \pi_{\theta}}\left[R(\tau) \cdot \nabla_{\theta}\left(\sum_{t=0}^{T-1} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right)\right]_{\overline{=}} \end{aligned}

这里第一个等式即期望的定义式;

第二个等式即log-derivative技巧;

第三个等式即对trajectory

的对率求导的技巧;

第四个等式即写回期望。

在正式引入baseline之前,还需要对上式做一些变换:

\begin{aligned} \nabla_{\theta} \mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)] & \stackrel{(i)}{=} \mathbb{E}_{\tau \sim \pi \theta}\left[\left(\sum_{t=0}^{T-1} r_{t}\right) \cdot \nabla_{\theta}\left(\sum_{t=0}^{T-1} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right)\right] \\ & \stackrel{(i i)}{=} \mathbb{E}_{\tau \sim \pi \theta}\left[\sum_{t^{\prime}=0}^{T-1} r_{t^{\prime}} \sum_{t=0}^{t^{\prime}} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right] \\ & \stackrel{(i i i)}{=} \mathbb{E}_{\tau \sim \pi \theta}\left[\sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\left(\sum_{j,}^{T-1} r_{t^{\prime}}\right)\right] \end{aligned}

等式 (i) 是简单的替换

, 这里令折扣因子

; 等式 (ii) 是个难点。首先定义这个新冒出来的符号

, 这个代表以时刻

为最终时刻的

\nabla_{\theta} \mathbb{E}_{\left(s_{0}, a_{0}, \ldots, s_{T}\right)}\left[r_{t^{\prime}}\right]=\nabla_{\theta} \mathbb{E}_{\left(s_{0}, a_{0}, \ldots, s_{\ell}\right)}\left[r_{t^{\prime}}\right]

上式成立是因为在时刻

, trajectory就已经结束,因此后续的状态和奖励的取值对 并无影 响, 从而期望相等。等式 (i) 想要得到等式 (ii),关键在于以下等式的成立:

\nabla_{\theta} \mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)]=\nabla_{\theta} \mathbb{E}_{\tau \sim \pi_{\theta}}\left[\sum_{t^{\prime}-0}^{T-1} r_{t^{\prime}}\right]

这个等式的左边仍然是policy gradient的定义,右边却变成了以不同的时刻

为最终时刻的trajectories的奖励 的求和运算。为什么这个等式成立呢? 这里说说我的理解,不一定正确。直观上来看,等式右边就是的期望内容 是把以下trajectories的最后一个奖励求和了:

\begin{array}{l} t^{\prime}=0: \quad s_{0}, a_{0}, r_{0} \\ t^{\prime}=1: \quad s_{0}, a_{0}, r_{0}, s_{1}, a_{1}, r_{1} \\ \vdots \\ t^{\prime}=T-1: \quad s_{0}, a_{0}, r_{0}, \ldots, s_{T-1}, a_{T-1}, r_{T-1} \\ \sum_{t^{\prime}=1}^{T-1} r_{t^{\prime}}=r_{0}+r_{1}+\ldots+r_{T-1} \end{array}
\begin{array}{l} \begin{aligned} E_{\tau \sim \pi}\left[\sum_{t=0}^{T-1} r_{t}\right] &=\int_{s_{0}, a_{0}, \ldots_{S-1}, q_{T-1}} p\left(s_{0}, a_{0}, \ldots, s_{T-1}, a_{T-1}\right) \cdot\left(\sum_{t=0}^{T-1} r_{t}\right) \quad(\text { one trajectory }) \\ &=\int_{s_{0}, a_{0}} p\left(s_{0}, a_{0}\right) r_{0}+\int_{s_{0}, a_{0}, 5, q_{1}} p\left(s_{0}, a_{0}, s_{1}, a_{1}\right) r_{1}+\ldots \end{aligned}\\ +\int_{s_{0}, a_{0}, \ldots,_{T-1}, a_{T-1}} p\left(s_{0}, a_{0}, \ldots, s_{T-1}, a_{T-1}\right) r_{T-1}\\ \text { (traiectories) } \end{array}

理解了这一步转换,就可以开始下一步推导了。

\begin{aligned} \nabla_{\theta} \mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)] &=\nabla_{\theta} \mathbb{E}_{\tau \sim \pi_{\theta}}\left[\sum_{t^{\prime}=0}^{T-1} r_{t^{\prime}}\right] \\ &=\sum_{t^{\prime}=0}^{T-1} \nabla_{\theta} \mathbb{E}_{\tau^{\left(t^{\prime}\right)}}\left[r_{t^{\prime}}\right] \\ &=\sum_{t^{\prime}}^{T-1} \mathbb{E}_{\tau^{\left(t^{\prime}\right)}}\left[r_{t^{\prime}} \cdot \sum_{t=0}^{t^{\prime}} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right] \\ &=\mathbb{E}_{\tau \sim \pi_{\theta}}\left[\sum_{t^{\prime}}^{T-1} r_{t^{\prime}} \cdot \sum_{t=0}^{t^{\prime}} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right] \end{aligned}

第一个等式上面已经说明;

第二个等式,Daniel Seita的博客里提到了“Assume we can exchange the sum with the gradient,”也就是说,假设求和符号和微分符号位置可以互换,笔者不太明白为啥可以这样假设,但还是先假设下去吧。

第三个等式,这里就很直观了。再使用前面的两个技巧,就把微分符号变换进去咯;

第四个等式,这里需要注意,期望的下标已经发生变化了,相当于把trajectories变回了one trajectory,这里前面已有说明。

等式 (ii) 到这里就扯完了。现在来看等式 (iii) 。等式 (iii) 是个简单的将等式 (ii) 加和项进行 重组。把等式 (ii) 单项都拆开写,以符号

可以得到:

\begin{array}{l} r_{0} f_{0}+ \\ r_{1} f_{0}+r_{1} f_{1}+ \\ r_{2} f_{0}+r_{2} f_{1}+r_{2} f_{2}+ \\ \quad \cdots \\ r_{T-1} f_{0}+r_{T-1} f_{1}+r_{T-1} f_{2} \cdots+r_{T-\frac{1}{*}} f_{T \in 1} \end{array}

将上面这个形似下三角的累加项逐列累加,则每一列的累加结果为:

, 再把每一列的 结果累加起来,就得到了等式 (iii) 的结果啦。

扯了这么多。终于可以开始减去baseline项了。基于上面最后一个等式给出的结果,对累加的期望减去baseline可以得到:

首先看引入了baseline以后,为什么不会引入偏差:

根据期望的线性性质,直接看baseline的期望:

第一个等式是简单的split,即把序列trajectory 拆分成两个互不交叠的部分,这个split成立的本 质还是积分/求和具有线性性质,这两部分的变量不一样当然可以写成这样; 第二个等式值得注意:这里的baseline 仅仅是关于状态 的函数,和后续的状态以及动 作无关。这和 是不一样的, 因为 是后续状态累积奖励的期望。所以此处可以把 作为常量提出; 第三个等式又是个难点。展开过程如下:

再次结论

参考文献

【1】Going Deeper Into Reinforcement Learning: Fundamentals of Policy Gradients

【2】Notes on Exact Inference in Graphical Models

本文来源自知乎博客:作者风清云

https://zhuanlan.zhihu.com/p/98506549

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度强化学习实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面:符号约定
  • 结论
  • 证明
  • 再次结论
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档