资讯 人工智能
此为临时链接,仅用于文章预览,将在时失效

德州扑克算法幕后研发者CMU博士Brown专访:AI如何打败顶级人类牌手?

作者:夏睿
2017/02/15 21:21

德州扑克算法幕后研发者CMU博士Brown专访:AI如何打败顶级人类牌手?

在上个月举行的单挑无限注德州扑克( heads-up no-limit hold’em)人机对战中,由卡耐基梅隆大学研发的AI程序Libratus以每100手14倍大盲(译者注:缩写为14bb/100,意为玩100手牌,平均能赢对手14倍大盲注)完胜世界级人类玩家团队,震惊所有在场人员。

比赛共打12万手,最后Libratus赢得了1,776,250个筹码,近90个买入。虽然人类玩家输惨了,但幸运的是他们并不需要真的自掏腰包把输掉的钱给赢家Libratus(虽然他们来参加这场对战也需缴纳费用)。

Libratus是“AI扑克界的圣杯(the holy grail )”,CMU博士Noam Brown这样评价道。Libratus由  Noam Brown和 CMU教授Tuomas Sandholm共同研发,并且是CMU这一系列扑克机器人里面最新的一款。此前,还没有任何机器人能在单挑无限注德州扑克中打败世界级人类选手。

在Brown看来,Libratus尚有很大发展空间:“从理论上来讲,升级版Libratus能达到50bb/100”(译者注:即升级后的Libratus每100手能赢人类对手50倍大盲,也就是还有3.5倍的潜力可挖)。近日,世界著名扑克牌杂志Card Player 对Brown进行了专访,了解了AI扑克研究的历史发展和未来走向等问题。以下为雷锋网编译:

德州扑克算法幕后研发者CMU博士Brown专访:AI如何打败顶级人类牌手?

Brown

Card Player :您对这次对战结果感到惊讶吗?

Brown:其实我还还挺惊讶的,我没想到AI能做得这么好。我们之前为了测试AI效果有让它和 Claudico(雷锋网译者注:CMU较早版本AI)对战过,结果是Libratus以10~12bb/100打败Claudico,这个成绩好于2015年Claudico与人类对战的结果(译者注:那次大战中AI输给了人类选手),不过差不太多。所以我们感觉,这次人机对战Libratus的胜算要大一些,但是不确定到底会赢多少。所以当这次结果出来的时候,我们对AI能表现这么好感到相当诧异。


Card Player :所以其实当时你们认为AI还没办法以14bb/100打败人类,是吗?

Brown:是这样,我们不知道人类到底比Claudico 厉害多少,有多少是AI需要提升的。(译者注:在2015年那场对战)中,人类选手发现并充分利用了Claudico 的漏洞比如他们让Claudico 多次采用“溜进”(译者注:limp,翻牌前专用名词,指玩家不做任何加注,只跟进1倍大盲注)战术这一招非常有效果,是人类玩家打败Claudico 的关键。但是Libratus不是通过利用对方弱点赢的。Libratus和Claudico对战时,Libratus能够在不利用后者弱点的情况下以10~12bb/100打败Claudico ,这说明如果Libratus 没有任何弱点的话,能比人类更强。而Libratus这次之所以能打败人类,其原因就在于它没有任何人类可以利用的弱点。


Card Player :在人类玩家紧追比分,对战进入白热化的时候,你是不是在想对手可能已经找到了Libratus的弱点,还是说仍旧很有信心?

Brown:第一周比赛快要结束时,双方几乎打成平局。人类选手也在第一周对Libratus会如何调整打法、它的强项在哪里等做出了一系列推测。他们没有和我详谈他们认为战局将会如何发展,但从我听到的来看,他们应该是想从数据中寻找Libratus的套路,分析它的弱点和优势。所以,大体上我不怎么担心。他们认为AI在一些方面有缺陷,但实际上并没有。比如,在有一天的比赛中,他们80%都是再加注( three-betting ),因为从数据来看,他们认为AI 对特定的三倍打法( three-bet size)不太擅长。但我不认为那是缺陷,只是他们的数据中存在噪音。他们在比赛进程中获得的数据导致他们得出了这样的结论。但他们确实看到了里面存在的一些问题。比如Libratus对特定的开局下注的大小对应不好。比赛前我们认为这不是什么大问题,但事实证明,这个弱点很要命。好在AI还留有一手——趁当天晚上对手睡觉的时候,AI就开始连续不断地进行训练,弥补自己的不足以防止对手以后再次利用这一缺陷。所以你看到,从第二周局势就开始转变了。

 

