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

作为一个评论者我的身份较特殊,人工智能相关的技术领域我涉足了5年,下围棋的时间则有18年。前者的水平我不敢妄自评估,但领域内的最新技术,包括AlphaGo使用的蒙特卡洛搜索树和神经网络深度学习之类,基本也在我了解范围之内;后者的水平,大约相当于业余弱5段的样子,高中的时候在县里打打比赛拿个名次也是家常便饭。而我那些比我更懂人工智能的同事们,却连围棋基本规则的也不懂,看直播的时候只是看个热闹而已。我只能孤零零地一个人看新浪的围棋直播,默默地看着李世石一局接一局地落败。即使是他赢下的第四局,实际上也不过是恰好触发了AlphaGo的bug而已。

比赛前我没有看过之前AlphaGo和欧洲冠军樊麾比赛的棋谱,但无论从一个程序员还是一个棋手的角度来讲,我都不认为AlphaGo有胜算。小李的强大是全方位的,也是靠他过去的战绩足以证明的。但是五局比赛下来,除了第四局有一丝隐隐约约的小李风格之外,其他四局完全看不出来是他在对局。抛开第一、二局中的打劫争议不谈(个人是绝对不同意小李故意不打劫这种说法的),小李在比赛中的问题手也是偏多的,棋风也不同于以往,在整个人机大战中并没有发挥出自己的真实水平。其原因大致有以下几点:

(1)信息不对称。这一点基本上是围棋界和人工智能界的共识。AlphaGo事先存储了包括李世石在内的大量人类高手的棋谱,而李世石显然是没看过AlphaGo的代码逻辑和训练结果的,即使看过估计他也看不懂。虽然也有放出AlphaGo对阵范麾的五张棋谱,但是这些棋谱是AlphaGo几个月前的水平,而在几个月之后,它通过自我对局水平提高了多少,小李肯定无从得知,大概也只有DeepMind开发团队才知道。如果事先知道AlphaGo的综合实力分布(比如布局中盘官子哪个更强),以及对局风格(比如倾向于攻击还是防守还是均衡),也许小李就不需要在第一、三局进行试探,也不会在第二、四局下得那么保守。事实上,赛前整个围棋界对AlphaGo的评估都是有偏差的。在AlphaGo之前所有的围棋AI所表现出的都是较强的局部计算力和相对较弱的大局观(或者叫判断力),而AlphaGo与之完全不同,从人机大战的五局来看,其大局观,要强于局部计算力。AlphaGo可以在第二局下出天外飞仙的37手,也能在第四、五局的几个局部出现很明显的误算,另外在优势的情况下会适当退让以保证取胜,都是明证。

(2)AlphaGo的落子节奏导致逻辑割裂。一般人类棋手的落子节奏取决于当前局面,有些地方的招法相对固定,可能1分钟之内可以下十几手,而一些复杂局面会思考一个小时甚至更长。就像一首歌曲,时而节奏轻快,时而节奏缓慢,音调时而高时而低,但整体是顺畅的,悦耳的,或者说逻辑相关的。但AlphaGo完全不同,再简单的局面它也会想一分钟再落子,某种意义上它把每一步棋之间的逻辑割裂了,或者说,破坏了人类棋手下棋的节奏。无论是下棋,还是拳击,射箭,跳绳,拉面,唱歌,作诗,画画,骑自行车,织毛衣,节奏都是非常重要的东西,有时候丢失了固有的节奏,什么事情都会不顺畅。哪怕哪怕炒菜做饭呢,到了该开小火的时候,突然有一快递员按门铃,做饭的人也一定会产生一个心理波动(比如烦躁),这是人的神经反射所决定的,不可避免。即便作为一个胜负师,小李的心理承受能力高于常人,但AlphaGo落子节奏的影响对人类棋手水平的发挥绝对是不可忽略的。

