AlphaGo的敌人不是“别人”,是它自己。

为了征途,它已经走过了几代Go。

想在围棋上赢,你需要双系统:行棋与胜负,一个断生死,一个断地盘。

而AlphaGo Zero下围棋,却只需要一个系统,它同时包含了走子策略网络和价值网络。

针对AlphaGo Zero的报道铺天盖地,官方解释不如生动展示。乌镇智库整理出两大有趣的解读模块,从围棋知识征子入手与双游戏对比,后附AlphaGo Zero训练棋盘复盘,带你感受Zero的真实段位。

棋迹:人手一个AlphaGo不是梦

令我们惊喜的是,人类终于开始摆脱对已有知识的依赖,给AI一次从新生儿逐步自我成长的机会,正如DeepMind发布的AlphaGo论文中提到的一样:starting tabula rasa,从一张白纸开始成长。此次创造出来的,是一个从零开始训练的神经网络,以及简单用MCTS算法行棋的AlphaGo Zero。甩脱了繁重累赘的Zero,就着CNN+蒙特卡洛搜索树,打败了自己的“前辈”AlphaGo Master。

旧版的AlphaGo,虽然神功小成,但斧凿痕迹显著。好似一只机器人女友,虽有绝色容颜,却长着机械手、声音冷如谷歌娘。理想的围棋人工智能,应该是简洁、优雅、浑然天成。

那么AlphaGo Zero与AlphaGo(用AlphaGo表示以前的版本)都有哪些主要的差别呢?人工智能专家马少平老师这样梳理:

1,在训练中不再依靠人类棋谱。AlphaGo在训练中,先用人类棋谱进行训练,然后再通过自我互博的方法自我提高。而AlphaGo Zero直接就采用自我互博的方式进行学习,在蒙特卡洛树搜索的框架下,一点点提高自己的水平。

2,不再使用人工设计的特征作为输入。在AlphaGo中,输入的是经过人工设计的特征,每个落子位置,根据该点及其周围的棋的类型(黑棋、白棋、空白等)组成不同的输入模式。而AlphaGo Zero则直接把棋盘上的黑白棋作为输入。这一点得益于后边介绍的神经网络结构的变化,使得神经网络层数更深,提取特征的能力更强。

3,将策略网络和价值网络合二为一。在AlphaGo中,使用的策略网络和价值网络是分开训练的,但是两个网络的大部分结构是一样的,只是输出不同。在AlphaGo Zero中将这两个网络合并为一个,从输入到中间几层是共用的,只是后边几层到输出层是分开的。并在损失函数中同时考虑了策略和价值两个部分。这样训练起来应该会更快吧?

4,网络结构采用残差网络,网络深度更深。AlphaGo Zero在特征提取层采用了多个残差模块,每个模块包含2个卷积层,比之前用了12个卷积层的AlphaGo深度明显增加,从而可以实现更好的特征提取。

5,不再使用随机模拟。在AlphaGo中,在蒙特卡洛树搜索的过程中,要采用随机模拟的方法计算棋局的胜率,而在AlphaGo Zero中不再使用随机模拟的方法,完全依靠神经网络的结果代替随机模拟。这应该完全得益于价值网络估值的准确性,也有效加快了搜索速度。

6,只用了4块TPU训练72小时就可以战胜与李世石交手的AlphaGo。训练40天后可以战胜与柯洁交手的AlphaGo。

留下的,是一个从零开始训练的神经网络,以及用简单到不能再简单的MCTS算法行棋的AlphaGo Zero。

知易行难。这些改进貌似不难想到,因为AlphaGo Zero本来就是研究者理想中的女神。而初版AlphaGo不够女神,不是因为研究者不想,而是暂时做不到。举个例子,AlphaGo Fan版本中,神经网络的输入由48个特征平面构成。其中两个平面分别表示,某一步棋是否是成功的征子,和某一步棋是否是成功的逃征子。

