1月4日,神秘围棋高手Master横扫人类顶尖高手,继打败范廷钰、柯洁甚至棋圣聂卫平后,最后乘胜一举拿下古力,终斩得60连胜。
早在2016年3月9日,于韩国首尔对战的「人机世界大战」举世瞩目,参战双方是由Google DeepMind黄士杰带领研发的AlphaGo与韩国名将李世石九段。
AlphaGo在连胜三场后,在第四场由于失误下出一子废棋,终使得比分扳回至3:1。虽说后续有人在恐惧该局是AlphaGo为进入人类排行而故意为之,但即使这样的判断逻辑在程序中可以实现,就目前而言,真正能通过「图灵测试」的机器还尚未出现。反而值得思考的是李世石也许会是最后一个在围棋中打败过人工智能算法的人类。
一. 四次人工智能与人类交战
1997年,排位于世界259名的IBM「深蓝」超级计算机以2胜1负3平的战绩打败时居世界国际象棋首位的卡斯帕罗夫。
2006年,中国超级计算机「浪潮天梭」在首届中国象棋人机大赛中,一己之力迎战柳大华、张强、汪洋、徐天红、朴风波五位大师,并以11:9险胜,第二天再战许银川时,终被战平。
2011年,仍是由IBM研发的「沃森」在美国的智力问答节目《危险边缘》中轻松打败两位人类冠军。「沃森」通过高速检索存储于本地将近2亿页,包含历史、人文、政治、科学等数据的缓存,回答过程中甚至能通过分析语义,战况判断来做出正常问答与抢答的行为。
2015年10月,Google麾下DeepMind研发的AlphaGo程序首次实现人工智能程序在不接受人类让子情况下,以5:0的优势碾压式战胜欧洲围棋冠军樊麾。2016年3月,AlphaGo挑战韩国名将李世石,虽出现失误,但仍以3:1战胜之。9个月后的近日,AlphaGo以神秘帐号Master身份归来,并横扫围棋界,连胜60局,其中包括柯洁、聂卫平等,几再无人类可敌。
二. AlphaGo与深蓝对比
会有人疑惑为何没有在「深蓝」基础上继续发展围棋,而是在长达20年后重新研发AlphaGo。
这里有个区别,「深蓝」是用暴力穷举的方式来实现棋路的选择,而AlphaGo是近几年神经网络迅猛发展的产物,是能实现自学习与优化的人工智能系统。举个例子,以前你要在一个村子里找一个人,由于人少,你只需挨家挨户地去问总能找到,但现在要在全世界范围内找到一个叫Dennis的人,挨家挨户去问的方式就不再适用,而是要用其他的更加高效的方式。
Google对象棋与围棋复杂度给出了以下动图
相比深蓝,基于神经网络的AlphaGo无论在硬件还是软件算法上都有明显优势。
1. 计算机硬件突破
首先要引入一个概念,计算机专业的朋友都不会陌生,FLOPS,即「每秒所执行的浮点运算次数」,用于估算计算机的执行效能。由于计算机是以0和1构成的二进制数据进行运算,那么当需要进行浮点数,也就是小数运算时,只能先对整数整除10的次方来实现,而这个性能衡量的标准就是FLOPS。
深蓝
当时记录显示,深蓝的计算能力是11.38GFLOPS,也就是能在1秒内完成113.8亿次带小数的运算,听起来是很惊人的数字,但实际上,目前任何一台你办公室在用笔记本或者你在用的手机处理器运算速度都能吊打它。
上图为「深蓝」计算机展图
查了一下引以为豪的「天河二号」超级计算机,之前跑出了30.65PFLOPS的记录,也就几乎已经是深蓝的30万倍能力,这还是基于Intel的天河2号在未开足马力的状态下得到的成绩。
AlphaGo
AlphaGo是基于云计算平台运行,知乎上有朋友参考阿里云开放的高性能计算服务,以阿里云所描述的计算机单机浮点运算能力是11TFLOPS的数据类比,这样AlphaGo的硬件能力就已经是深蓝的1000倍了。
此前,Google几个月前在《Nature》上公布的数据就已经显示该分布式计算的AlphaGo已经搭载在了1920个CPU及280个GPU上,这已经是深蓝在硬件上没有任何办法比拟,估计AlphaGo的计算能力是「深蓝」的3万倍。
2. 软件及算法
深蓝
深蓝当时尚未采用深度学习算法,而是使用了暴力穷举式的方式,生成出所有可能的走法,下子前对树状结构进行尽可能深的检索,并利用专为象棋设计的象棋芯片「Chess Chip」中的「评估模块」(Evaluation Function)实时对战况进行评估,以推算出胜负可能,从而选择出最优下棋点。
但象棋毕竟仍属高次运算,华院的数据科学家尹相志Allan做了以下推算,如深蓝能预测到未来20步的结果,那这就需要在分支因子40的基础上,做40的20次方运算,对于1GHZ的处理器要计算近3486528500050735年,当然这是不可能的。
因此深蓝采用了MinMax搜索算法以及Alpha-Beta修剪法大大缩小了计算范围,通俗地说,也就是在进行深度检索时,赢面较大的层数多找几层,输的可能性较大的步骤少搜索。
AlphaGo
AlphaGo就不同了,架构上建立了两个独立的神经网络结构:策略网络(Policy Network)与评价网络(Value Network),两个网络都由13层的卷积神经网络组成。策略网络在训练以及近几次的下棋过程中,只是充当着监督学习的角色,只需预测出对方最有可能的落子点即可。后者评价网络则是用来在这个棋子落下后,进行评估整场棋局最终将会是白棋赢还是黑棋赢。
作为Facebook智能围棋软件darkforest的负责人卡耐基梅隆机器人系博士田渊栋在知乎专栏-远东轶事中对AlphaGo的系统做了详细解读,感兴趣的话可以搜索。策略网络把当前局面作为系统输入,利用「蒙特卡罗树搜索」来预测下一步的走棋位置。
蒙特卡罗树搜索的地位
知乎上@孙天齐 对蒙特卡罗树给过以下比喻,很生动,若有需要我会后续再做介绍。
由于目前尚无法较准确预测出对手的落子位置,仅凭与人类的对局在数据量上远远不够,因此就在策略网络中引入了增强策略网络的技术,首先先用部分样本训练出基础版的网络,再利用完全样本训练出一个进阶版的网络,再使这两个网络自我对局来实现增强学习,使得数据量无限增长,直到使较弱版本发展成能准确预测出进阶版网络的落子点,以此循环实现。
不禁想到了中国苗族的「练蛊」。
但单纯的策略网络并不能较好地控制棋局的发展方向,田渊栋给了很恰当的比喻,就像高手不经认真思考的随手棋。评价网络能够很好地弥补这个问题,当策略网络在进行落子位置判断时,评价网络会根据优劣形式砍掉大量估值结果较差或者不值得深入搜索的分岔树,以达到提高效率的目的。
三. 人工智能威胁论的思考
自AlphaGo归来并一举横扫围棋界,对人工智能的恐慌再次弥漫社交网络,甚至人类将会被人工智能威胁论甚嚣尘上。在我看来,此类威胁论仍属杞人忧天,相反,人工智能技术的发展对人类带来的积极影响将会是过去几十年甚至一百年的技术发展所难以追及。
先讨论围棋的问题,文章伊始言及李世石也许会是最后一个战胜人工智能的人类,那是否就说围棋再也没有发展意义了?答案必然是否定的。
尽管在卡斯帕罗夫当年被深蓝打败后,人类一直认为围棋会是镇守人类智慧尊严固若金汤的最后防线,却也没想就在前几日也被摧毁。柯洁在赛后发了如下微博:
世界冠军尚喟叹人类认知全都错了,何不能将此作为人类围棋打开全新天地的信号呢?聂老及其他一众围棋大师在与AlphaGo对阵中,都发现它下出了不符常规的奇招,且打开困局重生,也许这样破局的方式将会重新定义已固定千年的围棋观与技艺。再者,围棋本身不仅在于棋战的胜负,更多的张力本应来自于黑白两色带来围棋之美,也许如此便能摆脱原有的桎梏。
对于自动驾驶等其他人工狭窄智能领域更是如此,技术尚未跟上,一切不基于技术讨论的威胁言论也请先放一放。
AlphaGo的部分代码在Github上开源,其中部分程序还是依赖于Google TensorFlow实现,可以下载棋谱来自行训练模型,点阅读原文直接跳转
https://github.com/Rochester-NRT/RocAlphaGo
热门跟贴