对AC算法的看法:AC->A2C->A3C
简要介绍了Actor-Critic类强化学习算法的发展历程,从传统的策略梯度方法到AC、A2C,再到并发异步的A3C算法,探讨了它们如何逐步优化以提高训练效率和模型性能。
Actor-Critic 类算法:融合策略梯度与值方法
Actor-Critic 类强化学习算法巧妙地结合了策略梯度(Policy Gradient)和基于值的方法(Value-Based),旨在提升学习效率和稳定性。
从策略梯度到AC算法的演进
传统的策略梯度方法依赖于对单轮任务进行充分采样,计算累计折扣奖励,并据此更新策略。然而,这种方法存在显著的随机性和不稳定性——尤其是当采样结果不佳时,会对训练产生负面影响。为解决这一问题,Actor-Critic 方法引入了基于值的学习理念,通过预测累计奖励的期望值而非直接使用累计奖励本身来改进策略更新过程。这使得动作值函数 $Q$ 成为了更新规则中的关键元素之一,同时加入了状态值函数 $V$。这样,AC 算法便涉及到了对两个神经网络的训练:一个用于估计 $Q$ 值,另一个则专注于 $V$ 值。
在AC算法中,梯度更新公式可以表示为: $ \nabla\theta J(\theta) \approx \mathbb{E}{\tau \sim \pi_\theta}[\sumt \nabla\theta \log \pi_\theta(a_t|s_t) (Q(s_t, a_t) - V(s_t))] $
从AC到A2C:引入优势函数简化模型
尽管 AC 算法有效,但同时训练两个网络带来了额外的复杂性。Sutton 等人提出的解决方案是引入优势函数(Advantage Function),它通过当前奖励加上下一个状态的值函数来近似 $Q$ 值,即 $Q = r + V{next}$,并进一步优化为 $r + V{next} - V$。这种方法只需训练单一的状态值函数 $V$ 网络,从而简化了模型结构,提高了训练效率。
具体来说,A2C 使用的优势函数形式如下: $ A(s_t, a_t) = Q(s_t, a_t) - V(s_t) \approx rt + \gamma V(s{t+1}) - V(s_t) $
A3C:并发异步加速训练
A3C(Asynchronous Advantage Actor-Critic)是 A2C 的并发异步版本,采用了主-从架构设计,包括一个主要学习模型(Learner)和多个工作模型(Workers)。每个工作模型在每次训练前都会复制 Learner 的网络参数,然后通过与环境交互计算梯度,并将这些梯度返回给 Learner 进行参数更新。这种设计不仅避免了经验回放缓冲区的需求,还通过并发执行大大加快了训练速度,提升了整体性能。