第18章 从 DQN 到 AlphaGo
第 12 章的网格世界可以为每个“状态-动作”格子保存一个 Q 值。换成电子游戏,状态是一张包含成千上万像素的屏幕,几乎不会原样重复。Q 表还没开始填,就已经大到无法枚举。
神经网络提供了一种替代:输入屏幕,直接预测每个动作的长期价值。相似画面可以共享边缘、物体和运动表示,模型还能为未见过的状态给出估计。
然而,把神经网络接到 Q-learning 后,训练一度非常不稳定。数据由不断变化的策略产生,目标又依赖网络自己的预测,相邻画面还高度相关。DQN 的突破不仅来自更强的卷积网络,也来自对训练数据和学习目标的重新组织。
随后,围棋系统把学习到的策略与价值重新放进搜索树。AlphaGo 的落子不是一个网络瞬间给出的答案,而是神经网络、自我对弈和蒙特卡洛树搜索共同计算的结果。
从 Q 表变成 Q 网络
Q-learning 希望估计动作价值 \(Q(s,a)\):在状态 \(s\) 执行动作 \(a\) 后,若以后采取高价值行为,预期能获得多少回报。
深度 Q 网络(Deep Q-Network, DQN)用参数为 \(\theta\) 的神经网络近似它:
\[ Q_\theta(s,a) \]
在 Atari 游戏中,输入是经过处理的连续多帧画面。多帧使模型能够推断速度和方向;卷积层提取视觉表示;最后一层为左、右、开火等每个离散动作输出一个 Q 值。
执行时,模型通常以较高概率选择 Q 值最大的动作,同时保留少量随机探索。得到奖励与下一画面后,这次转移又成为训练数据。
Mnih 等人的 DQN 在一组 Atari 2600 游戏中使用同一套学习框架直接从像素学习控制。(Mnih 等 2015年) “同一框架”不表示一组权重同时玩全部游戏,也不表示所有游戏都达到同样水平;每个游戏单独训练一套网络,得分尺度与人类基线也按游戏分别计算。
核心机制
DQN 用卷积网络把高维画面映射为各动作的长期价值。经验回放改变样本被训练的顺序,目标网络减慢学习目标的变化;这两个机制让“用自己的估计训练自己”不至于每一步都剧烈追逐。
直接按时间顺序训练为什么会摇晃
监督学习常随机打乱独立样本。游戏经验却连续到达:前后两帧几乎相同,一段时间内奖励和场景也高度相关。
若网络立即用每次新转移训练:
- 连续批次会被当前一小段场景支配;
- 刚学到的经验可能覆盖过去场景;
- 策略一改变,收集到的数据分布也改变;
- 网络的 Q 值变化,又会改变下一轮动作与训练目标。
学习器、数据和目标形成反馈环。一个短暂的高估可能让策略反复选择某动作,进一步收集偏向该动作的数据,再把高估放大。
经验回放把经历存进缓冲区
经验回放(experience replay)把转移 \((s_t,a_t,r_{t+1},s_{t+1})\) 存入缓冲区。训练时不只使用最新一条,而是随机抽取一批过去经验。
Long-Ji Lin 在早期强化学习工作中已经研究了回放经验以改进学习与规划。(Lin 1992年) DQN 将这一思想用于深度价值网络。
随机抽样有三个作用:
- 打散相邻画面的相关性;
- 让同一条昂贵交互经验被多次利用;
- 混合不同时期策略产生的数据,减缓分布突然变化。
缓冲区不是完美历史。容量有限时旧经验会被移除;策略变化太大时,旧经验又可能与当前决策相差很远。均匀抽样还会浪费大量容易、重复的转移。
优先经验回放按 TD 误差等信号提高“意外经验”的采样概率,并用重要性权重修正抽样偏差。(Schaul 等 2016年) 它提高数据效率,也引入新的超参数和反馈:当前误差大的样本不一定长期最有价值。
目标网络让学习目标慢一点移动
普通 Q-learning 的一步目标是:
\[ y=r+\gamma\max_{a'}Q(s',a') \]
若同一个神经网络同时产生左边正在更新的预测和右边的目标,参数刚移动,目标也立刻移动。模型像追逐一个不断后退的标尺。
DQN 保留一份参数较旧的目标网络 \(Q_{\theta^-}\):
\[ y=r+\gamma\max_{a'}Q_{\theta^-}(s',a') \]
在线网络 \(Q_\theta\) 每步更新;原始 DQN 每隔一段时间把在线参数复制到目标网络。后续一些实现改用缓慢的加权平均。两种做法都不会让目标永久固定,只是让它比在线预测变化得慢。
技术深潜:DQN 究竟优化什么
从回放缓冲区抽取一批转移,对每条非终止转移构造目标:
\[ y_i=r_i+ \gamma\max_{a'}Q_{\theta^-}(s'_i,a') \]
若 \(s'_i\) 已终止,后继价值为零,目标只剩 \(r_i\)。在线网络最小化 TD 误差,例如:
\[ L(\theta)= \frac{1}{B}\sum_{i=1}^{B} \bigl(y_i-Q_\theta(s_i,a_i)\bigr)^2 \]
计算梯度时把 \(y_i\) 当作常量,不通过目标网络继续反向传播。否则在线参数会同时追逐并改变目标,稳定化作用被破坏。
函数逼近、自举目标和离策略数据同时出现时,可能构成强化学习中著名的不稳定组合。经验回放与目标网络是工程缓解,不是普遍收敛证明。奖励尺度、裁剪、探索率、优化器和随机种子仍会显著改变结果。
最大值会放大估计噪声
假设几个动作真实价值接近,但网络估计各有随机误差。取最大值时,更容易选中被高估的动作,于是目标系统性偏高。
Double DQN 把“选择下一动作”与“评价该动作”分开:在线网络选择动作,目标网络给它估值。van Hasselt、Guez 与 Silver 展示了这种方法怎样降低过估计并改善多项 Atari 结果。(Hasselt 等 2016年)
这提醒我们,DQN 不是一个固定配方。后续改进还包括竞争网络结构、多步回报、分布式价值表示和组合式 Rainbow 等。每项改进针对不同误差来源,不能仅凭更高平均分断言机制在所有环境都更好。
游戏分数背后有哪些条件
Atari 是重要试验场,因为画面复杂、动作接口统一、模拟速度快、奖励明确。但它仍是受控环境:
- 动作集合很小;
- 游戏规则不会在训练中突然改变;
- 失败可以低成本重来;
- 数百万次交互不会损坏真实设备;
- 得分虽然不完美,却容易计算。
模型还可能利用闪烁、计分板和固定关卡规律,而不是形成可迁移的物体理解。不同生命终止处理、随机起始动作和帧跳设置也会改变成绩。
因此,“从像素达到人类水平”必须连同游戏集合、评价协议、训练交互量和人类基线定义一起阅读。它证明了深度表示与价值学习可以结合,不证明系统已经掌握开放世界常识。
价值网络之外,还可以直接学习策略
DQN 先估计每个动作价值,再选择最大者。另一条路线是直接学习策略 \(\pi_\theta(a\mid s)\),输出各动作概率。
策略梯度提高高回报轨迹中动作的概率,降低低回报动作的概率。它适合连续动作与随机策略,却可能有很高方差。常见 actor-critic 方法同时学习:
- actor 负责选择动作;
- critic 估计状态或动作价值,评价 actor 的选择。
围棋系统需要在巨大动作空间中决定落子。策略网络能迅速提出有希望的候选,价值网络能估计局面胜率;搜索再投入更多计算比较未来变化。这三者的结合比单独穷举或单独网络都更有效。
围棋为什么长期被认为很难
国际象棋平均每步有几十种选择,围棋常有上百个合法落点,棋局又可能持续数百步。搜索树宽且深,无法穷举到终局。
传统围棋程序还难以手工设计可靠评价函数。棋子没有固定分值,局部得失要结合势力、连通、死活和全局形势判断。一个看似亏损的落子可能几十步后产生作用。
蒙特卡洛树搜索通过多次模拟估计动作结果,已经显著改善电脑围棋。但纯随机模拟噪声大,搜索仍需要更好的候选优先级和局面评价。
AlphaGo 的关键不是抛弃搜索,而是让神经网络学习搜索最需要的两类知识:哪些落子值得先看,以及当前局面更可能由谁获胜。
AlphaGo 的几个部件怎样分工
2016 年发表的 AlphaGo 系统组合了多种网络和搜索。(Silver 等 2016年)
- 监督策略网络从人类高手棋谱学习预测下一步落子;
- 强化学习策略网络通过自我对弈进一步优化胜率;
- 价值网络从自我对弈局面估计最终胜负;
- 快速 rollout 策略以较低成本模拟棋局;
- 蒙特卡洛树搜索把策略先验、搜索统计、rollout 与价值估计结合后选择落子。
策略网络负责缩小搜索范围。若棋盘上有 200 个合法位置,它可以把计算集中到少数有希望的候选。价值网络负责提前停止部分模拟,不必每次都完整下到终局。
搜索则提供测试时计算:同一个局面思考更多次,统计通常更可靠。它还能发现单次策略网络没有首选、但深入观察后很有价值的变化。
蒙特卡洛树搜索怎样使用网络
蒙特卡洛树搜索(Monte Carlo tree search, MCTS)反复执行四类步骤:
- 选择:从根节点沿树选择兼顾当前价值与探索的动作;
- 扩展:到达未充分探索的局面时加入新节点;
- 评估:用价值网络或模拟估计该局面的胜负;
- 回传:把结果沿访问路径更新到各条边的统计量。
树中的回传只是更新访问次数与平均价值,不是神经网络训练中的反向传播。名称都含“向后传”,计算对象却不同。
搜索常在“目前平均价值高”和“访问较少但策略先验好”之间权衡。一个简化评分可以写成:
\[ \operatorname{score}(s,a)=Q(s,a)+U(s,a) \]
其中 \(Q\) 是当前搜索得到的平均价值,\(U\) 是鼓励探索的附加项。访问次数增加后,不确定动作的探索奖励逐步变化。
技术深潜:策略先验怎样进入搜索
AlphaGo Zero 一类系统常使用近似 PUCT 的选择项:
\[ U(s,a)=c\,P(s,a) \frac{\sqrt{N(s)}}{1+N(s,a)} \]
\(P(s,a)\) 是网络给出的策略先验,\(N(s)\) 是父节点访问次数,\(N(s,a)\) 是该动作访问次数,\(c\) 控制探索强度。
先验高且访问少的动作获得较大探索奖励;反复访问后分母增大,搜索更依赖实际回传价值。搜索结束时,根节点各动作的访问次数形成一个比原始网络更经过计算的策略分布 \(\pi\)。
训练可以让网络输出策略 \(p_\theta\) 与搜索分布 \(\pi\) 接近,同时让价值 \(v_\theta\) 接近最终胜负 \(z\):
\[ L(\theta)= (z-v_\theta)^2 -\pi^\mathsf{T}\log p_\theta +\lambda\lVert\theta\rVert^2 \]
搜索改进网络的决策目标,新网络又为下一轮搜索提供更好的先验与价值,形成策略改进循环。
自我对弈不是没有监督信号
围棋规则精确,终局胜负可以自动判定。系统不需要人逐步标注“这一步正确”,但每盘结束仍提供明确结果。
自我对弈让对手随模型一起变强。早期策略面对较弱版本学习基本胜负,后续版本不断产生更难局面。它还避免永远受固定人类棋谱限制。
但自我对弈不等于从真空学习。研究者仍提供:
- 棋盘表示与合法动作;
- 游戏转移规则;
- 胜负奖励;
- 网络结构与搜索算法;
- 训练预算和对手选择;
- 评价与版本更新规则。
若奖励无法自动判定、行动昂贵或环境中有真人承担风险,自我对弈路线就不能原样复制。
AlphaGo Zero 改变了哪些前提
AlphaGo Zero 不使用人类棋谱作为训练起点,只从围棋规则和自我对弈学习。(Silver 等 2017年) 它还把策略与价值合进一个残差网络,并用 MCTS 产生改进的落子分布。
一次迭代大致是:
- 当前网络指导 MCTS 进行自我对弈;
- 保存每个局面的搜索访问分布与最终胜负;
- 训练网络同时预测搜索策略和胜负;
- 新网络再生成更强的自我对弈数据。
它减少了人类示范依赖,却增加了自我对弈计算。系统仍使用完整围棋规则进行搜索,不是仅凭像素自行发现什么叫合法落子和胜利。
MuZero 连规则也不直接写进模型了吗
MuZero 学习一个内部动力学模型,在潜在状态中预测行动后的新表示、奖励、策略和价值,再用树搜索规划。它在多种棋盘和 Atari 任务中取得强结果,而不要求模型直接重建环境画面。(Schrittwieser 等 2020年)
这常被概括成“不知道规则也能规划”,但需要准确限定:系统仍通过真实环境获得观测、动作结果与奖励;训练过程仍知道哪些动作可执行,并使用搜索与回放。它没有得到显式规则表,而是学习对决策有用的动态表示。
学习模型会带来新风险。若内部动力学在少见局面上错误,搜索可能反复利用模型漏洞。预测短期准确也不保证多步想象可靠,规划深度会累积偏差。
深度强化学习为什么仍然难复现
监督学习固定数据集上的损失已经会受随机初始化影响;深度强化学习还多了一层数据反馈。不同探索动作改变后续状态,随后整个训练集都不同。
常见敏感项包括:
- 随机种子与环境版本;
- 奖励裁剪和终止定义;
- 回放容量、预热长度和抽样方式;
- 目标网络更新频率;
- 评估时是否关闭探索;
- 网络规模、帧处理和优化器;
- 报告最好一次还是多次训练分布。
高分曲线还可能隐藏样本效率问题。人玩几十局就掌握的规则,智能体可能需要数百万帧;模拟交互便宜不等于真实机器人、医疗或推荐决策也能承担相同试错。
从游戏成功能推到多远
DQN 与 AlphaGo 证明了几个重要组合可以工作:
- 深度网络能从高维状态学习价值与策略;
- 回放和慢目标能缓解自举训练的不稳定;
- 自我对弈能持续产生适合当前能力的对手与数据;
- 学习到的策略与价值能成为搜索的先验和启发式;
- 增加测试时搜索可以在固定参数之外提高决策质量。
游戏也提供了现实世界少有的便利:规则封闭、反馈明确、模拟准确、失败可重来、目标单一。开放环境中的目标会争议,规则会变化,观测不完整,行动可能不可逆,其他参与者也会适应。
因此,围棋超越顶尖人类是特定任务上的重大突破,不等于系统自动获得语言理解、日常常识或跨领域自主性。真正可迁移的是机制与工程经验,而不是把游戏成绩直接当成通用智能刻度。
P07 将在后续实践阶段从表格型 Q-learning 过渡到小型 DQN,对比没有回放、没有目标网络和完整配置时的训练曲线。实践仍然后置,不影响第五部阅读。
第四部至此建立了深度学习的三条变化:反向传播让多层表示可训练,卷积与循环把数据结构写进网络,生成模型与深度强化学习又把表示扩展到采样和行动。下一章将回到机器翻译的固定向量瓶颈,详细解释注意力如何让模型动态选择信息。
本章小结
- DQN 用神经网络近似动作价值,使 Q-learning 能从高维画面推广到未见状态。
- 连续经验高度相关,策略变化又改变数据分布;经验回放通过随机重用过去转移缓解这些问题。
- 目标网络让 TD 目标变化更慢,降低在线网络追逐自身即时预测造成的不稳定。
- 最大化含噪 Q 估计会产生过估计;Double DQN 分开动作选择与价值评价。
- AlphaGo 用策略网络提出候选、价值网络评估局面,再由 MCTS 分配测试时计算并选择落子。
- MCTS 回传搜索统计,不等于训练神经网络的反向传播。
- 自我对弈不需要逐步人类标签,但仍依赖规则、胜负奖励、搜索算法和大量计算。
- AlphaGo Zero 移除人类棋谱起点,用搜索结果监督策略与价值;MuZero 进一步学习供规划使用的潜在动力学。
- 游戏突破依赖封闭规则、准确模拟和廉价试错,不能未经验证外推到开放世界任务。
思考问题
- 若移除目标网络但保留经验回放,DQN 的学习目标会发生什么变化?
- AlphaGo 已有强策略网络,为什么仍要在每一步运行树搜索?
- 自我对弈用于围棋很成功,应用到真实谈判或交通控制时会缺少哪些关键条件?
延伸阅读
- Mnih 等人的 Nature 论文适合理解 DQN 如何把卷积表示、经验回放和目标网络组合。(Mnih 等 2015年)
- Lin 的论文可以追溯经验回放与学习、规划结合的早期思路。(Lin 1992年)
- Double DQN 与优先经验回放论文分别针对过估计和样本利用问题。(Hasselt 等 2016年; Schaul 等 2016年)
- Silver 等人的 AlphaGo 与 AlphaGo Zero 论文展示了从人类棋谱加搜索到纯自我对弈训练的变化。(Silver 等 2016年, 2017年)
- MuZero 论文适合理解潜在动力学、价值、策略与树搜索怎样进一步整合。(Schrittwieser 等 2020年)
