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 會評估打出不同的手牌后可能做出的每一個假想決策的優點。
視頻播放器
00:00
00:37
遍歷者在選擇一手牌后的收獲,與遍歷者在迭代中的期望收獲之間的差異,會被添加到行動的 " 后悔點 "(反事實遺憾)中。
在迭代結束時,遍歷者的策略會更新,此后它選擇更高反事實遺憾動作的概率會更高。
第二階段:深度限制搜索
由于無限注德州撲克的規模和復雜性,整個游戲的藍圖策略給出的決策會比較模糊。
實際上,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 天,玩了 1000 手。
每天,都會從高手中選出五名參加。根據他們的表現,會分配給他們 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 說這項研究不會做軍事用途。
【來源:量子位】