前置知识:强化学习入门、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 算法,收敛性好,应用广泛