-
陈经:在AlphaGo完胜后继续分析其算法巨大优势与可能的缺陷
关键字: 谷歌围棋AlphaGo策略网络价值网络打劫人工智能李世石柯洁【今天上午,小编发出了这篇坚持分析AlphaGo弱点的文章,大约6个小时之后,李世石终于在围棋人机大战第四盘的“荣誉之战”中下出妙棋,逆袭取胜。这场来之不易的胜局几乎验证了本文的预测:要想战胜目前的AlphaGo,应该采用这样的策略,大局观要顶得住,不能早早被它控制住了。局部手段小心,不要中招。顶住以后,在开放式的接触战中等它自己犯昏。或者在局部定型中看它自己亏目。在接触战中,要利用它“不喜欢打劫”的特性,利用一些劫争的分枝虚张声势逼它让步,但又不能太过分把它逼入对人类不利的劫争中。
李世石获胜后,观察者网编辑立即采访了本文作者陈经,陈经表示,李世石78手的挖,对于人工智能算法来说,有一个劫争分枝,不一定对人有利,但这个劫争引发了AlphaGo的bug。他说,李世石今天心态非常好,开局中局一直都没有犯致命错误,顶住了。然后在中间右边的局面中发挥非常好,成功将局面导入开放式的复杂接触战。李世石78这手,就是与人对局也可以说是神之一手,很难对付。这手一出,局面非常复杂,要点非常多。电脑要计算的分支特别多。人已经确定最强变化是打劫,虽然并不一定对李世石有利。电脑由于天生的“不喜欢打劫”的特性,在这个局面模拟中,终于引发了程序中的bug。证明AlphaGo终究是基于MCTS(蒙特卡洛树搜索)的产物,虽然比之前的围棋程序zen强大很多,但一样会出现可笑的bug。之后陈经还会继续撰文分析。】
2016年3月12日人机大战第三局,AlphaGo执白176手中盘胜李世石,以3:0的比分提前取得了对人类的胜利。
这一局李世石败得最惨,早早就被AlphaGo妙手击溃,整盘毫无机会。最后李世石悲壮地造劫,在AlphaGo脱先之后终于造出了紧劫。但AlphaGo只靠本身劫就赢得了劫争,粉碎了AlphaGo不会打劫的猜想。这一局AlphaGo表现出的水平是三局中最高的,几乎没有一手棋能被人置疑的,全是好招。三局过去,AlphaGo到底实力高到什么程度,人们反而更不清楚了。
看完这三局,棋界终于差不多绝望了,原以为5:0的,都倒向0:5了。有些职业棋手在盘算让先、让二子是否顶得住。整个历程可以和科幻小说《三体》中的黑暗战役类比,人类开始对战胜三体人信心满满,一心想旁观5:0的大胜。一场战斗下来人类舰队全灭,全体陷入了0:5的悲观失望情绪中。
我也是纠结了一阵子,看着人类在围棋上被机器碾压的心情确实不好。但是承认机器的优势后,迅速完成了心理建设,又开心地看待围棋了。其实挺容易的,国际象棋界早就有这样的事了。这个可以等五盘棋过后写。
现在我的感觉是,棋界整体还是对AlphaGo的算法以及风格很不适应。一开始轻视,一输再输,姿态越来越低,三盘过后已经降到一个很低迷沉郁的心理状态了。这也可以理解,我一个围棋迷都抑郁了一会,何况是视棋如生命的职业棋手。但是不管如何,还是应该从技术的角度平心静气地搞清楚,AlphaGo到底是怎么下棋的,优势到底在哪些,是不是就没有一点弱点了?
现在有了三盘高水平的棋谱,质量远高于之前和樊麾的五盘棋谱。还有谷歌2016年1月28号发表在《自然》上的论文,介绍了很多技术细节,还有一些流传的消息,其实相关的信息并不少,可以作出一些技术分析了。
之前一篇文章提到,从研发的角度看,谷歌团队把15-20个专家凑在了一起,又提供了巨量的高性能计算资源,建立起了整个AlphaGo算法研究的“流水线”。这样谷歌团队就从改程序代码的麻烦工作中解放出来,变成指挥机器干活,开动流水线不断学习进步,改善策略网络价值网络的系数。而且这个研发架构似乎没有什么严重的瓶颈,可以持续不断地自我提升,有小瓶颈也可以想办法再改训练方法。就算它终于遇到了瓶颈,可能水平也远远超过人类了。
这些复杂而不断变动的神经网络系数是AlphaGo的独门绝技,要训练这些网络,需要比分布式版本对局时1200多个CPU多得多的计算资源。AlphaGo算法里还是有一些模块代码是需要人去写的,这些代码可不是机器训练出来的,再怎么训练也改不了,谷歌团队还不可能做到这么厉害。例如蒙特卡洛搜索(MCTS)整个框架的代码,例如快速走子网络的代码。这里其实有两位论文共同第一作者David Silver和Aja Huang多年积累的贡献。这些人写的代码,就会有内在的缺陷,不太可能是完美无缺的。这些缺陷不是“流水线”不眠不休疯狂训练能解决的,是AlphaGo真正的内在缺陷,是深度学习、self-play、进化、强化学习这些高级名词解决不了的。谷歌再能堆硬件,也解决不了,还得人去改代码。
第一局开局前,谷歌就说其实还在忙着换版本,最新版本不稳定,所以就用上一个固定版本了。这种开发工作,有可能就是人工改代码消除bug的,可能测试没完,不敢用。
总之,像AlphaGo这么大一个软件,从算法角度看存在bug是非常可能的。在行棋时表现出来就是,它突然下出一些不好的招数,而且不是因为策略网络价值网络水平不够高,而是MCTS框架相关的搜索代码运行的结果。如果要找AlphaGo潜在的bug,需要去仔细研究它的“搜索 ”。这可能是它唯一的命门所在,而且不好改进。
那么MCTS的好处坏处到底是什么?幸运的是,Zen和CrazyStone等上一代程序,以及facebook田渊栋博士开发的Darkforest都用了MCTS。它们和AlphaGo虽然棋力相差很远,但是行棋思想其实很相似,相通之处远比我们想象的高得多。
这是田渊栋贴的Darkforest对前两局的局势评分。可以看出,这个评分和棋局走向高度一致,完全说得通。而且谷歌也透露了AlphaGo对局势的评分,虽然一直领先,但第二局也有接近的时候,能够相互印证。如果到网上下载一个Zen,输入AlphaGo和李世石的对局,选择一个局面进行分析,也会有像模像样的评分出来。这究竟是怎么回事?
-
本文仅代表作者个人观点。
- 请支持独立网站,转发请注明本文链接:
- 责任编辑:陈轩甫
-
“这是对西方的警告”,欧洲听到了 评论 29逮不逮捕?美西方“裂”得更严重了 评论 165不藏了?美防长自曝有“仁爱礁特遣队” 评论 243普京回应:是新型中程高超音速导弹 评论 287“中国在量子领域专利数第一,中美未来竞争更激烈” 评论 126最新闻 Hot