AI赌神完成了超进化!
两年前的Libratus,历时20天战胜4位顶级德州扑克选手,但只能1v1。现在全新的赌神Pluribus,终于取得突破,称霸多人局:
在六人无限注德扑比赛上击败人类顶尖玩家。
结束了扑克AI只能一对一的局面,Pluribus成为了多人复杂游戏的里程碑。比起围棋,比起1v1德扑,多人德扑的难度要高得多。
而Pluribus不止赢,还赢得利落清爽,每手只花20秒,比人类职业选手快一倍。它对算力的要求,又比下围棋的AlphaGo低得多,运行只要两个CPU。
一共有15位顶尖人类高手,败在新晋AI赌神的手下。官方表示,如果每个筹码一美元,Pluribus平均每手牌能赢5美元,每小时能赢1000美元。
其中就有扑克界的传奇、世界扑克大赛 (WSOP) 冠军克里斯·弗格森。
他的“获奖感言”如下:
Pluribus是个非常难打的对手,任何一手牌都很难吃定它。
他还很擅长在最后一手牌上小额下注 (Thin Bet,指感觉自己的牌强于对手,然后押注来榨干对手) ,非常善于拿一手好牌榨取价值。
另外一位职业选手Jason Les说:
它诈唬的技能像怪兽一样,比任何人类的诈唬都高效。
AI赌神的两位爸爸,还是Libratus的爸爸,来自Facebook和CMU。他们带着这项光芒万丈的新成果,登上了Science。
在比赛中,Pluribus一开始拿到的是同花方块5和6,在第一轮下注结束,发出三张公共牌(黑桃4、方块2和方块10)后,还有3名其他选手在场,两位check、一位加注。
尽管这时Pluribus的牌面并不大,但它直接All-in了,是的,直接All-in了。
结果,其他几位高手纷纷弃牌而去,可以说一手诈唬玩得非常6了。
难在哪?
多年来扑克一直是AI领域难以解决的重大挑战。
因为扑克有隐藏信息,你不知道对手的牌。赢下比赛需要诈唬,需要许多国际象棋、围棋等等游戏里涉及不到的技能。
这是AI打牌的一个巨大障碍,而另一个障碍是多人。
从前AI打的游戏,要么是两人,要么是两队之间的零和博弈 (一方赢一方输) :跳棋、国际象棋、围棋、星际2还是DOTA 2,都是如此。
△ DeepMind AlphaStar星际2五分钟击败人类
这些游戏里面,AI都很成功,因为它可以做出一种纳什平衡 (Nash Equilibrium) 的策略:可以选出一系列动作,不管对手做什么,自己至少不会输。对手也一样。
不过,纳什平衡并不是总能找到:
首先,如果是观察对手的弱点来获得纳什平衡,比如对手常常出剪刀,AI就可以一直出石头,但对手也能根据AI的选择来调整自己的策略。这种方法需要的数据量也比较大。
其次,如果是多人游戏,即便是每个玩家都找到了自己的纳什平衡,加在一起也不一定是纳什平衡,因为游戏并不是零和博弈:
一个例子是,Lemonade Stand (柠檬水摊子) 游戏。每个玩家都要尽量远离其他玩家。纳什平衡是所有玩家距离都相等。可是每个玩家都会自己找一个平衡点来计算,那大家算出来的联合策略就不太可能是纳什平衡了。
所以,Pluribus并没有采取博弈论的思路找到不输的平衡策略。而是以打败人类为目标。
决策之道
要做到这一点,仅靠知名前辈Libratus的反事实遗憾最小化(CFR)算法可不行。
Libratus对抗游戏隐藏信息的策略是让AI左右互搏,自己跟自己对战,采用随机策略,在每局过后看看游戏中有哪几手是让人后悔的,而后再尝试不同的战略,在决策点上复盘。
在双人对战当中,这样的策略效果拔群。
但在不完美信息博弈中,每增加一个玩家,游戏的复杂度都会呈指数增长,已有的技术无法应对。
Pluribus采用了迭代的蒙特卡洛CFR(MCCFR)。核心思想同样是自我学习,左右手互搏,不用任何人类或前辈AI的游戏数据作为输入。
但它的特别之处在于它制定了一个蓝图策略,在与对手比赛的过程中,Pluribus也会根据实际情况实时搜索更好的策略来改进蓝图策略。
也就是说,它的行动可以分成两个阶段。
第一阶段:蓝图策略
无限注德州扑克中有太多决策点可以单独推理,为了降低游戏的复杂性,首先要进行抽象,即消除一些值得商榷的行动。
Pluribus使用了两种抽象:动作抽象和信息抽象。
动作抽象减少了AI需要考虑的不同动作的数量。无限注德州扑克通常允许在100美元到10000美元之间进行全价投注,投注200美元和投注201美元之间几乎没有区别。
所以,Pluribus在任何给定的决策点只需要考虑几种不同的下注大小。它所考虑的投注数量在1到14之间变化,具体多少取决于实际情况。
如果对手投注150美元,而Pluribus训练的过程中只投注100或200美元,那又该怎么办?
这时,Pluribus会依赖下文将提到的搜索算法。
信息抽象则是把策略上相似的牌局放在一起,并对其进行相同处理。这会使游戏的复杂性大大降低,不过也可能消除一些超人类表现中非常重要的微妙差异。
因此,在与人类进行实际比赛时,Pluribus仅用信息抽象来推断未来下注轮次的情况,而不会用它来实际进行下注。同时,信息抽象也适用于自我博弈。
而蓝图策略的重头戏,就是迭代的蒙特卡洛反事实遗憾最小化算法(MCCFR)。在算法的每次迭代中,MCCFR将一个玩家指定为“遍历者”,其当前策略在迭代时更新。
在迭代开始时,MCCFR根据所有玩家的当前策略随机模拟一手牌。一旦这一手牌完成,算法就会开始review遍历者的每一个决策,并通过选择其他可能操作来评估这一手牌做得多好或多坏。接着,AI会评估打出不同的手牌后可能做出的每一个假想决策的优点。
遍历者在选择一手牌后的收获,与遍历者在迭代中的期望收获之间的差异,会被添加到行动的“后悔点”(反事实遗憾)中。
在迭代结束时,遍历者的策略会更新,此后它选择更高反事实遗憾动作的概率会更高。
第二阶段:深度限制搜索
由于无限注德州扑克的规模和复杂性,整个游戏的蓝图策略给出的决策会比较模糊。
实际上,Pluribus只在第一轮下注时根据制定好的蓝图来进行游戏,在第一轮之后——甚至是第一轮当中,如果对手选择的赌注大小与蓝图动作抽象中的大小完全不同——Pluribus会进行实时搜索,制定更精细的策略。
蒙特卡洛树搜索、双层搜索、alpha-beta修剪搜索……这些在完美信息游戏中表现出色的实时搜索在德州扑克面前都会扑街,因为它们并不考虑对手转移策略的能力。
Pluribus使用的方法是,明确地认为所有玩家都可能选择到子游戏叶子节点之外的不同策略。
算法假设每个玩家在到达叶子结点时,可以选择四种不同的策略来进行下面的游戏,其中包括预先计算的蓝图策略,修改后偏向于弃牌的蓝图策略,修改后偏向于跟注的蓝图策略,以及修改后偏向于加注的蓝图策略。
这样的搜索方法能找到一种更平衡的策略,从而产生更强的整体表现。
而另一个大挑战是在德州扑克这样的游戏当中,玩家的策略有时取决于对手如何看待她/他的游戏玩法。
为了应对这一点,Pluribus根据其策略跟踪每一手牌达到当前情况的概率。无论Pluribus实际持有哪手牌,它都会优先计算出每一手牌的动作,一旦计算出所有的平衡策略,它就会为它实际持有的手牌执行一个动作。
令人惊叹的是,Pluribus的训练成本非常低。研究者只在64核的服务器上跑了8天,就成功训练出了Pluribus的蓝图策略,需要的内存空间小于512GB,还不用GPU。
换句话说,Pluribus的训练费用都不到150美元!
进行游戏时,Pluribus也只需运行在2个CPU上,使用不到128GB的内存。
相比之下,在2016年 AlphaGo对阵李世石的时候,使用了1920块CPU和280个GPU进行实时搜索。
在6人牌局中,Pluribus平均每回合只需要20秒的时间,比顶尖人类选手还快一倍。
如此策略、如此小成本、如此速度,成绩会如何?
全面超越人类职业高手
为了评估Pluribus的实力,研究人员找来了一群德扑界的顶尖高手,有2000年世界扑克锦标赛冠军Chris “Jesus” Ferguson、2012年世界锦标赛冠军Greg Merson、四届世界扑克巡回赛锦标赛冠军Darren Elias等等。
这些顶尖高手,每一位都在专业的德州扑克比赛中赢了超过100万美元,大多数都赢了超过1000万美元。
具体的测试中,研究者一共设计了两种牌局。一种是5个人类和一个AI,一种是5个AI和一个人类。每一手牌开始的时候,筹码是10000个,小盲50,大盲100。
在很多人机大战中,经常会出现这样一种情况:AI在一开始表现得不错,但随着人类玩家发现它的弱点,就变得很智障。
为了全方位评估Pluribus的能力,测试持续了十几天,打了几万手牌。目的是让人类高手能够有充分的时间去适应AI的策略,寻找AI的弱点。
此外,虽然德扑是一种技巧性很强的游戏,但运气也是其中非常重要的影响成分。对于顶尖的德扑职业选手来说,仅仅是因为运气不好,在一万手牌局中输钱是很常见的。
研究者表示,为了减少运气对比赛的影响,他们在一个版本中采取了“AIVAT”算法,在保持样本无偏差的情况下,用每种情况的基线估计值来减少方差。
比如说,如果AI拿到的是一手非常强的牌,AIVAT将从它赢的钱总中减去一个基线估计值来抵消运气成分。
5个人类和一个AI
这种牌局一共打了12天,玩了10000手。
每天,都会从高手中选出五名参加。根据他们的表现,会分配给他们5万美元奖金,从而激励他们发挥最佳水平。
应用了AIVAT后,Pluribus的赢率估计约为每100手牌5个大盲注(5 bb/100),在人类顶尖高手的对决中,是非常好的成绩(p值为0.021)。
如果每个筹码一美元,Pluribus平均每手能赢5美元,每小时能赚1000美元。这一战绩,已经超过了职业选手在与职业选手和业余选手的混合比赛中的获胜率。
“Pluribus是一个很难对付的对手,”Ferguson 在实验结束后说。“无论用什么手段,都很难吃定他。他也非常擅长在河牌(最后一张牌)上下小额赌注。他非常善于用自己的一手好牌获取更大的价值。”
5个AI和一个人类
参与这一牌局的是三位顶尖高手中的顶尖高手。
分别是2000年世界扑克锦标赛冠军Chris “Jesus” Ferguson、四届世界扑克巡回赛锦标赛冠军Darren Elias,以及Linus Loeliger——在六人无限注德扑中,他是公认的世界第一。
他们每个人都与5个Pluribus玩了5000手牌。Pluribus并不会根据对手来调整自己的策略, 所以不会存在AI相互勾结的情况。
整体情况是,每100手牌人类选手损失了2.3个大盲注(2.3 bb/100)。
其中Elias为每100手4个大盲注(4.0 bb/100,标准误差为2.2 bb/100),Ferguson为每100手2.5个大盲注(2.5bb/100,标准误差为2.0 bb/100),Loeliger为每100手0.5个大盲注(0.5bb/100,标准误差为1.0 bb/100)。
下面这张图,呈现了Pluribus在10000手牌实验中对职业扑克玩家的平均赢率。直线表示实际结果,虚线表示标准偏差。
“它的主要优势在于运用混合策略的能力,”Elias说。“这和人类试图做的事情是一样的。对于人类来说,这是一个执行的问题——以一种完全随机的方式去做,并且始终如一。大多数人类很难做到。”
由于Pluribus的策略,完全是在没有任何人类数据的情况下通过自我博弈决定的,因此它也为寻找多玩家无限制的德扑的最佳玩法提供了一个外部视角。
Pluribus证实了传统的人类智慧,即跟进(跟进大盲注,而不是弃牌或加注),对任何玩家来说都是次优的。
只有小盲注玩家是例外,他们已经有一半的大盲注在底池中,因此只需投入其他玩家一半的资金即可。
尽管Pluribus在最初通过自我博弈时尝试过跟进策略,但随着自我博弈继续下去,它逐渐放弃了这一策略。
但Pluribus在一个人类公认的策略上提出了不同的意见:即不下注(在一轮下注结束时跟注,开始一轮下注)是一个错误;与顶尖人类高手相比,Pluribus这样做的频率更高。
”在于扑克机器人的比赛中,看到它选择的一些策略,非常令人难以置信,也令人着迷。”Gagliano表示,“有几个策略是人类根本想不到的,特别是与赌注大小有关的。“
下面的这张图,显示了Pluribus和职业选手比赛时的筹码数量。实线表示实际结果,虚线表示标准偏差。
值得注意的是,Pluribus是一种研究人工智能的工具。研究者表示,选取扑克只是为了评估在不完全信息的场景中,人工智能在多智能体交互中与人类最高水平的差距。
也就说,他们的征途不仅仅限于德扑,而是星辰大海。
毕竟,现实世界很复杂,也不是只有两方对战,也不是非输既赢。走向通用的人工智能,学习多人复杂游戏是非常重要的一步。
当然,作为“Libratus接下军用订单”事件的回应,Facebook说这项研究不会做军事用途。