《强化学习的数学原理》【学习笔记10】演员-评论家方法:RL 的集大成者

举报
yd_269763035 发表于 2026/10/24 13:36:22 2026/10/24
【摘要】 《强化学习的数学原理》赵世钰 著 · 第 10 章Actor-Critic = 策略梯度(Actor)+ 值函数估计(Critic)。它结合了值函数方法的高样本效率和策略梯度方法的连续动作支持,是现代深度强化学习的核心框架。 一、最简单的 Actor-Critic:QAC 从 REINFORCE 到 QACREINFORCE 的更新:θ←θ+α⋅Gt⋅∇θln⁡π(At∣St,θ)\thet...

《强化学习的数学原理》赵世钰 著 · 第 10 章

Actor-Critic = 策略梯度(Actor)+ 值函数估计(Critic)。它结合了值函数方法的高样本效率和策略梯度方法的连续动作支持,是现代深度强化学习的核心框架。


一、最简单的 Actor-Critic:QAC

从 REINFORCE 到 QAC

REINFORCE 的更新:

θ←θ+α⋅Gt⋅∇θln⁡π(At∣St,θ)\theta \leftarrow \theta + \alpha \cdot G_t \cdot \nabla_\theta \ln \pi(A_t|S_t, \theta)

问题:GtG_t 方差大、必须等回合结束。

QAC 的改进:用一个评论家网络 q^(s,a,w)\hat{q}(s, a, w) 代替 GtG_t:

θ←θ+αθ⋅q^(St,At,w)⋅∇θln⁡π(At∣St,θ)\theta \leftarrow \theta + \alpha_\theta \cdot \hat{q}(S_t, A_t, w) \cdot \nabla_\theta \ln \pi(A_t|S_t, \theta)

评论家自己用 TD 方法更新:

w←w+αw⋅δt⋅∇wq^(St,At,w)w \leftarrow w + \alpha_w \cdot \delta_t \cdot \nabla_w \hat{q}(S_t, A_t, w)

其中 δt=Rt+1+γq^(St+1,At+1,w)−q^(St,At,w)\delta_t = R_{t+1} + \gamma \hat{q}(S_{t+1}, A_{t+1}, w) - \hat{q}(S_t, A_t, w)。

两个角色

角色 参数 职责 更新方式
Actor(演员) θ\theta 生成动作 π(a∣s,θ)\pi(a|s, \theta) 策略梯度
Critic(评论家) ww 评估动作好坏 q^(s,a,w)\hat{q}(s, a, w) TD 学习

直觉:Actor 是"表演者",负责做决策;Critic 是"评委",负责打分。Actor 根据 Critic 的评分调整表演,Critic 根据实际结果调整评分标准。两者相互促进。


二、优势 Actor-Critic(A2C)

基准不变性

策略梯度中可以减去任意只依赖状态的基准 b(St)b(S_t):

∇θJ=E[(qπ(St,At)−b(St))∇θln⁡π(At∣St,θ)]\nabla_\theta J = \mathbb{E}\big[(q_\pi(S_t, A_t) - b(S_t)) \nabla_\theta \ln \pi(A_t|S_t, \theta)\big]

因为:

E[b(St)∇θln⁡π(At∣St,θ)]=∑sd(s)b(s)∑a∇θπ(a∣s)=∑sd(s)b(s)∇θ∑aπ(a∣s)=0\mathbb{E}[b(S_t) \nabla_\theta \ln \pi(A_t|S_t, \theta)] = \sum_s d(s) b(s) \sum_a \nabla_\theta \pi(a|s) = \sum_s d(s) b(s) \nabla_\theta \sum_a \pi(a|s) = 0

(最后一步用到 ∑aπ(a∣s)=1\sum_a \pi(a|s) = 1,梯度为 0。)

优势函数

最优基准是 vπ(St)v_\pi(S_t),定义优势函数:

Aπ(s,a)=qπ(s,a)−vπ(s)A_\pi(s, a) = q_\pi(s, a) - v_\pi(s)

直觉:优势 = 这个动作比"平均水平"好多少。

A2C 算法

初始化: Actor θ, Critic w (估计 v̂(s,w))
每步:
    用 π(·|S_t, θ) 采样 A_t
    执行 A_t,观察 R_{t+1}, S_{t+1}
    
    δ_t = R_{t+1} + γ v̂(S_{t+1}, w) - v̂(S_t, w)  # TD 误差
    
    # Critic 更新
    w ← w + α_w δ_t ∇_w v̂(S_t, w)
    
    # Actor 更新(用 δ_t 作为优势的估计)
    θ ← θ + α_θ δ_t ∇_θ ln π(A_t|S_t, θ)

