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