Card Player :这次微调整对之后的比赛是否重要?因为人类选手也会协同作战讨论战略,所以这次调整是否加大了对战难度?

Brown:这里面有挺多误解的。AI微调不是说我们让它再再加注(four-bet)的次数增多,或提高加注倍数,而是因为对手在翻牌前和翻牌时总是下不同大小的注。AI程序知道如何回应2倍,2.5倍或3倍的开局下注。但如果对方以2.75倍开局,那么AI就会把2.75约等于3,所以它的回应还是比较准确的。这样的做法虽然算不上不合理,但如果它能不四舍五入的话,效果会更好。于是它那晚就整夜训练自己如何去回应2.75倍的下注。它下注的大小是由算法决定的,根据对手下注次数最多倍数,这个数字离我们事先设定好的一些数目离得有多远,算法可以为对手下的注分出优先等级。所以这就是微调所做的改变。这也是算法中的关键部分,让AI一步步根据人类打法改变自己的路子,而不像他们之前猜测的去利用人类弱点。


Card Player :那么我们能不能说Libratus在转牌圈(the turn)和河牌圈(the river)时的回应没在翻牌前和翻牌时的回应那么重要?

Brown:在转牌圈和河牌圈时,你会发现AI需要花时间思考接下来的动作。这个时间非常迅速以至于有的人可能都没有注意到。其实,每次人类对手在转牌圈和河牌圈下注时,它都要重新计算策略。这样,无论对手怎么出招它都能给予完美回应。所以AI必须预先计算一系列的不同下注大小并放入到游戏树(game tree)中,但预先计算的不能应对转牌圈和河牌圈,因为这两个需要实时计算的策略。(译者注:游戏树是指组合博弈理论中用来表达一个赛局中各种后续可能性的树)

 

Card Player :这个实时计算能力是否正是Claudico 所缺乏的?或者是做的不够完美的地方?

Brown:Claudico 能够在河牌圈进行实时计算,只不过在下面几个方面比较弱。首先,它没有考虑到阻断牌(雷锋网译者注:blocker,即自己要的牌在别人手上)。为了运作更快,它需要把几手牌组合起来,然后再区分对待。基于此它可能会认为,黑桃A带三张黑桃和梅花A带三张黑桃是一样的,即便这两种牌应该区分对待Claudico 的最终游戏解算机(end-game solver)会对大量的实时下注进行计算,但不会在每次人类下注时进行再计算。我认为,对人类每次下注进行再计算这一步,对Libratus本次的获胜至关重要。同样的,这次我们能在转牌圈开始的时候就对这种计算进行扩展。这种做法的计算量更大,因为现在AI需要处理约50种可能出现的不同河牌圈,并且在游戏结束(每手牌)前可能出现的行动数量也在呈指数级地增长。所以,要像有效地扩展这种新算法,新程序的计算成本也比 Claudico 要贵上1000倍。 

德州扑克算法幕后研发者CMU博士Brown专访:AI如何打败顶级人类牌手?

Card Player :Libratus什么时候才能打出一个完美的GTO( game theory optimal,距离博弈理论中的最优化策略)?像Libratus这样的机器你们还会推出多少个版本?

Brown:没人知道AI离打出一个博弈理论中的最优化策略还有多远。我们有很多方法来计算这一数值,但代价极其昂贵,所以到现在都还没实现。也许我们明年会开始尝试。如果非要我推测的话,我猜一个博弈理论中的最优化策略可以以15bb/100 战胜Libratus。这是我的粗略估计,范围应该在5~50bb/100。

 

Card Player :哇,所以这类AI还是有很大提升空间喽?

Brown:这不好说。以前AI的致命弱点是在转牌圈和河牌圈没有把阻隔牌考虑在内,这在高水平对战中确实非常关键。但Libratus不存在这个问题。它会在每个转牌圈和河牌圈中,专门考虑每手牌的情况,和之前的AI相比,该做法让Libratus的表现有了飞跃式的进步。

在区分阻隔牌这一点上,Libratus没多少提升空间了。但是在如何选择下注数额上,还是可以有进步的。我很难说它能进步多少,但我猜测可能会达到15

 

Card Player :有人认为Libratus在转牌圈和河牌圈的超额下注(over-betting)非常具有进攻性。你是否认为AI在这方面已经达到了完美水平,或说在如何平衡下注上仍有改善空间?