精妙之处:TD 误差 δt=Rt+1+γv^(St+1)−v^(St)\delta_t = R_{t+1} + \gamma \hat{v}(S_{t+1}) - \hat{v}(S_t) 恰好是优势函数 Aπ(St,At)A_\pi(S_t, A_t) 的一步估计!所以 Actor 的更新用 δt\delta_t 代替 qπ−vπq_\pi - v_\pi,不需要单独估计 qq。


三、Off-policy Actor-Critic

重要性采样

行为策略 bb 生成数据,目标策略 π\pi 需要的梯度。用重要性采样修正:

ρt=π(At∣St,θ)b(At∣St)\rho_t = \frac{\pi(A_t|S_t, \theta)}{b(A_t|S_t)}

Off-policy 策略梯度:

∇θJ∝Eb[ρt⋅Aπ(St,At)⋅∇θln⁡π(At∣St,θ)]\nabla_\theta J \propto \mathbb{E}_b\left[\rho_t \cdot A_\pi(S_t, A_t) \cdot \nabla_\theta \ln \pi(A_t|S_t, \theta)\right]

代价:重要性采样的比率 ρt\rho_t 可能方差很大(两个策略差异大时),这是 off-policy 策略梯度的核心困难。


四、确定性策略梯度(DPG)

动机

策略梯度方法需要随机策略(因为 ∇ln⁡π\nabla \ln \pi 要求 π>0\pi > 0)。但很多控制任务的动作是连续且确定的。

确定性策略

a=μ(s,θ)a = \mu(s, \theta)

动作直接由确定性函数给出,不采样。

确定性策略梯度定理

∇θJ(θ)=E[∇θμ(s,θ)⋅∇aqπ(s,a)∣a=μ(s,θ)]\nabla_\theta J(\theta) = \mathbb{E}\left[\nabla_\theta \mu(s, \theta) \cdot \nabla_a q_\pi(s, a)\big|_{a=\mu(s,\theta)}\right]

注意:没有 ln⁡π\ln \pi 项,也没有对动作的求和/积分。这是确定性策略梯度的优势——避免了在高维动作空间中积分。

DDPG 算法

初始化: Actor μ(s;θ), Critic q̂(s,a;w), 目标网络 μ⁻, q̂⁻
        经验回放缓冲区 D
每步:
    用探索噪声选择动作: A_t = μ(S_t;θ) + noise
    执行 A_t,存入 D
    从 D 采样小批量
    # Critic 更新
    y = r + γ q̂⁻(s', μ⁻(s';θ⁻); w⁻)
    L = (y - q̂(s,a;w))²
    # Actor 更新
    ∇_θ J ≈ ∇_θ μ(s;θ) · ∇_a q̂(s,a;w)
    # 软更新目标网络
    θ⁻ ← τθ + (1-τ)θ⁻
    w⁻ ← τw + (1-τ)w⁻

DDPG = DQN 的连续动作版本:它用了经验回放和目标网络(来自 DQN),但策略是确定性的(来自 DPG),Critic 估计 q(s,a)q(s,a)(连续动作输入)。


五、Actor-Critic 方法谱系

Actor-Critic 家族
├── QAC          → 最基本,Critic 估计 q
├── A2C          → 用优势函数,Critic 估计 v
├── A3C          → A2C 的异步并行版本
├── Off-policy AC → 重要性采样,可利用旧数据
├── DDPG         → 确定性策略,连续动作
├── SAC          → 最大熵,兼顾探索和利用
├── PPO          → 截断重要性采样,工程友好
└── TD3          → DDPG + 双 Critic + 延迟更新

六、全书算法关系总结

                    Model-based              Model-free
                   (已知 p, r)              (未知 p, r)
                       │                        │
              ┌────────┴────────┐      ┌───────┴───────┐
         值迭代              策略迭代   MC 方法        TD 方法
         (第4章)             (第4章)   (第5章)        (第7章)
                                            │              │
                                     ┌──────┴─────┐   ┌───┴────┐
                                    REINFORCE   MC ε  Sarsa  Q-learning
                                    (第9章)    (第5章) (第7章)  (第7章)
                                        │                        │
                                   Actor-Critic            DQN
                                   (第10章)              (第8章)
                                        │
                              ┌─────────┼─────────┐
                             A2C      DDPG      SAC

七、总结

方法 Actor 更新 Critic On/Off-policy 动作空间
QAC q⋅∇ln⁡πq \cdot \nabla \ln \pi q^\hat{q} On 离散/连续
A2C δ⋅∇ln⁡π\delta \cdot \nabla \ln \pi v^\hat{v} On 离散/连续
Off-policy AC ρ⋅δ⋅∇ln⁡π\rho \cdot \delta \cdot \nabla \ln \pi v^\hat{v} Off 离散/连续
DDPG ∇μ⋅∇q\nabla \mu \cdot \nabla q q^\hat{q} Off 连续
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。