当前位置: 主页 > 金冠娱乐场 >

如何评价第二局比赛 AlphaGo 又一次战胜李世石?

时间:2016-10-20 23:20 来源:未知 作者:admin
非常关注这次阿狗与李世石的对决,很开心见证了历史性的时刻,心情可以说是『欢欣鼓舞』,但也引发了许多的思考。抛砖引玉,把这些想法写出来,供大家批评指正。


阿狗已经赢了两盘,实际上比赛再往下走,胜负的意义已经不大,我们更应该关注阿狗为什么能赢?是如何赢得?这里面有什么规律?阿狗使用的人工智能能否推广?如果李世石后面赢了,阿狗是如何输的,暴露了什么样的设计缺陷?如果我们把规则改为对战4局,如果2:2平,就数赢的『目』来确定最后胜利者,对战局会有什么影响?我思考了8个问题,本文会先概述一下阿狗的设计思想,然后阐述这8个问题。

首先,我对人工智能一直非常有兴趣,最近刚开始研究深度学习,我们正在用深度学习解决一个图像识别的问题。对于围棋,我完全是小白,只知道最基本的规则,不过3月9号和10号的比赛后,我几乎阅读了知乎上所有与比赛有关的回答,即使看不懂用围棋术语对比赛的讲解,也看的不亦乐乎。第一场比赛后,思考了一晚上,等到第二场比赛结束,一些不确定的东西进一步得到验证,所以才敢在这时回答这个问题。

也许大家对深度学习不了解,这次比赛也算是一次很好的科普实际上,深度学习等方法的应用在最近几年已经取得很大的进展,比如人脸识别采用深度卷积神经网络(DCNN)等方法后,目前的识别准确率已经超过人类;文字、语音、指纹等的识别能力相比传统方法得到很大提升,也已经应用于许多产品中,只是还不为大众所知。关于Alpha go的原理我就不再赘述,在这个两个问题里:
如何看待 Google 围棋 AI AlphaGo 击败欧洲围棋冠军? - 谷歌 (Google)),
DeepMind 研发的围棋 AI AlphaGo 系统是如何下棋的? - 深度学习(Deep Learning)
已经讲述的比较清楚,为了大家阅读和后续阐述的方便,我简单概述一下。如果您没有兴趣或者已经了解,也可以略过不看分割线隔出来的这部分内容。
————————————————————基础知识————————————
AlphaGo 总的设计思路是将深度神经网络与蒙特卡洛树状搜索相结合,它使用了两个神经网络:
  • 第一个叫做走棋网络(Policy Network),它的作用是在给定当前局面情况下,判断下一步可以在哪里走子。训练走棋网络其实就是向人类学习的过程,通过学习了一个网络对战平台KGS的三千万个棋局,得到在输入一个盘面s(状态state)时,如果采取行动a(action)时,人类落子的概率分布p_{\sigma }(a|s)。请看下图,最上面的绿色棋盘就是走棋网络的输出,深绿色的柱状图表示对人类下一步可能落子点的概率分布情况。有了这个走棋网络我认为主要是让AlphaGo对棋面局部的分析处理能力比较强。

  • 第二个是估值网络(Value Network),它用于在给定当前局面s情况下,估计是白胜还是黑胜的概率v_{\theta };Google使用一种自我强化学习的方法,通俗的说就是左右互博,让阿狗自己和自己不断的下棋,通过左右互搏获得海量对局训练出来,并且每个对局只用一个样本,从而保证随机性和避免过拟合。我认为就是这个估值网络给了AlphaGo下棋时具有所谓『大局观』的能力。

(AlphaGo使用的神经网络结构示意图,来自Google论文)



此外,还有一个称为『快速走子』的关键模块,设计它虽然看似是工程性的目的,但对于阿狗的性能和能否实战其实非常重要。下面是@田渊栋老师的回答中的解释:
快速走子(Fast rollout),由于神经网络太慢,所以要用传统的局部特征匹配(local pattern matching)加线性回归(logisticregression)的方法,在适当牺牲走棋质量的条件下,使得走子速度要比走棋网络快1000倍。这样做的好处一是可以在走棋网络没有返回时(主要使用GPU)让CPU不闲着,先搜索起来,等到网络返回更好的着法后,再更新对应的着法信息,所以可以更好的利用硬件资源。其次是用来评估盘面,通过模拟走子,从当前盘面一路走到底,不考虑岔路地算出胜负,然后把胜负值作为当前盘面价值的一个估计,用统计的方法就可以取得很好的效果。
  • 下图是Google论文中的扩展表格中给出的用于局部特征匹配的特征,我们可以看到这些特征并不多,不知道Google是如何确定使用这些特征的。



