舒石 希拉 发自 CMU
量子位 报道 | 公众号 QbitAI
△
Sandholm教授:冷扑大师,来了~
放下想赢的执念后,AI赌神再没输给人类。
这个AI赌神拉丁名Libratus,中文名冷扑大师。今年1月,它在美国战胜四位顶级人类德扑玩家,赢得176万美元(虚拟货币)。
如今冷扑大师应创新工场李开复的邀请,来到国内,将与6位龙之队高手展开六天鏖战。
为此几天之前,量子位前往美国宾州匹兹堡卡内基梅隆大学(CMU),独家对话Libratus的两位创造者:Tuomas Sandholm教授和他的博士生Noam Brown。
这两位人工智能领域的杰出学者,向量子位讲述为何Libratus能在扑克人机大战中战胜了人类,这套强大的系统到底基于什么架构、什么技术,又是如何训练、成本几何……
推倒重来
春天的匹兹堡,时晴时雨,温度变化剧烈。
走进卡内基梅隆大学Gates-Hillman Center,位于九层的Tuomas Sandholm教授办公室非常显眼:门口张贴着一张今年1月德扑人机大战的红色海报。
△
办公室门口的海报
“开战之前,我完全不知道结局会怎么样”,Sandholm用带着芬兰腔的英语说,当时他感觉五五开,但Libratus的胜算稍大一些。不过线上赌博网站可不这么看,他们开出大约1:5的赔率,认定Libratus也将倒在匹兹堡的河流赌场里。
也将?没错。Libratus不是凭空而生,2015年4月它的前身Claudico正是在同一个赌场里,败给四位人类高手。当年Sandholm也认为有五五开的胜率。
2014
年8月,刚刚完成硕士学业的Noam
Brown继续留在CMU攻读计算机科学的博士学位。当年,他和老师Sandholm一起开发出德扑AI:Tartanian7,以及后续版本Baby
Tartanian8。并且连续赢得电脑扑克大赛的冠军(电脑对抗电脑)。
如同外界所期望的那样,他们开始推动德扑人机大战。
在两年前那次时长两周的人机对抗中,Claudico累积输掉73.2万美元(当然也是虚拟货币),和四位人类顶级玩家交锋8万手。
2017年1月11日,全新的Libratus卷土重来。还是四位人类对手,不过时长变为20天,累积交锋12万手。这次德扑AI没给人类玩家机会,一路以碾压的态势豪取胜利。Libratus对四位人类高手的领先优势是:14.7个大盲注/百手(14.7bb/h)。
“一般领先5-10bb/h就肯定是赢了”,Brown对量子位说。
从完败到完胜,Claudico经历了哪些提升,才得以成长为Libratus?对于这个问题,两位开发者的回答是:Libratus不是迭代而来,而是推倒重来。
一个全新的德州扑克AI。
看不透的高手
在德扑这件事上,Libratus没有师父。
Sandholm和Brown只告诉AI基本的德州扑克规则,然后Libratus就开始通过“左右手互搏”的方式学习这个扑克游戏。和AlphaGo不同,在人机大战之前Libratus没有研究过人类如何打德州扑克,也没有和人类职业玩家有过交手。
在投入实战之前,Libratus自己对战了几百万手牌,其中有不少是带有特定目的的残局,真正机器和机器之间的交手,大约是几十万手。
所以,AI形成了一种与人类迥然不同的牌风。
“在德扑比赛中,顶级高手会尝试寻找对手的弱点,并展开攻击”,创新工场AI工程院技术VP李天放说。李天放既有技术背景,也是一名德扑高手。
Dong Kim是今年1月德扑人机大战中的一位人类选手,这位28岁的韩裔美国人回忆说,每一天Libratus都会进步,人类选手很难找到它的弱点或漏洞。即便找到一个,第二天就会消失不见。这让他感到绝望。
但也许他根本就感觉错了。“有人类玩家说找到了漏洞,其实不一定”,Brown对量子位说:“这可能是Libratus的一种战术,去搅乱对手的策略”。
△
Brown身后是他的电脑
不能用人类的思维去衡量AI。让Sandholm记忆犹新的是,1月的德扑人机大战进行到尾声,当时AI早已遥遥领先,所有人都认为Libratus会趋近于保守。
“但它反而越来越激进”,Sandholm说特别是最后几局,非常出人意料。
比方,为了一个很小的底池推了All in,或者下注额只有底池的十分之一。“有时候Libratus的策略会被认为是臭手”,但事后复盘Sandholm说这个德扑AI尝试了很多令人叫绝的方法,其中包括各种策略的诈唬。
诈唬也不是人教的,而是机器自己学会的。
怎么学?“诈唬是特别重要的技能,系统在学习中发现,如果有一手烂牌,直接诈唬能赢更多,所以它就学会了”,Brown告诉量子位。
“这就是AI特别奇妙的地方”,Brown坐在自己CMU标配的上一代Aeron座椅上说,“很多人看到Libratus能诈唬,觉得很了不起”,但在这位博士的眼中,诈唬这种看似与心理有关的人类技能,机器是可以通过算法学会的。
打开AI的大脑
为什么Libratus能比前代更厉害,进步在何处?Brown举了两个例子。
比
如,对于K-High Flush(最大牌为K的同花)和Q-High
Flush(最大牌为Q的同花),这两手牌对于Claudico来说是等值的,而Libratus则会做一个精确的区分。实际上,Libratus会对每
一手牌进行单独的处理,根据不同的牌面制订出不同的战略。
再比如,对于250元的下注,是当成200元还是300元来计算?那么249或者251呢?实际上,Libratus不会尝试聚类,而是马上实时计算,得出胜算最大的策略。
△
Sandholm讲解冷扑大师
Sandholm则从全局的角度,打开Libratus的大脑,向量子位逐一讲解了构成这个扑克AI的三个主要模块。其中一个用于赛前,两个用于赛中。
模块一:
Nash equilibrium approximation before competition(赛前纳什均衡近似)
这个模块把最重要的博弈信息进行抽取,比如针对某一手牌对应的战略,然后再应用强化学习等方法,继续寻求提高和改进。这里使用了一个新的算法:蒙特卡洛反事实遗憾最小化。在这个模型的帮助下,Libratus自己学会了德扑,而且比以前速度更快。
模块二:
Endgame solving(残局解算)
这
是Libratus最重要的部分,Sandholm说。实际上Claudico也有这个模块,但那个版本几乎不起作用。而新的版本不会再给对手留下漏洞,
这个过程不断进行,对手新出一招后,会继续展开新的残局解算,这被称为Nested Endgame Solving。
德扑这类不完美信息博弈,不能拆解为可以独立解决的子博弈。所以Libratus采用的残局解算的方法应对,想进一步深究,可以查看Brown和Sandholm的论文。
模块三:
Continual self-improvement(持续自我强化)
比赛中人类高手会寻找Libratus的漏洞,并展开有针对性的攻击。这个模块的作用就是发现问题所在,找到更多细节进行自我强化,然后得到一个更好的纳什均衡。
“三个模块都用了新的算法”,Sandholm说第一个模块的新算法能够抽取更多的细节,而且比原来的算法更快;第二个模块的算法是全新的;而第三个模块则有一个全新的理念,有点类似于:防守是最好的进攻。
Libratus不再寻求发现并利用人类对手的漏洞,相反,这个AI开始观察人类发现了它什么弱点,然后有针对性的弥补和提升。于是Libratus的弱点越来越少,直到人类玩家沮丧的发现,想要赢下比赛变成一件几乎不可能完成的任务。
不主动进攻就很少露出破绽,李天放说跟Libratus对战就像打一堵墙,最好的结果可能就是打个平手,基本不可能获胜。纳什均衡本身,追求的就是一种平衡。
Libratus是一个防守大师。
深度学习不是唯一
与围棋大师AlphaGo相比,Libratus有很多不同之处。其中就包括:Libratus并没有使用目前相当火热的深度学习技术。
“深度学习是个非常好的技术,但我们没有在这个项目应用,是因为深度学习不能给出绝对的保证。比方识别猫的图像,对于给定的图片能得出95%是猫,但也不是绝对的保证,而我们的算法,能够保证最优异的结果”,Sandholm说。
当然也有团队在用深度学习来搞德扑AI。
来自加拿大阿尔伯塔大学、捷克布拉格查理大学和捷克理工大学的研究人员,基于深度学习技术开发出德州扑克人工智能DeepStack。
对于两个德扑AI来说,还没有更好的比较方法,目前只能说Libratus击败的对手,要比DeepStack的对手水平更高。其他这里不展开讨论了,这个团队也发表了相关的论文。
“对这一类型的任务,我们的方案比深度学习更好”,Sandholm对量子位表示,目前深度学习的方案实际上没有解决问题,而Libratus这个系统“时间越长,越能接近完美”。
对于这个问题,我们询问了CMU机器学习系的邢波教授,他指出还不应过早的下结论说:深度学习就是机器学习的未来。