IT 论文精读 · PAPER 55

AlphaGo:深度网络 + 树搜索攻克围棋

Silver 等 · DeepMind · Nature 2016

EN →

这篇论文干了什么?

2016 年初,谷歌旗下 DeepMind 的一支团队公布了 AlphaGo——第一个在正式对局里、不让子、在整张 19 路棋盘上击败职业围棋棋手的程序。围棋一直被看作人工智能最难啃的棋类堡垒,很多人以为机器还要再等十几年。AlphaGo 把这个时间表一下子提前了。

为什么围棋这么难?

国际象棋早在 1997 年就被「深蓝」拿下了,围棋却又拖了近二十年。两个原因。一是选择太多:棋盘上每一步都有两三百个能下的点,一局又要下一百多手,可能的棋局比宇宙里的原子还多得多——想像下棋机器那样「把每种走法往后全部算清楚」,根本算不完。二是好坏说不清:国际象棋能大致数子力算优劣,围棋一块棋是死是活、这片地算谁的,常常要到很久以后才见分晓,连「现在谁占优」都很难量化。没法穷举,又没法打分,传统办法就卡住了。

它的点子:两种「棋感」加一次推演

AlphaGo 不去穷举,而是学人类高手那样靠棋感缩小范围、再往下推演几步。它训练了两个神经网络(都把棋盘当一张图来看):一个是「直觉网络」——扫一眼盘面,就点出「值得考虑的也就这么几手」,把两三百个选项砍到少数几个;另一个是「大局观网络」——看一眼盘面,直接估「这局大概谁会赢」,不必真的下到终局。有了这两样,机器只在少数好棋上、往下推演有限几步,就能做出判断。

它是怎么练出这份棋感的?

分三步,很像一个人从入门到高手。第一步,看棋谱学直觉:喂进几千万个人类高手的落子,让「直觉网络」学会「换成人类高手,这里多半会下哪」。第二步,左右手互搏:让它拿自己跟自己成千上万盘地对弈,赢的走法就多鼓励、输的就少用——于是它不再只会模仿人,而是靠自己打出来的经验越下越强。第三步,练大局观:用这些自我对弈的胜负结果,训练「大局观网络」学会一眼估形势。三步下来,机器既有直觉、又有判断力。

带来了什么?

AlphaGo 先在 2015 年 10 月 5:0 横扫欧洲冠军樊麾,2016 年 3 月又 4:1 战胜世界顶尖高手李世石,成了 AI 史上的标志时刻。更深远的是它证明了一条路子:用神经网络提供「直觉与判断」、再配上有取舍的搜索,能攻下人类以为需要「灵感」的难题。它的后代 AlphaGo Zero 干脆连人类棋谱都不看、纯靠自己对弈,反而更强;再往后 AlphaZero 用同一套办法通吃了国际象棋、将棋和围棋。

诚实说一句代价:AlphaGo 赢得并不「轻巧」——它动用了上千颗 CPU、上百块 GPU 的庞大算力,还先啃了几千万局人类棋谱当拐杖(而后来那个不用棋谱的版本更强,反倒说明这根拐杖并非必需)。

一句话记住

围棋难在「选择太多、又没法给盘面打分」。AlphaGo 用一个「直觉网络」砍掉大部分坏棋、一个「大局观网络」免去算到终局,再配上有取舍的推演——先看人类棋谱、再自我对弈越练越强,第一次在全盘对弈中击败职业棋手,也点亮了「神经网络 + 搜索」这条通用路线。

想看策略网络 / 价值网络怎么配合搜索、训练流程和实战数字? → 切到精读版