在无限制德州扑克六人对决的比赛中,德扑AI Pluribus成功战胜了五名专家级人类玩家。Pluribus由Facebook与卡耐基梅隆大学(CMU)共同开发,实现了前辈Libratus(冷扑大师)未能完成的任务,该研究已经登上了最新一期《科学》杂志。
六人无限制玩法是德州扑克最受欢迎的游戏方式,Facebook与CMU的成果是第一个在拥有两个(或以上)人类玩家的比赛中击败人类专业选手的AI。
2017年1月,由CMU学者Noam Brown、Tuomas Sandholm开发的人工智能程序Libratus在宾夕法尼亚州匹兹堡的Rivers赌场持续20天的1对1无限制德扑比赛中成功战胜了4名全球顶级职业玩家。这也成为了继围棋之后,又一个高难度游戏被AI攻陷的里程碑事件。
2017年底,Libratus的论文也被《科学》杂志收录。「冷扑大师」使用大量算力和博弈论等方法来攻克信息不完整的纸牌游戏。该研究的另一篇论文《Safe and Nested Subgame Solving for Imperfect-Information Games》也在当年成为了人工智能顶会NIPS 2017的最佳论文。
从1对1到玩转6人对决,人工智能经历了怎样的进步?
「虽然从二到六看起来是一个渐进的过程,但这实际上是一个巨大的挑战,」研究游戏与人工智能的纽约大学助理教授Julian Togelius表示。「多人游戏方面的研究,此前在所有游戏中都未有出现。」在「冷扑大师」的基础之上,Noam Brown与Tuomas Sandholm提出的新算法Pluribus需要的算力更小。在为期12天,超过10000手牌的比赛中,Pluribus击败了15名人类顶级玩家。
「很多AI研究者此前都认为实现这样的目标是不可能的,」Noam Brown表示。
几十年来,扑克一直是人工智能领域一个困难而又重要的挑战。原因在于,扑克中含有隐藏信息,也就是说,你无法知道对方的牌。要想在扑克中获胜,你需要bluff(吓唬)或者使用其他策略,这在棋类比赛中一般是不需要的。这一点使得在扑克中应用人工智能变得非常困难。现在的人工智能已经学会了bluff,而且还可以看穿人类选手的bluff。不过在Noam Brown看来,这些技巧也是由数学过程决定的策略。
据介绍,Facebook和卡内基梅隆大学设计的比赛分为两种模式:1个AI+5个人类玩家和5个AI+1个人类玩家,Pluribus在这两种模式中都取得了胜利。如果一个筹码值1美元,Pluribus平均每局能赢5美元,与5个人类玩家对战一小时就能赢1000美元。职业扑克玩家认为这些结果是决定性的胜利优势。这是AI首次在玩家人数(或队伍)大于2的大型基准游戏中击败顶级职业玩家。
Pluribus以Libratus和其他一些算法、代码为基础进行了几项改进。Libratus曾于2017年在双人无限注德扑中击败人类顶级选手。这些算法和代码都是由Tuomas Sandholm带领的卡内基梅隆大学研究实验室开发的。值得一提的是,Pluribus整合了一种新的在线搜索算法,可以通过搜索前面的几步而不是只搜索到游戏结束来有效地评估其决策。
此外,Pluribus还利用了速度更快的新型self-play非完美信息游戏算法。综上所述,这些改进使得使用极少的处理能力和内存来训练Pluribus成为可能。训练所用的云计算资源总价值还不到150美元。这种高效与最近其他人工智能里程碑项目形成了鲜明对比,后者的训练往往要花费数百万美元的计算资源。
这些创新的意义远不止在扑克游戏中,因为双玩家零和交互(一输一赢)在娱乐游戏中非常常见,但在实际生活中却非常罕见。现实世界的——对有害内容采取行动、应对网络安全挑战以及管理在线拍卖或导航流量——通常涉及多个参与者和/或隐藏信息。多玩家交互对过去的AI技术提出了严峻的理论和实践挑战。Facebook的结果表明,一个精心构造的人工智能算法可以在两人以上的零和游戏中超越人类的表现。
在6人扑克中获胜相比于过去典型的游戏中,6人扑克有两个主要挑战。不只是简单的双人零和游戏,过去所有游戏中的突破限制于2人或者2队的零和竞赛(例如象棋、西洋棋、星际争霸2或者Dota2)。在这些比赛中,AI之所以成功,是因为它们试图评估使用Nash均衡策略。在双人和双队的零和游戏中,无论对手做什么,作出精确的纳什均衡就可能无法输掉比赛。
尽管在任何有限制游戏中都存在纳什均衡,但通常在具有三个或更多玩家的游戏中,难以有效地计算纳什均衡。研究者认为其目标不应该是特定的游戏理论解决概念,而是创建一个长期都能凭经验击败人类对手的AI,包括精英人类专业人士。研究者表示,他们用来构建Pluribus的算法并不能保证在双人零和游戏之外收敛到纳什均衡。
尽管如此,他们观察到Pluribus在六人扑克中的策略始终能击败职业玩家,因此这些算法能够在双人零和游戏之外的更广泛的场景中,产生超人类的策略。
没有其他游戏像扑克一样有这么大隐藏信息的挑战,每个玩家都拥有其他玩家没有的信息(自己的牌面)。一个成功的扑克AI必须推理这个隐藏的信息,并慎重平衡自己策略(以保持不可预测),同时采取良好的行动。
例如,bluff偶尔会有效,但总是bluff就容易被抓,从而导致损失大量资金。因此,有必要仔细平衡bluff概率和强牌下注的概率。换句话说,不完美信息游戏中动作的值取决于其被选择的概率以及选择其他动作的概率。相反,在完美信息游戏中,玩家不必担心平衡动作的概率。
像先前Libratus这样的扑克AI,在两个玩家无限制德州扑克游戏这样的游戏中,通过基于Counterfactual Regret Minimization(CFR)理论上合理的自我游戏算法与精心构造的搜索程序相结合,解决游戏中的隐藏信息问题。然而,在扑克中添加额外的玩家会以指数方式增加游戏的复杂性。即使计算量高达10,000倍,那些以前的技术无法扩展到六人扑克。
Pluribus使用的新技术可以比以前的任何东西都更好地应对这一挑战。
Pluribus的核心策略是通过自我博弈的方式学习。在这一过程中,AI和自己进行对战,不使用任何人类游戏数据作为输入。AI首先随机地选择玩法,接着,随着决定每一步的行动后,逐渐提升性能,并对这些行动拟合概率分布。最终,AI的表现比之前的策略版本会更好。
Pluribus中的自我博弈策略是一种改进版本的蒙特卡洛CFR(MCCFR)。每一次迭代中,MCCFR指定其中一方为「traverser」对象,在迭代中更新这一方的当前策略。在迭代开始时,基于所有玩家的当前策略(最开始是完全随机的),MCCFR模拟出一幅扑克。当模拟完成时,算法回顾「traverser」对象的每个策略,并计算如果选择其他的行动,它的胜率多大程度上能够提升或下降。
之后,AI再评价根据这一决策实施之后,接下来的每个假设决策的优势,以此类推。
Pluribus中的遍历器以深度优先的方式进行遍历,以达到优化的目的。探究其他假设的结果是可能的,这是因为AI是自我对弈的。如果AI想要了解其他选择之后会发生什么,它只需要问自己如何去回应这些行为。
「traverser」对象实际做了什么选择和可能做什么选择的差异被加入到反事实后悔(counterfactural regret)行为中。在迭代结束的时候,「traverser」对象的策略得到更新。因此,有着更高反事实后悔概率的选择被选中。保持德州扑克这样没有限制的游戏中每一个行动中的策略需要的字节数超过了整个宇宙的原子数。
为了减少游戏的复杂度,研究人员要求AI忽略一些行动,并使用一种抽象方法将类似的决策点聚合在一起。在抽象之后,聚合的决策点被认为是独一无二的。Pluribus的自我博弈结果被称为蓝图策略。在实际游戏中,Pluribus使用搜索算法提升这一蓝图策略。但是Pluribus不会根据从对手身上观察到的倾向调整其策略。
研究者在这些比较中没有使用搜索,他们基于与人类专业玩家的讨论对普通人类玩家和顶级人类玩家的表现进行评估。研究人员训练蓝图策略用了8天,使用了一个64核的服务器,需要的内存数量小于512G。他们没有使用GPU。在典型的云计算中,这只需要150美元。和其他AI研究相比,包括其他自我对弈的AI,这种消耗很小。由于算法上的提升,研究人员可以在低成本的计算环境实现极大的性能提升。
由于无限制德州扑克的规模与复杂性,蓝图策略必须是粗粒度的。在实际过程中,Pluribus通过实时搜索改进蓝图策略,以针对特定情况确定更好、更细粒度的策略。AI bot经常在很多完美信息博弈中使用实时搜索,包括西洋双陆棋(two-ply search)、国际象棋(alpha-beta pruning search)、围棋(Monte Carlo tree search)。
例如,当模型在决定下一步该走哪时,国际象棋AI通常会考虑以后的一些移动步骤,直到算法的前瞻到达叶节点或深度的上限。然而,这些搜索方法并不适合不完美信息博弈,因为它们并不考虑对手转移到叶节点之外策略的能力。这个弱点令搜索算法产生了脆弱的、不平衡的策略,从而使对手快速发现这个错误。AI bot在以前也就不能将博弈扩展到6个参与者。
相反,Pluribus使用一种新方法,其中搜索器明确地考虑了不完美信息博弈的实际情况,即任何参与者都可以转移到子博弈外的叶节点策略上。具体而言,研究者并不假设所有参与者都需要根据叶节点之外的单个固定策略进行博弈,这会导致叶节点只有单个固定值。在搜索已经到叶节点时,研究者假设每一个参与者会从四个不同的策略中选择,进行剩余的博弈。
研究者在Pluribus中使用的四个延续策略分别是预计算的蓝图策略;在蓝图策略的基础上进行修改,以令策略偏置到弃牌;修改蓝图策略以令其偏置到叫牌;修改蓝图策略以令其偏置到加注。这种技术可以令搜索器找到一种更均衡的策略,从而在整体性能表现得更好。
研究者指出,搜索不完全信息博弈的另一个挑战是,参与者针对特定情况的最佳策略取决于对手对其玩法的看法。
例如打德州扑克,如果一个参与者永远不会bluff,那么它的对手总会知道应该在加大注的情况下弃牌。为了应对这种情况,Pluribus根据自身策略,在每一手时追踪当前状况的出现概率。不管它实际上在哪一手,Pluribus首先都会预测每一手时将要采取的行动——从而小心翼翼地在所有手时平衡自身策略,令人类玩家无法预测其下一步行动。
一旦计算这一涵盖所有手的平衡策略,Pluribus随后就会为它实际所在的手执行一个操作。
比赛时,Pluribus在两个CPU上运行。相比而言,在2016年和李世石的围棋比赛中,AlphaGo使用了1920块CPU和280块GPU。同时,Pluribus使用了不多于128GB的内存。在对每一个子分支进行搜索的时候,根据现场的情况,它所用的时间介于1秒和33秒之间。Pluribus的游戏时间比人类专业玩家快两倍:在六人游戏场景,和自身对弈的时候,它平均每手只需要20秒。
研究者令Pluribus与一组人类顶级扑克玩家对抗,从而评估它的实战效果。这些玩家包括「耶稣」Chris Ferguson(2000年世界扑克系列赛主赛事冠军)、Greg Merson(2012年世界扑克系列赛主赛事冠军)和Darren Elias(四届世界扑克巡回赛冠军)。
人类玩家的完整名单如下:Jimmy Chou、Seth Davies、Michael Gagliano、Anthony Gregg、Dong Kim、Jason Les、Linus Loeliger、Daniel McAulay、Nick Petrangelo、Sean Ruane、Trevor Savage和Jake Toole。
尽管扑克是一款技巧游戏,但其中也会有非常大的运气成分。如果运气不佳的话,顶级职业玩家也会在10000手的扑克比赛中输钱。为了弱化运气成分在扑克比赛中的作用,研究者使用了一种AIVAT方差缩减算法,该算法对各种状况的值进行基线估计,从而在保持样本无偏的同时缩减方差。举例而言,如果Pluribus得到一副强手牌,AIVAT将从它赢得中减去基准值,从而对抗好运气。
在实验中,人类玩家和AI之间展开的10000手扑克比赛持续了12天,每天挑选5名人类玩家与AI进行比赛。这些玩家将根据自身表现瓜分50000美元的奖励,以激励他们发挥最佳水平。在采用AIVAT后,Pluribus的胜率预计约为每100手5个大盲注(标准误差为5 bb/100),这对顶级人类扑克玩家而言是巨大胜利(盈利P值为0.021)。
所以,如果每个筹码价值1美元,Pluribus每手平均能赢5美元,每小时能赢1000美元。这一结果超过了纯职业玩家在与职业和业余混合玩家对抗时的胜率。
Ferguson在比赛实验结束后说道:「Pluribus真是太难对付了!我们很难在任何一手中盯死它。它不仅非常擅长进行薄的价值下注,而且擅长从好手牌中赢得最大价值。」但值得注意的是,Pluribus本意是成为AI研究的工具,研究者仅将扑克比赛作为一种方式,以衡量AI在不完全信息多智能体交互(与人类顶级能力相关)中的进展。
参与实验的有Ferguson、Elias和Linus Loeliger。
Loeliger是很多人公认的六人无限德扑顶级玩家。每个人与五个Pluribus AI玩5000手扑克。Pluribus并没有根据对手的情况调整策略,因此机器人之间的故意勾结不是问题。总的来说,人类每100手损失2.3bb。
Elias每100手损失4.0 bb(标准误差为2.2 bb/100),Ferguson每100手损失2.5bb(标准误差为2.2 bb/100),Loeliger每100手损失0.5 bb(标准误差为1.0 bb)。
「这个AI最大的优势就是它使用混合策略的能力,」Elias表示。「人类也想这么做。对人来说,这是一个执行的问题——以一种完全随机的方式持续去做。多数人类做不到这一点。」由于Pluribus的策略完全是在没有任何人类数据的情况下通过self-play自己学到的,因此它也提供了一个外部视角,即在多人无限制德州扑克游戏中最好的玩法应该是什么样子。
Pluribus证实了人类传统的聪明玩法——limping(叫大盲而不是加注或弃牌)对于任何除小盲之外的任何玩家来说都不是最佳策略,因为根据规则,小盲已经下了大盲的一半,因此小盲跟注只需再下一半。尽管Pluribus最初在通过self-play离线计算蓝图策略时尝试limping,但随着self-play的继续,它逐渐放弃了这一策略。
此外,Pluribus并不认同donk是一种错误的观念(在前一轮投注结束时,开始新一轮加注);与专业人士相比,Pluribus更喜欢这么做。
「和扑克AI比赛,看到它选的一些策略,真的非常过瘾,」Gagliano表示。「有几场人类根本就没有发挥什么作用,尤其是它下注比较狠的那几场。」
Pluribus的成功表明,目前还有更大规模的、极其复杂的多参与者场景,仔细构建的自我博弈和搜索算法能够在这些场景下获得很好的效果,尽管当前并没有很强的理论支持来保证这个效果。Pluribus也非同一般,因为与其它近期的AI系统相比,在基准博弈中,它的训练和推断成本都要低得多。
尽管该领域的一些研究者担心未来的AI研究会被拥有大量计算资源的大型团队主导,但研究者相信Pluribus是一个强有力的证据,说明新方法只需要适当的计算资源,就能驱动顶尖的AI研究。
尽管Pluribus是为了玩扑克开发的,但其使用的技术并不是扑克所独有的,它也不需要任何专家领域的知识进行开发。
该研究给我们提供了一个更好的基本理解,即如何构建一般的AI以应对多智能体环境,这种环境既包括其它AI智能体,也包括人类。同时,搭建一般的多智能体AI,也能使研究人员将研究过程中取得的AI基准成绩与人类能力的尖峰做对比。虽然在Pluribus中采取的方法可能并不会在所有多智能体设定上取得成功,但对于很多现实世界的交互,包括反欺诈、网络安全和内容审核等潜在都能通过Pluribus的方法建模。
即建模为涉及隐藏信息的场景,并(或)通过多个智能体的有限交流来构建不同参与方间的联系。这项打德州扑克的技术甚至允许Pluribus帮助AI社区在不同领域中构建更高效的策略。
最后,在过去的16年中,Tuomas Sandholm和CMU团队都在研究策略推理技术。Pluribus构建并融合了策略推理的大部分技术与代码,但它同样也包含了扑克的专门代码,这些代码CMU和Facebook合作完成,且并不会用于国防应用。