AlphaGo风格强弱详解

最近花了一些时间思考AlphaGo的比赛,还去补了一下围棋的基本知识。虽然围棋水平还是非常低下,但是经过思考,大概搞懂了AlphaGo的行棋背后的逻辑。如果围棋方面出现错误,还望围棋高手不吝指出。

先说结论。AlphaGo的行棋风格是消除变化,避免打劫,这是AlphaGo的架构和训练方式导致的,也可以说,这是Deepmind团队精心设计的结果。而AlphaGo的弱点,在于极端复杂局面时搜索能力依然不够,不能够弥补局面评估上偶尔出现的漏洞。这一强一弱是同一个设计逻辑所导致的后果,是一个硬币的两面。因此除了堆机器提高运算能力之外,要从程序上完全消除这个弱点是比较困难的。

下面开始详解。

1. AlphaGo的系统设计和运作模式。

从AlphaGo在Nature上发表的论文来看,它的设计并不特别复杂。按Google的一贯作风,论文往往是有所保留的。尽管如此,基本架构方面应该是没有太大出入。

第一步是在网络收集大量高手在网上围棋的对局。这之后训练一个Convolutional Neural Network,也就是卷积神经网络。这个网络的用途是根据当前盘面,预测下一步会下在哪里。要注意的是,这里完全不考虑棋局之前是怎么走的,只考虑当前的局面。这个网络叫Supervised Learning Policy Network ,我们可以管它叫模仿走子网络,因为它的目的是模仿网络高手。

第二步是用reinforcement learning让这个网络自己跟自己下棋,通过这种方式进一步学习,生成一个Reinforcement Learning Policy Network 。这个我们可以管它叫自学走子网络

如果只用这样一个走子网络来下棋,会是什么情况呢?

Facebook AI Research中围棋项目的主管田渊栋是这样描述的:

不顾大小无谓争劫,会无谓脱先,不顾局部死活,对杀出错,等等。有点像高手不经认真思考的随手棋。因为走棋网络没有价值判断功能,只是凭“直觉”在下棋

所以我们必须引入对各种棋路变化的精确计算,这个就是我们说的树搜索。树搜索有两种方法,一种是精确的最小最大搜索(minimax),一种就是AlphaGo所采用的蒙特卡罗模拟

要理解蒙特卡罗,还得从最小最大说起。最小最大的意思就是,我下一子后,你有N种下法。在这N种里面,有一手是最优的,也就是“最大”。我在下我自己这一手的时候,要让你最优的那一手最为不利,你最大的那一手最小化。这就是最小最大的含义。注意这里最优的定义。我们要让对手的最优选择变的最差,但是这不是说让次优选择变得超过最优选择,否则次优就变成最优了。那我们就要最小化原来次优的那一手棋了。

最小最大要考虑一个最值问题,这个计算起来是比较费时间的,无法搜索太多步。这时候我们无法继续搜索,只能对找到的局面做一个评估,看看它是优还是劣。一种评价方法就是从这个局面开始完全随机走棋,统计一下最后是赢还是输。如果赢多输少就是好局面,输多赢少就是差局面。这个就是蒙特卡罗模拟。

但是由于围棋的走法太多,搜索空间过大,完全依靠蒙特卡罗的计算是不够的。对盘面的估计,必须结合蒙特卡罗和神经网络。结合方法有两个。第一个是通过模仿走子网络预测那些走法是最可能的,在蒙特卡罗模拟里面优先考虑这些走法。第二个结合处是通过自学走子网络走出的几千万盘棋局,每局里抽出一个盘面,训练了一个Value Network,我们可以叫它棋盘价值网络。Value Network直接预测在这个盘面最后是赢还是输。最终的棋盘评估,是棋盘价值网络和蒙特卡罗模拟做简单相加的结果。

具体实现还有很多细节,我们这里略过不讲。有兴趣的读者可以直接参考Nature上的论文。上面这个理解,对下文已经足够。

2. AlphaGo的弱点在哪里

经过第四局李世石导致AlphaGo崩溃的神之一手,以及其他局面下的AlphaGo的错着,我们逐渐看到了AlphaGo的弱点。

神之一手,是李世石长考四十分钟下出的一手棋,也就是下图的第78手。

李世石扭转战局的第78手

在这一手之前,白棋在中路是相当不利的。第78手挖是很少有人会去考虑的一手棋,因为它看起来是送给黑棋吃的一手。但是白棋的构思是威胁78左边这一个黑子,逼迫黑棋不得不花费上下两手棋提掉第78手白子,在这一过程中,白棋已经完成对左边红框中黑棋两子的包围。这两子一断,白棋满盘皆活。黑棋在中腹的布局崩溃。

在不利的情况下,以意想不到的一手弃子瞬间扭转大局。这就是古力九段将这一步棋称为神之一手的原因。

在第五局开局阶段,AlphaGo同样在右下角出现了一个类似的问题,没有预料到黑棋叫做“大头鬼”的手筋。那么什么叫做大头鬼呢?请看下面例图。

