个人认为写得最好的TRPO讲解

自己在Medium上看到的一个教授讲解的关于TRPO的博客,觉得写得很清晰易懂,后来发现搜狐有机构号将博客翻译了,翻译的质量不错.故转发分享给大家,欢迎讨论.

                                         强化学习-TRPO和PPO背后的数学

                                                            照片来源于 Nigel Tadyanehondo

TRPO 算法 (Trust Region Policy Optimization)和PPO 算法 (Proximal Policy Optimization)都属于MM(Minorize-Maximizatio)算法。在本文中,我们将介绍基础的MM算法,并且通过几个步骤推导出TRPO和PPO的目标函数。在我们的强化学习系列课程之中( Reinforcement Learning series ),我们将会分别学习不同的主题的内容。但是在本文之中,我们将会展示更多的数学细节给这些好奇的、想了解这些目标函数背后原因的读者们。

Surrogate function(替代函数)

RL( Reinforcement Learning即强化学习) 的目标就是最大化预期折扣奖励(the expected discounted rewards)。下图之中,红色的线表示期望折扣回,其中 η 被定义为:

Modified from source

MM是一种迭代方法,对于每次迭代,我们发现替代函数M(蓝线)有如下性质:

  • 是η的下界函数
  • 可用于估计当前策略的 折扣奖励 η
  • 易于优化(我们将会把替代函数近似估计为一个二次方程)

在每一次迭代之中,我们找到最佳的M点并且把它作为当前的策略。

之后,我们重新评估新策略的下界并且重复迭代。当我们持续这个过程,策略也会不断的改进。因为可能的策略是有限的,所以我们当前的概率最终将会收敛到局部或者全部最优的策略。

目标函数

如下所示,有原始的策略梯度PG、置信域策略梯度TRPO和近端策略优化PPO版本的目标函数。接下来我们将详细进行证明。

简而言之,我们想最大化优势函数:动作值函数(奖励的最大期望)减去对应状态拥有的基准值。约束条件为新旧策略的差异不能过大。本文余下部分将数学证明该约束问题。

值函数、动作值函数和优势函数的表达式

首先,我们先定义Q值函数、状态值函数和优势函数。直接书写如下:

折扣奖励函数

折扣奖励η的期望计算如下:

或者,我们可以使用其他策略计算策略的奖励。以便比较两种政策。

证明:

? 函数

接下来,使用MM算法找到当前策略下近似η下界局部值的函数 。让我们将函数 ? 定义为:

如图,? 是下界函数M 的一部分(红色下划线)。

M中的第二项是KL-divergence KL散度

在当前的策略中,KL(θi, θi)=0. C*KL 项可以看作是 ? 的上限误差。

在当前的政策θi 中,我们可以证明 L 与 η 的第一个阶导数相同。

当 KL( θi, θi )=0 时, M 在近似于预期的奖励的局部值:这是对MM算法的要求。接下来我们讨论下界函数M的细节 。TRPO 论文附录A中的两页证明 η的有一个确定的下限 。

D_TV是总的散度方差。但这并不重要,因为我们将马上使用KL散度替代它,因为(找下界)

下界函数可以被重定义为:

注意,符号可以简记为:

单调上升的保证

自然策略梯度的关键思想是保证了函数单调上升。它是Policy Gradient方法家族中的“用货币担保”的版本(笑)。简而言之,至少在理论上,任何策略策更新都将比之前的好。我们在这需要证明的是,基于优化M的新策略 可以保证在 η (实际预期回报)方面的表现优于之前的策略。由于策略的数量是有限的,持续更新策略最终能达到局部或全局最优。这是证明:

Mi(πi+1)对比Mi(πi)的任何改进都会使得η(πi+1)获得改进。

策略迭代中梯度单调上升的证明

这是迭代算法,它保证新策略总是比当前策略执行得更好。

然而,很难(在所有策略中)找到KL散度的最大值。因此我们将放宽要求为使用KL散度的均值。

其中 ? 函数:

我们可以使用重要性抽样,从策略q中抽样来估计上式左边:

因此,目标函数可以被改写为:

利用拉格朗日对偶性,可以将目标函数的约束成带拉格朗日乘子的目标函数。两者在数学上是等价的:

直觉的看法(Intuition)

在梯度上升法中,我们判断最陡峭的方向,之后朝着那个方向前进。但是如果学习率(learning rate)太高的话,这样的行动也许让我们远离真正的回报函数( the real reward function ),甚至会变成灾难。

在信任的区域之中,我们用 δ 变量 限制我们的搜索区域。我们在前一章中用数学证明过,这样的区域可以保证在它达到局部或者全局最优策略之前,它的优化策略将会优于当前策略。

当我们继续迭代下去,我们就可以到达最优点。

优化目标函数(Optimizing the objective function)

正如我们之前提到过的,下界函数M应该是易于优化的。事实上,我们使用泰勒级数(Taylor Series)来估计 L函数 和 KL距离(KL-divergence)的平均值,分别用泰勒将L 展开到一阶 ,KL距离 展开到二阶:

其中g是策略梯度, H 被叫做费雪信息矩阵(

那么优化问题就变成了:

我们可以通过优化二次方程来解决它,并且解集为:

TRPO

但是,FIM (H) 及其逆运算的成本非常的高。TRPO估计如下:

通过求解x得到以下线性方程:

这证实了我们可以通过conjugate gradienH 的逆(inverse)更加简单。共轭梯度法类似于梯度下降法,但是它可以在最多N次迭代之中找到最优点,其中N表示模型之中的参数数量。

最终的算法是:

使用裁剪目标函数的近端策略优化算法PPO

在(使用裁剪目标函数的)PPO中,如果我们希望每次迭代可以较大的改变策略,可以使用类似梯度下降这样的一阶优化方法,并带有软约束正则像的目标来优化我们的问题。

在实现中,我们要维护两个策略网络。第一个是当前步我们想要改进的策略。

第二个是我们上步中用于采样的策略。

使用重要性抽样的思想(),我们可以从之前策略中收集的样本来估计新的策略。这样可以提高样本的使用效率。

但是随着我们对当前策略的改进,当前策略和旧策略间的差距会不断变大,估计的方差也会增加。所以,假设每4次迭代,我们就将第二个网络于当前的策略同步一次。

在PPO之中,我们要计算新旧策略的比率:

并且,如果新策略严重偏离旧策略,我们会构建一个新的目标函数来剪切(clip)被估计为优势()的函数。新的目标函数为:

如果新策略和旧策略之间的概率比落在区间 (1- ε)和 (1 + ε)外面,那么优势函数就会被剪贴。对于在PPO论文中(详见贡献和参考之中)的实验,ε设定为0.2。

实际上,剪贴这一动作会极大的减少策略的改变的数量。这里是算法:

贡献和参考

TRPO paper

PPO paper

UC Berkeley RL course

UC Berkeley RL Bootcamp

https://ai.yanxishe.com/page/TextTranslation/1419

 

Reference:

https://medium.com/@jonathan_hui/rl-the-math-behind-trpo-ppo-d12f6c745f33

http://www.sohu.com/a/293026264_717210

  • 15
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值