(3)心理战。许多职业棋手能通过对方的表情和动作来判断其战术意图和心理状态,从而针对性地行棋。心理战确实是人和人比赛中不可或缺而且十分精彩的一个部分。但是人机大战中,心理战完全无效,而且越擅长心理战的棋手就越吃亏。小李对心理战的擅长程度我们不得而知,但无法使用心理战无疑会造成一些问题。这里还不得不提到AlphaGo的人肉臂黄士杰博士,为了不影响对局,他在整个比赛中滴水未沾,甚至时刻保持面部表情严肃,必须对他表示由衷的敬佩。

(4)心理波动导致的竞技状态波动。心理,还是心理。人是复杂的动物,心理对表现的影响极大,在围棋这样的智力游戏中更为明显。人的水平发挥波动远大于机器,下棋时下出妙手和恶手的概率都要大于机器。不幸的是,AI特别擅长优势局面,这一点跟巅峰时期的李昌镐很像。面对AI的时候,且不论妙手是不是容易找到,至少恶手一出就万难挽回。小李虽强,但他的强是对于其他职业棋手而言的强。当他出现恶手而导致局面落于下风的时候,他固然曾多次凭借自己的妙手翻盘,但更多的时候是通过搅乱局面等待对手失误来获胜的。而机器出恶手的机会要小很多,而且越到后半盘就越不容易犯错误(导致输掉比赛的大错误,而非导致局部亏损的小错误)。对战机器,如果单纯以取胜为目标的话,也许会写代码、懂人工智能原理的棋手会比小李更适合,因为他们更了解机器,更容易找到机器的弱点。只是在这两个领域都能达到顶尖的人物,在这个时代是不存在的。但我大胆预言,如果未来围棋没有走向消亡,那就必然会出现这样一个人物,至于能不能横扫天下,谨慎看好吧。

(5)小李毕竟过了巅峰期。这条不解释。

那么,我们假设是巅峰状态的李世石,在事先充分研究了AlphaGo的棋谱,了解AlphaGo的真实实力,并且在比赛中没有出现显著的水平波动,他能赢AlphaGo么?

现在也许能赢,但在未来的某个时间点开始,任何一位职业棋手都再也不能击败AlphaGo哪怕一局,甚至任何多位职业棋手联合起来也无法击败它。小李输棋,甚至樊麾输棋早已代表了这个趋势,只不过没想到这一天会这么快就来了而已。

另外一个值得思考的问题是,在天(穷尽围棋所有变化)与地(最基本的围棋规则)之间,人类棋手的水平究竟在什么样的一个位置?以AlphaGo为代表的人工智能又在什么样的一个位置?

没法给出答案。唯一能知道的是,人和人工智能显然都在地之上,但还远远达不到天。而人工智能作为人在思考能力上延伸,就如同火车飞机是人走路能力的延伸一样,必然在特定的领域上超越人,而且能超越得很远。无需为这种事情烦恼,因为这对人类是绝对的好事,就如同工业时代机器解放了人类的体力,信息时代人工智能就能解放人类在相对简单又枯燥的思想活动中所消耗的脑力,然后投入到更复杂更高级的思想活动中去。其实计算机在几十年前就已经辅助人类证明了四色定理,我们有理由相信它未来能做更多的事,虽然这些事仅凭借我有限的想象力实在是连一件也想不出来。

对于我个人而言,在李世石落败之前,我不下围棋很久了,只是看看新闻和杂志。在李世石落败之后,我又开始偶尔下下围棋了,只不过现实中的对手难觅,不得不选择在网络上下围棋。网络围棋给我的感觉是充满了戾气,总觉得是在为了发泄而下棋,说实话远不如在现实中找到两三个棋友下下棋聊聊天有意思。当然这扯远了。作为一场划时代的比赛的见证者,我感觉这场比赛让我的思路和见识扩展了很多。

-----------------分割线-----------------

转眼已经是2018年了。柯洁已经被AlphaGo 3:0 KO(当然也算站着死了),在网上AlphaGo更是60连胜,然后直接封刀隐没,留下DeepZenGo、绝艺、石子旋风什么的高仿还在那里。除了AlphaGo之外的这些围棋AI,让我想起西班牙斗牛里的啥花标手啊长矛手啊之类的,两个字,配角。只是主角已经淡出舞台了,你们哥几个配角还站在舞台上,是不是略略有点尴尬?

