关于 AlphaGo 论文的阅读笔记

这是Deepmind 公司在2016年1月28日Nature 杂志发表论文 《Mastering the game of Go with deep neural networks and tree search》。介绍了 AlphaGo 程序的细节。html

本博文是对这篇论文的阅读笔记。算法

AlphaGo 神经网络构成

AlphaGo 整体上由两个神经网络构成。如下我把它们简单称为「两个大脑」,这并不是原文中的提法,仅仅是个人一个比喻。网络

第一个大脑(Policy Network)的做用是在当前局面下推断下一步可以在哪里走子。它有两种学习模式:一个是简单模式。它经过观察 KGS(一个围棋对弈server)上的对局数据来训练。粗略地说:这可以理解为让大脑学习「定式」,也就是在一个给定的局面下人类一般会怎么走,这样的学习不涉及对优劣的推断。机器学习

还有一个是自我强化学习模式。它经过本身和本身的海量对局的终于胜负来学习评价每一步走子的优劣。因为是自我对局,数据量可以无限增加。函数

第二个大脑(Value Network)的做用是学习评估整体盘面的优劣。它也是经过海量自我对局来训练的(因为採用人类对局会因为数据太少而失败)。post

在对弈时。这两个大脑是这样协同工做的:学习

第一个大脑的简单模式会推断出在当前局面下有哪些走法值得考虑。google

第一个大脑的复杂模式经过蒙特卡洛树来展开各类走法,即所谓的「算棋」,以推断每种走法的优劣。在这个计算过程当中,第二个大脑会协助第一个大脑经过推断局面来砍掉大量不值得深刻考虑的分岔树,从而大大提升计算效率。人工智能

与此同一时候,第二个大脑自己经过下一步棋致使的新局面的优劣自己也能给出关于下一步棋的建议。spa

终于,两个大脑的建议被平均加权。作出终于的决定。

在论文中一个有趣的结论是:两个大脑取平均的结果比依赖二者各自得出的结果都要好很是多。

这应当是让 AlphaGo 表现出和人类类似性的关键所在。


======================================
两个网络的输入都是整个棋盘的状态,不存在一个注重局部一个注重整体。差异在于功能,policy network用于直接给出落子策略,value network用于高速预计当前局面致使终于获胜的几率。MCTS在一个简化版的policy network的指导下屡次搜索到终局来实时(但比較慢)预计当前局面终于获胜的几率。

value network估算的几率和MCTS估算的几率直接加权平均,终于选择落子位置的时候是根据这个加权平均和完整版policy network给出的对各落子位置的收益的一个加权平均,但是一个位置被MCTS搜索(类似于计算)的次数越多,policy network的结果(类似于经验和直觉)给的权值也越小。因此这一步并不是一个简单的加权平均。也不是局部推断和全局推断的加权平均。两个网络考虑了多少全局因素和局部因素仅仅跟训练数据和当前棋盘状态有关,跟用的哪一个网络没有关系。

使用图像识别常用的卷积神经网咯识别棋局确实可能不是最好的方案,但是围棋的状态和图像都具备必定的平移对称性。这是卷积网络擅长利用的特色。

我不了解围棋,但我猜人识别围棋局面应该也是有使用识别图像时的类似思惟的。我看到有懂围棋的说人会使用一些抽象的模糊的概念进行高速但不精确的推演,假设这点很是重要的话,现在的算法可能还需要增长recurrent neural network来实现类似的功能。但也应该不是大问题。

加上机器高速搜索的能力。我以为三月份输赢或许很差说。但是AI在围棋上碾压人类也就一两年内的事了。

学习效率问题。现在AI学习的方式确实跟人很是不同,但这仅仅是因为人在学习一个新领域的知识的时候并不是真正从零開始的,而像神经网络这样的模型每每是从随机的參数開始训练的,没有不论什么别的先验信息。

比方AI假设懂得人类语言以及各类常识,常用概念,那么開始学围棋的时候并不用像现在这样看大量人类的棋谱,而后疯狂本身跟本身下,而可以跟人同样由老师从基础知识開始一点点教授。这样或许起步能更快一些。

但是到了需要大量模仿和练习来提高技能的阶段,AI的学习效率真不必定比人差。

======================================


提出如下这些问题和评论

首先,这些神经网络训练在很是大程度上是经过自我对局来实现的。

这既是某种优点(依照 Facebook 人工智能研究员田渊栋的说法,几千万自我对局这样的规模是至关惊人的数据量)。某种程度上来讲也是不得已而为之,因为人类对局的总数实在太少,会致使机器学习中常见的过分拟合问题。

但是这样是否有可能形成自我设限乃至画地为牢的后果?这同一时候牵涉到人们对神经网络学习过程的理解和对围棋自己的理解。

一方面,神经网络自己是否包容必定程度的「think out of the box」的能力。这当然取决于详细的神经网络算法,但也确实是人们对神经网络方法的一个本质困惑。

还有一方面,因为 AlphaGo 最基础的定式仍然是来源于人类对局,所以。这个问题依赖于人类棋手自己是否已经穷尽了围棋中所有有意义的基本定式。