Brown:它能在比赛时超额下注,我们也很意外。Libratus 并非根据人类的数据训练而成,它之前从来没跟人类玩家过过手。所以此次对战,它采取的是它认为最优的策略。它的策略非常独特,并且和人类所认为的最优打法非常不同。超额下注是它策略的重要部分,另外还有donk bets。能看到AI做到人类未能做到的事,这真的难以忘怀,我也很满足。这种进攻性早在Claudico身上就有所体现,那时候人们觉得它在底池还很小时就玩all-in很不明智。我觉得它这是错误的打法,是没有做好平衡的表现。但是我认为从Libratus身上我们已经看到了比较合理的进攻性,而这也是它成功的关键。

 

Card Player :很多人都想知道这对未来的线上扑克玩家意味着什么。您能否说一下,至少是在当前情况下,为何您研发的AI不会威胁到游戏的公正性?

Brown:至少我能向大家保证,我们不会在线上运行Libratus ,也没有这个打算。但很显然,其他人会把我们公开的技术应用在机器人中,并让它们参与线上游戏。关于机器人会如何影响线上扑克玩家,我不去做太多推测,因为我也确实不清楚。但我知道现在已经有机器人被应用在线上了,有些扑克牌游戏网站费很大力气想要在线上安置这样的机器人。我不知道在这场博弈中哪方会赢。

 

Card Player :在比赛中减少或增少筹码的数量对比赛结果会有什么影响?如果双方各有500到1000

倍大盲注的筹码,机器能应付的了吗?

Brown:我们选择200倍盲注是因为年度计算机扑克竞赛采用的是这个规制。每年,做扑克的 AI 研究者都会聚集起来互相对战。一直以来,AI都很难把200倍盲注玩好。因为牌越多,AI 就要做出更多的选择。就我的理解,200 倍盲注是人类玩德扑的上限。保持公平对等是很有必要的,但同时也应该让 AI 玩起来有难度。如果盲注数量变少,比如只有 100倍盲注,我认为 AI 和人类对战的结果和现在一样(如果不是更好的话)。要是盲注数量增多,比如 增加到500或1000倍……坦白说,我认为 结果还是跟现在一样(如果不是更好的话)。这不是因为对 AI 来说情况变简单了,而是因为盲注增多,对人类来说变复杂了。我不认为人类能习惯 500 或 1000 倍的盲注。到了那个数量级,Libratus 真正擅长的大规模超大投注(over-bets)的重要性就会凸显出来。我人类在超大投注方面不会比 Libratus 更强。

 

Card Player :让机器人跟再多一位玩家对战的其他玩法,AI研究员有在研究吗?

Brown:在三人对战扑克上已经有了一些研究。总的来讲, Libratus靠现有技术,就算再多加两个对手也没问题。现在的问题不是技术,而是你怎么评价AI的表现。因为当你有两个以上对手的时候,尽管AI使用的是最好的GTO策略,但它仍会输钱,因为其他玩家都或明或暗地串通好了。所以在游戏中让一个AI对战五个人类玩家,你很难去评价AI是否比人做的更好。这种评价方式不可行。这也是为什么这次比赛我们是一对一制的,也是为什么本次比赛结果在一对一游戏制度下有相当大的意义。我认为目前无限德州扑克 6 人桌(Six-Max)略微超出了Libratus 和类似AI机器的能力。

话虽如此,年度计算机扑克竞赛已经在计划加入6人桌比赛了,所以这方面的研究马上也会开始,而且我认为该领域会发展非常迅速。我觉得,随着Libratus一点一点的进步,两年内你就能看到它在6人桌比赛中战胜人类了。当你玩6人桌的时候,是否要打GTO策略这真的无法确定,因为进攻较弱的对手的打法效果可能会更好。AI扑克研究圈目前也在讨论这一点,不过还没有结论。但在针对弱者并攻击对方弱点方面,还是人类更有优势。

 via:cardplayer     

【兼职召集令!】

如果你对未来充满憧憬,喜欢探索改变世界的科技进展,look no further!

我们需要这样的你:

精通英语,对技术与产品感兴趣,关注人工智能学术动态的萝莉&萌妹子&技术宅;

文字不求妙笔生花,但希望通俗易懂;

在这里,你会收获:

一群来自天南地北、志同道合的小伙伴;

前沿学术科技动态,每天为自己充充电;

更高的生活品质,翻翻文章就能挣到零花钱;

有意向的小伙伴们把个人介绍/简历发至 guoyixin@leiphone.com,如有作品,欢迎一并附上。

长按图片保存图片,分享给好友或朋友圈

德州扑克算法幕后研发者CMU博士Brown专访:AI如何打败顶级人类牌手?

扫码查看文章

正在生成分享图...

取消
相关文章