拜如此牛B的围棋AI所赐,以后围棋比赛,估计对用手机、上厕所等行为要开始慢慢地管控了,柯大侠中盘“自战解说”估计也要成为绝唱。

这倒也没什么,更值得担心的是围棋作为一项古老的智力运动,会不会就此衰落?毕竟作为一个业余棋手,还是不希望自己喜爱的一个项目渐渐消亡的。

已经有太多的东西衰落了。京剧沪剧昆剧,连我父母这种50开外的人都不会看,更遑论我这一代;吴语,我这一代已经基本沦为和长辈交流的工具,和同辈讲话基本都是普通话了,又或者话也懒得讲,直接打字了事;哪怕就是理发店,那种80年代装修的老店铺,在镇上也就剩了两个,其他的,都是外来青年开的,剪的好不好先不谈,刚剪了三刀就要开始鼓励你办卡,不胜其烦。扯远了。

长远来看,围棋必然是要衰落的。其最大原因,倒不是技术,而是经济。任何一项比赛,哪怕是吃汉堡大赛,其竞技性仍然是要依靠可观的奖金来维持的。正所谓重赏之下,必有勇夫,如果一个项目有高额的奖金,那有运动天赋的人,可能就更倾向于选择这个项目。那么,作为一个想赞助比赛的老板,他会选择赞助什么项目呢?大致有两个选择,第一,能赚钱(也许还包括一些政治上的考量);第二,自己感兴趣,或者自己所处的环境里有一定量的人感兴趣。前者大家都能理解,为啥现在足球篮球这么火,因为看的人多啊。看的人多,那电视转播、门票、代言、周边,哪怕是赌球呢,哪个不是赚钱的好工具。与此同时,这种大众项目的基础建设、广告宣传,都做的很好很先进,还会吸引更多的人。这类大众项目,往往收益更高,所以球员身家连年攀升,五大联赛的球员工资也是以百万欧元计。后者呢,估计是很多小众项目赖以生存的原因。也许有的老板玩腻了豪车美女高尔夫了,非要整点其他土豪不了解的项目。又或者老板的家乡风俗有八月十五吃月饼比赛,那他为了家乡父老的面子说不定也一高兴就投资赞助了一下。换做是我当了老板,也许也会每年在家乡办个打红心(一种类似于拖拉机的牌类游戏)公开赛,哈。这类项目,限于人数和地域,甚至包括准入门槛,往往奖金不多,参赛的和观众也不多,比较难做到雅俗共赏(高尔夫似乎是个例外)。

围棋这个项目,似乎更倾向于后者。围棋可以说是一个典型的准入门槛较高,而且不入门就欣赏不来的项目。不会踢足球没关系,看看进球图个乐呵,或者就看看小贝卡卡这种大帅哥也无可厚非。但是不懂围棋的话,连谁胜谁负都看不出来,未免有些尴尬。棋手又是盯着棋盘一副冷漠脸,欣赏颜值也挺难的。这类项目,在娱乐方式日渐增多的如今,是不大可能有很多观众,从而也不太可能有很多赞助的。围棋比赛的奖金,说多也不算多,说少也不算少。目前冠军奖金最高的应氏杯,是40万美元(从1988年应氏杯创建开始就是这个数,一直都没变过),到棋手手里的话也就150万人民币吧。在上海,差不多能付一个两室户的首付。围甲联赛一个赛季的收入大约是50万保底,大约相当于IT行业一个10人Team的Leader的年薪。这些钱从哪里来?就中国而言,赞助围棋比赛的老板,很有一部分是在年轻时候,看着聂卫平棋圣在中日擂台赛上神勇发挥而喜欢上围棋的。彼时人们没有手机电脑,娱乐活动相对比较匮乏,又加上中日擂台赛这种带有浓厚政治色彩的主题,遂培养出大量的棋迷,这些棋迷发了财,有的就开始赞助比赛。这些赞助比赛的本身身家都不能算高,只是因为喜欢围棋,方才拿出真金白银。

