IT 论文精读 · PAPER 53
Mnih 等 · DeepMind · NIPS 2013 深度学习 Workshop
2013 年,DeepMind 一队人(Mnih 等)做出了 DQN:一个程序,只盯着雅达利(Atari)老游戏机的屏幕像素和当前得分,没人告诉它任何规则,就自己摸索着学会了打游戏——而且同一套程序、一个字不改,学会了打砖块、乒乓、太空侵略者等 7 款风格迥异的游戏,好几款还打得比人类高手好。这是深度学习第一次和强化学习(靠奖励试错来学)成功合体,后来下围棋的 AlphaGo、乃至把 ChatGPT 调教得体贴的那套训练法,都发源于这条路。
在这之前,想让电脑玩游戏,得由人类工程师手把手告诉它该看什么:球在哪、板子在哪、敌人有几个……换个游戏就得重写一遍。DQN 反过来:什么都不告诉它,只把原始画面和当前分数丢过去,剩下的自己悟。更反直觉的是,同一套程序不改任何设置,喂给它 7 个完全不同的游戏,它一个个都学会了。
DQN 的核心,是训练出一个"打分员":看着当前这一屏画面,给每个能按的按钮打个分——这个分不是"按下去马上得几分",而是"从现在这么按下去、一路玩到底,大概总共能攒多少分"。有了这张分数表,玩法就简单了:每一步都挑分最高的按钮按。真正的难点全在于把这个"打分员"练准——它得学会为了以后的大分、忍住眼前的小利(比如先躲子弹,而不是急着开火)。
把深度网络硬塞进强化学习,一开始根本训不稳、动不动就崩。DQN 的救命窍门叫经验回放(experience replay):它随身带一个"日记本",把每一个瞬间都记下来——(当时的画面、按了哪个键、得了多少分、下一屏画面)。训练时不只盯着刚发生的这一下,而是随手翻回过去的旧页、打乱了一起复习。为什么要打乱?因为连着几帧画面太像了(都在同一个角落打转),只学眼前会让它钻进死胡同;翻旧账、混着学,学得又稳又省——一段经历还能反复复习好多遍,不浪费。
DQN 证明了一件从前做不到的事:一个统一的程序,能从最原始的画面里、自己学会多种任务——不用人喂特征、不用为每个游戏定制。它点燃了深度强化学习这整个领域:两年后的升级版在 49 款游戏上达到人类水平,再往后就有了 AlphaGo。代价也实打实:它要没日没夜地玩上百万局,才学得会人类几分钟就上手的东西;碰到"先找钥匙、很久之后再开门"这种需要长远谋划的游戏,它还是抓瞎。
用一个卷积网络当"打分员",看着屏幕像素给每个动作估一个"未来总分",再靠"经验回放"这本反复翻的日记把训练稳住——同一套程序不改一字,从零学会打 7 款雅达利游戏、好几款超过人类。这是深度学习和强化学习第一次成功牵手,深度强化学习的开山之作。
想看网络结构图、Q 值公式和实验数字? → 切到精读版
DQN(Deep Q-Network)第一次让一个深度神经网络只从原始屏幕像素和游戏分数、用强化学习(reinforcement learning)学会打雅达利游戏:它用一个卷积网络(CNN)去近似 Q-learning 里的动作价值函数(action-value function) Q(s,a)——即"在画面 s 下按动作 a、之后能拿到的未来总回报",再用经验回放(experience replay)治好了"深度网络 + 强化学习一训就发散"的老大难。同一套网络与超参数、不为任何游戏定制,在 7 款 Atari 游戏上有 6 款超过此前最好方法、3 款超过人类高手,开启了深度强化学习。
Q(s,a):在状态 s 下做动作 a 的长期价值;学会后每步挑 Q 最大的动作即可。DQN 是用神经网络来"记"这张表。作者是 Volodymyr Mnih、Koray Kavukcuoglu、David Silver、Alex Graves 等,来自伦敦的 DeepMind,2013 年底发在 NIPS 深度学习 workshop。它上承两条线:一是 Q-learning(Watkins 1989)这套经典强化学习算法,二是刚在图像上证明威力的深度卷积网络(AlexNet,2012)——DQN 把两者第一次稳定地拼到了一起。下启 2015 年的《Nature》升级版(加了目标网络、在 49 款游戏上达到人类水平)、AlphaGo(2016),以及之后整整一个深度强化学习浪潮。
强化学习的旧世界里,真正的成功大多依赖人类手工设计的特征。经典案例 TD-Gammon(1990 年代下西洋双陆棋到大师级)之所以能成,很大程度靠的是低维、被人整理好的棋盘状态。可一旦想让智能体直接从原始像素学起,麻烦就来了。
深度学习之所以好用,靠的是海量有标注、且样本相互独立的数据。强化学习偏偏三条都不满足:奖励往往稀疏、有噪声、还严重滞后(今天这一按的好坏,可能几百帧后才见分晓);数据不是独立的,连续几帧高度相关;更糟的是,数据分布会随策略一起变——网络学好一点、行为就变、看到的画面也跟着变,像追着自己影子跑。而理论早就警告:把非线性函数近似(神经网络)+ Q-learning + 自举(拿自己的估计当学习目标)三者凑一起,很容易发散(后人称"致命三角")。所以当时的主流只敢用线性模型配手工特征。DQN 要回答的就是:怎么让"从像素端到端学"这件事真的稳下来。
先把游戏写成强化学习的语言:每一帧,智能体看到画面(状态 s),选一个手柄动作 a,拿到分数变化(奖励 r),画面转到 s'。目标不是最大化眼前这一分,而是最大化打折后的未来总回报。Q-learning 用一个动作价值函数 Q*(s,a) 来刻画"在 s 下做 a、之后一直玩到最好,能期望拿多少总回报"。它满足一条自洽的贝尔曼方程(Bellman equation):Q*(s,a) = E[ r + γ·maxa' Q*(s',a') ]。
白话讲:"现在这步的长期价值 = 眼前拿到的奖励 r + 到了下一屏、再挑最好动作能拿到的价值(打个折 γ)。" 学习时就把右边这一坨当成"正确答案"(叫目标值),逼着 Q 去逼近它——这正是"自举":拿自己对未来的估计,来教自己现在。
游戏画面成千上万种,不可能真列一张表,于是 DQN 用一个卷积网络 Q(s,a;θ)(θ 是网络参数)来近似它。输入不是单帧,而是最近 4 帧叠在一起的画面(每帧缩成 84×84 灰度)——因为单看一帧分不清球是往上还是往下飞,叠几帧才带上了"运动方向和速度"。网络吐出的是一排数:每个可选动作对应一个 Q 值,一次前向就把所有动作都打了分。
怎么训练它?把上面的目标值 y = r + γ·maxa' Q(s',a';θ) 当"答案",最小化预测与答案之差的平方 L = ( y − Q(s,a;θ) )²,再用梯度下降(论文用 RMSProp、小批量各 32 条)一点点调 θ。说白了,这就是把强化学习变成了一个不断朝"自己算出的未来目标"回归的监督学习问题。
光有上面两步还不够——直接拿"刚玩出来的连续帧"去训,网络很快就崩。原因就是前面说的:连续样本高度相关,梯度下降却假设样本独立;而且当前策略决定了下一批数据,一旦网络偏向某个动作,接下来看到的全是那类画面,正反馈一放大就发散。
DQN 的解法朴素得惊人——经验回放:把智能体每一步的经历 (s, a, r, s') 存进一个能装百万条的回放池(replay memory);训练时不用最新那条,而是从池子里随机抽一小批来更新网络。这一下带来三个好处:
探索用 ε-贪心(ε-greedy):以概率 ε 随机乱按、其余时候挑 Q 最大,ε 从 1 逐步退火到 0.1,先广撒网再收敛。奖励裁剪:把每步奖励统一压到 {−1, 0, +1},这样同一套学习率能通吃计分差异极大的不同游戏。还有跳帧(每 4 帧才决策一次)。最关键的是——7 款游戏用完全相同的网络结构与超参数,不为任何一款调参,这才凸显了方法的通用。
诚实补一句:2013 这一版算目标 y 时用的还是正在被更新的同一个网络,其实仍不够稳;两年后的《Nature》版加了一个目标网络(target network,隔一段才同步一次的 Q 副本)专门算 y,训练才真正稳定,并扩到 49 款游戏、达到人类水平。
论文在 ALE 的 7 款 Atari 游戏上评测:Beam Rider、Breakout(打砖块)、Enduro(赛车)、Pong(乒乓)、Q*bert、Seaquest、Space Invaders(太空侵略者)。同一套网络与超参数、只吃像素和分数,结果在其中 6 款超过此前所有方法(包括那些用了手工特征的),并在 Breakout、Enduro、Pong 3 款上超过人类高手。一个通用架构、零游戏定制就能横跨这么多风格迥异的游戏,这在当时前所未见。
DQN 是深度学习与强化学习第一次令人信服的联姻,直接奠基了深度强化学习这一整个领域。它证明了一个此前做不到的命题:单一架构能从最原始的感知输入里、靠一个奖励信号学会多种任务。此后的谱系一路展开:2015 年《Nature》版(目标网络 + 49 款游戏达到人类水平),Double DQN、Dueling DQN、优先经验回放、Rainbow 等一串改进;再到 AlphaGo / AlphaZero / MuZero,以及机器人控制。经验回放本身也成了深度 RL 的标准零件。可以说,今天从游戏 AI 到用奖励信号对齐大模型的思路,都能追溯到这一篇"深度 RL 能行"的证明。
max 操作会系统性高估 Q 值;这些在《Nature》版和后来的 Double DQN 才被补上。① 一句话:用卷积网络近似 Q-learning 的动作价值函数 Q(s,a),只从像素和分数、端到端学会打雅达利游戏。
② 痛点:RL 数据稀疏、滞后、强相关且分布随策略漂移;"神经网络 + Q-learning + 自举"易发散(致命三角)。
③ 目标:贝尔曼式 y = r + γ·max Q(s',a') 当"答案",最小化 (y−Q(s,a))²,把 RL 变成朝自算目标回归的监督学习。
④ Q 网络:输入最近 4 帧(带上运动信息),一次前向为每个动作输出一个 Q 值,挑最大者执行。
⑤ 关键稳定器:经验回放——把 (s,a,r,s') 存回放池、随机抽小批训练,打散相关性、复用数据、抹平分布抖动。
⑥ 工程:ε-贪心探索、奖励裁剪到 {−1,0,+1}、7 款游戏同一套超参;2015《Nature》版再加目标网络才真正稳。
⑦ 结果:7 款游戏 6 款超此前最好、3 款超人类高手,全靠同一架构零定制。
⑧ 影响:开创深度强化学习,直通 Nature 人类水平版、AlphaGo 及后续一整波方法。
⑨ 局限:极耗样本、会高估、搞不定稀疏奖励/长程规划、仅限离散动作、无收敛保证。