Trust Region Policy Optimization
这篇论文是经典的强化学习论文,直觉的motivation来说就是在强化学习训练的过程中噪音很大,很容易崩溃,所以这里会尝试限制一个Trust Region,模仿相关优化问题的思路进行控制。其实本文后续有一篇implementation更intuitive的PPO.
本文在Spinningup上有很优秀的官方介绍,本页主要通过中文翻译+结合论文与其他资料进行补充。
本文有对应的pytorch开源代码,链接
数学上的Motivation
为什么强化学习在训练过程中噪音这么严重?数学上可以归纳为以下的公式说明。对于当前以及最优的policy之间的expected cost的差别,准确的公式是:
但是由于没有办法用optimal policy进行sample.所以一般实际操作的时候只能用当前的policy对路径进行采样,得到
算法数学描述
优化问题描述:
其中含义与前文基本一致,具体来说是 其中KL divergence的定义请查阅wiki
对上面的问题取泰勒近似,优化问题变为一个带约束的二次方程,设为关于网络参数的梯度.
根据凸优化的最优解是
对于参数数量很大的网络,hessian矩阵的计算,尤其是逆的矩阵运算量很大,这里使用的是conjugate gradient算法,这是一个求解对称矩阵的逆或者求解稀疏线性方程的迭代算法。 下文来自wiki链接中的是求解线性方程的算法
最后openai spinningup总结了算法如下图
补充描述:
关于step 9 line search: 就是逐个查看选择实际能取的最长的步长(因为前面有做二次近似)
关于step 10: 常规policy gradient 算法中对value网络的拟合.