Actor-Critic 算法

前置知识:强化学习入门Deep Q-Learning策略梯度算法

Actor-Critic

Actor-Critic (简称 AC)是一种经典的强化学习框架

  • 结合了策略(Policy Based)和价值(Value Based)
  • Actor 表示策略函数,负责动作生成与环境交互
  • Critic 表示价值函数,负责 Actor 的表现评估和指导

AC 算法的 Actor 策略函数近似 $$ \pi_{\theta}(s,a) = P(a|s,\theta)\approx \pi(a|s) $$

  • Actor 的定义与策略梯度算法中的策略函数相同
  • Actor 参数的更新形式也是相同的:$\theta = \theta + \alpha \nabla_{\theta}log \pi_{\theta}(s_t,a_t) v_{t}$

AC 算法的 Critic 价值函数近似

  • 状态价值的近似 $\hat{v}(s, w) \approx v_{\pi}(s)$
  • 动作价值的近似 $\hat{q}(s,a,w) \approx q_{\pi}(s,a)$
  • 一般使用Q网络来作为 Critic,网络参数为 $w$
  • Critic 的输入是状态,输出是状态/最佳动作的价值

AC 算法本质上是基于策略的算法,算法目标主要是为了优化策略函数参数,只是会额外学习价值函数,从而帮助策略函数更好地学习

AC 算法的流程

AC 算法的流程总结:

  • Critic 通过Q网络计算状态的最优价值 $v_{t}$,Actor 选择动作
  • Actor 根据价值 $v_{t}$ 来更新参数 $w$,以实现更优的策略和动作
  • Critic 根据动作的反馈和新状态来更新参数 $\theta$,优化价值的计算

已知 Actor 的策略参数更新公式:$\theta = \theta + \alpha \nabla_{\theta}log \pi_{\theta}(s_t,a_t) v_{t}$;而根据 Critic 的评估指标不同,Actor 参数更新依赖的价值 $v_{t}$ 也会有不同的形式

  • 当评估指标是状态价值时:$v_{t}=V(s,w)$
  • 当评估指标是动作价值时:$v_{t}=Q(s,a,w)$
  • 当评估指标是 TD 误差时(更常见): $$v_{t} = \delta_{t}=R_{t+1} + \gamma v_{\pi}(S_{t+1})-v_{\pi}(S_{t})$$
  • 当评估指标是优势函数时: $$

v_{t}=A(S,A,w,\beta) = Q(S,A, w, \alpha, \beta) - V(S,w,\alpha) $$ 假设评估指标是 TD 误差 $\delta$ ,Critic 的损失函数是均方误差 $\delta^2$,Critic 的 Q 网络是最常见的线性 Q 函数 $Q(s,a,w)=\phi(s,a)^Tw$,参数 $w$ 更新的步长为 $\beta$,则根据梯度下降法可知, Critic 价值函数中参数 $w$ 的更新公式如下: $$ w=w+\beta \delta \phi(s,a) $$

TD 误差的更多细节可参考时序差分算法 TD

Q 网络与优势函数的更多细节可参考 Deep Q-Learning

AC 算法的改进

Asynchronous Advantage Actor-critic(简称 A3C):

  • 优化 1,多线程异步训练:(1)每个线程保留独立的神经网络,不同线程之间共享一个公共神经网络;(2)每个线程与环境进行独立交互,积累经验,互不影响;(3)线程内经验池累积到一定程度后,计算梯度并更新公共神经网络;(4)每隔一段时间,将公共神经网络的参数同步给线程内的独立神经网络
  • 优化 2,合并神经网络,单一的网络同时输出状态价值 $V$ 和策略 $\pi$
  • 优化 3,Critic 评估指标调整,用 N 步采样的优势函数作为评估指标 $$

A(S,t) = R_t + \gamma R_{t+1} +...\gamma^{n-1} R_{t+n-1} + \gamma^n V(S') - V(S) $$

  • 优化 4:Critic 的损失函数调整,针对策略 $\pi$ 引入额外的熵项 $H$;假设熵项的系数为 $c$,则调整后的参数 $\theta$ 的更新公式如下: $$

\theta = \theta + \alpha \nabla_{\theta}log \pi_{\theta}(s_t,a_t)A(S,t) + c\nabla_{\theta}H(\pi(S_t, \theta)) $$

  • A3C 作为一种同步的异步并发强化学习框架,显著改善了模型训练速度;用于辅助的多线程起到了类似DQN中经验回放的作用,使得最终模型效果更好

Deep Deterministic Policy Gradient(简称 DDPG)

  • 优化 1,从随机策略到确定性策略,即同一状态下的最佳动作是唯一确定的
  • 优化 2,借鉴了 Double DQN 中当前 Q 网络和目标 Q 网络的概念,使用了双 Actor 网络和双 Critic 网络的方法来消除过度估计问题,改善收敛性
  • 优化 3,双网络的同步采用软更新,即每次只更新一部分(比如 1%或 10%)
  • 优化 4,在动作选择的过程中添加噪声,增加学习的随机性和模型的稳定性
  • DDPG 作为一种较为成熟的 AC 算法,收敛性好,应用广泛

往年同期文章