那么问题来了。等到这批人老了,他们的继承者们会继续赞助比赛吗?悬,正所谓崽卖爷田不心疼,儿子和老子有共同的爱好,可能性当然也存在,但妥妥地会被逐渐稀释。节流这一方面,我只能持悲观估计,那么开源呢?会有新的老板赞助举办新的比赛吗?妥妥地有,毕竟这个时代还有古力、柯洁们举着中韩对抗的大旗(还是多多少少有政治色彩),发展些新棋迷也不意外。只是,这个趋势只会越来越弱。如今韩国的职业比赛已经大幅减少,不少职业棋手开始出现无棋可下的尴尬局面,而应氏杯的奖金这么多年没有涨过。中国的话目前看来还不错,百灵杯,梦百合杯,新奥杯相继创办,这也表明世界围棋的重心基本已经由韩国移到中国。据说马爸爸也是一个围棋爱好者,不知道会不会掏点钱赞助个大比赛呢?但这股势头能够持续多久呢?另外一个问题来自群众基础。可以说聂卫平那个年代,中国人的娱乐方式远不如现在这么丰富多样,因此在老聂神勇发挥之下,能产生相当规模的棋迷。可是如今,更多人会倾向于看剧、看直播、打手游之类,围棋的魅力一如当初,只是围棋的群众基础,被其他眼花缭乱的各种项目分流走了。总的来说,尽管一万个不乐意,但是对于围棋的未来,个人只能持谨慎不看好态度。

至于AlphaGo在围棋的衰落进程中起到的作用,很难评估,似乎有推进又有阻碍。不过至少在短期内,会对围棋界乃至社会各界起到一个非常大的刺激作用,发展出一批“科技新棋迷”也未可知。呔,仔细想想,能活在这个精彩纷呈的时代,有生之年能看到AlphaGo这种人工智能应用于实际问题的传奇,是不是也算是一种幸运了呢。不由得想到吴清源大师,也想到藤泽秀行、坂田荣男这些为棋道奉献一生的棋手们,如果他们在有生之年,能够目睹AlphaGo横空出世,又能和AlphaGo过上两招,是不是会更有人情味一些。不觉鼻子有些发酸。

-----------------分割线-----------------

AlphaGo的教学工具业已推出,说实话做得相当简陋。但是其核心功能——评估每一步棋的好坏——已经具备一定的雏形,只是搜索分支展示得还偏少而已。而其他围棋AI也在逐步推出自己的教学工具,这使得复盘变得很有意思:一手棋的好坏评估不再是棋手主观上的好恶,而是计算机客观公允的评价。《围棋天地》杂志和新浪围棋频道上的棋评已经开始引用AI的胜率分析,虽然这些AI应当不如AlphaGo这么凶残,但是对于爱好者而言,无疑是一件好事。此外,开展围棋教学的时候,使用AI教学工具更是百利而无一害的一件事情。