最后,就是蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS),通过MCTS把上述两个神经网络和快速走子连接成一个完整的系统。蒙特卡洛搜索树(Monte-Carlo Tree Search)是利用计算机强大的计算能力,通过简单的『傻算』,但是快速搜索所有的可能路径,然后通过统计对比,找到当前的最佳选择。但是围棋的状态空间太大,路径太深,直接傻算,估计就是算到宇宙末日也搞不定所有可能。具体到AlphaGo,走棋网络的输出给出了当前可能的落子选择,然后用估值网络评估,砍掉大量不值得深入考虑的分岔树,交给MCTS处理,从而大大提高计算效率。MCTS包括4个步骤,先选择一个叶子节点(Selection);然后扩展一个节点(Expansion);向下仿真棋局结果(Simulation);最后向后回溯,得到反馈。



下图给出了使用蒙特卡罗树搜索时,AlphaGo如何看待一个棋局的决策过程:



在这个过程中,两个神经网络,或者我们类比为两个大脑在不断的协同。其中一个大脑判断当前局面可能的走法,另一个用蒙特卡洛方法进行尝试走下去(仿真),判断不同走法的优劣,也给出对于下一步棋最佳走法的建议。这两个大脑的建议被加权后,做出最终的决定。论文中给出的这个加权的公式是:
公式(1)
注意,这个公式很关键,我直接把论文给出的结果引述如下:


这个意思就是,给通过蒙特卡洛模拟得到的赢棋概率和局面评估结果同样的权重,效果最好,对比其他不同的权值,有95%的获胜概率。这个公式我下面会讨论。

————————————————讨厌的数学终于结束了——————————————


好吧,其实我自己想说的现在才开始,水平有限,而且不太懂围棋,所以主要从人工智能的角度谈,请大家指正。

问题1:仔细阅读了知乎和网络上不同人的对AlpfaGo前两局李世石的评价,有不少人认为这理所当然。因为计算机的计算能力太强,和深蓝当年击败卡斯帕罗夫是一个道理,有什么惊奇的?


这个问题的答案看了上面的背景知识就会很清楚,AlphaGo绝对不简单,围棋的状态空间太大,又很难对局面优劣进行评价,所以要让人工智能战胜九段高手非常困难。当年的深蓝主要是靠蛮力计算,而且国际象棋每个棋子的价值容易评分,二者完全不可同日而语。

问题2:关于两盘棋中AlphaGo下出的所谓『俗手』如何评价?
(感谢知友指正,我是围棋小白,把『俗手』写成『俗子』)

这个问题的评价两极化严重,在直播中和围棋高手看来,这些落子有的不好说好还是坏,但认为是俗手无疑。另一些人认为,人类看上去的俗手,可能只是境界不够高,看不透AlphaGo在精确计算之后的也许是更恰当的选择。

对此问题,我的看法是两种观点都有道理,甚至这就是围棋程序的意义所在。因为围棋太过于复杂,人类通过经验积累,总结出了许多规律,形成所谓『定式』。我相信这些『定式』多数都是正确的,AlphaGo的训练过程也学习了这些人类智慧的结晶。但是『定式』既然也会被打破,就说明一定还有更多的可能存在,这一点,人类的计算能力弱的不足就决定了实战中不太可能对『定式』做出改变。但是AlphaGo可以,只要策略得当,计算机不仅能够,而且也没有心理上的障碍采用更加灵活的走子策略,这会让人类棋手非常不适应,大大增加思考的时间。第二局中,李世石几次常考,就表现出了这种不适应。

另一个角度,就是AlphaGo下的一些棋不仅『俗』而且『臭』。我认为这种可能性更大,这也是AlphaGo需要提示的地方。从上面对其原理的分析来看,如果只看Google的论文,似乎并没有针对一些特定局部定式进行处理。从总体概率上考虑,不针对特定情况设计使得AlphaGo的适应能力更强,但我认为如果在高手的知道下,借助计算机的强大分析能力,针对性的客观和深入分析人类总结出的『定式』,这可以让我们队围棋的理解更加深刻。研究的结果可以用于进一步提升AlphaGo能力和棋手的训练。

问题3:AlphaGo能不能陪李世石复盘?
目前卷积神经网络虽然很好用,但是理论基础还很薄弱,也说不清楚每一层网络究竟实现了哪些处理。许多人认为神经网络的决策过程太复杂,没法帮助李世石复盘。这一点,我完全不赞同,复盘和理解神经网络是两回事,就像我们现在也不太说清楚人类各种直觉产生的具体过程,但是这不妨碍棋手解释下棋时基于什么样的考虑作出决策。实际上,只要Google愿意,应该完全可以记录每一步棋的过程,比如走棋网络给出的初始落子概率分布,每一步估值网络给出的局面判断,MCTS搜索得到的各种走法的仿真结果等等,这不就是复盘吗!实际上,如果这样,Google可以把AlphaGo修改成为一个强大的围棋训练程序。期待这一天的到来。现在没这么做的原因,估计是怕输吧(偷笑)。


问题4:AlphaGo的棋下的不够美!
我们总是相信,宇宙间的真理应该是简洁而优美的,很自然的,我们希望下围棋不仅要赢,还要赢得优美。这个问题对AlphaGo很难,因为围棋的局面不吓到最后连评价局面的优劣都很难,要下的美,你首先得定义美,然后给出评价函数。比如@原子Atom给出的这个形状,说老师坚决不让下,
我一个不懂围棋的就不能理解这样下为什么就不美?但我相信应该让AlphaGo下的棋更美,这种对美得执着究竟是人的一种无意义的情结还是一种潜意识中对正确棋路得直觉呢?我不知道,但值得研究。有知友告诉我这是因为黑棋下在一起,失去了许多变化的机会,控制力弱了,这样解释『美』我就明白了,阿狗也一样会明白。实际上你看阿狗的快速走子,里面在局部特征匹配时,就考虑了类似的特征。不过其他的『美』还有哪些?如何考虑进去,值得思考。

问题5:AlphaGo自从去年11月击败欧洲冠军以后棋力进步如何?和李世石每次对局之后是否会进步?
许多人认为5个月来进步很大,而且和李世石越下,对李世石了解会更多。这个问题我认为答案hi否定。因为根据AlphaGo的原理和公布的设计结构,在它已经学习了三千万盘棋基础上,再多学一两盘意义不大,它的设计结构也决定了并没有针对棋手进行专门训练的过程和采取对策的方法。它并没有观察一个特定棋手的对局,了解他的棋风并做出相应的对策。AlphaGo的设计思路基本是采取通用化的方向,但是在其他的决策领域,是很可能要求计算机随时进行适应性的变化,比如人类在决策时经常是非理性的,这时候完全按照理性假定进行推断就不一定得到最佳结果。还比如,我们下双升的时候,自己手里有一个5和对K,有时会先出一个5,诱惑对手将对A拆了出,像这种有点奸诈的策略,计算机学起来就很困难(请原谅我不懂围棋,不会用围棋举例)。当然,要是人工智能真能学会这个,那太可怕了。这个例子是想说明人在决策时有时会考虑利用对手贪婪的心理,追求利益最大化。AI如果有足够的机会,可能会使总的获胜概率最高,但是如果有一个场景,只有一次机会,那么AI能够赢人类吗?在我心目中真正的人工智能应该能够学会处理这种问题才行。


问题6:AlphaGO似乎遇强则强,遇弱则弱?


我观察着两盘棋,也是有这个感觉,这和阿狗的结构有关系,因为它采取的设计思想就是一定会找使得最后赢棋概率最大化得那一步。这样就会出现赢钱,但是赢得不爽。对于围棋来讲,这种设计没什么不妥,但是如果是多次博弈,而且最后是计算总的得失数量,相当于要计算小分时,就不仅要赢,还要赢得多。此时,估值网络的设计会很难,这也是阿狗需要改进的地方。如果得以提升,会使得阿狗更容易推广到其他人工智能的应用领域。

问题7:阿狗的提升空间有多大?

