![b92b90c4a187034d7e18413716ff8d9c.png](https://i-blog.csdnimg.cn/blog_migrate/45a68a7ab255f73ee40581e6a3f38049.jpeg)
照片来源于 Nigel Tadyanehondo
TRPO 算法 (Trust Region Policy Optimization)和PPO 算法 (Proximal Policy Optimization)都属于MM(Minorize - Maximizatio)算法。
接下来,阿里云信息服务 将为大家介绍基础的MM算法,并且通过几个步骤推导出TRPO和PPO的目标函数。
本文之中,将会展示数学细节给这些好奇的、想了解这些目标函数背后原因的朋友们。
Surrogate function(替代函数)
RL( Reinforcement Learning即强化学习) 的目标就是最大化预期折扣奖励(the expected discounted rewards)。下图之中,红色的线表示期望折扣回,其中 η 被定义为:
![748ffe3e3d2b5f851ccaa69aea257c46.png](https://i-blog.csdnimg.cn/blog_migrate/09cdef0cfeac36f90bfd0906a4921a82.jpeg)
![c28ea5dc54b1b39d05af80e96ad30417.png](https://i-blog.csdnimg.cn/blog_migrate/e45cfa0db64b194d1ed6f8738d0e31b5.jpeg)
Modified from source
MM是一种迭代方法,对于每次迭代,我们发现替代函数M(蓝线)有如下性质:
- 是η的下界函数
- 可用于估计当前策略的 折扣奖励 η
- 易于优化(我们将会把替代函数近似估计为一个二次方程)
在每一次迭代之中,我们找到最佳的M点并且把它作为当前的策略。
![c20aa2a41b0fc531550acf53da685500.png](https://i-blog.csdnimg.cn/blog_migrate/d91e5c1d2899d91965821f77ac0daf81.jpeg)
之后,我们重新评估新策略的下界并且重复迭代。当我们持续这个过程,策略也会不断的改进。因为可能的策略是有限的,所以我们当前的概率最终将会收敛到局部或者全部最优的策略。
![56b424bfb30590e17e3bc9d0cc2075ed.png](https://i-blog.csdnimg.cn/blog_migrate/cee4fd122a381784e17155196fd38ebb.jpeg)
目标函数
如下所示,有原始的策略梯度PG、置信域策略梯度TRPO和近端策略优化PPO版本的目标函数。接下来我们将详细进行证明。
![d1d29f864bac693d8802dd9fe1e0887b.png](https://i-blog.csdnimg.cn/blog_migrate/8d11a4b4962791acf258f86d4a741eda.jpeg)
简而言之,我们想最大化优势函数:动作值函数(奖励的最大期望)减去对应状态拥有的基准值。约束条件为新旧策略的差异不能过大。本文余下部分将数学证明该约束问题。
值函数、动作值函数和优势函数的表达式
首先,我们先定义Q值函数、状态值函数和优势函数。直接书写如下:
![2416d7ae9e4b10157cf74f5ce08765e6.png](https://i-blog.csdnimg.cn/blog_migrate/c8b3b74e4e1193d3c346ce9289bc8e78.jpeg)
折扣奖励函数
折扣奖励η的期望计算如下:
![93729441942792903f0ddf154861b0f6.png](https://i-blog.csdnimg.cn/blog_migrate/a0e8d0dd91ca6c3c34a31c88617206ca.jpeg)
或者,我们可以使用其他策略计算策略的奖励。以便比较两种政策。
![176b00c1097e7ed085e0637b76b297b4.png](https://i-blog.csdnimg.cn/blog_migrate/c07463b3f9c24379f923a3fabce72b44.jpeg)
证明:
![c26acc3a6a62e02d041950c62bc59fe9.png](https://i-blog.csdnimg.cn/blog_migrate/93753ea4f947fc25ecafccd5a2501b12.jpeg)
函数
接下来,使用MM算法找到当前策略下近似η下界局部值的函数 。让我们将函数 定义为:
![d18ef25540e9c97b7e41a5cb4119fcb2.png](https://i-blog.csdnimg.cn/blog_migrate/161a157a523eca8063ff722ab6d192ab.jpeg)
如图, 是下界函数M 的一部分(红色下划线)。
![76f4633aab142ac8c5638b95bda50d08.png](https://i-blog.csdnimg.cn/blog_migrate/00cfa43f4627e8f14849c5a2a3243abe.jpeg)
M中的第二项是KL-divergence KL散度
![d4d7ca77585298a9284485bf071b9695.png](https://i-blog.csdnimg.cn/blog_migrate/d66dacdbb787615e22a816252a454957.jpeg)
在当前的策略中,KL(θi, θi)=0. C*KL 项可以看作是 的上限误差。
在当前的政策θi 中,我们可以证明 L 与 η 的第一个阶导数相同。
![316b44782a1628f8c3e024b1d48ee55c.png](https://i-blog.csdnimg.cn/blog_migrate/e1c7e6d92f8fc56b1f45134b3cc0ec76.jpeg)
当 KL(θi, θi)=0 时, M 在近似于预期的奖励的局部值:这是对MM算法的要求。接下来我们讨论下界函数M的细节 。TRPO论文附录A中的两页证明 η的有一个确定的下限 。
![4ed1c57ff565561fcc90028ce66d87a4.png](https://i-blog.csdnimg.cn/blog_migrate/c7f871c1ea87df4a80a12180cef38b01.jpeg)
Modified from source
D_TV是总的散度方差。但这并不重要,因为我们将马上使用KL散度替代它,因为(找下界)
![cef7cb124aee23b52ddcbc3abca662a0.png](https://i-blog.csdnimg.cn/blog_migrate/dc1516ef8f369b69f3efef6ef63393db.jpeg)
下界函数可以被重定义为:
![1f12410091086f355cb0175d68f565c6.png](https://i-blog.csdnimg.cn/blog_migrate/5922e5afa6e5c650e4e6a29be7f29ab7.jpeg)
注意,符号可以简记为:
![27c69a5f80034691cd721dec9b798f67.png](https://i-blog.csdnimg.cn/blog_migrate/76c6079c3ba71ec3c02bd5e21c1e028d.jpeg)
单调上升的保证
自然策略梯度的关键思想是保证了函数单调上升。它是Policy Gradient方法家族中的“用货币担保”的版本(笑)。简而言之,至少在理论上,任何策略策更新都将比之前的好。我们在这需要证明的是,基于优化M的新策略 可以保证在 η (实际预期回报)方面的表现优于之前的策略。由于策略的数量是有限的,持续更新策略最终能达到局部或全局最优。这是证明:
![8a8887d8d393accd47d59198e67588bd.png](https://i-blog.csdnimg.cn/blog_migrate/4c9feb84a53aca6e2032c994cce0d738.jpeg)
Mi(πi+1)对比Mi(πi)的任何改进都会使得η(πi+1)获得改进。
![9d1ab91ab201d5fd085fac3446542c76.png](https://i-blog.csdnimg.cn/blog_migrate/16df5a648ee38c1443bc03c61326b9df.jpeg)
策略迭代中梯度单调上升的证明
这是迭代算法,它保证新策略总是比当前策略执行得更好。
![cda4bcc5028ee7d160b2864bd370f273.png](https://i-blog.csdnimg.cn/blog_migrate/a758b3065d90700c341f5eee16de3161.jpeg)
然而,很难(在所有策略中)找到KL散度的最大值。因此我们将放宽要求为使用KL散度的均值。
![eabd9470f4f78a1e40915ed19fff3881.png](https://i-blog.csdnimg.cn/blog_migrate/6c1281514988d38416a75f897dc08355.jpeg)
其中 函数:
![3169e15bc419ab659448e837e0ef7e89.png](https://i-blog.csdnimg.cn/blog_migrate/f510653844226fddbbf4b01b3a542b1d.jpeg)
我们可以使用重要性抽样,从策略q中抽样来估计上式左边:
![c4953a7ea44af56654f1c53fa19273af.png](https://i-blog.csdnimg.cn/blog_migrate/0776e88e86189710e8ec9145e28343b1.jpeg)
因此,目标函数可以被改写为:
![2fe4d056140d418f2d839154c09e9d3d.png](https://i-blog.csdnimg.cn/blog_migrate/30842056815434446d74c1ac5d46583f.jpeg)
利用拉格朗日对偶性,可以将目标函数的约束成带拉格朗日乘子的目标函数。两者在数学上是等价的:
![dd11c15a37839cdacc3eb5f68b81389d.png](https://i-blog.csdnimg.cn/blog_migrate/bc11d403bc115df3e02ae9c4829276c0.jpeg)
直觉的看法(Intuition)
在梯度上升法中,我们判断最陡峭的方向,之后朝着那个方向前进。但是如果学习率(learning rate)太高的话,这样的行动也许让我们远离真正的回报函数( the real reward function ),甚至会变成灾难。
![e99f2996c671da63f7adae9a5ffa5e83.png](https://i-blog.csdnimg.cn/blog_migrate/dc1a2de46f112fb7cdff75e58f60902a.jpeg)
Modified from Source
在信任的区域之中,我们用 δ 变量 限制我们的搜索区域。我们在前一章中用数学证明过,这样的区域可以保证在它达到局部或者全局最优策略之前,它的优化策略将会优于当前策略。
![c84c7b0336fd114e7ed172e797ff46a9.png](https://i-blog.csdnimg.cn/blog_migrate/7b87ea89f85de3ee71f3b061d94f6e09.jpeg)
当我们继续迭代下去,我们就可以到达最优点。
优化目标函数(Optimizing the objective function)
正如我们之前提到过的,下界函数M应该是易于优化的。事实上,我们使用泰勒级数(Taylor Series)来估计 L函数 和 KL距离(KL-divergence)的平均值,分别用泰勒将L 展开到一阶,KL距离 展开到二阶:
![4b07a6b44ce00d4c36726407b9b62879.png](https://i-blog.csdnimg.cn/blog_migrate/598986c9469351078c3862a9efba54a8.jpeg)
其中g是策略梯度, H 被叫做费雪信息矩阵(FIM,the Fisher Information matrix),以海森Hessian矩阵的形式(Hessian matrix)
![f795864c167d39b5fe8974a4d69e7455.png](https://i-blog.csdnimg.cn/blog_migrate/c37ef9088022c84d118f5585b1bb0df7.jpeg)
那么优化问题就变成了:
![1cec94e82393e5351da729172ae48930.png](https://i-blog.csdnimg.cn/blog_migrate/8a0ad16db6bea20461701dc10e4804ec.jpeg)
我们可以通过优化二次方程来解决它,并且解集为:
![7c76e4924184b283d1bf03e378142c95.png](https://i-blog.csdnimg.cn/blog_migrate/095cafbe2e998cf77d3f66c266cebd71.jpeg)
上面的计算方法被叫做自然策略梯度法(the natural policy gradien)。以下是使用MM算法和自然梯度算法优化过的算法:
![e80b336a701c736094932085dc33971b.png](https://i-blog.csdnimg.cn/blog_migrate/3605721aaa17df771cb5decef73e447d.jpeg)
TRPO
但是,FIM (H) 及其逆运算的成本非常的高。TRPO估计如下:
![db99a5649b0f06da98a65a576abd5dbd.png](https://i-blog.csdnimg.cn/blog_migrate/3b6f479d43daa7d5f7fda0f7249204c5.jpeg)
通过求解x得到以下线性方程:
![815d45668e992f46115244af841c3c49.png](https://i-blog.csdnimg.cn/blog_migrate/00e2c68a1d85977223d05f165a553905.jpeg)
这证实了我们可以通过共轭梯度法(conjugate gradien)来求解它,并且这比计算矩阵H 的逆(inverse)更加简单。共轭梯度法类似于梯度下降法,但是它可以在最多N次迭代之中找到最优点,其中N表示模型之中的参数数量。
![05ac1151d446284dcaea708810cf3c35.png](https://i-blog.csdnimg.cn/blog_migrate/be7fada448826d9e206f666e316c1358.jpeg)
最终的算法是:
![b3ad3dd1f6fc87e94363c28eba28af6e.png](https://i-blog.csdnimg.cn/blog_migrate/ec8bbca3145e0b218efe164408faee78.jpeg)
使用裁剪目标函数的近端策略优化算法PPO
在(使用裁剪目标函数的)PPO中,如果我们希望每次迭代可以较大的改变策略,可以使用类似梯度下降这样的一阶优化方法,并带有软约束正则像的目标来优化我们的问题。
在实现中,我们要维护两个策略网络。第一个是当前步我们想要改进的策略。
![ad24dd4aa4571ea917fd2c9c77f731e6.png](https://i-blog.csdnimg.cn/blog_migrate/b9fb584bf33608410b3eef01b3a6ad6a.jpeg)
第二个是我们上步中用于采样的策略。
![2623c6beb779dac75386b837b8aee0a0.png](https://i-blog.csdnimg.cn/blog_migrate/9e3f6a5a2f640cf237e4b8fdba7674fe.jpeg)
使用重要性抽样的思想(the idea of importance sampling),我们可以从之前策略中收集的样本来估计新的策略。这样可以提高样本的使用效率。
![b25a7f3c7f0c15c83e941508f55f0a6f.png](https://i-blog.csdnimg.cn/blog_migrate/8e3f4f55aa33e5742162cf1f23682ec5.jpeg)
但是随着我们对当前策略的改进,当前策略和旧策略间的差距会不断变大,估计的方差也会增加。所以,假设每4次迭代,我们就将第二个网络于当前的策略同步一次。
![c4005f0a98159d9dd2630ed422b94bb9.png](https://i-blog.csdnimg.cn/blog_migrate/6ea5876bbe07a9517d80e583e89dab5a.jpeg)
在PPO之中,我们要计算新旧策略的比率:
![1557f77a5f9652f14a751e8f1e3a7de1.png](https://i-blog.csdnimg.cn/blog_migrate/0343176f1cb1fecd91a592c0e3c971c3.jpeg)
并且,如果新策略严重偏离旧策略,我们会构建一个新的目标函数来剪切(clip)被估计为优势(advantage)的函数。新的目标函数为:
![fadff283ab02128cc3b89b31f43268ec.png](https://i-blog.csdnimg.cn/blog_migrate/b308d215d322c78082c010bda8419dc7.jpeg)
如果新策略和旧策略之间的概率比落在区间 (1- ε)和 (1 + ε)外面,那么优势函数就会被剪贴。对于在PPO论文中(详见贡献和参考之中)的实验,ε设定为0.2。
![3a0eb818bc6d900a99e3bdbfb44f2a15.png](https://i-blog.csdnimg.cn/blog_migrate/ea65495e69a2c00861564fecb918c32b.jpeg)
实际上,剪贴这一动作会极大的减少策略的改变的数量。这里是算法:
![e98cd6109199d5846a1a034c4068bda1.png](https://i-blog.csdnimg.cn/blog_migrate/39ba2816766753e1a498868e1fb37b4e.jpeg)
领取阿里云 ¥1888元 限时红包
![fcd64030d69dbea5b41f657d9d4e17f3.png](https://i-blog.csdnimg.cn/blog_migrate/cc37d610cdca532e4ab7e34a137b9f56.jpeg)