深度强化学习原理--近端策略优化(PPO)
1.概述
为了解决在强化学习中很难找到合适的学习率的问题,从最优化理论中得到启发,使用置信域的方法,找一个安全的步长,然后进行梯度上升。基于 Actor-Critic 架构的带裁剪近端策略优化(PPO)很好的实现这个方法。
2. 数学推导
2.1 PPO目标函数
为了解决在强化学习中很难找到合适的学习率的问题,将目标函数修订,使得训练出来的新策略一定比旧策略好,目标函数(代理目标函数)数学定义:
![]()
公式存在的问题是需要用新策略计算期望,但是新策略是未知的。但是可以使用旧策略的优势来估计新策略的优势,
如果
和
分布接近,根据重要采样的期望公式,下面的公式成立:

所以当
和
分布接近,为了使
最大化,使用梯度上升法。在训练过程中
会逐渐大于等于0。
为了使
和
分布接近,KL散度可以很好的评估两组分布是否相似。根据KL散度公式和性质:KL散度的值大于或等于0,且仅当两个概率分布相同时,其值才为0:
![]()
容易得到
=1 的时候,散度最小为0。
设定一个超参数 ε ,如果 1-ε <
< 1+ε ,则认为两组分布相似性可以接受,参与梯度更新。如果差异性较大,也给一定的概率参加更新。所以演化为下面的公式:


2.2 PPO目标函数的梯度等效于策略函数的梯度

2.3 PPO目标函数和策略函数在 E𝜏∼𝜋𝜃 [𝐺(𝜏)] 是等效的,所以PPO目标函数也称为代理目标函数。
3. 使用带裁剪近端策略优化进行500次倒立摆游戏,每次回报情况如下图。模型收敛很快,训练稳定性提高很多。
①训练过程中每条轨迹回报

②测试过程中每条轨迹回报

4. 总结:带裁剪的PPO目标函数,限制了当前策略与旧策略之间的差异范围,消除了部分比率超出区间导致训练不稳定的诱因,对梯度的更新产生积极的影响,如果比率为>1+𝜀 或 <1−𝜀,则梯度可能会为0。PPO增加了一个软约束(裁剪机制),可以通过一阶优化器(求一阶导数)进行优化。可能会做出一些错误的决策,但它在优化速度上取得了良好的平衡。实验结果证明,这种平衡能够以最简单的方式实现最佳性能。
- 点赞
- 收藏
- 关注作者
评论(0)