基本概念
TRPO
基于策略梯度的强化学习算法它可以直接去学习策略本身,这样学习速度会更快,并且更关键的是它可以用于连续动作空间的情况。它的基本思想是最大化目标函数 J ( θ ) J(\theta) J(θ),通过最大化状态价值期望 E s [ V π ( s ) ] E_s[V_{\pi}(s)] Es[Vπ(s)]来更新策略函数的参数 θ \theta θ。
TRPO算法不同于基于策略梯度的强化学习算法,TRPO算法的基本思想是通过提高状态价值的方式来更新策略,通过在新旧策略之间增加约束,将整个参数空间的变化限制在一个小范围之内。
下面来说说TRPO算法具体的过程,TRPO用于策略更新的优化问题为:
其中
L
L
L函数近似于
η
\eta
η下界局部值的函数
η
(
π
~
)
\eta(\widetilde{\pi})
η(π
),
L
L
L函数定义为:
在
L
L
L函数中,
η
(
π
)
\eta(\pi)
η(π)为期望折扣回报,
ρ
π
(
s
)
\rho_\pi(s)
ρπ(s)为折扣访问频率:
如果转换成期望的形式,优化问题为:
利用拉格朗日对偶性,可以将目标函数的约束成带拉格朗日乘子的目标函数,此时优化问题为:
或者下面这种形式:
接下来我们使用泰勒级数来估计
L
L
L函数和平均KL散度,分别用泰勒公式将
L
L
L展开到一阶 ,平均KL散度展开到二阶:
g称为策略梯度,H称为费雪信息矩阵:
此时,优化问题变成:
我们可以通过优化二次方程来解决它,解集为:
由于H矩阵逆运算非常耗时,TRPO使用以下估计:
这样,解集可以写成:
如果我们只使用这个结果,算法将精确计算自然策略梯度(上图中包含
δ
\delta
δ的那一项)。但是这样有一个问题,由于泰勒展开式引入了近似误差,可能会导致不满足KL散度的约束,或者实际提高了相应动作的优势,于是TRPO对这个更新规则增加了一个修改,称之为回溯线搜索:
其中 α ∈ ( 0 , 1 ) \alpha \in (0, 1) α∈(0,1) 是回溯系数, j j j是 π θ k + 1 \pi_{\theta_{k+1}} πθk+1 满足KL散度约束并产生正向替代优势的最小非负整数。
TRPO算法伪代码如下如所示: