AI 賭神完成了超進(jìn)化!
兩年前的Libratus,歷時 20 天戰(zhàn)勝 4 位頂級德州撲克選手,但只能 1v1。現(xiàn)在全新的賭神Pluribus,終于取得突破,稱霸多人局:
在六人無限注德?lián)浔荣惿蠐魯∷腥祟愴敿馔婕摇?/p>
結(jié)束了撲克 AI 只能一對一的局面,Pluribus 成為了多人復(fù)雜游戲的里程碑。比起圍棋,比起 1v1 德?lián)洌嗳说聯(lián)涞碾y度要高得多。
而 Pluribus 不止贏,還贏得利落清爽,每手只花20 秒,比人類職業(yè)選手快一倍。它對算力的要求,又比下圍棋的 AlphaGo 低得多,運(yùn)行只要兩個 CPU。
一共有 15 位頂尖人類高手,敗在新晉 AI 賭神的手下。官方表示,如果每個籌碼一美元,Pluribus 平均每手牌能贏 5 美元,每小時能贏 1000 美元。
其中就有撲克界的傳奇、世界撲克大賽 ( WSOP ) 冠軍克里斯 · 弗格森。
他的 " 獲獎感言 " 如下:
Pluribus 是個非常難打的對手,任何一手牌都很難吃定它。
他還很擅長在最后一手牌上小額下注 ( Thin Bet,指感覺自己的牌強(qiáng)于對手,然后押注來榨干對手 ) ,非常善于拿一手好牌榨取價值。
另外一位職業(yè)選手 Jason Les 說:
它詐唬的技能像怪獸一樣,比任何人類的詐唬都高效。
AI 賭神的兩位爸爸,還是 Libratus 的爸爸,來自 Facebook 和 CMU。他們帶著這項光芒萬丈的新成果,登上了Science。
那么,先來欣賞一下比賽現(xiàn)場,人類是如何被按在地上摩擦的:
在比賽中,Pluribus 一開始拿到的是同花方塊 5 和 6,在第一輪下注結(jié)束,發(fā)出三張公共牌(黑桃 4、方塊 2 和方塊 10)后,還有 3 名其他選手在場,兩位 check、一位加注。
盡管這時 Pluribus 的牌面并不大,但它直接 All-in 了,是的,直接 All-in 了。
結(jié)果,其他幾位高手紛紛棄牌而去,可以說一手詐唬玩得非常 6 了。
難在哪?
多年來撲克一直是 AI 領(lǐng)域難以解決的重大挑戰(zhàn)。
因為撲克有隱藏信息,你不知道對手的牌。贏下比賽需要詐唬,需要許多國際象棋、圍棋等等游戲里涉及不到的技能。
這是 AI 打牌的一個巨大障礙。而另一個障礙是多人。
從前 AI 打的游戲,要么是兩人,要么是兩隊之間的零和博弈 ( 一方贏一方輸 ) :跳棋、國際象棋、圍棋、星際 2 還是 DOTA 2,都是如此。
△ DeepMind AlphaStar 星際 2 五分鐘擊敗人類
這些游戲里面,AI 都很成功,因為它可以做出一種納什平衡 ( Nash Equilibrium ) 的策略:可以選出一系列動作,不管對手做什么,自己至少不會輸。對手也一樣。
不過,納什平衡并不是總能找到:
首先,如果是觀察對手的弱點(diǎn)來獲得納什平衡,比如對手常常出剪刀,AI 就可以一直出石頭,但對手也能根據(jù) AI 的選擇來調(diào)整自己的策略。這種方法需要的數(shù)據(jù)量也比較大。
其次,如果是多人游戲,即便是每個玩家都找到了自己的納什平衡,加在一起也不一定是納什平衡,因為游戲并不是零和博弈:
一個例子是,Lemonade Stand ( 檸檬水?dāng)傋?) 游戲。每個玩家都要盡量遠(yuǎn)離其他玩家。納什平衡是所有玩家距離都相等。可是每個玩家都會自己找一個平衡點(diǎn)來計算,那大家算出來的聯(lián)合策略就不太可能是納什平衡了。
所以,Pluribus 并沒有采取博弈論的思路,找到不輸?shù)钠胶獠呗浴6且源驍∪祟悶槟繕?biāo)。
決策之道
要做到這一點(diǎn),僅靠知名前輩Libratus的反事實(shí)遺憾最小化(CFR)算法可不行。
Libratus對抗游戲隱藏信息的策略是讓 AI 左右互搏,自己跟自己對戰(zhàn),采用隨機(jī)策略,在每局過后看看游戲中有哪幾手是讓人后悔的,而后再嘗試不同的戰(zhàn)略,在決策點(diǎn)上復(fù)盤。
在雙人對戰(zhàn)當(dāng)中,這樣的策略效果拔群。
但在不完美信息博弈中,每增加一個玩家,游戲的復(fù)雜度都會呈指數(shù)增長,已有的技術(shù)無法應(yīng)對。
Pluribus 采用了迭代的蒙特卡洛 CFR(MCCFR)。核心思想同樣是自我學(xué)習(xí),左右手互搏,不用任何人類或前輩 AI 的游戲數(shù)據(jù)作為輸入。
但它的特別之處在于它制定了一個藍(lán)圖策略,在與對手比賽的過程中,Pluribus 也會根據(jù)實(shí)際情況實(shí)時搜索更好的策略來改進(jìn)藍(lán)圖策略。
也就是說,它的行動可以分成兩個階段。
第一階段:藍(lán)圖策略
無限注德州撲克中有太多決策點(diǎn)可以單獨(dú)推理,為了降低游戲的復(fù)雜性,首先要進(jìn)行抽象,即消除一些值得商榷的行動。
Pluribus 使用了兩種抽象:動作抽象和信息抽象。
動作抽象減少了 AI 需要考慮的不同動作的數(shù)量。無限注德州撲克通常允許在 100 美元到 10000 美元之間進(jìn)行全價投注,投注 200 美元和投注 201 美元之間幾乎沒有區(qū)別。
所以,Pluribus 在任何給定的決策點(diǎn)只需要考慮幾種不同的下注大小。它所考慮的投注數(shù)量在 1 到 14 之間變化,具體多少取決于實(shí)際情況。
如果對手投注 150 美元,而 Pluribus 訓(xùn)練的過程中只投注 100 或 200 美元,那又該怎么辦?
這時,Pluribus 會依賴下文將提到的搜索算法。
信息抽象則是把策略上相似的牌局放在一起,并對其進(jìn)行相同處理。這會使游戲的復(fù)雜性大大降低,不過也可能消除一些超人類表現(xiàn)中非常重要的微妙差異。
因此,在與人類進(jìn)行實(shí)際比賽時,Pluribus 僅用信息抽象來推斷未來下注輪次的情況,而不會用它來實(shí)際進(jìn)行下注。同時,信息抽象也適用于自我博弈。
而藍(lán)圖策略的重頭戲,就是迭代的蒙特卡洛反事實(shí)遺憾最小化算法(MCCFR)。在算法的每次迭代中,MCCFR 將一個玩家指定為 " 遍歷者 ",其當(dāng)前策略在迭代時更新。
在迭代開始時,MCCFR 根據(jù)所有玩家的當(dāng)前策略隨機(jī)模擬一手牌。一旦這一手牌完成,算法就會開始 review 遍歷者的每一個決策,并通過選擇其他可能操作來評估這一手牌做得多好或多壞。接著,AI 會評估打出不同的手牌后可能做出的每一個假想決策的優(yōu)點(diǎn)。
視頻播放器
00:00
00:37
遍歷者在選擇一手牌后的收獲,與遍歷者在迭代中的期望收獲之間的差異,會被添加到行動的 " 后悔點(diǎn) "(反事實(shí)遺憾)中。
在迭代結(jié)束時,遍歷者的策略會更新,此后它選擇更高反事實(shí)遺憾動作的概率會更高。
第二階段:深度限制搜索
由于無限注德州撲克的規(guī)模和復(fù)雜性,整個游戲的藍(lán)圖策略給出的決策會比較模糊。
實(shí)際上,Pluribus 只在第一輪下注時根據(jù)制定好的藍(lán)圖來進(jìn)行游戲,在第一輪之后——甚至是第一輪當(dāng)中,如果對手選擇的賭注大小與藍(lán)圖動作抽象中的大小完全不同—— Pluribus 會進(jìn)行實(shí)時搜索,制定更精細(xì)的策略。
蒙特卡洛樹搜索、雙層搜索、alpha-beta 修剪搜索 …… 這些在完美信息游戲中表現(xiàn)出色的實(shí)時搜索在德州撲克面前都會撲街,因為它們并不考慮對手轉(zhuǎn)移策略的能力。
Pluribus 使用的方法是,明確地認(rèn)為所有玩家都可能選擇到子游戲葉子節(jié)點(diǎn)之外的不同策略。
算法假設(shè)每個玩家在到達(dá)葉子結(jié)點(diǎn)時,可以選擇四種不同的策略來進(jìn)行下面的游戲,其中包括預(yù)先計算的藍(lán)圖策略,修改后偏向于棄牌的藍(lán)圖策略,修改后偏向于跟注的藍(lán)圖策略,以及修改后偏向于加注的藍(lán)圖策略。
這樣的搜索方法能找到一種更平衡的策略,從而產(chǎn)生更強(qiáng)的整體表現(xiàn)。
而另一個大挑戰(zhàn)是在德州撲克這樣的游戲當(dāng)中,玩家的策略有時取決于對手如何看待她 / 他的游戲玩法。
為了應(yīng)對這一點(diǎn),Pluribus 根據(jù)其策略跟蹤每一手牌達(dá)到當(dāng)前情況的概率。無論 Pluribus 實(shí)際持有哪手牌,它都會優(yōu)先計算出每一手牌的動作,一旦計算出所有的平衡策略,它就會為它實(shí)際持有的手牌執(zhí)行一個動作。
令人驚嘆的是,Pluribus 的訓(xùn)練成本非常低。研究者只在 64 核的服務(wù)器上跑了 8 天,就成功訓(xùn)練出了 Pluribus 的藍(lán)圖策略,需要的內(nèi)存空間小于 512GB,還不用 GPU。
換句話說,Pluribus 的訓(xùn)練費(fèi)用都不到 150 美元!
進(jìn)行游戲時,Pluribus 也只需運(yùn)行在 2 個 CPU 上,使用不到 128GB 的內(nèi)存。
相比之下,在 2016 年 AlphaGo 對陣?yán)钍朗臅r候,使用了 1920 塊 CPU 和 280 個 GPU 進(jìn)行實(shí)時搜索。
在 6 人牌局中,Pluribus 平均每回合只需要 20 秒的時間,比頂尖人類選手還快一倍。
如此策略、如此小成本、如此速度,成績會如何?
全面超越人類職業(yè)高手
為了評估 Pluribus 的實(shí)力,研究人員找來了一群德?lián)浣绲捻敿飧呤郑?2000 年世界撲克錦標(biāo)賽冠軍 Chris "Jesus" Ferguson、2012 年世界錦標(biāo)賽冠軍 Greg Merson、四屆世界撲克巡回賽錦標(biāo)賽冠軍 Darren Elias 等等。
這些頂尖高手,每一位都在專業(yè)的德州撲克比賽中贏了超過 100 萬美元,大多數(shù)都贏了超過 1000 萬美元。
具體的測試中,研究者一種設(shè)計了兩種牌局。一種是 5 個人類和一個 AI 的牌局,一種是 5 個 AI 和一個人類的牌局。每一手牌開始的時候,籌碼是 10000 個,小盲 50,大盲 100。
在很多人機(jī)大戰(zhàn)中,經(jīng)常會出現(xiàn)這樣一種情況:AI 在一開始表現(xiàn)得不錯,但隨著人類玩家發(fā)現(xiàn)它的弱點(diǎn),就變得很智障。
為了全方位評估 Pluribus 的能力,測試持續(xù)了十幾天,打了幾萬手牌。目的是讓人類高手能夠有充分的時間去適應(yīng) AI 的策略,尋找 AI 的弱點(diǎn)。
此外,雖然德?lián)涫且环N技巧性很強(qiáng)的游戲,但運(yùn)氣也是其中非常重要的影響成分。對于頂尖的德?lián)渎殬I(yè)選手來說,僅僅是因為運(yùn)氣不好,在一萬手牌局中輸錢是很常見的。
研究者表示,為了減少運(yùn)氣對比賽的影響,他們在一個版本中采取了 "AIVAT" 算法,在保持樣本無偏差的情況下,用每種情況的基線估計值來減少方差。
比如說,如果 AI 拿到的是一手非常強(qiáng)的牌,AIVAT 將從它贏的錢總中減去一個基線估計值來抵消運(yùn)氣成分。
5 個人類和一個 AI
這種牌局一共打了 12 天,玩了 1000 手。
每天,都會從高手中選出五名參加。根據(jù)他們的表現(xiàn),會分配給他們 5 萬美元獎金,從而激勵他們發(fā)揮最佳水平。
應(yīng)用了 AIVAT 后,Pluribus 的贏率估計約為每 100 手牌 5 個大盲注 ( 5 bb/100 ) ,在人類頂尖高手的對決中,是非常好的成績 ( p 值為 0.021 ) 。
如果每個籌碼一美元,Pluribus 平均每手能贏 5 美元,每小時能賺 1000 美元。這一戰(zhàn)績,已經(jīng)超過了職業(yè)選手在與職業(yè)選手和業(yè)余選手的混合比賽中的獲勝率。
"Pluribus 是一個很難對付的對手,"Ferguson 在實(shí)驗結(jié)束后說。" 無論用什么手段,都很難吃定他。他也非常擅長在河牌(最后一張牌)上下小額賭注。他非常善于用自己的一手好牌獲取更大的價值。"
5 個 AI 和一個人類
參與這一牌局的是三位頂尖高手中的頂尖高手。
分別是 2000 年世界撲克錦標(biāo)賽冠軍 Chris "Jesus" Ferguson、四屆世界撲克巡回賽錦標(biāo)賽冠軍 Darren Elias,以及 Linus Loeliger ——在六人無限注德?lián)渲校枪J(rèn)的世界第一。
他們每個人都與 5 個 Pluribus 玩了 5000 手牌。Pluribus 并不會根據(jù)對手來調(diào)整自己的策略, 所以不會存在 AI 相互勾結(jié)的情況。
整體情況是,每 100 手牌人類選手損失了 2.3 個大盲注(2.3 bb/100)。
其中 Elias 為每 100 手 4 個大盲注(4.0 bb/100,標(biāo)準(zhǔn)誤差為 2.2 bb/100),F(xiàn)erguson 為每 100 手 2.5 個大盲注(2.5bb/100,標(biāo)準(zhǔn)誤差為 2.0 bb/100),Loeliger 為每 100 手 0.5 個大盲注(0.5bb/100,標(biāo)準(zhǔn)誤差為 1.0 bb/100)。
下面這張圖,呈現(xiàn)了 Pluribus 在 10000 手牌實(shí)驗中對職業(yè)撲克玩家的平均贏率。直線表示實(shí)際結(jié)果,虛線表示標(biāo)準(zhǔn)偏差。
" 它的主要優(yōu)勢在于運(yùn)用混合策略的能力,"Elias 說。" 這和人類試圖做的事情是一樣的。對于人類來說,這是一個執(zhí)行的問題——以一種完全隨機(jī)的方式去做,并且始終如一。大多數(shù)人類很難做到。"
由于 Pluribus 的策略,完全是在沒有任何人類數(shù)據(jù)的情況下通過自我博弈決定的,因此它也為尋找多玩家無限制的德?lián)涞淖罴淹娣ㄌ峁┝艘粋€外部視角。
Pluribus 證實(shí)了傳統(tǒng)的人類智慧,即跟進(jìn) ( 跟進(jìn)大盲注,而不是棄牌或加注 ) ,對任何玩家來說都是次優(yōu)的。
只有小盲注玩家是例外,他們已經(jīng)有一半的大盲注在底池中,因此只需投入其他玩家一半的資金即可。
盡管 Pluribus 在最初通過自我博弈時嘗試過跟進(jìn)策略,但隨著自我博弈繼續(xù)下去,它逐漸放棄了這一策略。
但 Pluribus 在一個人類公認(rèn)的策略上提出了不同的意見:即不下注 ( 在一輪下注結(jié)束時跟注,開始一輪下注 ) 是一個錯誤;與頂尖人類高手相比,Pluribus 這樣做的頻率更高。
" 在于撲克機(jī)器人的比賽中,看到它選擇的一些策略,非常令人難以置信,也令人著迷。"Gagliano 表示," 有幾個策略是人類根本想不到的,特別是與賭注大小有關(guān)的。"
下面的這張圖,顯示了 Pluribus 和職業(yè)選手比賽時的籌碼數(shù)量。實(shí)線表示實(shí)際結(jié)果,虛線表示標(biāo)準(zhǔn)偏差。
值得注意的是,Pluribus 是一種研究人工智能的工具。研究者表示,選取撲克只是為了評估在不完全信息的場景中,人工智能在多智能體交互中與人類最高水平的差距。
也就說,他們的征途不僅僅限于德?lián)洌切浅酱蠛!?/p>
畢竟,現(xiàn)實(shí)世界很復(fù)雜,也不是只有兩方對戰(zhàn),也不是非輸既贏。走向通用的人工智能,學(xué)習(xí)多人復(fù)雜游戲是非常重要的一步。
當(dāng)然,作為 "Libratus接下軍用訂單 " 事件的回應(yīng),F(xiàn)acebook 說這項研究不會做軍事用途。
【來源:量子位】