TRPO要解决的问题
在VPG策略迭代方法中,由于策略非凸,在策略迭代过程中会出现震荡、梯度悬崖等情况,难以收敛。TRPO用KL散度对相邻的策略进行约束,防止策略变动过大造成不稳定;并且保证了策略迭代的单调上升。
TRPO的核心思路
TRPO是在Natural Policy Gradient的基础上改进而来,加入参数 改善了泰勒展开造成的误差,进一步约束了策略的变化范围。总体来看,TRPO的核心思路有以下几点
- 利用KL-divergence约束策略,使策略迭代不会非常剧烈;
- 给出了目标函数的下界,以便利用Minorize-Maximization(MM)算法进行优化;
- 利用一阶泰勒展开近似目标函数(实际是MM算法中的代理函数surrogate function),用二阶泰勒展开近似KL-divergence约束;
- 此时实际上问题已转换为凸优化问题,利用拉格朗日对偶性进行求解,得到的迭代公式
- 在的迭代公式中,存在矩阵求逆的运算,TRPO利用共轭梯度法求解线性方程,化解掉逆运算
- 加入参数对泰勒展开的误差可能导致约束失效的问题进行改善
TRPO过程推导
- 明确目标函数
在基于Policy Optimization的方法中,我们的目的是找到最优策略参数使得
记
是单个episode过程中得到的rewards累加和的期望(也可以加上衰减系数),而在实际采样中,我们采用
在TRPO中,我们要优化的目标函数为
其中,为上一次迭代的参数。CS285-slide9证明了
其中,
需要注意的是,上式中的期望是在策略下的,而我们想要的是在前面已知策略下的采样,对上式展开可得
采用重要性采样,上式可以写成
slide9证明了把上式中的变成后,可以找到原目标函数的下界,通过MM算法可转换为一个由KL-divergence约束的优化问题。记
则约束优化问题为
- 利用泰勒展开对上述优化问题进行近似与简化
利用泰勒展开可化简为如下形式
其中,为KL散度的Hessian阵,具体的推导可见slide9
- 利用拉格朗日对偶性进行求解
写出拉格朗日函数
利用最优性条件(KKT),即
可解得
- 利用共轭梯度法避免求逆
在上面的迭代公式中,出现了矩阵求逆的运算,这是我们不希望看到的。TRPO利用共轭梯度法求解线性方程组
来简化计算。共轭梯度法只需迭代n次即可完成运算
则迭代公式转化为
- 加入因子
在泰勒展开近似过程中会存在误差,为确保每次迭代的策略KL散度在约束范围内,TRPO额外加入了因子,最终的迭代公式为
其中,为使得KL散度在约束内且目标函数大于0(目标函数大于0,则本次迭代的策略比上次要好)的最小整数,这就是TRPO的核心迭代公式。