这是征子的基本图。白1逃跑,黑2、4以下分别从两侧叫吃白棋,使白方始终只有一口气。一直追到棋盘尽头,白方最终无路可逃。黑棋大获全胜。

征子是围棋的基本知识,初学者在前两三节课就会学到。但实战的征子可以非常复杂,甚至搞晕职业棋手。

这张图来自职业棋谱,赵善津胜王铭琬。注意,白棋中央一大坨已经被征死了。白方看错了引征,招致全盘皆输。

白棋硬跑的后果如图,全军覆没

征子也能搞晕神经网络。网友Joona Kiiski观点,和大家分享一下:

和绝大部分围棋的特征(比如死活、官子、定式等)不同,征子完全不是局部特征,而是全局特征。这就意味着,在神经网络能正确处理征子之前,征子的特征需要通过大量卷积层来慢慢建立。这会给神经网络的训练带来潜在的麻烦。

更要命的是,在征子上一旦出现失误,大胜的棋局会直接变成大败。

据此可以推测,征子的这些麻烦特性,使得初代AlphaGo不得不把征子作为输入神经网络的特征之一。(另一个软件Zen,即使和初代AlphaGo做了类似的处理,实战的征子依然会偶尔出错,被人类棋手逆袭了好多盘。)

AlphaGo Zero的神经网络,大胆省去了征子特征的输入。细细品味训练过程,略微吃惊:神经网络直到训练的(相对)后期才学会征子。

如果对局双方(黑AlphaGo-白AlphaGo)都不懂征子,那么总体结果也不会差太多吧。每个征子的结果就好像投硬币一样随机,总的胜负加起来差不多是零(大误)。

或许是开发团队好运,更有可能是反复尝试以后才成功。总之,在征子上,AlphaGo Zero涉险过关。

同理,分拆策略、价值网络,以及采用快速走子,是旧版AlphaGo的暂时妥协,而在新版终于得以解决。

DeepMind,及其母公司谷歌的终极目标不是破解围棋,而是造出通用人工智能。通用智能不需要额外专业知识。AlphaGo Zero在无围棋知识输入的前提下达到如此高度,可以说离通用智能又近了一步。

大道至简。对于AlphaGo,最简洁的,就是最美的。

扳回一局,围棋与星际争霸为何战局不同

在与人“实战”领域的应用,AlphaGo为人工智能队加了一分,但在同样备受瞩目的星际争霸游戏中,人类用人脑的智慧扳回了一局。

AlphaGo Zero仅仅用了3天的时间,就超过了AlphaGoLee(代表人类水平),并且用一个月的时间就超过了AlphaGo Master(目前人类难以超越的水平)。

而在另外一个问题,星际争霸上面,DeepMind了采用了类似的技术,下了更多功夫(创建专用平台、模拟小场景,试了A3C这些最新的算法等等),也只是教会了机器最简单的采矿操作。(由于受到星际争霸如此失败的打击,甚至当时就有言论说,DeepMind想要从Zero开始下围棋是不可能的)

这个时候恐怕就反过来了:人类入手3天星际争霸就可以和DeepMind的Bot打平手,一个月就可以把Bot打的落花流水。

事情同样发生在先前的OpenAI的Dota2 Bot上面,在大大简化的规则和场景下,一开始Bot势如破竹,但是很快reddit上人们就发现了Bot的缺陷,只要抓住了小尾巴就可以吊着打。

而之前AlphaGo Master 的60局却没有给人类一丝机会。从这点上来看,机器对围棋的把握远远好于对星际和Dota之类的游戏。

可能有人认为,前者是“完全状态”的,后者是“非完全状态”的,但是近期各种在桥牌上的胜利(比如CMU的Libratus,以及DeepStack等等)似乎说明“非完全状态”不是最重要的症结。并且这些“桥牌大师”甚至使用了相去甚远的原理(比如Libratus没有用DNN,需要预先离线运算;DeepStack严重依赖DNN但是可以在线估计)。这暗示了对于某些非完全状态的问题我们甚至有更多的超过人类的途径。

