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的招法中汲取经验更上一层楼。

 

随便谈谈alphago与人机大战的更多相关文章

  1. 人机大战中AlphaGo及其执子人黄士杰

    2016年3月9日注定要写入围棋界的历史.IT界的历史以及科学界的历史.当天,韩国著名围棋棋手李世石VS谷歌AlphaGo的人机大战赛在韩国首尔举行.对弈的一方为拥有1200多个处理器的谷歌人工智能系 ...

  2. 世界围棋人机大战、顶峰对决第二战:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,AlphaGo再次胜出!

    感觉在哔哩哔哩(bilibili)上看比赛直播比较好,一直可以看到比赛的直播画面,还能听到英文解说和中文主持人的解说.YouTube上是不错,但是一方面爬梯子比较卡,另一方面只能听到英文解说. 韩国著 ...

  3. 我与小娜(36):人机大战第五局,AlphaGo必胜!

    我与小娜(36):人机大战第五局,AlphaGo必胜!       小娜知道,细致阅读论文"Mastering the game of Go with deep neural network ...

  4. 也谈谈AlphaGo

    距离AlphaGo击败李世石已经过去数月了,心中的震撼至今犹在,全刊报道此项比赛的<围棋天地>杂志我已经看了不下十遍.总也想说点自己的意见,却也不知道从哪里说起,更不知道想表达些什么. 作 ...

  5. 文笔很差系列1 - 也谈谈AlphaGo

    距离AlphaGo击败李世石已经过去数月了,心中的震撼至今犹在,全刊报道此项比赛的<围棋天地>杂志我已经看了不下十遍.总也想说点自己的意见,却也不知道从哪里说起,更不知道想表达些什么. 作 ...

  6. 世界围棋人机大战、顶峰对决第一盘:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序

    Match 1 - Google DeepMind Challenge Match: Lee Sedol vs AlphaGo 很多网站对世界围棋大战进行了现场直播,比如YouTube.新浪.乐视.腾 ...

  7. 人机大战之AlphaGo的硬件配置和算法研究

    AlphaGo的硬件配置 最近AlphaGo与李世石的比赛如火如荼,关于第四盘李世石神之一手不在我们的讨论范围之内.我们重点讨论下AlphaGo的硬件配置: AlphaGo有多个版本,其中最强的是分布 ...

  8. 随便谈谈用canvas来实现文字图片粒子化

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 看了岑安大大的教程http://www.cnblogs.com/hongru/archive/2012/03/28/2420415.htm ...

  9. JS+canvas实现人机大战之五子棋

    效果图: html代码如下: <!DOCTYPE html><html>    <head>        <meta charset="utf-8 ...

随机推荐

  1. Codeforces Round #242 (Div. 2) C题

    题目链接:http://codeforces.com/contest/424/problem/C, 想来一个小时,就是做不出,都做出来了,悲剧! 分析:我们知道交换异或的顺序不影响答案! 然后就是求t ...

  2. Javascript在页面加载时的执行顺序【转】

    一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属 ...

  3. Ckeditor 中一些核心的对象的作用

    1.CKEditor CKEditor对象用于掌管全局,他是一个单例对象,管理着所有实例化了的编辑框. 通过replace方法创建编辑框实例. 2.CKEditor.editor 表示一个编辑框实例, ...

  4. Sqli-labs less 32

    Less-32 利用上述的原理,我们可以进行尝试payload为: http://127.0.0.1/sqli-labs/Less-32/?id=-1%df%27union%20select%201, ...

  5. POJ 2689 Prime Distance (素数筛选法,大区间筛选)

    题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...

  6. DllImport 相关错误

    问题: 当我用 [DllImport("*.dll", EntryPoint = "*",CallingConvention = CallingConventi ...

  7. 饶有兴致的用javascript做了个贪食蛇游戏

    09年写的东西.一直藏在自己的记事本里头,现在开始整理写博客,所以直接搬过来 先上效果图 再添代码: <HTML> <HEAD> <TITLE>贪吃蛇 Snake ...

  8. hadoop 2.0 native

    1.安装protobuf,参照http://wiki.apache.org/hadoop/HowToContribute 安装java模块 在java目录mvn install 2.配置protobu ...

  9. vim不保存退出

    对于刚开始使用vi/vim文本编辑器的新手来说,如何在不保存更改而退出vi/vim 文本编辑器呢? 当你使用linux vi/vim 文本编辑器对linux下某个配置文件做编辑操作,当你更改完之后,可 ...

  10. stringbuffer与stringbuilder的区别?

    1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们 ...