深度强化学习中的Actor-Critic方法原理与实现详解
字数 1652 2025-11-22 02:56:39

深度强化学习中的Actor-Critic方法原理与实现详解

1. 问题描述
Actor-Critic方法结合了策略梯度(Policy Gradient)和值函数逼近(Value Function Approximation)的优点,是深度强化学习中的核心算法。它通过两个组件协同工作:Actor(执行者)负责根据当前策略选择动作,Critic(评判者)负责评估动作的价值。核心挑战在于如何让这两个组件高效交互并稳定学习。

2. 核心概念拆解

  • 策略梯度方法(如REINFORCE):直接优化策略参数,但依赖蒙特卡洛采样,方差大、学习慢。
  • 值函数方法(如Q-learning):学习价值函数间接优化策略,但处理连续动作空间困难。
  • Actor-Critic的融合思路:用Critic的价值估计(低方差)替代REINFORCE中的蒙特卡洛回报,指导Actor的策略更新。

3. Actor-Critic框架的工作流程

  • 步骤1:环境交互
    Agent在状态 \(s_t\) 下,Actor根据当前策略 \(\pi_\theta(a|s_t)\) 选择动作 \(a_t\),执行后进入状态 \(s_{t+1}\),获得奖励 \(r_t\)

  • 步骤2:Critic评估
    Critic(通常为价值网络 \(V_\phi(s)\))计算状态价值:

    • 当前状态价值: \(V_\phi(s_t)\)
    • 下一状态价值: \(V_\phi(s_{t+1})\)
      进而计算优势函数估计(如TD误差):

\[ \delta_t = r_t + \gamma V_\phi(s_{t+1}) - V_\phi(s_t) \]

 其中 $\gamma$ 为折扣因子,$\delta_t$ 衡量动作 $a_t$ 相对于平均水平的优劣。
  • 步骤3:Actor更新
    用Critic提供的 \(\delta_t\) 更新策略参数 \(\theta\)

\[ \theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot \delta_t \]

 $\nabla_\theta \log \pi_\theta(a_t|s_t)$ 为策略梯度方向,$\delta_t$ 作为缩放因子:若 $\delta_t>0$ 增强该动作概率,反之减弱。
  • 步骤4:Critic更新
    通过最小化时序差分误差优化价值网络参数 \(\phi\)

\[ \phi \leftarrow \phi - \beta \nabla_\phi \delta_t^2 \]

 使 $V_\phi(s)$ 更准确预测长期回报。

4. 关键改进与稳定化技巧

  • 基线(Baseline)减少方差
    优势函数 \(A(s,a) = Q(s,a) - V(s)\) 中,\(V(s)\) 作为基线,保留动作间相对差异的同时降低方差。
  • 目标网络(Target Networks)
    类似DQN,使用独立的目标价值网络 \(V_{\phi'}\) 计算 \(s_{t+1}\) 的价值,避免价值估计过高震荡。
  • 并行多环境交互
    同时从多个环境中采集数据,提高样本效率并减少相关性。

5. 经典算法实例:A2C(Advantage Actor-Critic)

  • 直接使用优势函数 \(A(s,a) \approx \delta_t\) 更新Actor。
  • 同步并行处理多个worker的数据,稳定训练。

6. 总结与扩展
Actor-Critic通过分工协作平衡了探索(Actor)与评估(Critic),但其稳定性依赖超参数(如学习率 \(\alpha,\beta\))。后续算法如A3C(异步并行)、PPO(裁剪策略更新)、SAC(最大熵优化)在此基础上进一步提升了鲁棒性和效率。

深度强化学习中的Actor-Critic方法原理与实现详解 1. 问题描述 Actor-Critic方法结合了策略梯度(Policy Gradient)和值函数逼近(Value Function Approximation)的优点,是深度强化学习中的核心算法。它通过两个组件协同工作:Actor(执行者)负责根据当前策略选择动作,Critic(评判者)负责评估动作的价值。核心挑战在于如何让这两个组件高效交互并稳定学习。 2. 核心概念拆解 策略梯度方法(如REINFORCE) :直接优化策略参数,但依赖蒙特卡洛采样,方差大、学习慢。 值函数方法(如Q-learning) :学习价值函数间接优化策略,但处理连续动作空间困难。 Actor-Critic的融合思路 :用Critic的价值估计(低方差)替代REINFORCE中的蒙特卡洛回报,指导Actor的策略更新。 3. Actor-Critic框架的工作流程 步骤1:环境交互 Agent在状态 \(s_ t\) 下,Actor根据当前策略 \(\pi_ \theta(a|s_ t)\) 选择动作 \(a_ t\),执行后进入状态 \(s_ {t+1}\),获得奖励 \(r_ t\)。 步骤2:Critic评估 Critic(通常为价值网络 \(V_ \phi(s)\))计算状态价值: 当前状态价值: \(V_ \phi(s_ t)\) 下一状态价值: \(V_ \phi(s_ {t+1})\) 进而计算 优势函数估计 (如TD误差): \[ \delta_ t = r_ t + \gamma V_ \phi(s_ {t+1}) - V_ \phi(s_ t) \] 其中 \(\gamma\) 为折扣因子,\(\delta_ t\) 衡量动作 \(a_ t\) 相对于平均水平的优劣。 步骤3:Actor更新 用Critic提供的 \(\delta_ t\) 更新策略参数 \(\theta\): \[ \theta \leftarrow \theta + \alpha \nabla_ \theta \log \pi_ \theta(a_ t|s_ t) \cdot \delta_ t \] \(\nabla_ \theta \log \pi_ \theta(a_ t|s_ t)\) 为策略梯度方向,\(\delta_ t\) 作为缩放因子:若 \(\delta_ t>0\) 增强该动作概率,反之减弱。 步骤4:Critic更新 通过最小化时序差分误差优化价值网络参数 \(\phi\): \[ \phi \leftarrow \phi - \beta \nabla_ \phi \delta_ t^2 \] 使 \(V_ \phi(s)\) 更准确预测长期回报。 4. 关键改进与稳定化技巧 基线(Baseline)减少方差 : 优势函数 \(A(s,a) = Q(s,a) - V(s)\) 中,\(V(s)\) 作为基线,保留动作间相对差异的同时降低方差。 目标网络(Target Networks) : 类似DQN,使用独立的目标价值网络 \(V_ {\phi'}\) 计算 \(s_ {t+1}\) 的价值,避免价值估计过高震荡。 并行多环境交互 : 同时从多个环境中采集数据,提高样本效率并减少相关性。 5. 经典算法实例:A2C(Advantage Actor-Critic) 直接使用优势函数 \(A(s,a) \approx \delta_ t\) 更新Actor。 同步并行处理多个worker的数据,稳定训练。 6. 总结与扩展 Actor-Critic通过分工协作平衡了探索(Actor)与评估(Critic),但其稳定性依赖超参数(如学习率 \(\alpha,\beta\))。后续算法如A3C(异步并行)、PPO(裁剪策略更新)、SAC(最大熵优化)在此基础上进一步提升了鲁棒性和效率。