3月16日历时8天的人机大战终于落下帷幕,alphago以4:1的比分击败了当年如日中天的李世石。这个结果让我这个围棋爱好者+计算机爱好者百感交集……
——一个时代落幕了,一个新的时代开启了。
这次人机大战包含了两大方面,一是围棋,一是算法,幸好我对这两方面都略有涉猎,就不妨简要谈谈我的看法。
(当然我围棋也只是业余5段,计算机方面更是被人随便虐,如有错误,欢迎指正)
先从围棋方面说说吧,其实很多人都对这次结果大跌眼镜的,赛前很多职业选手都是支持李世石5:0获胜的,毕竟围棋是“人类最后的智慧堡垒”,虽然计算机已经在国际象棋,中国象棋上战胜了人类,但是围棋的复杂度远不是象棋所能比拟的。围棋很多地方,比如“形”、“味道”、“厚势”,除了人的直观感受似乎没有什么更好的做法。
但是,结果……
当然这也不能怪李世石了,能在0:3的情况下情况坚持下去并且还能拿下一城,这已堪称这个时代最优秀最伟大的胜负师。
但是输棋毕竟是有原因的,首先就李世石本人而言,年龄是一个不利因素。“小李”都已经30多了,已经过了巅峰期了,不论是精力还是运算能力都有所下滑。李世石和古力,他们是我学棋时最崇敬的对象,也是那时候最辉煌。而现在呢,则颇有“英雄迟暮”之感。(所以说就现在而论,击败李世石不等于完全击败人类,比如柯少侠就表示不服233)
再者很多人包括我一开始也认为,李世石的棋风被计算机克制。李世石的长处在于中后盘的搏杀搅局,特别是他赖以成名的“僵尸流”,而布局却不是很擅长。而计算机呢,随着棋盘的缩小,计算机的搜索应该更准确。也就是说,计算机也擅长中后盘,那么如果李世石布局不能建立足够的优势,那么后半盘很容易被赶上来。而恰恰李世石并不擅长布局……
但实际上这个想法是有错误的,甚至可以说正是这个想法导致了李世石发挥失常,1:4落败。观看了五局棋,我发现alphago的棋力和原先的认识是有出入的。alphago的布局和大局观很好,几乎无懈可击而且很多地方颇值得借鉴(比如第二局的黑13手脱先和黑37手五路肩冲)而alphago中后盘的战力却没有人们想象中的那么强,很多地方与其说alphago中后盘太强不如说李世石下的太缓。虽然alphago也有比较厉害的地方(比如维持优势的能力以及第一局先手破空做活),但是在局部攻杀上却表现平平甚至有时非常糟糕。比如第四局应对“神之一手”的白78手,alphago的79、103的应对可以说非常糟糕(我就不说第四局里alphago里那些业余棋手都下不出来的招数了)。实际上第四局78手只是“年度骗招”而非“年度妙手”,事实这里上没有棋。比如网上流传的这张图
大家有兴趣可在把这里的变化在摆一下,有几个交换白棋正好不能同时走到,不能出棋。
还有第五局里右下角的变化,白棋也没有下出最强手,最强应如下图1~5(古力老师指出的妙手) 实战把变化走尽还亏官子实在不是好棋。
所以alphago的中后盘计算力也不是“算无遗策”,也是有很大漏洞的(原因之后再讲到),没有必要过分神话。
所以,我认为李世石最大的败因可能还是没有下出自己敏锐灵活的力战棋风。第一局优势下被逆转后,第二局明显保守,第四局一开始更是气势上被压制,若没有78的“神来一手”恐怕李世石就要4连败了。而第五局79手也太过保守,导致形势被逆转。而第三局倒是摆出了拼杀的架势,可惜用力过猛,导致提前落败。
我感觉,李世石在这5盘棋中并没有完全下出自己的棋风,感觉不是我当年熟悉的李世石。小李可能太相信计算机的计算能力了,有些地方该出击却没有出击,有些畏首畏尾;而有的地方又过于无理,没有了以往“稳、准、狠”的感觉。很长时间我都觉得李世石似乎“灵魂出窍”了……
说到底还是心态的问题。其实围棋的意义远远不止是棋盘上的变化那么简单。它考验的不仅是棋手的技艺,更是棋手的心态,胆略。李昌镐当年能独步棋界,除了的技艺滴水不漏以外,更重要的是他“不动如山”的“石佛”之风。在盘外,任何情绪上的波澜都有可能导致昏招、恶手的发生。作为小李一生对手的古力老师就说:“李世石是最擅长捕捉对手心理变化的棋手,但这次他的对手换成了一台人工智能,没有情绪波动,反而是他的情绪波动造成了失误,被对方逮住了机会。”更糟糕的是,比赛的2小时制也对李世石非常不利。事实上除了第一盘以外,李世石的用时都超过了alphago,甚至进入读秒,而读秒是很容易影响人的计算和情绪变化的。小李赛前选定时间应该还是轻敌了,而第一局的失利更致使了自信受到冲击,导致后面一错再错,直到第四局后半段才恢复过来。小李作为当年我学棋的偶像之一,我觉得这次比赛结果对他来说还是比较遗憾的。毕竟顾虑的太多心态有些失衡了,这五盘棋中令人扼腕叹息的地方着实不少。倘若李世石就把对面当作一个普通的棋手,下出自己的棋风,我觉得“胜负之数,存亡之理,或未易量”。
说完了围棋方面,该谈谈算法方面了
首先要恭喜alphago取得4:1的巨大胜利,这一成果肯定是要载入史册的。
我还依稀记得,我第一次接触人工智能是在奕城围棋上。那时候,奕城围棋推出了一个人工智能的功能。对于这个人工智能,我的唯一感觉就是虐得真爽,每次下完就看对方有几块活棋……当然在那时的水平围棋上的AI最强也只有跟我差不多的水平。虽然我知道计算机在确定规则确定胜负的游戏上注定要打败人类的,但是我也没有想到这一天会来的这么快。这一切都要归功于神经网络、深度学习和蒙特卡洛算法。
……好吧,其实我很不懂,但是蒙特卡洛算法我以前是听过的(好像是在全国冬令营上?)。
其大意就是:假设对弈双方都随机地落子,快速进行很多(比如1000000)盘,计算胜率作为局面估价,选择好的胜率落子。
这个算法的应用非常有意义的。之前很多围棋AI(我猜奕城的就是这样),都是笨拙的模仿人类的招法,录入定式和固定的布局啊等等(其实就相当于不断的打补丁&)。当人一变招计算机就傻了。而这个算法精妙在于,他很生动的模仿了人类下棋时计算—评估的过程。这个算法的应用使得围棋AI从入门一下提升到业余高手的水平,可以说是质的飞跃。至于从业余高手到职业高手,就需要结合神经网络、深度学习了。(由于我不懂,就不说了……,我猜大概就是不断自我对弈然后修正评估参数吧?)
当然蒙特卡洛算法也有缺点,而且在这次比赛中也体现出来了。因为毕竟是随机,而有些棋在棋手对局中肯定是损棋,比如第四盘黑97手挖(白78和黑97挖形成鲜明对比233),稍有水平的人都会有相同且唯一的应法。而计算机是随机的,有些棋你走别的,那计算机就可能获得巨大的收益,从而会评估出一个较大的胜率。但这个胜率在实际职业对局这几乎是不切实际的。我觉得这大概就是第四盘alphago后面昏招迭出,下出各种损棋的原因吧!正因为如此蒙特卡洛算法常与一定程度的暴搜、启发式搜索相结合。围棋可能性太多显然不能全部穷举,但在局部搜索某几步则可以使得胜率评估更加精细准确。另外,alphago特别喜欢把棋手习惯“保留”的地方走掉,我觉得这大概是为了减少不必要的随机来提高后续评估的准确性,未必真的符合棋理,没必要过分神话。
不过总的来说alphago真的算是非常非常强了,毕竟是被韩国棋院授予名誉九段的“狗”!世界排名第2的“狗”!
衷心祝愿AI能够更好的服务于今后人类的生活,也希望棋界能从alphago的招法中汲取经验更上一层楼。