TRPO
一、背景知识
在介绍TRPO算法之前,先问一个问题:TRPO是在什么背景下衍生出来的?为了回答这个问题,需要先介绍策略梯度思想(Policy Gradient,PG)。
1、Policy Gradient
策略梯度不同于值优化算法,策略梯度算法致力于寻求最优策略。其中,策略由参数化函数π(a|s, θ)表示,由此可见,只要更新参数θ,即可获得更新后的策略π(a|s, θ)。引入了最优策略的概念,接下来的问题就是如何定义最优策略?这里介绍最简单的PG算法:蒙特卡洛PG,其最优策略由标量J(θ)衡量,具体表达式为: ∇θJ(θ) = ∑s ∈ Sη(s)∑a ∈ A∇θπ(a|s, θ)qπ(s, a) 其中,(s)表示状态S概率分布,q_{}(s, a)表示在状态s下执行动作a可获得的q值。
我们可以将上述式子进行一定的转换得到其期望形式:
如果βt ≥ 0,选择 (st, at)的概率会增加. 即 π(at|st, θt + 1) ≥ π(at|st, θt). βt越大, 概率增加的越大,换句话说,如果这个动作会带来q值的提升,那么经过策略更新之后,以后在这个状态下选择这个动作的概率越大
如果βt < 0, 选择
(st, at)的概率会减小,即
π(at|st, θt + 1) < π(at|st, θt).
证明如下。当 θt + 1 − θt足够小,
π(at|st, θt + 1)可以进行泰勒展开

观察REINFORCE伪代码,可以看出来,REINFORCE是一种on-policy(同策略)算法,也就是选择动作的策略和需要更新的策略是同一种策略。同策略算法会有一种问题:采样得到的样本利用率太低,比如在策略网络参数为t下采样得到的样本轨迹,在下一个时刻就不能用于训练,因为下一个时刻策略网络的参数被更新为{t+1},理论上t时刻采样得到的样本轨迹与新策略得到的轨迹不一致,所以无法使用。
二、TRPO推导
首先,来了解一下下面几个常见的值函数:
累计奖赏函数,表示在策略:
1、首先给出优势函数A_{}(s, a)与Q_{}(s,
a)和V_{}(s)之间关系的推导证明:
∇θLπθ0(πθ)|θ = θ0 = ∇θη(πθ)|θ = θ0 (5)
式(4)证明如下图所示:

式(5)证明如下:
对于替代函数:
1 | 式(4)表示当策略没有更新时,替代函数和原累积奖赏函数是完全相等的。式(5)说明替代函数和原累积奖赏函数关于策略参数\theta的导数,在旧策略\pi_{\theta_0}这一点处是相同的,也就是说策略从\pi_{\theta_0} \to \tilde{\pi}有一个极小的变化时,如果替代函数L_{\pi_{\theta_0}}增加了累积奖赏\eta也会增加,那么便可以用替代函数作为优化目标来改善策略。 |
那么策略迭代时π和π̃具体满足什么样的约束才能保证替代函数增加时累积奖赏也能增加呢?首先定义一个α−coupled policy(π, π̃),满足联合的分布P(a ≠ ã|s) ≤ α。再定义TV散度(Total
variation divergence)为,对于两个离散概率分布p, q,
TV散度和coupled random variables的关系为: 假设分布pX, qY满足D_{TV}(p_X|q_Y)
= ,则存在联合分布(X, Y),满足X=Y的概率为1-。 令D_{TV}^{max}(, ) = s
D{TV}((|s)|(|s)) 则可以得到定理1: 定理1: 令α = DTVmax(π, π̃),则替代函数和累积奖赏的差为:
引理1: |Ā(s)| ≤ 2αmaxs, a|Aπ(s, a)|
证明:
引理2: |𝔼st ∼ π̄[Ā(st)] − 𝔼st ∼ π[Ā(st)]| ≤ 2αmaxs|Aπ(s, a)| ≤ 4α(1 − (1 − α)t)maxs|Aπ(s, a)| 证明:
令n_t表示当 i < t 时 a 的次数,则 𝔼st ∼ π̄[Ā(st)] = P(nt = 0)𝔼st ∼ π̄|nt = 0[Ā(st)] + P(nt > 0)𝔼st ∼ π̄|nt > 0[Ā(st)]
同理可表示{s_t
}[{A}(s_t)]。由于当n_t=0时表明在两种策略下采样到的路径完全相同,因此{s_t
|n_t=0}[{A}(s_t)] = {s_t {}|n_t=0}[{A}(s_t)]。作差可得 𝔼st ∼ π[Ā(st)] − 𝔼st ∼ π̄[Ā(st)] = P(nt > 0)(𝔼st ∼ π|nt > 0[Ā(st)] − 𝔼st ∼ π̄|nt > 0[Ā(st)])
根据coupled pair的定义, P(n_t=0) (1-)^t,且P(n_t>0)
-(1-)^t。结合引理1并利用三角不等式可得 |𝔼st ∼ π̄[Ā(st)] − 𝔼st ∼ π[Ā(st)]| ≤ 4α(1 − (1 − α)t)maxs|Aπ(s, a)|.
回过头来观察替代函数和原累积奖赏的差别|({}) -
L({})|。根据二者定义,结合引理2得到
由于KL散度D_{TV}(p||q)^2 D_{KL}(p||q),则可以用KL散度对策略更新的范围重新约束。令D_{KL}^{max} = s D{KL}((|s){}(|s)),可对定理1放缩,得到 η(π̄) ≥ Lπ(π̄) − CDKLmax(π, π̄) 至此,在KL散度约束下,找到了累积奖赏函数的一个下界。
单调递增原理
根据式(7)
,我们便能找到一系列单调递增的策略,满足(_0)
(_1) (_2) 。
证明:令M_i() = L_{i}() - C D{KL}^{max}(_i, ),则 η(πi + 1) ≥ Mi(πi + 1)
η(πi) = Mi(πi)
η(πi + 1) − η(πi) ≥ Mi(πi + 1) − Mi(πi)(8)
因此在迭代时最大化M_i便能保证。
优化模型的改进
根据式(8)
,最大化 maxθLπθ0(πθ) − CDKLmax(πθ0, πθ)(9)
也能保证累积奖赏函数\eta
的优化。但实践中表明惩罚项系数C会将策略迭代的步长非常小,一个能增大步长的方式是用KL散度将新旧策略限制在一个信任区域中:
(10)
的问题是,需要使所有状态下的KL散度满足约束,当状态空间很大时非常不实际。因此启发性地使用KL散度的均值进行约束,即
基于样本的目标函数估计
目标函数和约束可以用来蒙特卡洛方法近似得到,先对式(11)
进行改写,首先用期望代替L_{{0}}()中的s
{0}(s),并删去与参数,得到目标函数{s {0}}[{a
}[A_{_{_0}}(s,a)]]。接着用Q函数代替优势函数A,得到{s
_{_0}}[{a
}[Q_{_{_0}}(s,a)]]。可以证明用Q函数代替后二者仅相差一个常数。
证明: (12)
的第二项为一个与参数,
因此可以用Q函数替代。
然后对{a }[Q_{_{_0}}(s,a)]用重要度采样(Importance
sampling)进行改写, 得到

参考链接