TRPO
引出优化目标
新策略的回报函数可以分解为旧策略的回报函数+一些其它项
![](https://img.haomeiwen.com/i1507799/8a583a467ff07742.png)
其中A是优势函数,证明过程如下
![](https://img.haomeiwen.com/i1507799/1c742a9ff8b47b90.png)
![](https://img.haomeiwen.com/i1507799/42034d08a933d2c1.png)
若设
![](https://img.haomeiwen.com/i1507799/735d7a0f6f3bef51.png)
可以得到
![](https://img.haomeiwen.com/i1507799/96447cb9d2734e8c.png)
如果新旧策略的步长足够小,可以用旧策略的参数代替新策略
![](https://img.haomeiwen.com/i1507799/c5bda9f7c43ad593.png)
并且对L的梯度更新能同时优化η(一阶近似)
但是这个步长是未知的
![](https://img.haomeiwen.com/i1507799/a1ddd444bc734cb1.png)
那么如何获得合适的梯度步长?
论文中给出了一个不等式(暂时不考虑证明)
![](https://img.haomeiwen.com/i1507799/4138250d690b3d13.png)
如果每一次迭代使Mi最大化,则可以保证目标函数递增
![](https://img.haomeiwen.com/i1507799/fea6428e95e20bbd.png)
因为惩罚系数会使得步长非常小,所以用Dklmax约束代替C
![](https://img.haomeiwen.com/i1507799/fe588e3487764454.png)
因为Dklmax不便于求解,所以用平均散度代替最大散度
![](https://img.haomeiwen.com/i1507799/493c54a44633e7f1.png)
![](https://img.haomeiwen.com/i1507799/b0902335880676ca.png)
如何求解TRPO?
用
![](https://img.haomeiwen.com/i1507799/2fe3a30a3d25e53b.png)
代替
![](https://img.haomeiwen.com/i1507799/2ab567d8456de179.png)
用Qold代替Aold
![](https://img.haomeiwen.com/i1507799/cdd8e95a88929fb6.png)
新策略参数是未知的,引入重要性采样有
![](https://img.haomeiwen.com/i1507799/6b360e674bf9f7f2.png)
于是优化目标变成
![](https://img.haomeiwen.com/i1507799/04e4408e89d28cdd.png)
使用 single path 的采样方法时 q(a|s) = π(a|s)old
求解TRPO的步骤为
![](https://img.haomeiwen.com/i1507799/33c73c224ed7b3f6.png)
![](https://img.haomeiwen.com/i1507799/0cab5b71640c5880.png)
PPO
OpenAI在提出了TRPO算法后
因为共轭梯度法的效率不高
又提出了一种TRPO的近似算法PPO
不错的资料
https://zhuanlan.zhihu.com/p/30138538
https://zhuanlan.zhihu.com/p/30548114
https://zhuanlan.zhihu.com/p/29918825
网友评论