田渊栋:为什么新版阿尔法狗论文没上《自然》封面,却更经典

田渊栋/Facebook人工实验室科学家
2017-10-20 16:37
来源:澎湃新闻

AlphaGo Zero只用了490万的数据就达到了AlphaGo的成就。

【写在前面】

伦敦当地时间10月18日18:00(北京时间19日01:00),谷歌旗下的DeepMind团队公布了进化后的最强版AlphaGo ,代号AlphaGo Zero。相关论文再次登上世界顶级科学杂志——《自然》。

一年多前,AlphaGo便是2016年1月28日当期的封面文章,Deepmind公司发表重磅论文,介绍了这个击败欧洲围棋冠军樊麾的人工智能程序。也是自那时候起,AlphaGo在全球范围内掀起了人工智能浪潮。

那这次的新版本AlphaGo究竟有多厉害?打败李世石的AlphaGo用了3000万盘比赛作为训练数据,AlphaGo Zero用了490万盘比赛数据。经过3天的训练,AlphaGo Zero就以100:0的比分完胜对阵李世石的那版AlphaGo。

在DeepMind的最新论文中,AlphaGo Zero综合了上一个版本的策略网络和价值网,利用了强化学习的方法,只用了单一的神经网络、一台机器和4个TPU,就能在没有人类指导的情况下,只用3天时间进行学习,打败了战胜过李世石的那版AlphaGo。

看上去如此完美的AlphaGo Zero,在其他人工智能开发者眼里的表现如何,它对未来人工智能的启示又有哪些?

Facebook人工实验室成员田渊栋在自己的知乎账号上发表了自己的看法。他认为,DeepMind的新论文要比上一篇好很多,方法非常干净标准,结果非常好,以后肯定是经典文章。并且,他非常惊讶AlphaGo Zero竟只用了490万的数据就达到了AlphaGo的成就。

田渊栋曾先后在微软、谷歌、Facebook等科技公司实习工作。他在Facebook的办公桌离CEO扎克伯格只有6米远。他所负责的围棋项目(Darkforest)曾公开得到扎克伯格的表扬,目前他的研究主要集中在游戏人工智能开发上。

老实说这篇Nature要比上一篇好很多,方法非常干净标准,结果非常好,以后肯定是经典文章了。

Policy network(策略网络)和value network(价值网络)放在一起共享参数不是什么新鲜事了,基本上现在的强化学习算法都这样做了,包括我们这边拿了去年第一名的Doom Bot(编注:Facebook团队开发的人工智能系统),还有ELF(编注:Facebook人工智能游戏测试平台)里面为了训练微缩版星际而使用的网络设计。另外我记得之前他们已经反复提到用Value network对局面进行估值会更加稳定,所以最后用完全不用人工设计的default policy rollout(缺省策略)也在情理之中。

让我非常吃惊的是仅仅用了四百九十万的自我对局,每步仅用1600的MCTS rollout(蒙特卡罗搜树),Zero就超过了去年三月份的水平。并且这些自我对局里有很大一部分是完全瞎走的。这个数字相当有意思。想一想围棋所有合法状态的数量级是10^170,五百万局棋所能覆盖的状态数目也就是10^9这个数量级,这两个数之间的比例比宇宙中所有原子的总数还要多得多。仅仅用这些样本就能学得非常好,只能说明卷积神经网络(CNN)的结构非常顺应围棋的走法,说句形象的话,这就相当于看了大英百科全书的第一个字母就能猜出其所有的内容。用ML(机器学习)的语言来说,CNN的inductive bias(模型的适用范围)极其适合围棋漂亮精致的规则,所以稍微给点样本水平就上去了。反观人类棋谱有很多不自然的地方,CNN学得反而不快了。我们经常看见跑KGS或者GoGoD(编注:两者均为训练数据集)的时候,最后一两个百分点费老大的劲,也许最后那点时间完全是花费在过拟合奇怪的招法上。

如果这个推理是对的话,那么就有几点推断。一是对这个结果不能过分乐观。我们假设换一个问题(比如说蛋白质折叠 protein folding),神经网络不能很好拟合它而只能采用死记硬背的方法,那泛化能力就很弱,Self-play(自我对弈)就不会有效果。事实上这也正是以前围棋即使用Self-play都没有太大进展的原因,大家用手调特征加上线性分类器,模型不对路,就学不到太好的东西。一句话,重点不在左右互搏,重点在模型对路。

二是或许卷积神经网络(CNN)系列算法在围棋上的成功,不是因为它达到了围棋之神的水平,而是因为人类棋手也是用CNN的方式去学棋去下棋,于是在同样的道路上,或者说同样的inductive bias(归纳偏置)下,计算机跑得比人类全体都快得多。假设有某种外星生物用RNN的方式学棋,换一种inductive bias,那它可能找到另一种(可能更强的)下棋方式。Zero用CNN及ResNet的框架在自学习过程中和人类世界中围棋的演化有大量的相似点,在侧面上印证了这个思路。在这点上来说,说穷尽了围棋肯定是还早。

三就是更证明了在理论上理解深度学习算法的重要性。对于人类直觉能触及到的问题,机器通过采用有相同或者相似的inductive bias结构的模型,可以去解决。但是人不知道它是如何做到的,所以除了反复尝试之外,人并不知道如何针对新问题的关键特性去改进它。如果能在理论上定量地理解深度学习在不同的数据分布上如何工作,那么我相信到那时我们回头看来,针对什么问题,什么数据,用什么结构的模型会是很容易的事情。我坚信数据的结构是解开深度学习神奇效果的钥匙。

另外推测一下为什么要用MCTS而不用强化学习的其它方法(我不是DeepMind的人,所以肯定只能推测了)。MCTS其实是在线规划(online planning)的一种,从当前局面出发,以非参数方式估计局部Q函数,然后用局部Q函数估计去决定下一次rollout要怎么走。既然是规划,MCTS的限制就是得要知道环境的全部信息,及有完美的前向模型(forward model),这样才能知道走完一步后是什么状态。围棋因为规则固定,状态清晰,有完美快速的前向模型,所以MCTS是个好的选择。但要是用在Atari(雅达利)上的话,就得要在训练算法中内置一个Atari模拟器,或者去学习一个前向模型(forward model),相比actor-critic((演员评判家)或者policy gradient(策略梯度方法)可以用当前状态路径就地取材,要麻烦得多。但如果能放进去那一定是好的,像Atari这样的游戏,要是大家用MCTS我觉得可能不用学policy直接当场planning就会有很好的效果。很多文章都没比,因为比了就不好玩了。

另外,这篇文章看起来实现的难度和所需要的计算资源都比上一篇少很多,我相信过不了多久就会有人重复出来,到时候应该会有更多的insight(提示)。大家期待一下吧。

(本文获田渊栋授权发布,禁止二次转载)

    校对:张亮亮