Loading...
墨滴

BeWater

2021/11/26  阅读:75  主题:自定义主题1

PPO论文笔记——目标函数理解

本文主要针对PPO[1]算法的目标函数谈一点自己的理解

PPO主要针对TRPO[2]算法进行了改进,在保证具有TRPO算法性能的基础上,PPO实现更加简单,更具有通用性,同时有着更好的采样复杂度。

Trust Region Methods

策略梯度的目标函数为:

置信域方法的目标函数为:

根据(2)式可见置信域方法在策略梯度的基础上增加了约束,限制前后两个策略差异不大,而KL散度是衡量两个策略差异的。置信域方法解决了参数更新过快导致的难以收敛的问题。

之后提出的TRPO改进方法,将(2)式转换为了一个无约束的优化问题:

但系数 的选择是一个比较困难的问题,直接选用一个固定的参数进行SGD更新的效果并不会很好。

Clipped Surrogate Objective

对于(2)式,如果令 ,那么即可得到:

如果对(4)式求最大值,会导致前后两个策略差异过大,也就是会导致 过于偏离1, 影响性能,那么需要对上式进行修改,也就是要 设置一个范围

其中 表示将x限制范围 ,那么(5)式就将 限制在 之间,一般取 ,(5)式也就是PPO的目标函数,论文中对于(5)式进行了绘图表示。

图1
图1

通过图1,并结合(5)式,那么可以将(5)式修改为:

代表t时刻的优势函数, 大于0表示此时策略更好,要加大优化力度。目标函数 取最大,那么就会尽量取大的 。但如果更新力度过大,新旧策略差异太大,即 ,显然这不是我们希望的,那么clip操作和min操作会选择 ,这样就将最大的 限制到了 ,防止了过度优化。

同样 小于0表示此时策略更差,要减小优化力度,目标函数 取最大,那么就会尽量取小的 。但如果更新力度过大,新旧策略差异太大,即 ,显然这不是我们希望的,那么clip操作和min操作会选择 ,这样就将最大的 限制到了 ,减小了更新力度。

通过以上解释,对比TRPO的目标函数(式(2,3))和PPO的目标函数(式(5)),可以看到PPO的目标函数在限制前后策略差异不大的同时,避免了超参数的 调整的难度。仅从目标函数,就可以看到PPO算法在保障TRPO算法性能的同时,实现上更加简单。

参考资料

[1]

John Schulman et al, Proximal Policy Optimization Algorithms: https://arxiv.org/abs/1707.06347

[2]

John Schulman et al , Trust Region Policy Optimization: https://arxiv.org/abs/1502.05477

BeWater

2021/11/26  阅读:75  主题:自定义主题1

作者介绍

BeWater