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