大头鬼一例。黑棋5,7,11,三手送吃,逼迫白棋把自己填死。

大头鬼的要义,在于黑棋在第5手,第7手,第11手反复填入白棋内部送吃,逼迫白棋走出12,14把自己的空给填死,而黑棋趁机从外面包围白棋,最后只要黑棋在角上再下一手,中间白棋就会全部被提掉。

AlphaGo在这些情况的失误,有以下三个发生的条件:

1. 在棋局的早期,棋盘上的可下之处还很多,离棋局结束也还很遥远。AlphaGo的计算能力不足以覆盖太多的可能性。

2. 对手的一手棋,在静态局面看来是相对不太可能的下法。比如主动送吃,就是一般意义上不寻常的下法。因此模仿走子网络往往把这一手棋列为不太可能,不会让蒙特卡罗集中在这一手棋的后续发展。有了1和2两个条件,蒙特卡罗模拟就不太好用了。

3. 在棋局的早期,还很难预测最后这一局棋是谁取胜。因此棋盘价值网络也不太好用了。

我们知道,棋盘判断是棋盘价值网络和蒙特卡罗模拟结果相加得出的。这两个东西都失效了,那么整个棋盘判断也就出问题了。这就是AlphaGo在这些局面下产生错招的根本原因。

棋盘价值网络失效,很可能还有另外一个原因,来源于它的训练集。我们下面来看。

3. AlphaGo为什么喜欢简化局面避免劫争

AlphaGo有一个我一开始没有看懂的设计。那就是训练了半天的自学走子网络,其实并没有太大的用处。最后只是用来制作棋局,训练棋盘价值网络。但是如果要制作优秀的训练数据,为什么不用一个蒙特卡罗模拟去帮助这个走子网络走的更好一点呢?

我们前面说过了,这个走子网络由于缺乏搜索的能力,往往出现“不顾大小无谓争劫,会无谓脱先,不顾局部死活,对杀出错”。那么这样网络走出来的棋,往往就会在出现劫争和复杂局面时失利。然后在这样的棋局里学习出来的棋盘价值网络,就会认为劫争和复杂局面会导致输棋,从而避免这样的局面。

现在看来,DeepMind团队这样的设计,并非失误,而是煞费苦心,有意为之。通过对AlphaGo上面弱点的分析可以看到,在复杂局面里,AlphaGo的计算能力其实是不太够用的。因此从一开始就要避免复杂局面。这才是这个自学走子网络的真实意义。

需要注意的是,虽然AlphaGo喜欢避免劫争,但是不代表它完全不能应付劫争。李世石在第三局最后硬是搞出了劫争,但是于棋盘上可走的位置已经很少,只需要蒙特卡罗搜索就可以轻松应付了。在棋局的早期做劫,则AlphaGo有充分的自由来避免劫争。因此这扬长避短的策略是行之有效,难以击破的。

4. 如何击败AlphaGo

由于这个棋盘价值网络的训练数据集来源于自学走子网络,可以说它本身的训练集就是存在一定问题的。这个问题就是自学走子网络没有树搜索的辅助,很少能够下出手筋,更不太可能下出类似神之一手的棋。因此棋盘价值网络的判断从根本上就会存在一定的偏差,对手筋的判断往往失误。这个棋盘价值网络的弱点,是精心设计的结果,因此也很难轻易的弥补。但是,由于蒙特卡罗模拟的存在,很多时候可以弥补这个价值网络的不足。

如果要攻击AlphaGo的弱点,就一定要攻击它对棋盘的价值判断,要让蒙特卡罗模拟和棋盘价值网络同时失效。这就是神之一手所做到的。

作为一个围棋的门外汉,我这里提几条可能不太现实的建议:

1. 在序盘阶段,要设计意想不到的手筋。此时蒙特卡罗模拟处于很弱的阶段,手筋可以战胜棋盘价值网络。AlphaGo是不懂定式的。这是因为AlphaGo的训练模式,让它很难和定式相融合。反转越大送吃越多的手筋,AlphaGo就越难预料。

2. 要尽可能的创造存在多个复杂局部的复杂局面。由于AlphaGo不存在集中注意力在局部的机制,随时都要通盘考虑问题,因此很可能无法分配足够的计算量到每一个局部。但是要小心,因为AlphaGo一定会千方百计阻止你这么做。

3. 一旦在早期占优,一定不能松懈,因为AlphaGo到后期的蒙特卡罗会变的很恐怖。一定要把早期的优势维持到终局。

5. 结论

通过对AlphaGo的架构和弱点的分析,我们可以看到,AlphaGo不是无懈可击的,更加不是什么围棋之神。它只是DeepMind团队精心设计,扬长避短的产物。棋盘价值网络的弱点,是这个设计的必然结果。弥补这个弱点有一个办法,就是堆积运算能力,用几万台几十万台电脑来提高蒙特卡罗的运算能力。但是这么做恐怕违背DeepMind的初衷。如果从软件上进行修改,就要做大手术,不是简单能够通过自我学习完成的。人类如果精心设计战术,是完全有可能战胜AlphaGo的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容