来源:计算广告
四年前,谷歌旗下DeepMind公司开发的围棋人工智能AlphaGo以4-1战胜韩国大国手李世乭九段。
今天,AlphaGo在大众视野中掀起的惊涛骇浪已渐平息,AlphaGo和李世乭都已从江湖退隐。
然而,围棋界因AlphaGo而起的沧桑巨变仍在进行时。
那么,人工智能与人类棋士的差距究竟有多大呢?
柯洁当年的豪言“AlphaGo能赢李世乭,但赢不了我”又是否可信呢?
1
棋力的量化标准
自李世乭、柯洁先后不敌AlphaGo之后,人类棋士被AlphaGo超越已成共识。
不过,AlphaGo,以及其他围棋AI具体比人类棋士强多少,仍是众说纷纭。
实际上,AlphaGo的开发团队,在《自然》期刊介绍AlphaGo Zero的论文《无需人类知识的围棋大师》(“Mastering the Game of Go without Human Knowledge”)中已给出了一个量化标准。
论文中采用的量化标准基于Elo等级分系统。
Elo等级分是美国物理学家阿尔帕德·埃洛(Arpad I. Elo)在1960年发明的,最初用于量化国际象棋棋士实力。
Elo等级分基于统计学评估棋士实力。
首先,Elo赋予新参与等级分体系的棋手初始等级分。
以中国围棋职业棋手等级分为例,1995年颁布时,以当时的职业段位确定初始分。
具体标准为:九段2560分、八段2520分、七段2480分、六段2440分、五段2400分、四段2360分、三段2320分、二段2280分、初段2240分。
聂卫平、马晓春两位九段因成绩特别突出,被赋予2600分的初始分,同列榜首。
然后,Elo假设棋士的实力遵从增长分布(Logistic Distribution)。
基于这项假设,棋士之间的期望胜率可以被计算。
而在棋士每赢或输一盘棋之后,其实际胜率会偏离此前的理论计算,因此需要按照公式调整棋手的等级分。
Figure1增长分布
若有A、B两位棋手,他们的分数分别是,那么根据增长分布假设可以推算,棋手A对棋手B的胜率期望值是:
.
例如,若当前棋手A等级分是3613分,棋手B等级分是3573分,那么按照上述公式,理论上棋手A对战棋手B的胜率是55.73%,计算过程如下。
等级分差距与期望胜率的对应关系见下表:
现在A和B下了一盘棋,之后B获胜,那么系统自然需要调高B的等级分,而调低A的等级分,具体按照以下公式:
其中是棋手A调整后的分数,是棋手A的调整前分数,在这个例子里是3613分。
K是一个控制等级分变化率的常数,通常级别越高的比赛,K值越大。
这里我们取围棋比赛里常见的K=16.表示棋局结果,棋手A胜、平、负,则分别取1,0.5,0.这盘棋A输掉,所以,是A本局的期望胜率,之前我们已经计算过了,本局的是0.5573.根据公式,我们可以求出棋手A输棋以后的调整分数。
也就是说,棋手A输给B之后的新等级分是3604.08分,失去了8.92分。
相应地,棋手B得到了8.92分,其新等级分是3581.92分。
根据上述公式,棋手赢一盘棋获得的分数并不总是一样。
若棋手A的当前等级分远高于棋手B,那么A胜B获得的分数就会较少,而A负于B失去的等级分则会较多。
这种规则无疑比每局赢棋获得固定的等级分合理。
2
AlphaGo的自评等级分体系
AlphaGo论文当中使用的Elo等级分体系,其评分基准是Go Ratings等级分。
Go Ratings等级分( )是由法国科学家Rémi Coulom创立的。
此等级分不具有官方地位,因而被部分棋迷调侃为“野榜”。
然而,Go Ratings等级分因其更新及时(每天更新)、范围全(包括中、日、韩、欧美等地绝大多数职业棋手)而广受棋迷欢迎。
Go Ratings等级分采用Rémi Coulom首创的WHR算法。
WHR算法在Elo算法的基础上改进,以更少的棋局就可以精确定位棋手的实力。
除此之外,WHR可以视作Elo等级分的变种。
截至4月24日,Go Ratings等级分前10名的棋手见下图:
Figure 2 Go Ratings等级分
其中,韩国00后棋手申真谞以3731的高分排名第一,中国棋手柯洁以3667分排名第二。
AlphaGo的各版本量化棋力,是由DeepMind开发团队基于大样本对弈,用Elo体系评估的。
其中,与AlphaGo对战过的人类棋手李世乭、樊麾被选定为基准。
10月,樊麾与初代AlphaGo(AlphaGo Fan版本)对战时,等级分为2900分左右,其与AlphaGo的比分是2-8,因此AlphaGo Fan版本的等级分被评估为3144分。
此处对AlphaGo等级分的评估也使用了WHR算法的快速定位,十局棋足够估算出AlphaGo的实力。
Figure 3 AlphaGo各版本等级分评估
在第二代AlphaGo(即AlphaGo Lee版本)与李世乭对战之前,其与初代AlphaGo之间的差距已达到让三子,因此DeepMind团队在内部测试中评估此版本等级分约为4500分。
同时,DeepMind负责人David Silver也在演讲中指出,4500分的评价有高估可能性。
果然,AlphaGo以4-1的比分战胜李世乭之后,由于李世乭当时的等级分3580分左右,DeepMind据此将第二代AlphaGo的等级分重新修订为3739分。
3
第二代AlphaGo的真实实力
DeepMind一次性将第二代AlphaGo的等级分评估下调近800分,看似匪夷所思,其实是负责任的做法。
最初的4500分评估主要基于AlphaGo不同版本间的“内战”。
从算法原理上看,第二代AlphaGo的模型是在第一代AlphaGo的基础上进一步训练改进的,因此第二代AlphaGo清楚地“了解”前代AlphaGo的弱点,特别善于对抗前代AlphaGo。
用机器学习的术语来说,这是一种过拟合(overfitting)。
Figure 4 过拟合
AlphaGo与李世乭对战输掉的那一局,是由于李世乭的“神之一挖”触发了AlphaGo一连串的低级错误。
部分科技类博主将此解读为AlphaGo出了bug,并进一步推断,如果不是这个偶发的bug,AlphaGo的实力已经远超李世乭。
其实这种解读并不准确。
纪录片《AlphaGo》忠实地记录了AlphaGo与李世乭之战的幕后故事。
在与李世乭对战之前,开发团队已经发现了AlphaGo偶然会下出愚蠢的臭棋。
并且,开发团队发现这样的问题在开赛之前已来不及修复了。
世界上最优秀的人工智能开发团队,只能祈祷AlphaGo在与李世乭正式对战时不要暴露这个问题。
从算法原理来看,神经网络训练出现问题的修复的确非常复杂。
修复一般的程序漏洞,只需要追溯与漏洞相关的逻辑,迟早能查出问题所在。
而神经网络更近似于一个黑箱,出现问题难以定位;即使对症地修改神经网络架构,或更换训练样本,效果也难以预测。
因此,AlphaGo与李世乭对战时的失误,并非偶发的bug,而是第二代AlphaGo模型的缺陷,应当被视作AlphaGo实力的一部分。
DeepMind最终将第二代AlphaGo的等级分评为3739分,不夸大、不粉饰缺陷,体现了实事求是的科学精神。
4
“AlphaGo能赢李世乭,但赢不了我”
当年李世乭在第一局输给AlphaGo之后,柯洁在微博上发出豪言壮语“AlphaGo能赢李世乭,但赢不了我”,一时引发关注热潮。
而在李世乭与AlphaGo的系列赛结束之后,李世乭则说,如果让他再与AlphaGo下五局,他至少能多赢一局。
柯洁
当时大部分人受AlphaGo排山倒海的气势震慑,认为柯洁与李世乭的自我评价过度自信。
但如果用前文提到的棋力量化标准去分析,两位顶尖棋士未必是在说大话。
柯洁发微博时,他的等级分在3630分上下波动,与DeepMind对AlphaGo 3739的评分相差约109分。
用Elo公式推算,柯洁对AlphaGo下一盘棋胜率约为35%。假设五盘棋的胜负是独立事件,那么柯洁赢下与第二代AlphaGo的概率是23.5%。
作为对比,首届新奥杯决赛,柯洁对阵彭立尧。
彭立尧在0-2落后之后,将比分扳成2-2平,并在第五局将柯洁逼到悬崖边上,几乎实现惊天逆转。
彭立尧当时的等级分比柯洁低150分,甚至比柯洁与第二代AlphaGo的差距更大!
因此,如果柯洁能够与第二代AlphaGo对战一次五番棋,那么柯洁获胜并非小概率事件。
可惜,柯洁的豪言终究只能是空想
如果说对战第二代AlphaGo,柯洁尚有两成胜率,那么柯洁在真实面对第三代AlphaGo,也就是AlphaGo Master之时,则是十死无生。
AlphaGo Master的等级分是4858分,按照公式计算,柯洁的胜率是1/1176,胜利是小概率中的小概率。
需要注意的是,低于千分之一的胜率并非没有意义。
《体坛周报》报道,中国棋手陈耀烨曾在中至末间与国产AI“绝艺”奋战累计2139局。
起初陈耀烨即使执白,胜率也在50手就大跌,但在长期练习后能做到前50手完全不落下风,80手开始才慢慢落后,100手之后才被拉开距离。
陈耀烨在2139局的对战中甚至还赢下了两局。
2/2139的胜率与柯洁对AlphaGo Master的1/1176理论胜率接近。
DeepMind的CEO哈萨比斯曾表示,绝艺是基于AlphaGo的算法原理开发的,并且绝艺也训练了足够长的时间,所以两者的实力应当差距不大。
2/2139与1/1176这两个非常接近的数字,能够佐证哈萨比斯的判断。
5
让子棋
第三代AlphaGo Master对于人类来说已是不可逾越的高山,而DeepMind团队尚且不满足,进一步开发了第四代AlphaGo Zero。
而AlphaGo Zero甚至比AlphaGo Master更胜一筹,自评等级分达到5185分。可谓巅峰之上更有重楼。
虽然像陈耀烨这样勤勉的棋手仍在坚持平等地挑战强大的人工智能,但在更多的场合下,人类职业棋手放下了骄傲,选择受让子与人工智能对局。
让子是平衡上手与下手差距的一种围棋规则。
以人类棋士常与人工智能下的让二子棋为例,人类棋士执黑棋,棋局开始之前在棋盘上预置两枚黑子,然后轮到白棋先下。
这相当于黑棋开局额外走一步棋。
Figure 5 让二子棋
让二子对于业余爱好者来说不算多,即使实力相当的爱好者之间,下让二子棋也能互有胜负。
但对于职业棋手来说,受让二子是极大的优势。
即使顶尖职业棋手对战职业棋手中实力较弱的,让二子也很难获胜。
可以想象,像柯洁这样骄傲的天才棋手,在发觉自己要被让二子才能与人工智能抗衡之时,他的内心是何等挣扎。
在职业棋手常用的野狐对弈平台上,人工智能“绝艺”的马甲“绝艺指导A”每天接受职业棋手的挑战,规则是绝艺执白让二子,黑方贴3又1/4子。
近期,绝艺能够赢下大约95%的对局。
Figure 6 绝艺指导A
不过,绝艺指导A下的是超快棋,规则对人类棋手稍稍不利。
如果拥有更多思考时间,人类棋手会表现得更好。
李世乭的退役纪念赛,对抗韩国本土AI“韩豆”,其中第一、三局李世乭受让二子(黑贴3又1/4子),第二局分先(平等对局)。
李世乭第一局受让二子以一记手筋漂亮地擒住韩豆的大龙,仅92手就令韩豆认输。
李世乭(黑)-韩豆(白)第一局
第二局分先落败后,李世乭在第三局再次弈出妙手,觅得一锤定音的机会。
可惜随后的一着棋稍缓,被韩豆拉长战线之后,逐渐逆转局面,最终韩豆获胜。
李世乭与韩豆的两盘让二子棋打成一比一平,从进程来看双方也是互有机会。
说明让二子(黑贴3又1/4子)是当下一流棋手与准一流AI之间的合理差距。
如果是最强人类棋手对上最强AI,那么差距会进一步增加至约让二子(不贴目)。
6
结语
1997年,国际象棋世界冠军卡斯帕罗夫惜败于超级计算机“深蓝”。
今天,国际象棋顶级棋手要受让人工智能一个兵才能勉强逼和之。
而AlphaGo问世之后仅一年多,围棋手们也不得不面对受让人工智能二子方可勉强与之抗衡的现实。
其中最大的区别是,国际象棋AI可以运行在智能手机上,而围棋AI尚需运行在带有高配置显卡的电脑上。
沧桑巨变,如今职业棋士们已经习惯把AI当作老师,向人工智能学习判断和着法。
不过,即使与AI之间的差距已经拉开,棋界仍然不乏李世乭、柯洁、陈耀烨这样的勇士,坚持不懈地挑战AI。
挑战人工智能并不只是为了寻求那不足千分之一的渺茫胜率,更重要的是为了追寻职业棋士共有的人生信条——超越自我。
未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。
如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”