放下想赢的执念后,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机器学习系的邢波教授,他指出还不应过早的下结论说:深度学习就是机器学习的未来。
“Sandholm教授其实不是做深度学习的,他用的方法实际上被认为是是传统的AI,但是可以达到这么强大的功能”,邢波对量子位表示这是一个有力的证明:人工智能并不等于深度学习,很多新的方法需要探索和了解。
技术的争论还需更多的时间。
△ CMU校园一角
其实对于Noam Brown来说,研发Libratus的过程中“最难的问题,是必须有一个全局的观念。但这是个庞大的系统,需要从计算和解决问题的角度考量,而不是仅从博弈的角度。在这个过程中,怎么把问题描述出来,是最大的挑战”。
而Tuomas Sandholm来说最大的挑战,就是只两个人,要干所有的活儿。
成本几何
包括杜悦(龙之队队长)在内,都很关心Libratus的成本。
成本背后关联着诸多实际的问题,例如距离实际应用还有多远,或者距离人工智能毁掉德州扑克这个游戏还有多久。
应量子位的要求,Brown估算了一下说:想要运行Libratus,最低只要50个笔记本就够了。他进一步解释说,一对一的无限注德扑比赛,每手需要50个CPU进行运算。暂且不管响应速度如何,至少已经能够完成计算。
“这个算法还可以被优化,而且计算硬件的提升,未来我觉得手机可能上就能运算”,Brown估计说可能五年内一部手机就能搞定一切了。
而对于他的老师Sandholm来说,成本计算要复杂得多。
首先他把这看成一场为期13年的挑战,之前所有的探索和努力,才最终成就了今天的Libratus。Sandholm估计过去这些年,仅支付给学生的工资就得有1000万美元。而Brown只是诸多学生中的一个。
其次具体到Libratus,眼下主要是运行成本。
运行这个德州扑克AI赌神,需要匹兹堡超算中心的Bridges超级计算机。今年1月人机大战之前,Libratus在超算上的训练成本是1500万核小时(core-hour),比赛期间耗用1000多万核小时,总共耗用1900万核小时计算资源。
“我们用的服务器有28个核,所以一个服务器运行一小时就是28核小时,如果在亚马逊云服务上大概要1-3美元”,Sandholm说他们一共用了上百台服务器。
△ Nystrom介绍匹兹堡超算中心
匹兹堡超算中心高级研究总监Nick Nystrom向量子位证实,Libratus使用了150台服务器。但由于是研究型项目,Sandholm其实并不需要支付费用。
对于笔记本上运行Libratus的可能性,Sandholm笑称可以搞一套简化系统装在笔记本上,但也只能变成一个有趣的小培训。无论如何,Sandholm表示普通人“想要使用这套系统肯定不容易”。
与之相比,DeepStack的训练使用了175 个core-years。不过据说DeepStack在比赛期间,只需要一台笔记本就够了。
未来何往
德扑AI的牌技还能更好么?
当然,Sandholm说肯定存在进步空间。杜悦很关心Libratus距离扑克之神还有多远,何时能达到GTO(博弈理论中的最优化策略)。
对于这个问题,Brown猜测Libratus与GTO之间的差距是15bb/h,而Libratus本身的牌技可以提升到50bb/h的水平。而Sandholm则说“没人知道Libratus能走多远”。Brown坦言他不会再对这个德扑AI进行优化,他正面临博士毕业的选择。
现在这个德扑AI只能玩一对一的德州扑克,尽管可以同时处理多场,每场也只能是一对一。还会做一对多的升级么?
△ Sandholm与量子位交流
“我们有一些想法”,Sandholm告诉量子位,目前Libratus基于的纳什均衡理论,主要针对两个人博弈的情况。“如果变成三个人博弈,纳什均衡理论是不是适用,现在我还不是很清楚”,Sandholm说多玩家系统,第一个模块如何界定是个难题。
不过仅仅是一对一的德扑AI,也有相当的商业前景。
“现实世界充斥各种不完美信息博弈,例如企业之间的商业谈判,网络安全,医疗方案的制订等”,Sandholm正考虑如何进一步释放Libratus的能量。
“我最喜欢的商业用途当然是商业谈判,可以通过人工智能来实现在最合适的时间,以最合适的价格找到最合适的供应商”,卡内基梅隆大学计算机科学学院Andrew Moore院长近日接受腾讯科技/新浪科技采访时,这样展望Libratus的未来。
现在Sandholm教授已经拿到NSF(美国国家科学基金会)一笔为期三年的新投资,用以资助他继续基于Libratus展开相关研究。现在Sandholm教授也在推进一项针对T细胞的医疗研究,把癌细胞注入小白鼠,看看他们的治疗方案是不是正确。
无论未来Libratus如何,Sandholm会继续在博弈的道路上前进。
Sandholm已经在人工智能和自动谈判领域,研究超过28年。他在这方面最早的成绩,还要追溯到1989年前后,当时他做了一套自动为卡车司机谈判并分配任务的系统。
比赛看点
最后,再聊聊即将开战的冷扑大师vs龙之队。
对于这场比赛,李开复日前在IT领袖峰会期间表示,龙之队的胜算为10%。不过,Sandholm眼中这个概率只有5%。
“战无不胜”,Sandholm现在用这四个字形容Libratus。在他看来,德扑AI的水平在人类最好的玩家之上。
但为什么还是给出5%这个数字呢?他的理由是:这次的对抗只打36000手。
“几乎可以肯定人类有机会赢。而且会有蛮大的机会可以赢。双方博弈的手数越多,强大一方获胜的可能性越大;手数越少,弱小的一方获胜的可能性越大”,Sandholm说。比如只打一手牌,双方不论实力差距多大,弱小的一方都有50%的机会能赢。
△ Sandholm坐在电脑前
除了胜负,这场对抗还有什么看点呢?
第一,德州扑克是不完美信息的博弈,跟跳棋、围棋等比赛完全不一样。有很多你无法想象的要素,都会影响赛局的结果。
第二,整个博弈是诈唬、下注等环节的完美平衡,冷扑大师需要应用这些手段,让对手完全无法推测自己手上持有什么牌。
第三,冷扑大师会有非常不同寻常的下注,是德州扑克中从来不会出现的大注和小注,也会搞donk betting,即反主动下注。最后这个德扑术语的意思是,原本跟注的玩家在下轮牌发出来后抢先下注。
“这个德州扑克AI并不会线性发展,可能在下一手牌的时候,突然变得非常冒进”,Sandholm对量子位表示。
所以,拭目以待吧。正如开头那段视频所说:“冷扑大师,来了”。