(做为一个案例,在 AlphaGo 和樊麾的第二盘对局中,很是多人都注意到 AlphaGo 走了一个不标准的大雪崩定式。这是说明 AI 学错了呢,仍是它发现这是更好的走法?)

其次,这两个大脑的工做方式确实和人类很是类似,一个推断细部,一个纵览全局。但 AlphaGo 终于的结合二者的方式至关简单粗暴:让二者各自评估一下每种可能的优劣,而后取一个平均数。

这可毫不是人类的思惟方式。

对人类来讲,这两种思考问题的方式的结合要复杂的多(不只仅是在围棋中是这样)。

人们并不是老是同一时候对事态作出宏观和微观的推断。而是有时候側重于大局。有时候側重于细部。

详细的精力分配取决于事态自己,也取决于人在当时的情绪、心理和潜意识应激反应。这固然是人类不完美之处,但也是人类行为丰富性的源泉。

而 AlphaGo 当然体现出必定的大局观,但从详细算法看来。它在为了宏观优点作出局部牺牲这方面的能力和人类全然不能相提并论。AlphaGo 引入整体盘面评估确实是它胜于不少别的围棋 AI 的地方。但从根本上来讲,这仅仅是人们让 AI 具备「战略思惟」的尝试的第一步,还有太多可以改进的可能性。

最后。和很是多别的围棋 AI 同样,当 AlphaGo 学习盘面推断的时候,採用的是图像处理的技术,也就是把围棋棋盘当作一张照片来对待。这固然在技术上是很是天然的选择,但是围棋棋局到底不是通常意义上的图案,它是否具备某些特质是常见的图像处理方法自己并不擅好处理的呢?

应用

为何要让人工智能去下围棋?有很是多理由。但在我看来最重要的一个,是可以让咱们更深刻地理解智能这件事的本质。

神经网络和机器学习在过去十年里跃进式的发展,确实让 AI 作到了不少以前仅仅有人脑才干作到的事。但这并不意味着 AI 的思惟方式接近了人类。而且吊诡的是,AI 在计算能力上的巨大进步。反而掩盖了它在学习人类思惟方式上的短板。

以 AlphaGo 为例。

和国际象棋中的深蓝系统相比,AlphaGo 已经和人类接近了不少。深蓝仍然依赖于人类外部定义的价值函数,因此本质上仅仅是个高效计算器。但 AlphaGo 的价值推断是自我习得的,这就有了人的影子。然而如前所述。AlphaGo 的进步依赖于海量的自我对局数目,这固然是它的好处,但也刚好说明它并未真正掌握人类的学习能力。

一我的类棋手一辈子至多下几千局棋,就能掌握 AlphaGo 在几百万局棋中所训练出的推断力,这足以说明,人类学习过程当中还有某种本质是临时还没法用当前的神经网络程序来刻画的。

(顺便提一句,很是多评论以为 AlphaGo 可以经过观察一个特定棋手的对局来了解他的棋风以作出相应的对策。

至少从论文来看,这差点儿肯定是不可能的事。

一个棋手的对局数对 AlphaGo 来讲实在太少,无从对神经网络构成有效的训练。观察和总结一我的的「棋风」这件事仍然是人类具备全然优点的能力,对电脑来讲。这恐怕比赢棋自己还更难一些。)

这固然不是说。AlphaGo 应该试图去复刻一我的类棋手的大脑。但是 AlphaGo 的意义固然也不该该仅仅反映在它终于的棋力上。

它是怎样成长的?成长曲线具备什么规律?它的不一样參数设置怎样影响它的综合能力?这些不一样參数是否就相应了不一样的棋风和性格?假设有还有一个不一样但水平至关的 AI 和它重复对弈。它是否能从对方身上「学到」和自我对弈不一样的能力?对这些问题的研究和回答,恐怕比单纯观察它是否有朝一日可以超越人类要告诉咱们多得多的知识。

所以。即便 AlphaGo 在三月份打败了李世乭,在我看来也是还有一扇大门的开启而非关闭。

其实,即便就围棋发展自己而论。假设把 AlphaGo 的两个大脑以如此简单的方式线性耦合起来就能赛过人类,那仅仅能说明人们对围棋的规律还有太多值得探索的空间。

而对人工智能领域来讲。AlphaGo 和一切神经网络同样,本质上还仅仅是个大黑盒,咱们能观察到它表现出的巨大能力,但对它究竟是怎样「思考」的这件事依旧所知甚少。

在project上,这是个伟大的胜利。在科学上,这仅仅是万里长征的第一步而已。


參考资料

AlphaGo 项目主页:http://www.deepmind.com/alpha-go.html

Nature 论文:http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html

Nature 报道:http://www.nature.com/news/google-ai-algorithm-masters-ancient-game-of-go-1.19234

Dan Maas 对论文的浅显总结:http://www.dcine.com/2016/01/28/alphago/


关于程序算法艺术与实践不少其它讨论与交流,敬请关注本博客和新浪微博songzi_tea.

相关文章
相关标签/搜索