IT 论文精读 · PAPER 55
Silver 等 · DeepMind · Nature 2016
2016 年初,谷歌旗下 DeepMind 的一支团队公布了 AlphaGo——第一个在正式对局里、不让子、在整张 19 路棋盘上击败职业围棋棋手的程序。围棋一直被看作人工智能最难啃的棋类堡垒,很多人以为机器还要再等十几年。AlphaGo 把这个时间表一下子提前了。
国际象棋早在 1997 年就被「深蓝」拿下了,围棋却又拖了近二十年。两个原因。一是选择太多:棋盘上每一步都有两三百个能下的点,一局又要下一百多手,可能的棋局比宇宙里的原子还多得多——想像下棋机器那样「把每种走法往后全部算清楚」,根本算不完。二是好坏说不清:国际象棋能大致数子力算优劣,围棋一块棋是死是活、这片地算谁的,常常要到很久以后才见分晓,连「现在谁占优」都很难量化。没法穷举,又没法打分,传统办法就卡住了。
AlphaGo 不去穷举,而是学人类高手那样靠棋感缩小范围、再往下推演几步。它训练了两个神经网络(都把棋盘当一张图来看):一个是「直觉网络」——扫一眼盘面,就点出「值得考虑的也就这么几手」,把两三百个选项砍到少数几个;另一个是「大局观网络」——看一眼盘面,直接估「这局大概谁会赢」,不必真的下到终局。有了这两样,机器只在少数好棋上、往下推演有限几步,就能做出判断。
分三步,很像一个人从入门到高手。第一步,看棋谱学直觉:喂进几千万个人类高手的落子,让「直觉网络」学会「换成人类高手,这里多半会下哪」。第二步,左右手互搏:让它拿自己跟自己成千上万盘地对弈,赢的走法就多鼓励、输的就少用——于是它不再只会模仿人,而是靠自己打出来的经验越下越强。第三步,练大局观:用这些自我对弈的胜负结果,训练「大局观网络」学会一眼估形势。三步下来,机器既有直觉、又有判断力。
AlphaGo 先在 2015 年 10 月 5:0 横扫欧洲冠军樊麾,2016 年 3 月又 4:1 战胜世界顶尖高手李世石,成了 AI 史上的标志时刻。更深远的是它证明了一条路子:用神经网络提供「直觉与判断」、再配上有取舍的搜索,能攻下人类以为需要「灵感」的难题。它的后代 AlphaGo Zero 干脆连人类棋谱都不看、纯靠自己对弈,反而更强;再往后 AlphaZero 用同一套办法通吃了国际象棋、将棋和围棋。
诚实说一句代价:AlphaGo 赢得并不「轻巧」——它动用了上千颗 CPU、上百块 GPU 的庞大算力,还先啃了几千万局人类棋谱当拐杖(而后来那个不用棋谱的版本更强,反倒说明这根拐杖并非必需)。
围棋难在「选择太多、又没法给盘面打分」。AlphaGo 用一个「直觉网络」砍掉大部分坏棋、一个「大局观网络」免去算到终局,再配上有取舍的推演——先看人类棋谱、再自我对弈越练越强,第一次在全盘对弈中击败职业棋手,也点亮了「神经网络 + 搜索」这条通用路线。
想看策略网络 / 价值网络怎么配合搜索、训练流程和实战数字? → 切到精读版
AlphaGo 用两个深度卷积网络——策略网络(policy network)负责「该考虑哪几手」、价值网络(value network)负责「这盘谁会赢」——去指导蒙特卡洛树搜索(MCTS),从而在围棋这个搜索空间约 250¹⁵⁰、又难以人工打分的博弈里,把「选择爆炸」和「无从估值」两大难题同时压下去,第一次在无让子的全盘对弈中击败职业棋手(2015 年 5:0 胜欧洲冠军樊麾),成为深度学习 + 搜索路线的里程碑。
250¹⁵⁰,穷举不可能。作者是 David Silver、Aja Huang、黄士杰等,来自 Google DeepMind,论文《Mastering the Game of Go with Deep Neural Networks and Tree Search》发在 Nature(2016 年 1 月)。它上承两条线:Tesauro 的 TD-Gammon(1990s,用神经网络 + 自我对弈玩西洋双陆棋)与 2006 年后统治电脑围棋的 MCTS 程序(Crazy Stone、Zen、Pachi 等,但只到业余高段);下启 AlphaGo Zero(2017,纯自我对弈、不用人类棋谱)、AlphaZero(通用于国际象棋 / 将棋 / 围棋)与 MuZero(连游戏规则都自己学)。
下棋程序的经典武器是极小化极大搜索(minimax):把博弈树展开、假设双方都走最优,回推出当前最佳一手。它的代价随树的规模爆炸——规模 ≈ 宽度 b 的深度 d 次方。国际象棋 b≈35, d≈80 已经很大,但靠「好的估值函数 + 大幅剪枝」,深蓝在 1997 年就赢了卡斯帕罗夫。
围棋把两件事同时顶到极限。其一,宽度爆炸:b≈250, d≈150,搜索空间约 250¹⁵⁰,合法局面数约 10¹⁷⁰——多过可观测宇宙的原子数,穷举彻底没戏。其二,无从估值:围棋一块棋的死活、一片模样最终归谁,往往要到很久之后才定,人类写不出可靠的中间局面评分函数——而这正是剪枝和提前停止搜索的前提。
此前最强的电脑围棋走的是 MCTS 路线:不打分,改成从当前局面用简单策略随机「走子到底」成千上万次,拿模拟胜率当估值。这让棋力从很弱提到了业余高段,但离职业还差一大截——因为随机走子太粗糙,既选不准该往哪里深挖,也估不准局面。AlphaGo 的动机就是:用深度网络把 MCTS 缺的两样东西——「往哪走」和「谁会赢」——补上。
AlphaGo 把 19×19 棋盘(外加落子历史、气数等特征)当成一张多通道「图片」,喂给两类卷积网络:
网络的棋感是分阶段「喂」出来的(见图 2):
另外还单独训了一个极简的快速走子策略(rollout policy):准确率只有约 24%,但速度快上千倍(约 2 微秒 vs 策略网络的约 3 毫秒),专供搜索里「快速模拟到终局」用——精度让位给速度。
真正下棋时,AlphaGo 每一手都跑一轮由网络引导的 MCTS。搜索树里每条边(一个「局面→走法」)记三个数:动作价值 Q(这步平均有多好)、访问次数 N(试过多少回)、先验概率 P(策略网络给的「这步有多值得考虑」)。每轮循环四步:
Q + u 最大的边,其中探索项 u 正比于 P/(1+N)——好棋(Q 高)和没怎么试过的高潜力棋(P 高、N 小)都被青睐,兼顾利用与探索。P,挂到树上。v,与用快速走子策略一路模拟到终局得到的胜负 z,按 (1−λ)·v + λ·z 混合(论文里 λ=0.5 效果最好:一个稳、一个准,互补)。Q 与 N。如此重复成千上万次后,最终落子选「访问次数 N 最多」的那一手——不是价值最高的,因为「反复被搜索选中」本身就是稳健性的证明。妙处在于:策略网络让搜索只在少数好棋上加深,价值网络让它不必次次算到终局,两者把原本天文数字的搜索压进了可算的范围。
战绩极其悬殊。分布式版 AlphaGo 对阵当时最强的其他围棋程序(Crazy Stone、Zen、Pachi、Fuego 等)495 局胜 494(99.8%),即便让对手 4 子仍大比例获胜。真正的分水岭是 2015 年 10 月:AlphaGo 以 5:0 击败欧洲围棋冠军樊麾(职业二段)——这是程序第一次在无让子的完整 19 路盘上战胜职业棋手。其棋力 Elo 约 3140,远高于其他程序(约 1900–2500)。
拆解实验也说明了每个部件的价值:单靠策略网络(不搜索)就已是业余高段;单靠价值网络评估、或单靠快速走子评估都不弱,但两者混合(λ=0.5)明显最强;去掉任一网络棋力都显著下滑。(论文发表后,2016 年 3 月 AlphaGo 又以 4:1 战胜世界顶尖高手李世石,其中第二局的「第 37 手」因极具创造性而广为流传——但这场对局不在本文范围内。)
围棋曾是 AI 公认的「登月级」难题,普遍预期还要十几年才可能被攻克,AlphaGo 把它提前了整整一代人的时间。它的深远之处不在「赢了围棋」,而在证明了一条通用范式:用深度网络提供「直觉(策略)」与「判断(价值)」,去引导一个有取舍的搜索——凡是能自我对弈、有明确胜负信号的问题,都可能这么攻下来。这条路直接催生了 AlphaGo Zero(2017:丢掉全部人类棋谱、纯自我对弈从零学起,棋力反超初代)、AlphaZero(一套算法通吃国际象棋、将棋、围棋)与 MuZero(连规则都自学);也让「深度强化学习 + 搜索」成为此后一系列突破(蛋白质结构、芯片布线、可控核聚变等)的思想模板,并把 AI 推到了大众视野的中心。
① 一句话:用策略网络(该考虑哪几手)+ 价值网络(谁会赢)引导蒙特卡洛树搜索,第一次在全盘对弈中击败职业围棋棋手。
② 痛点:围棋搜索空间约 250¹⁵⁰(宽度爆炸)+ 无法人工写出可靠的中间局面估值(无从剪枝/提前停)——穷举与传统估值双双失效。
③ 两把剪刀:策略网络砍掉大部分坏棋(缩宽度),价值网络一眼估胜负(截深度),把天文数字搜索压回可算范围。
④ 三步训练:SL 策略(学人类棋谱、准 57%)→ RL 策略(自我对弈、策略梯度、为赢棋)→ 价值网络(用自弈胜负回归、每局面取自不同对局防过拟合);另有极快的走子策略供模拟。
⑤ 搜索:每条边记 Q、N、P;选择走 Q+u(u∝P/(1+N))→ 扩展 → 评估(价值网 v 与走子 z 按 λ=0.5 混合)→ 回传;最终落访问次数最多的一手。
⑥ 结果:对其他程序 495 战 494 胜;2015 年 5:0 胜职业二段樊麾(史上首次全盘胜职业);发表后 4:1 胜李世石。
⑦ 影响:把围棋难题提前一代攻克;开创「网络给直觉+判断、引导搜索」范式,催生 AlphaGo Zero / AlphaZero / MuZero,成深度 RL 里程碑。
⑧ 局限:算力昂贵(千级 CPU / 百级 GPU);依赖人类棋谱(后被 Zero 版证明是拐杖);只适完美信息类问题;鲁棒性有盲区(李世石第四局、后续对抗攻击)。