跳到主要内容

三条 update 规则的分野 — SARSA 与演员-评论员

这一章讲三件事: SARSA 与 Q-learning 隔着一整个字的差别 (max 换成「实际做的动作」),为什么值得单开一族; 多步回报 λ 怎么在「走一步」与「等结局」之间连续调档; 演员-评论员怎么把「选动作的」和「打分的」分成两个网络互相喂。 读完你会拿到一条清晰的对立轴——第 06 章 off-policy 这一侧到此完整, 这一章补齐 on-policy 的那一侧。

1. 这一章讲什么

第 06 章留下一个尾巴:on-policy 与 off-policy 并排写在书里的算法表上, 但当时只讲了 off-policy 的一侧。本章把另一侧讲完。

原书的排法是把这四个算法各写一节、互不相连:SARSA、SARSA(λ)、A2C、A3C1。 我们的重排:它们其实是同一条路上的三级台阶—— 第一步,把「更新时看谁」改成看实际动作(SARSA); 第二步,把「看一步」扩成「看多步、连续可调」(λ); 第三步,把「看多少步」这个问题干脆外包给一个专门的打分网络(演员-评论员); 最后把这个组合复制几十份并行(同时各跑各的)跑(A3C)。

2. 顶层全景:一条路,三级台阶

Q-learning(off-policy) Q(s) ← Q + α[ r + γ·max Q(s′,·) − Q ]
│ 「下一步」按什么算?
┌─────────────────────────────┴──────────────────────────────┐
▼ 按最大(理想中的最好) ▼ 按实际做的动作
学的是「最优策略」的价值 SARSA:on-policy
Q(s) ← Q + α[ r + γ·Q(s′,a′) − Q ]

┌───────────────────────────┘
▼ a′ 从一步扩到 n 步加权(λ)
SARSA(λ):在「一步」与「整局」间调档

▼ 干脆学一个 V(s) 当「平均基准」
A2C:演员选动作,评论员算优势

▼ 几十份并行,异步汇总
A3C

图说:每一级只改上一级的一处;读完本章回看这张图,四个名字应能各自就位。

主走查在同一条走廊上把第一级台阶算成两个数——Q-learning 与 SARSA 对同一步给出两个不同的更新目标

3. 核心原理

3.1 主走查:同一步,两个目标

走廊:s₀ ──前进(+0)──► s₁ ──前进(+5)──► s₂(终点)。γ=0.9,α=0.5。 行为策略是 ε-greedy(九成贪心、一成随机);当前估计 Q(s₀,前进)=1.0, Q(s₁,前进)=3.0,Q(s₁,后退)=0.2。

在 s₁,ε-greedy 恰好抽中了那「一成随机」,实际选了「后退」(探索的笨拙一步)。 现在往回更新 Q(s₀,前进),r=0:

Q-learning(off-policy):更新目标用「下一步的最大 Q」,与实际无关
目标 = 0 + 0.9 × max( Q(s₁,前进), Q(s₁,后退) ) = 0.9 × 3.0 = 2.70
更新 = 1.0 + 0.5 × ( 2.70 − 1.0 ) = 1.85

SARSA(on-policy):更新目标用「下一步实际选的动作」
目标 = 0 + 0.9 × Q(s₁, 后退) = 0.9 × 0.2 = 0.18
更新 = 1.0 + 0.5 × ( 0.18 − 1.0 ) = 0.59

(全部数字为演示编的;更新公式照书:Q 版取 max,SARSA 版取 Q(sₜ₊₁,aₜ₊₁)。)

1.85 对 0.59——同一条轨迹,两个算法给出完全不同的评价。 Q-learning 说「这条路的下一格本可以值 2.7」;SARSA 说「这条路的下一格 实际上只值 0.18,因为你带着一颗会瞎走的骰子」。各自成立: Q-learning 学到的是最优路线的价,但执行它的仍是那个会探索的行为策略—— 知行不一;SARSA 学到的就是「我这套(带探索的)打法」的真实价——知行合一, 代价是样本效率低:每条探索数据只用一次,书里原话「收敛快但样本浪费是最大短板」2。 (SARSA 的名字就是五个记号的缩写:状态、动作、奖励、新状态、新动作。)3

