王烁战地报告:与AI鏖战两天
最近这两天,我与围棋AI鏖战连连,连战连败,连败连战,苦尽甘来,终得一胜。给大家写份战地报告。
——王烁
先讲讲我的情况
我少时曾想成为职业棋手,可惜家乡太偏而学棋太晚,11岁第一次摸到棋子,主要靠读围棋杂志打谱自学,寒暑假父亲带我去成渝两地找高手练棋,如此数年,居然就慢慢强起来了。上大学前最好的成绩是四川省少年围棋比赛第四名,上大学后最好的成绩是北京市高校围棋比赛第一名。这是什么水平呢?应当是在业余强者,未到但接近职业门槛。
这是很久很久以前的事情了。棋我早已不下,即使网络围棋发达如斯,一是没时间,二是没心情,三是网棋无赖太多。倒是一直在看棋,所有大赛棋谱都在手机上看过一遍。所以,我今天的水平,大概是见解不低,实力不高。
我对围棋AI软件向有了解。两年前看到业界传闻说有人用深度学习算法走图形识别路线来攻关围棋AI时,我跟一位搞人工智能的朋友说,这下人类围棋危险了。
果然,谷歌的阿尔法围棋出世。在击败欧洲围棋冠军之后,约战人类顶级棋手李世石之前,我写了篇文章《我们押宝阿尔法围棋》,下注李世石会输。证据谈不上,打完阿尔法击败欧洲冠军的五局棋谱,我觉得它已完全是人类下法,既然突破已经发生,剩下的只是进化,而机器的进化太快。
事实证明这个看法是对的。阿尔法击溃欧洲冠军(相当于职业门槛水平)才过半年,就击溃李世石;再过半年,化身大师狗,与人类顶级棋手轮番交手共60局,60比0,无一败局。AI已然绝尘而去。
现在有两个据说。
第一个据说是阿尔法会与当今世界围棋事实第一人柯洁交手。其实我觉得人机大战已无意义,阿尔法无需再证明什么。如果再度交手,结果不会有悬念,我会继续下注阿尔法。
第二个据说是谷歌把阿尔法重新来过。阿尔法1.0版学习的起点是人类高手的3000万个棋步选择。阿尔法2.0版将跳过向人类学习,直接从自我对局入手。如果说阿尔法1.0版下的棋很像人但高于人,那么阿尔法2.0版下的棋估计会很不像人,它会是满盘荒唐还是天马行空万流归宗?
我很想跟阿尔法下棋。这梦想不只属于我。春节期间,一流高手与大师狗车轮战,更多人在后面排成长龙:点我!点我!但大师狗什么身份?我这种水平也配挤到前面?
现在有机会了。
不是跟大师狗,是跟丽娜(Leela)下。
自从谷歌团队的阿尔法论文去年登在《自然》杂志以后,围棋AI软件的瓶颈不复存在,突破如水银泄地般到来。日本将于3月18日举行UEC电脑围棋大赛,腾讯团队亦将参战。据说目前在野狐围棋对弈网站上击败众多高手,成为有史以来第一个靠战绩荣升十段的“绝艺”,便是出自腾讯旗下。
除去绝艺等新贵,AI老将们也换芯重战,UEC常客如ZEN、Crazystone等均非吴下阿蒙,受益于阿尔法突破,目测一线AI涨棋三个子以上。
在所有受益于阿尔法突破的老将中,从目前实绩来看,丽娜(Leela)受益最大,进步最快。弈客上最近做三家围棋AI单机版的循环赛,丽娜连续击败Zen和Crazystone,拔得头筹。
最好的部分来了:作者在网站上放出丽娜,供公众免费下载使用,网址在此:
https://www.sjeng.org/leela.html 这也是目前惟一一个带价值网络的免费围棋AI,windows、Mac和linux版本都有。
效法阿尔法,丽娜也用深度卷积神经网络算法加蒙特卡洛搜索。开发者是个人作者,没有谷歌那样可怕的GPU芯服务器集群,现在只有单机版。丽娜学棋跟阿尔法一样也用了3000多万个人类高手的棋步数据,但强化学习部分有所不如。只要你不是人类顶级棋手,这样也就够了。作者说,加入神经网络算法后,丽娜的棋力增加了6个子。
6个子什么概念呢?差不多就是入门到业余顶级的距离。所以,一年之间,顶级AI之外,大众能用上的围棋AI软件,棋力也完成了从幼稚可笑到deadly serious的蜕变。
最新版的丽娜是2月中放出来的,比上一版实力增加了一到两个子。作者针对家用电脑作了优化。简单地说,深度学习算法适合在GPU(图形处理芯片)上处理,蒙特卡洛搜索适合在CPU上处理,丽娜会尽可能用到家用电脑的GPU芯片,但如果电脑是用集成GPU算力有限的话,就更多地回到使用CPU。
如图,我执黑在盘上投下第一步,丽娜会在后台作出详尽分析。分析窗口最左边是白棋下一手选择,最优选择放在最上面。以本局为例,丽娜认为白棋接下来应下在左下星位,这一判断是基于38033次模拟得出,其胜率估计是50.96%,而该胜率是基于蒙特卡洛搜索的胜率估计(即MC,52.47%)和神经网络算法(Net,49.12%)的胜率估计加权而来。再往右一栏“Net Prob%”指的是丽娜认为这步棋出自职业棋手的机率,有兴趣跟职业棋手对标的不妨关注这个指标。最右一栏“PV”则是丽娜对当前选择给出的随后变化。这跟人类是一样的:你不是只下一步棋,每步棋都是一串选择。每一步都有这些数据。下着下着就发现自己的胜率滑坡,压力真是很大。
随身携带丽娜这位高手,想什么时候跟他下就什么时候跟他下,想下多少盘就下多少盘,而且随时告诉你他认为下一步最佳选择是什么,现在形势如何,小时候的梦想,今天实现了。
如果你棋力有限,请她跟你下让子棋,默认最大让子数是16子,你再差也能一搏了吧?不想下让子棋也没关系,把丽娜算路调低一点就行,你可以选定丽娜每步最多做多少次模拟,相当于允许人类构思多少次棋步,最少可以只让她做100次模拟,跟丽娜常常一做几十万次模拟相比,等于自缚两手陪你玩,总行了吧?实在不行,你还可以禁用神经网络。
我跟丽娜下,选择打开神经网络,模拟次数不限。我想试试。
下了许多盘,连战连败,连败连战,体会到了职业高手与阿尔法对局时的无奈感。丽娜大局掌控能力极强,而贯彻在不知不觉间,总是下着下着就我不行了。换过多种策略后,我最终谋得胜利:拼命抢空,确保实地优势,然后治孤,耍大龙,空手入白刃,在电光石火间不容发之际,丽娜现出昏招。一刀两断,胜负已分。其实,不光AI需要剪枝,人跟AI下更需要剪枝,减少看不清的大局,聚焦能看清的局部,跟AI一决生死。
当然,这只是丽娜的软肋,其他AI未见得。丽娜实力并不均匀,布局到中盘很强,中盘后期到官子偏弱,前者我认为到业余高手,后者则业余普通水平。它仍有明显短板,不是说大师狗赢定以后敷衍着下那种短板,而是会因此输棋的真短板。
跟她下,站直了,别趴下,坚持住,专注局部,永远战斗,会有机会。
经此一役,多年以后,哪怕AI全面掌控一切的时候到来,我也可以对膝下的儿孙们说, 别看它现在这样强大,我曾与它斗过,也曾赢过。
(文章经作者授权,转自《得到》专栏: 《王烁大学问》