所以答案仅仅是,对于DeepMind使用的DRL而言,星际这些游戏比围棋更难。实际上即使星际一开始让电脑全部地图可见,按照目前DeepMind训练出来的Bot的水平照样被虐。

我们应该冷静一些,别忘了DRL目前甚至连解决这些简单的问题都不能做到,比如蒙特卡洛搜索树:

如果没有人类的指导,机器在99.99%的情况下都会做各种自杀行为。这是因为如果机器必须要完成一系列任务才能得到奖励,那么通过随机策略,获得奖励的概率几乎是各个随机条件下任务成功概率的乘积(比如要先拿到钥匙,然后上楼梯,然后再回来),这个概率实在是太小了。

但是恰恰这种任务是典型的日常生活中的挑战,这个时候我们人类会把一个大的任务分解为一系列小的任务,并且我们明白很多时候这些小任务只要失败一个,大的任务就不可能完成;这个时候通向较优的策略是很陡峭的,不连续的(我们注意到,这些问题典型的特征是,很多时候写脚本规则,或者使用演化算法,会做的比DRL好很多,这正是不连续性的体现)。AlphaGo等使用算法使用Policy Gradient来更新策略,策略是连续更新的,恐怕并不适合这种问题。

而围棋并不是如此。围棋这种问题并不是那种靠分解为多个子问题才能成功解决的一类问题,这正中AlphaGo下怀,我们可以看到,AlphaGo常常会“脱先”,它并没有太多“局部”和“子问题”的概念,而人类棋手却难以摆脱这种想法。

我们可以看到一开始 AlphaGo Zero 自己下围棋的情况,它们几乎是乱下。但是围棋很特殊的一点是,在布局,以及很多情形下,很多招数并不是“唯一”的,只是有的时候这样走会降低胜率。不过这不会给机器造成困难,因为围棋这种特性可以使得AlphaGo渐进的更新自己的策略。也就是有一种相对连续和缓的方式,通向较优的策略。而征子和关键手这些策略相对就很“陡峭”,我们可以看到AlphaGo Zero到后期才掌握了这些方法,不过这个时候不是那么困难,因为机器已经得到了相对较优的策略了,只是细节上的提升而已。况且即使到Zero版本,它的网络性能也比不过最初的AlphaGo-Fan版本,蒙特卡洛搜索树的线上计算仍然起了关键的作用:

所以,我们离 AGI 仍有距离,围棋只是代表了这一个时代适合DRL解决的一类问题。随着AlphaGo Zero的出现,代表着这一类问题暂时告一段落,下一步我们需要向更多未解决的问题出发。

为了让人们更直观看到AlphaGo Zero的成长历程,知乎作者SIY.Z利用论文附件做了部分棋谱供大家感受:

AlphaGo Zero : AlphaGo Lee = 100 : 0,其中的20局:

http://t.cn/RWPMK7O

AlphaGo Zero : AlaphGo Master = 89 : 11,其中的20局:

http://t.cn/RWPMQTU

AlphaGo Zero 自战(使用20-block(较浅)的残差网络,依时间顺序从总计3天的训练中取出20局):

http://t.cn/RWPMFJA

AlphaGo Zero 自战(使用40-block(较深)的残差网络,依时间顺序从总计40天的训练中取出20局):

http://t.cn/RWPxybk

文章内容部分选自

作者/不会功夫的潘达

来源/知乎

作者/SIY.Z

来源/知乎

乌镇智库 资讯盘点

吴恩达作为董事长加入医疗聊天机器人公司Woebot,希望帮助抑郁症患者

斯坦福论文提出MoleculeNet:分子机器学习新基准

微软 CEO 纳德拉访谈:人工智能的大方向与未来是什么?

阅读推荐

达摩院的前生今世和杰克马的意味深长

让天下没有难吹的牛,汤晓鸥如是评价人工智能