3.2 SARSA(λ):一步与整局之间,连续调档

「更新看一步」是 SARSA 的默认;但一步的估计噪声大,整局的真实回报又要等结局。 书里的 SARSA(λ) 把两端接通4:

  • 从 1 步、2 步、……直到整局,每一种「看多远」都给一个回报版本;
  • 用指数衰减的权重把它们加权平均:近的看得多,远的看得少;
  • λ=0 退回 SARSA(看一步),λ=1 退回蒙特卡罗(看整局), 中间值是两者的连续折中——书里明说这是在控制偏差与方差(结果抖不抖)的权衡4 (看一步:偏差大、方差小;看整局:无偏、方差大)。

工程上的载体叫资格迹(eligibility trace):给每个状态-动作对记一个 「刚才有多活跃」的分数,新近走过的加 1、其余按 γλ 衰减;更新时按这个分数 一网打尽地修所有近来走过的格子。书里列了它的三条效率来源:只用一个 短期记忆向量、不必等回合结束、更新连续发生5

3.3 A2C:给策略配一个打分员

现在把视角从「修价值表」换到「直接学策略」。第 09 章会讲:策略网络的方向由 「整局回报」驱动,噪声很大。A2C 的做法是拆成两个角色6:

  • 演员(actor): 策略网络,输出动作(控制智能体怎么动);
  • 评论员(critic): 价值网络,给动作打分(衡量这步有多好)。

书里给的合作方式值得原样记住:演员提出下一步动作,它自己并不知道这是不是最好; 评论员进场,评估这个动作的优劣,并给演员指出该往哪调参数6。评分用的就是 第 04 章的优势:A(s,a) = Q(s,a) − V(s),正优势把梯度往这个动作的方向推, 负优势往反方向推7

走廊上演一遍(数字为演示编的):评论员估计 V(s₁)=2.0;演员在 s₁ 选了「前进」, 后来拿到 Q 估计 3.0 → 优势 = +1.0 → 「前进」的概率被往上推; 若下次优势是 −1.8(比如选了「后退」),概率被往下压。 演员只收到「比平均好/差多少」这一个数——比起「整局回报」的狂野波动, 这个数稳得多。书里给的实现细节:评论员的打分器(给动作打基准分的那部分)用自举回报 G ≈ 本步奖励 + γ×V(下一状态) 当目标,损失用均方误差或较温和的 Huber——两个工具都是第 05 章的存货。

两套参数都按梯度下降(顺着『往哪调会更好』的方向一小步一小步挪)更新8

3.4 A3C:把演员复制几十份

A3C(DeepMind,2016)的洞察不在数学——书里明说数学与 A2C 相同—— 在组织方式9:

  • 很多个智能体,各带一份网络参数、各自一份环境副本;
  • 互不协调地异步(你算你的、我算我的,谁也不等谁)在各自环境里探索、算梯度,送回一个全局网络汇总;
  • 效果:书里给的两条——打散了样本的相关性(各副本走的是不同局面), 并且并行本身就稳定了训练9

书里报告的战绩:在 Atari 游戏、电机控制、3D 迷宫导航上超过了此前方法10。 一句话理解 A2C 与 A3C 的分工:A3C 证明「多份异步副本」稳;工程上把汇总改成 同步批处理,就是 A2C——A2C 常被叫作 A3C 的同步版,这一句定位是书里 「A2C(also A3C and SAC)combine both approaches」一笔带过的地方,我们替它补齐11

4. 作者的判断与证据

  • 书里给证据的: SARSA 的五元组与 on-policy 定义、单策略用于探索与目标、 样本效率短板;λ 家族与偏差-方差权衡;A2C 的演员/评论员分工与优势梯度; A3C 的异步结构与其稳定训练的发现,均为书里明写内容23469
  • 书里给战绩的: A3C 在 Atari/电机控制/3D 迷宫超过此前方法——这是书里 少数带「超过」字样的实证陈述10
  • 作者留白的: SARSA 的经典优势场景(探索有真实代价的环境里更安全) 书里没有举例;A2C 伪代码书里注明取自 Lilian Weng 的博客12—— 教材引博客,顺带说明这个领域的教学材料长在工程社区里。

