本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 。
具有经验回放的actor-critic
A C E R \color{red}ACER ACER :[ paper | code ]
(ACER为了利用历史数据使用了多项技术,整体算法较为复杂)
ACER 是 actor-critic with experience replay 的缩写,是一种带经验回放的 off-policy 的actor-critic模型,可以使用off-policy训练的置信域策略优化方法,极大地提高了样本效率,降低了数据相关性。A3C为 ACER 奠定了基础,但是 A3C 是 on-policy的, 其实 ACER 是 A3C 的off-policy 版本。 使 A3C off-policy 的主要障碍是如何控制 off-policy estimator 的稳定性。 ACER 提出了三种设计方案来克服这一问题:
Retrace 是一种基于off-policy return-based Q-value estimation algorithm(离线的基于累积回报的Q值估计算法),它在任意的⽬标-策略⽹络对 ( π , β ) (\pi, \beta) (π,β) 下都有⼀个⽐较好的收敛性保证并且拥有很好的数据有效性。
回忆一下TD学习是如何进行预测的:
当进行离线采样时,我们需要在Q值更新过程中应用重要性采样:
Δ Q i m p ( S t , A t ) = γ t ∏ 1 ≤ τ ≤ t π ( A τ ∣ S τ ) β ( A τ ∣ S τ ) δ t \Delta Q^{\mathrm{imp}}\left(S_{t}, A_{t}\right)=\gamma^{t} \prod_{1 \leq \tau \leq t} \frac{\pi\left(A_{\tau} | S_{\tau}\right)}{\beta\left(A_{\tau} | S_{\tau}\right)} \delta_{t} ΔQimp(St,At)=γt1≤τ≤t∏β(Aτ∣Sτ)π(Aτ∣Sτ)δt
当我们想象一下重要性权重的连乘会带来多大的方差时就会感觉到这个连乘项有多么可怕了。Retrace Q值估计方法通过截断重要性权重使其不超过某个常数 c c c 的方式对 Δ Q ΔQ ΔQ 进行修改:
Δ Q r e t ( S t , A t ) = γ t ∏ 1 ≤ τ ≤ t min ( c , π ( A τ ∣ S τ ) β ( A τ ∣ S τ ) ) δ t \Delta Q^{\mathrm{ret}}\left(S_{t}, A_{t}\right)=\gamma^{t} \prod_{1 \leq \tau \leq t} \min \left(c, \frac{\pi\left(A_{\tau} | S_{\tau}\right)}{\beta\left(A_{\tau} | S_{\tau}\right)}\right) \delta_{t} ΔQret(St,At)=γt1≤τ≤t∏min(c,β(Aτ∣Sτ)π(Aτ∣Sτ))δt
ACER使用 Q r e t Q^{\mathrm{ret}} Qret 作为TD目标通过最小化 L2 误差项来训练评论家: ( Q r e t ( s , a ) − Q ( s , a ) ) 2 \left(Q^{\mathrm{ret}}(s, a)-Q(s, a)\right)^{2} (Qret(s,a)−Q(s,a))2
为了减少估计策略梯度 g ^ \hat{g} g^ 时产生的高方差,ACER使用一个常数 c c c 加上一个校正项来截断重要性权重。 g ^ t acer \hat{g}_{t}^{\text { acer }} g^t acer 代表 t t t 时刻的ACER策略梯度。
g ^ t acer = ω t ( Q ret ( S t , A t ) − V θ v ( S t ) ) ∇ θ ln π θ ( A t ∣ S t ) ; 令 ω t = π ( A t ∣ S t ) β ( A t ∣ S t ) = min ( c , ω t ) ( Q ret ( S t , A t ) − V w ( S t ) ) ∇ θ ln π θ ( A t ∣ S t ) + E a ∼ π [ max ( 0 , ω t ( a ) − c ω t ( a ) ) ( Q w ( S t , a ) − V w ( S t ) ) ∇ θ ln π θ ( a ∣ S t ) ] ; 令 ω t ( a ) = π ( a ∣ S t ) β ( a ∣ S t ) \begin{aligned} \hat{g}_t^\text{acer} = & \omega_t \big( Q^\text{ret}(S_t, A_t) - V_{\theta_v}(S_t) \big) \nabla_\theta \ln \pi_\theta(A_t \vert S_t) & \scriptstyle{\text{; 令 }\omega_t=\frac{\pi(A_t \vert S_t)}{\beta(A_t \vert S_t)}} \\ = & \color{blue}{\min(c, \omega_t) \big( Q^\text{ret}(S_t, A_t) - V_w(S_t) \big) \nabla_\theta \ln \pi_\theta(A_t \vert S_t)} \\ & + \color{red}{\mathbb{E}_{a \sim \pi} \big[ \max(0, \frac{\omega_t(a) - c}{\omega_t(a)}) \big( Q_w(S_t, a) - V_w(S_t) \big) \nabla_\theta \ln \pi_\theta(a \vert S_t) \big]} & \scriptstyle{\text{; 令 }\omega_t (a) =\frac{\pi(a \vert S_t)}{\beta(a \vert S_t)}} \end{aligned} g^tacer==ωt(Qret(St,At)−Vθv(St))∇θlnπθ(At∣St)min(c,ωt)(Qret(St,At)−Vw(St))∇θlnπθ(At∣St)+Ea∼π[max(0,ωt(a)ωt(a)−c)(Qw(St,a)−Vw(St))∇θlnπθ(a∣St)]; 令 ωt=β(At∣St)π(At∣St); 令 ωt(a)=β(a∣St)π(a∣St)
其中 Q w ( . ) Q_{w}( .) Qw(.) 以及 V w ( . ) V_{w}( .) Vw(.) 由 w w w 参数化的评论家预测的动作-值以及状态-值。第一项(蓝色部分)包含了截断重要性权重。截断操作促进方差缩减,减去状态-值 V w ( . ) V_{w}( .) Vw(.) 作为基准进一步加强了方差缩减的效果。第二项(红色部分)进行了校正使得上述方差估计为无偏估计。
此外,ACER采用TRPO的思想,但通过一个小的调整使其具有更高的计算效率:ACER不再去计算当前策略与更新一步之后的新策略之间的KL散度,而是去维护一个历史策略的运行平均(running average)值并且强制新策略不会偏离这个平均策略太远。
ACER论文信息量很大,包含很多公式。但是在事先了解了TD学习,Q学习,重要性采样和TRPO之后,你会发现这篇论文会稍微变得容易理解一些:)