A3C

Actor-Critic

  • 演员采取动作使评论家满意
  • 评论家学会准确估计演员策略所采取动作价值的值函数

A2C

Advantage Actor-Critic

通过减去一个基线函数来优化评论家的打分

  • 更多信息指导:降低较差动作概率,提高较优动作概率
  • 进一步降低方差

优势函数 Aπ(s,a)=Qπ(s,a)Vπ(s)A^\pi(s,a)=Q^\pi(s,a)-V^\pi(s)

A3C:异步 A2C 方法

Asynchronous Advantage Actor-Critic

  • 异步:算法涉及并执行一组环境
  • 优势:策略梯度的更行使用优势函数
  • 动作评价

A3C 示意图

Global Network 是表演者和评论家的所在

这些 Workers 学习完一段时间后,产生梯度,传到 global network 中去。更新完全局网络后参数又同步到所有 workers 上去。这样的好处是并行化,提升性能。

A3C 算法伪代码

确定性策略梯度 DPG

随机策略与确定性策略

  • 随机策略
    • 对于离散动作:π(as;θ)=exp{Qθ(s,a)}Σaexp{Qθ(s,a)}\pi(a|s;\theta)=\frac{\exp\{Q_\theta(s,a)\}}{\Sigma_{a'}\exp\{Q_\theta(s,a')\}}
    • 对于连续动作:π(as;θ)exp{(aμθ(s))2}\pi(a|s;\theta)\propto\exp\{(a-\mu_\theta(s))^2\}
  • 确定性策略
    • 对于离散动作:π(s;θ)=argmaxaQθ(s,a)\pi(s;\theta)=\arg\max_aQ_\theta(s,a) 不可微
    • 对于连续动作:a=π(s;θ)a=\pi(s;\theta) 可微

确定性策略梯度

用于估计状态-动作值的评论家模块

Qw(s,a)Qπ(s,a)Q^w(s,a)\simeq Q^\pi(s,a)

L(w)=Esρπ,aπθ[(Qw(s,a)Qπ(s,a))2]L(w)=\mathbb E_{s\sim\rho^\pi,a\sim\pi_\theta}[(Q^w(s,a)-Q^\pi(s,a))^2]

确定性策略梯度定理

J(πθ)=Esρπ[Qπ(s,a)]J(\pi_\theta)=\mathbb E_{s\sim\rho^\pi}[Q^\pi(s,a)]

θJ(πθ)=Esρπ[θπθ(s)aQπ(s,a)a=πθ(s)]\nabla_\theta J(\pi_\theta)=\mathbb E_{s\sim\rho^\pi}[\nabla_\theta\pi_\theta(s)\nabla_a Q^\pi(s,a)|_{a=\pi_\theta(s)}]

深度确定性梯度策略 DDPG

在 DPG 的基础上增加

  • 经验重放(离线策略)
  • 目标网络
  • 在动作输入前对 Q 网络做 batch normalization
  • 添加连续噪声

目标网络至关重要

信任区域策略优化 TRPO

策略梯度的缺点

步长难以确定:

  • 采集到数据的分布会随策略的更新而变化
  • 较差的步长产生的影响大,进而导致策略变差

TRPO

优化目标:策略梯度

第一种:J(θ)=Eτpθ(τ)[Σtγtr(st,at)]J(\theta)=\mathbb E_{\tau\sim p_\theta(\tau)}[\Sigma_t\gamma^tr(s_t,a_t)]

第二种:J(θ)=Es0pθ(s0)[Vπθ(s0)]J(\theta)=\mathbb E_{s_0\sim p_\theta(s_0)}[V^{\pi_\theta}(s_0)]

优化目标的优化量

J(θ)J(θ)=J(θ)Es0pθ(s0)[Vπθ(s0)]J(\theta')-J(\theta)=J(\theta')-\mathbb E_{s_0\sim p_\theta(s_0)}[V^{\pi_\theta}(s_0)]

=J(θ)Eτpθ(τ)[Vπθ(s0)]=J(\theta')-\mathbb E_{\tau\sim p_{\theta'(\tau)}}[V^{\pi_\theta}(s_0)]

=J(θ)Eτpθ(τ)[t=0γtVπθ(st)t=1γtVπθ(st)]=J(\theta')-\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^tV^{\pi_\theta}(s_t)-\sum_{t=1}^\infty\gamma^tV^{\pi_\theta}(s_t)]

=J(θ)+Eτpθ(τ)[t=0γt(γVπθ(st+1)Vπθ(st))]=J(\theta')+\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^t(\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_\theta}(s_t))]

=Eτpθ(τ)[t=0γtr(st,at)]+Eτpθ(τ)[t=0γt(γVπθ(st+1)Vπθ(st))]=\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^tr(s_t,a_t)]+\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^t(\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_\theta}(s_t))]

=Eτpθ(τ)[t=0γt(r(st,at)+γVπθ(st+1)Vπθ(st))]=\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^t(r(s_t,a_t)+\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_\theta}(s_t))]

=Eτpθ(τ)[t=0γtAπθ(st,at)]=\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^tA^{\pi_\theta}(s_t,a_t)]

优势函数 Aπθ(st,at)=Qπθ(st,at)Vπθ(st)A^{\pi_\theta}(s_t,a_t)=Q^{\pi_\theta}(s_t,a_t)-V^{\pi_\theta}(s_t)

使用重要性采样

J(θ)J(θ)J(\theta')-J(\theta)

=Eτpθ(τ)[t=0γtAπθ(st,at)]=\mathbb E_{\tau\sim p_{\theta'(\tau)}}[\sum_{t=0}^\infty\gamma^tA^{\pi_\theta}(s_t,a_t)]

=tEstpθ(st)[Eatπθ(atst)[γtAπθ(st,at)]]=\sum_t\mathbb E_{s_t\sim p_{\theta'(s_t)}}[\mathbb E_{a_t\sim\pi_{\theta'}(a_t|s_t)}[\gamma^tA^{\pi_\theta}(s_t,a_t)]]

=tEstpθ(st)[Eatπθ(atst)[πθ(atst)πθ(atst)γtAπθ(st,at)]]=\sum_t\mathbb E_{s_t\sim p_{\theta'(s_t)}}[\mathbb E_{a_t\sim\pi_{\theta'}(a_t|s_t)}[\frac{\pi_{\theta'}(a_t|s_t)}{\pi_\theta(a_t|s_t)}\gamma^tA^{\pi_\theta}(s_t,a_t)]]

忽略状态分布的差异

当策略更新前后变化较小时,令 pθ(st)pθ(st)p_\theta(s_t)\approx p_{\theta'}(s_t)

策略改进的单调性保证

每轮迭代都能保证函数值优化

近端策略优化 PPO

TRPO 使用 KL 散度约束策略更新的幅度

TRPO 的不足

  • 近似带来误差
  • 求解约束优化问题的困难

在 TRPO 基础上进行改进

  1. 截断式优化目标

    基于 CLIP 的方式,截断式优化 TRPO 中的重要性采样

  2. 优势函数选用多步时许差分

    • 每次迭代中,并行 N 个 actor 收集 T 步经验数据
    • 计算每步的优势函数,构成 mini-batch
    • 更新参数
  3. 自适应的 KL 惩罚项参数