5. 边界与局限

  • 知行合一是双刃剑。 SARSA 评估的是「带探索的打法」的价——探索代价高的任务 (悬崖边上乱试会坠崖)它更保守,但也学不到不带探索时的最优路线; 书里只说了「直接优化目标、收敛快」,没有讲这条边界,由我们补上。
  • λ 不是免费午餐。 资格迹要多存一份「活跃度」向量、每个参数一份; 书里列了效率优势,没列这份开销。
  • A3C 的异步有竞态。 各线程参数陈旧度不同(你算梯度时,全局网络可能已被别人 改过);书里只报了「并行稳定」,没提陈旧梯度问题。
  • 书里 4.3 节对 on-policy「收敛快」的判断与「样本效率低」并置2, 两个「快/慢」口径不同(一个看要走多少步,一个看要吃多少条数据),读时容易打架——照实指出。

6. 可带走的

  1. 一句话分族:更新目标用 max 是 off-policy(Q-learning),用实际动作是 on-policy(SARSA);
  2. 主走查的两个数(1.85 对 0.59)值得记住:同一步,「本可以」与「实际上是」差这么远;
  3. 知行合一的代价与好处:SARSA 评估自己带探索的打法——探索有代价的任务更稳, 但学的是保守版策略;
  4. λ 是「看多远」的连续旋钮:0=一步(SARSA),1=整局(蒙特卡罗); 偏差与方差在两端,工程取中间;
  5. 资格迹=「近来谁活跃」的记分板,让一次更新同时修一批新近走过的格子;
  6. 演员-评论员 = 选动作的 + 打分的:优势(Q−V)一个数指导演员, 比整局回报稳;评论员自己的打分器用自举回报训练;
  7. A3C 的贡献是组织不是数学:几十份环境副本异步探索,打散相关性、稳住训练;
  8. 读到「A2C/A3C/SAC」这种三连缩写,先问:演员是谁、评论员是谁、并行了几份

7. 原文地图

主题原书章原文位置
SARSA 五元组缩写、on-policy 单策略4.3 State-Action-Reward-State-Action (SARSA)text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:39(搜「acronym」) · text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:43(搜「single policy」)
Q(sₜ₊₁,aₜ₊₁)=Q(sₜ₊₁,π(sₜ₊₁)) 与 off 之别4.3 State-Action-Reward-State-Action (SARSA)text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:53(搜「highlighting the difference」)
收敛快、样本效率短板4.3 State-Action-Reward-State-Action (SARSA)text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:53(搜「sample inefficiency」)
多步回报、λ=0/1 两端4.3 State-Action-Reward-State-Action (SARSA)(§4.4)text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:209(搜「middle ground」) · text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:216(搜「eligibility trace」)
资格迹三条效率来源4.3 State-Action-Reward-State-Action (SARSA)(§4.4)text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:161(搜「eligibility traces」)
演员/评论员两角色与分工4.5 Advantage Actor Critic (A2C)text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:47(搜「critic is a value-based」) · text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:62(搜「evaluates the proposed action」)
正优势推梯度4.5 Advantage Actor Critic (A2C)text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:88(搜「pushes the gradient」)
自举回报、评论员 MSE/Huber4.5 Advantage Actor Critic (A2C)text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:97(搜「bootstrapped return」) · text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:132(搜「Huber」)
伪代码出处 Lilian Weng4.5 Advantage Actor Critic (A2C)text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:217(搜「Lilian Weng」)
A3C 结构(多代理、异步、全局网络)4.6 Asynchronous Advantage Actor Critic (A3C)text/13-ch04-06-4-6-asynchronous-advantage-actor-critic-a3c.txt:39(搜「asynchronous」)
并行稳定训练、打散相关4.6 Asynchronous Advantage Actor Critic (A3C)text/13-ch04-06-4-6-asynchronous-advantage-actor-critic-a3c.txt:43(搜「stabilizes the training」)
数学与 A2C 相同、只是并行化4.6 Asynchronous Advantage Actor Critic (A3C)text/13-ch04-06-4-6-asynchronous-advantage-actor-critic-a3c.txt:52(搜「parallelized」)
Atari/电机/3D 迷宫战绩4.6 Asynchronous Advantage Actor Critic (A3C)text/13-ch04-06-4-6-asynchronous-advantage-actor-critic-a3c.txt:170(搜「Atari」)
A2C/A3C/SAC 并列一句4.5 Advantage Actor Critic (A2C)text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:58(搜「combine both」)