我认为AlphaGo提升的空间很大,主要在这几个思路:
  • 一方面阿狗已经学了够多的人类对局,也和自己下了足够多的棋,如果和Facebook的『黑暗森林』这样设计思想不完全相同的AI下,是否可以进一步提升棋力?
  • 其次就是上面说过的能否进一步增加对『定式』的研究;能否增加对特定对手棋风的学习和采取策略等?
  • 估值网络的设计能否更加灵活,甚至可以动态调整?上面公式(1)给出的最后决定时的加权权重是各自0.5,在开局、中盘、官子阶段,这个权重是否可以调整的?因为直观的想,开局阶段赋予局面评估结果更大的权重似乎更加合理。这个问题挺复杂,我思考了半天,感觉自己的智慧不够了,应该再做一些测试才能有答案。因为估值网络的训练过程很长,所以如果忽然改变规则,比如我文章开头所说的不仅要赢,还要尽量赢得多,那么估值网络应该会明显变化。还比如所,现在忽然要求改为日本规则,李世石适应没有任何问题,阿狗可就不一定了。如果如我所说,那这绝对是阿狗的不足。也就是说阿狗对规则变化的适应能力远远比不上人,那么这又是为什么?如何改进?

问题8:阿狗的意义?
这个大家讨论比较多,我也做一些相关的研究,阿狗虽然很强大了,但是不足之处更多,也远远不是一个通用的人工智能机器。报考阿狗使用的深度卷积神经网络,更像一个黑盒子,我们对其机理研究的还非常不够。阿狗虽然强,其实还真不太算得上太智能,但它真是我们从宙斯那里偷得的第一把火! @李开复 老师认为阿狗的技术称不上是科学上的创新突破,这一点我赞同,不过他认为阿狗并不是新的“发明”我略不赞同,开复老师是不是过于严苛一点?越是仔细分析Google的文章,越觉得有很多的关键内容他们没有写出来,虽然使用的都是已经发明很久的技术,但是通过精心的设计,DeepMind团队毫无疑问发明了一个非常厉害的人工智能围棋程序和针对类似复杂决策问题的解决思路。

实际上我们回过头看阿狗的结构,两个神经网络加蒙特卡洛,非常像人类的大脑思维。一方面我们下围棋时必然要计算,这就是蒙特卡洛;另一方面我们有棋感,有定式,有大局观,这就是深度卷积神经网络(DCNN)。DCNN的方法非常类似与我们的图像化思维,通过逐步卷积,逐步抽象一个复杂的对象,我们人类的视觉也是这样,先会对全局有个把握,仔细看才会关注细节。所以,我大胆挑战一下 @李开复 老师,阿狗使用的具体方法虽然没有大的创新,但是这种深度学习+蒙特卡洛的结构有没有可能帮我们打开了人工智能的一扇窗,也许这是一条窥视智慧秘密的裂缝,这样讲的话,阿狗的意义就非常大了。


我自己和刘慈欣一样,是科技的乐观派,我们认为人类社会问题根本上要通过科技进步解决,技术进步带来的好处远大于危害。对于围棋,相信阿狗的出现可以极大的促进围棋进步,人工智能也应该可以让人类生活更加美好!



—————————————————正文完—————————————————

上述中的『论文』,特指google发表在Nature上的:
1)(nature.com/nature/journ);
Nature网上全文很贵,我买不起,后来搜索到一个地址可以下载,共享给大家:

willamette.edu/~levenic


我的回答主要参考了:


在Faceboo工作的 @田渊栋 老师的文章
2)(arxiv.org/abs/1511.0641)以及他在知乎回答的相关问题:
3)AlphaGo的分析 - 远东轶事 - 知乎专栏
4)围棋作为唯一一种电脑下不赢人的大众棋类,是何原因导致?以及量子计算机出现后有无可能? - 田渊栋的回答

非常感谢 @高飞龙 的回答,帮助理解了围棋:
5)如何评价第一局比赛 AlphaGo 战胜李世石? - 人工智能

@袁行远老师的回答思路很清晰:
6)DeepMind 研发的围棋 AI AlphaGo 系统是如何下棋的? - 袁行远的回答

7)在DeepMind 研发的围棋 AI AlphaGo 系统是如何下棋的? - 深度学习(Deep Learning)问题中:
@Tao Lei,@董飞@袁行远@李丹宁等朋友的回答。
还有其他朋友的文章:
8)谷歌围棋程序AlphaGo实力几何? - 不一样的围棋 - 知乎专栏
9)木遥:关于 AlphaGo 论文的阅读笔记

3月9号和10号的比赛后,我几乎阅读了知乎上所有与比赛有关的回答,特别是@高飞龙等老师的回答给我很多启发。也不是正式的论文,恕不一一引述,在此一并表示感谢。