文笔很差系列1 - 也谈谈AlphaGo的更多相关文章

  1. 文笔很差系列4 - Kris Kremo

    转载请标注原链接 https://www.cnblogs.com/xczyd/p/11127671.html Kris Kremo老先生(1951年出生,1970年第一次正式登台,截止2019年练习时 ...

  2. JavaScript系列文章:谈谈let和const

    JavaScript系列文章:谈谈let和const   最近接触到ES6的一些相关新特性,想借let和const两个命令谈谈JavaScript在变量方面的改进. 由于let和const有很多相似之 ...

  3. jquery 评论等级(很差,差,一般,好,很好)代码

    可能标题没有说的太明白,这里先让大家看一下效果,以便让客官们了解小弟说的是什么... 看完效果后估计各位客官已经明白小弟说的是什么了吧,下面小弟就带大家看下代码 <style> .maxd ...

  4. 关于scratch导出的flash画质很差的问题解决方案

    Scratch的分辨率是480*360,因此把scratch文件转变为flash时,因影像和画质很差,把flash插入到ppt幻灯片后,影像和画质仍然得不到保证.经过不断摸索,这个问题终于得到解决,关 ...

  5. 就算是3.0的U盘,写入速度10M及以下也是正常的,U盘用很差的闪存颗粒的话就算10Gbps的USB3.1也是很慢的。

    作者:范德成链接:https://www.zhihu.com/question/56251636/answer/157021710来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  6. 随便谈谈alphago与人机大战

    3月16日历时8天的人机大战终于落下帷幕,alphago以4:1的比分击败了当年如日中天的李世石.这个结果让我这个围棋爱好者+计算机爱好者百感交集…… ——一个时代落幕了,一个新的时代开启了. 这次人 ...

  7. 《windows核心编程系列》七谈谈用户模式下的线程同步

    用户模式下的线程同步 系统中的线程必须访问系统资源,如堆.串口.文件.窗口以及其他资源.如果一个线程独占了对某个资源的访问,其他线程就无法完成工作.我们也必须限制线程在任何时刻都能访问任何资源.比如在 ...

  8. Eureka详解系列(一)--先谈谈负载均衡器

    这个系列开始研究 Eureka,在此之前,先来谈谈负载均衡器. 本质上,Eureka 就是一个负载均衡器,可能有的人会说,它是一个服务注册中心,用来注册服务的,这种说法不能说错,只是有点片面. 在这篇 ...

  9. 自定义View其实很简单系列1-12

    作者: AigeStudio  http://blog.csdn.net/aigestudio 说明:文中的1/12表示12篇中的第1篇, 1/6=2/12表示12篇中的第2篇,其它类似. 自定义控件 ...

随机推荐

  1. go 编译:交叉编译&编译执行过程

    1. 交叉编译 编译Windows程序和mac程序 GOOS=windows GOARCH-amd64 go build main.go 转自:https://www.cnblogs.com/mafe ...

  2. 11个简单的Java性能调优技巧,傻瓜都能学会!

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识.好吧,不能说这是完全错误的.优化应用程序以获得最佳性能不是一件容易的事情.但是,这并不意味着如果你不具备这些知识,就不能做任何事情. ...

  3. Bootstrap3基础 warning/active... 表格的状态类(不同的背景色)

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  4. Oracle 客户端 NLS_LANG 的设置

    参考链接1: https://blog.csdn.net/xinzhan0/article/details/78311417#t3 参考链接2: https://blog.csdn.net/xinzh ...

  5. ubuntu18.04中python虚拟环境的安装

    一:下载虚拟环境安装包 sudo apt install virtualenv sudo apt install virtualenvwrapper pwd  查看当前目录 ls -all 查看是否有 ...

  6. Ceph常用命令

    目录 [1.环境准备] [2.部署管理] [3.集群扩容] [4.用户管理] [5.密钥环管理] [6.块设备管理] [7.快照管理] [8.参考链接] 简要说明: 最近心血来潮,对分布式存储感兴趣, ...

  7. 【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份

    在数据库管理中,数据库备份是非常重要的. 通过维护计划向导,可以很方便的完成数据库备份. 下面的例子说明了如何实现数据库的备份,具体的备份策略是:每周日一次完整备份.每天差异备份(除周日外).每小时日 ...

  8. php 搜索附近人及SQL语句的写法

    /** * 根据经纬度和半径查询在此范围内的所有 * @param String $lat 纬度 * @param String $lng 经度 * @param float $radius 半径 * ...

  9. 977. Squares of a Sorted Array有序数组的平方

    网址:https://leetcode.com/problems/squares-of-a-sorted-array/ 双指针法 把左端的元素和右端的元素比较后挑出绝对值大的,将其平方放入ans中,并 ...

  10. iOS分类底层实现原理小记

    摘要:iOS分类底层是怎么实现的?本文将分如下四个模块进行探究分类的结构体编译时的分类分类的加载总结本文使用的runtime源码版本是objc4-680文中类与分类代码如下//类@interfaceP ...