Footnotes

  1. 原书第 4 章各小节的编排(Q-learning、DQN、SARSA、SARSA(λ)、A2C、A3C 各独立成节),见 chapters.json 与 text/08–13 号文件;「互不相连、各写一节」是对编排的观察,不是书中原话。

  2. 出处:「4.3 State-Action-Reward-State-Action (SARSA)」第 53 段(text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:53,搜「sample inefficiency」)。原文:on-policy 直接优化关心的目标、用直接行为值学习收敛快;样本无效率通常是最大短板。 2 3

  3. 出处:「4.3 State-Action-Reward-State-Action (SARSA)」第 39 段(text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:39,搜「acronym」)。五元组 sₜ,aₜ,rₜ,sₜ₊₁,aₜ₊₁ 缩写为 SARSA;更新式见第 47 段(式 4.12)。 2

  4. 出处:「4.3 State-Action-Reward-State-Action (SARSA)」§4.4 第 209–216 段(text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:209,搜「middle ground」)。多步回报从 1 步(SARSA)覆盖到整局(MC);q^λ 加权平均;λ=0 是 SARSA、λ=1 是 MC;偏差/方差权衡见第 216 段(搜「bias/variance」)。 2 3

  5. 出处:「4.3 State-Action-Reward-State-Action (SARSA)」§4.4 第 161–177 段(text/11-ch04-03-4-3-state-action-reward-state-action-sarsa.txt:161,搜「eligibility traces」)。短期记忆向量、单向量替代特征列表、不等回合结束连续学习。更新式(带 δₜ 与 e)见第 224–243 段。

  6. 出处:「4.5 Advantage Actor Critic (A2C)」第 47–62 段(text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:47,搜「critic is a value-based」)。评论员=值网络,演员=策略网络,并行互喂;「演员提出动作但不知是否最优,评论员评估并提示调整」见第 62 段。 2 3

  7. 出处:「4.5 Advantage Actor Critic (A2C)」第 66–88 段(text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:88,搜「pushes the gradient」)。A=Q−V;正优势把梯度往该方向推,反之亦然。

  8. 出处:「4.5 Advantage Actor Critic (A2C)」第 97–157 段(text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:97,搜「bootstrapped return」)。Gₜ≈Rₜ₊₁+γV_ω(sₜ₊₁);评论员目标 MSE 或 Huber(第 132 段);随机梯度下降更新(第 153 段)。

  9. 出处:「4.6 Asynchronous Advantage Actor Critic (A3C)」第 39–43 段(text/13-ch04-06-4-6-asynchronous-advantage-actor-critic-a3c.txt:39,搜「asynchronous」)。DeepMind 2016 公开;多智能体各带参数与环境副本、不全局协调;缓解样本相关;并行稳定训练(第 43 段)。 2 3

  10. 出处:「4.6 Asynchronous Advantage Actor Critic (A3C)」第 170 段(text/13-ch04-06-4-6-asynchronous-advantage-actor-critic-a3c.txt:170,搜「Atari」)。 2

  11. 出处:「4.5 Advantage Actor Critic (A2C)」第 58 段(text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:58,搜「combine both」)。原文:Actor critic methods like A2C(also A3C and SAC)combine both approaches。「A2C 是 A3C 的同步版」为补充(不在书里,来自通用知识)。

  12. 出处:「4.5 Advantage Actor Critic (A2C)」第 217 段(text/12-ch04-05-4-5-advantage-actor-critic-a2c.txt:217,搜「Lilian Weng」)。书注:伪代码基于 Lilian Weng 的博文《Policy Gradient algorithms》。