擊敗世界冠軍,AI玩6人德州撲克煉成超級賭神!訓練只需8天
?
【新智元導讀】CMU和Facebook聯(lián)合打造了史上最強德州撲克AI,自對戰(zhàn)零起點訓練8天,在人機大混戰(zhàn)吊打了各路職業(yè)牌手。這款名為Pluribus的AI重點解決了多人對局環(huán)境下的非零和博弈和隱藏信息推理問題,訓練成本僅150美元。
AI又完成了一項“里程碑式”的挑戰(zhàn)。
一款名叫“Pluribus”的AI撲克牌機器人在六人無限制德州撲克這項復雜游戲中,碾壓了人類職業(yè)選手!——這是AI機器人首次在規(guī)模超過兩人的復雜對局中擊敗頂級人類玩家。
這樣的一項研究,你肯定會認為訓練消耗的成本會非常大,對吧?
但是!恰恰相反!劃重點:
Pluribus的藍圖策略在64核CPU的服務器上訓練了8天,使用512 GB的RAM,沒有使用GPU。在一般的云計算實例價格下,訓練費用不到150美元!
這與其他最近的AI突破性成果形成鮮明對比,其中包括那些涉及游戲中自對戰(zhàn)的突破,訓練成本動輒就需要幾百萬美元。
許多網(wǎng)友們紛紛感慨:“原來小資源的研究也能推動人工智能研究大步向前發(fā)展”。這項研究讓人們對如何構建通用的人工智能有了更好的基礎理解。
這項研究是由卡耐基梅隆大學與Facebook人工智能團隊共同合作完成。目前,各大頂級期刊和知名媒體都在瘋狂刷屏報道:
https://www.nature.com/articles/d41586-019-02156-9
https://science.sciencemag.org/content/early/2019/07/10/science.aay2400
https://www.techmeme.com/
那么這款德州撲克AI到底為何如此厲害?新智元帶你慢慢揭秘。
Pluribus:面向“隱藏信息”更新算法,戰(zhàn)勝職業(yè)牌手
幾十年來,德州撲克一直是人工智能領域最難以攻克的重大問題之一。因為撲克對局涉及“隱藏信息”。你不知道對手的牌是什么,要想在牌局中獲勝,需要成功運用bluff和其他多種策略,這些策略并不適用于國際象棋、圍棋等對局。這使得德州撲克成為AI難以攻克的堡壘之一。
近年來隨著技術的進步,AI在1V1德州撲克對局中,已經(jīng)能擊敗頂級人類玩家。但如何開發(fā)出能夠在1對多的牌局中戰(zhàn)勝頂級玩家的AI,仍是研究人員不斷努力的目標。
Pluribus是Facebook與卡內(nèi)基梅隆大學合作開發(fā)的新型AI機器人,它成功實現(xiàn)了這一目標,擊敗了德州撲克精英人類玩家:比賽采用六人無限制德州撲克。Pluribus在“五個AI和一個人類玩家”和“一個AI 和五個人類玩家”的比賽中都擊敗了人類職業(yè)玩家。
在每個籌碼價值1美元的假設下,Pluribus每手牌平均能贏5美元,在與五名職業(yè)玩家的對戰(zhàn)中,每小時能贏 1000美元??梢哉f是取得了決定性勝利。
Pluribus在此前的德州撲克AI Libratus的基礎上進行了幾項創(chuàng)新,實現(xiàn)了這一成果,Libratus是2017年在雙人無限注德州撲克中擊敗人類職業(yè)選手的AI,我們還借助了Tuomas Sandholm在卡內(nèi)基梅隆大學研究實驗室開發(fā)的其他算法和代碼。
特別是,Pluribus采用了一種新的在線搜索算法,可以通過前面的幾個步驟而不是僅僅搜索到游戲結束來有效地評估策略選擇。Pluribus還針對涉及“隱藏信息”的對戰(zhàn)使用新的、更快的自對弈算法。AI只需非常少的處理能力和內(nèi)存就能進行訓練,只需價值不到150美元的云計算資源。這種高效率與近期其他撲克AI項目形成鮮明對比,后者往往需要價值數(shù)百萬美元的計算資源才能進行訓練。
上面的視頻中展示了Pluribus 在對陣幾位職業(yè)玩家時采用的牌局策略。(牌面已公開展示)
這些創(chuàng)新在德州撲克以外的領域也具有重要意義,因為雙人零和博弈(一個玩家贏了,另一個玩家就要輸)在休閑游戲中很常見,但在現(xiàn)實生活中非常罕見。而在真實場景中,比如對有害內(nèi)容采取行動,應對網(wǎng)絡安全挑戰(zhàn),以及管理在線拍賣、導航流量,這些行為通常涉及多個參與者,并涉及隱藏信息。我們的成果表明,AI算法可以在雙人零和博弈領域之外,也達到超過人類的表現(xiàn)。
來自職業(yè)牌手的贊譽:和AI打牌壓力山大
“與Pluribus比賽最激動的事就是應對其在翻牌前采取的復雜策略。與人類不同,Pluribus在翻牌前會多次加注。這與人類對局的風格完全不同,很有意思?!?/p>
Seth Davies,職業(yè)撲克選手
“我很高興能夠與機器人對戰(zhàn),這是一種獨特的學習體驗。我認為機器人玩得非常穩(wěn)。當我的手牌不強時,AI總能逼我做艱難的決定,而且AI在擁有強手牌時總能贏到錢,AI做的很漂亮,這是一個有趣的挑戰(zhàn),我很高興再次與它對戰(zhàn)。”
Trevor Savage,職業(yè)撲克選手
“Pluribus是一個非常努力的對手,任何手牌你都很難壓倒它。AI非常善于在河牌輪下小注。非常擅長在手握好牌時盡量多贏。”
Cris Ferguson,WSOP冠軍
“這個AI就是個bluff怪物。我覺得它比大多數(shù)人更有效率。你和它對戰(zhàn)總能感覺到很大壓力,你知道它隨時可能在bluff?!?/p>
Jason Les,職業(yè)撲克選手
“每當和機器人玩牌時,我會選擇一些新的策略。作為人類,我認為我們傾向于為自己過度簡化對局,讓對局策略更易于使用和記憶,更傾向于走捷徑。機器人就不會走這種捷徑,它的每個決定背后都有一個極其復雜而平衡的策略樹?!?/p>
Jimmy Chou,職業(yè)撲克玩家
“能與機器人對戰(zhàn),并看到它選擇的一些策略真的令人難以置信。AI是德州撲克發(fā)展過程中的一個重要組成部分,在面向未來的這一大步中獲得第一手經(jīng)驗真是太棒了?!?/p>
Michael Gagliano,職業(yè)撲克玩家
從雙人對戰(zhàn)到六人混戰(zhàn),產(chǎn)生了哪些新問題?
六人的德州撲克對戰(zhàn)與之前的二人對戰(zhàn)的AI基準測試相比,多了兩個主要挑戰(zhàn)。
一、不再只是雙人零和博弈
此前,所有取得突破的AI僅限于那些只有兩名玩家或兩支球隊參加的零和博弈對局(如跳棋,國際象棋,圍棋、雙人德州撲克,星際爭霸2和Dota 2等)。
在這些對局中,AI可以采用一種稱為“納什均衡”的策略。在雙人和雙隊的零和博弈中,無論對手做什么,只要采用足夠精確的納什均衡策略,就能保證不輸。(例如,“石頭剪刀布”的納什均衡策略是以相同的概率隨機出石頭、布或剪刀。)
盡管在任何有限制的對戰(zhàn)中都會存在納什均衡,但在三個或更多玩家參與的游戲中,納什均衡難以有效計算。此外,在有兩個以上玩家參與的游戲中,即使在精確的納什均衡策略下,有時也無法避免失敗。
在六人制德州撲克中,目標不應該是確定特定的博弈論解決方案的概念,而是創(chuàng)建一個從長遠來看,可以憑經(jīng)驗擊敗人類對手的AI。對于AI機器人來說,這通常被認為是“超人”的表現(xiàn)。
我們用來構建Pluribus的算法并不能保證在雙人零和博弈之外的領域收斂到納什均衡。盡管如此,Pluribus在六人德州撲克中采用的策略始終能擊敗精英專業(yè)玩家,因此這些算法能夠在超級玩家零和游戲之外的更廣泛的場景中產(chǎn)生超人策略。
二、要面對復雜環(huán)境下的“隱藏信息”
沒有其他游戲像撲克一樣體現(xiàn)“隱藏信息”的挑戰(zhàn),每個玩家都擁有其他玩家所缺乏的信息(手牌)。一個成功的AI必須會推理這個隱藏信息,并仔細平衡策略,以保持對自身信息的不可預測,同時仍然采取良好的行動策略。例如,采用bluff偶爾會有效,但總用bluff就會容易被人摸透,可能會導致大量損失。因此,有必要仔細在“bluff”和“手握大牌下大注”的概率之間取得一個平衡。換句話說,就是令不完全信息博弈中的行動策略,取決于選擇某策略和選擇其他動作的概率區(qū)分上。
而在完全信息博弈中,玩家不必考慮這一點。國際象棋中的好手就是好手。但我們不可能將特定德州撲克牌局中的最佳策略與德州撲克的整體策略區(qū)分開來。
像Libratus這樣的德州撲克AI,結合了基于反事故遺憾最小化(CFR)理論中的合理的自對戰(zhàn)算法和精心構建的搜索程序,來應對牌局中的隱藏信息。對于不完全的信息博弈,牌局中的玩家的增加,會讓對局的復雜性呈現(xiàn)指數(shù)級增長。以前的技術無法擴展應用到六人對局中,即使計算量提升10000倍也不行。Pluribus使用的新技術,比以前的任何技術更好地應對這一挑戰(zhàn)。
Pluribus對戰(zhàn)策略:從零開始自對戰(zhàn),8天訓練戰(zhàn)勝職業(yè)高手
Pluribus在牌局中策略核心是通過自對戰(zhàn)計算出來的,AI自己和自己進行對局,沒有任何人類對局的數(shù)據(jù)作為輸入。AI從零開始,一開始是完全是隨機行動,隨著牌技逐漸提升,學著確定哪些行動更好,確定各類行動的概率分布中哪些可以產(chǎn)生更好的結果。Pluribus使用的自對戰(zhàn)版本是迭代蒙特卡羅CFR(MCCFR)算法的改進版。
上面的視頻中顯示了蒙特卡羅CFR算法通過評估實際和假設行動值,來更新遍歷者策略的過程。在Pluribus中,出于優(yōu)化目的,這種遍歷實際上是以深度優(yōu)先的方式完成的。
此時,探索其他假設的結果是可能的,因為AI正與自己進行對局。如果AI想知道選擇了其他一些行動會發(fā)生什么事情,那么它只需自問應該如何回應該行動就行了。
在對局中的每個決策點中維持每個動作的CFR,需要的計算資源比宇宙中原子總數(shù)還多。為了降低游戲的復雜性,我們忽略了一些操作,并通過抽取將類似的決策點放在一起。在抽象之后,劃分在一起的決策點被視為相同決策點。
Pluribus經(jīng)過自對戰(zhàn),輸出整個對戰(zhàn)中的藍圖策略。在實際對局中,Pluribus使用搜索算法改進了這個藍圖策略。但是,Pluribus并沒有根據(jù)其觀察到的對手的傾向來調(diào)整策略.
上圖顯示了在64核CPU訓練期間,Pluribus的藍圖策略的改進過程。績效是根據(jù)訓練的最終快照來衡量的。
Pluribus的藍圖策略在64核CPU的服務器上訓練了8天,使用512 GB的RAM,沒有使用GPU。在一般的云計算實例價格下,訓練費用不到150美元。這與其他最近的AI突破性成果形成鮮明對比,其中包括那些涉及游戲中自對戰(zhàn)的突破,訓練成本一般需要幾百萬美元。由于算法的改進,我們能夠在如此低的計算成本下實現(xiàn)“超人”的表現(xiàn).
超越人類的一個更有效的搜索策略
由于無限制德州撲克的規(guī)模和復雜性,藍圖(blueprint)策略必然是粗粒度的。
在實際游戲中,Pluribus通過實時搜索來確定針對其特定情況下的更好、更細粒度的策略,從而改進了藍圖策略。
目前,我們知道AI已經(jīng)在許多游戲中大展拳腳,也使用了實時搜索,包括西洋雙陸棋(double -ply search)、國際象棋(alpha-beta pruning search)和圍棋(Monte Carlo tree search)。
但是,這些搜索方法對不完全信息博弈不起任何作用,因為它們沒有考慮到對手在葉子節(jié)點之外轉向不同策略的能力。這個弱點就導致搜索策略是非常脆弱且不平衡的,也因此使得AI無法解決這一挑戰(zhàn)。
相反,Pluribus使用了一種方法,在這種方法中,搜索者明確地認為任何或所有玩家都可以在子游戲的葉子節(jié)點之外轉向不同的策略。
具體而言,研究人員不是假設所有玩家都根據(jù)葉子節(jié)點之外的單個固定策略進行游戲,而是假設每個玩家可以選擇四種不同的策略來玩剩余的到達葉節(jié)點時的游戲。
那么這四種策略是什么呢?
首先是預先計算的藍圖策略;第二是藍圖策略的修改形式,這個策略偏向于折疊;第三是偏向于調(diào)用的藍圖策略;最后一個是偏向于raising的藍圖策略。
這種技術可以讓搜索者找到一個更加平衡的策略,從而產(chǎn)生更強的整體性能。若是選了一個不平衡的策略,就會讓對手轉向其他延續(xù)策略,例如,在玩兒石頭剪刀布的時候,若是你總出“石頭”,對手就會出“布”來應對你。
在不完全信息游戲中,搜索的另一個主要挑戰(zhàn)是玩家在特定情況下的最佳策略取決于他的對手如何看待他的游戲玩兒法。如果玩家從不“虛張聲勢”,那么他的對手就會知道若是一旦下了大賭注,他們就會做出讓步。
為了應對這種情況,Pluribus根據(jù)自己的策略,用每一只可能的手牌追蹤它達到當前狀態(tài)的概率。
無論Pluribus實際握的是哪張手牌,它都會首先計算每一張可能的手牌會如何行動——小心地在所有的手牌上平衡它的策略,讓對手無法預測。一旦計算了所有手牌的這個平衡策略,Pluribus就會為它實際持有的手牌執(zhí)行一個操作。
在游戲過程當,Pluribus在只2個CPU上運行。相比之下,AlphaGo在2016年與頂級Go專業(yè)人士Lee Sedol的比賽中使用1920個CPU和280個GPU進行實時搜索。
Pluribus還使用不到128 GB的內(nèi)存。Pluribus搜索單個子游戲所花費的時間在1秒到33秒之間變化,具體取決于具體情況。
平均而言,Pluribus的速度是典型人類職業(yè)選手的兩倍:在六人撲克中與自己的副本進行比賽時每手20秒。
Pluribus是如何對抗人類職業(yè)選手的?
那么,此次與AI對抗的人類職業(yè)選手都是誰呢?
2000年世界撲克大賽主賽事冠軍Chris ” Jesus ” Ferguson、 2012年世界撲克大賽主賽事冠軍Greg Merson以及四次世界撲克巡回賽冠軍Darren Elias。
完整的全明星陣容包括:Jimmy Chou、Seth Davies、Michael Gagliano、Anthony Gregg、Dong Kim、Jason Les、Linus Loeliger、Daniel McAulay、Nick Petrangelo、Sean Ruan、Trevor Savage和Jake Toole。
上述每一位職業(yè)選手在職業(yè)撲克比賽中都贏得了超過100萬美元的獎金,其中許多人贏得了超過1000萬美元的獎金。
人工智能系統(tǒng)在其他基準游戲中與人類對戰(zhàn)時,機器有時一開始表現(xiàn)得很好,但最終由于人類玩家發(fā)現(xiàn)了它的漏洞而失敗。
人工智能要想精通一款游戲,即使人類對手有時間去適應,它也必須證明自己是能贏的。而這次,在幾天的時間里進行了數(shù)千次撲克比賽,給了人類職業(yè)選手充足的時間來尋找AI的弱點來適應。
Elias說:“機器人不僅僅是跟普通的職業(yè)選手在比賽,而是在和世界上最頂尖的選手作戰(zhàn)?!?/p>
這是Pluribus和職業(yè)玩家在實驗中使用的界面
實驗有兩種形式:
- 5個人類職業(yè)選手與1個AI共同玩兒游戲;
- 1個人類職業(yè)選手與5個AI共同玩兒游戲。
在每一種情況下,游戲都有六名玩家在參與,每一手開始都有10000個籌碼。小盲注是50片,大盲注是100片。
雖然撲克是一種技巧游戲,但也有很大的運氣成分。對于頂級專業(yè)人士來說,僅僅因為運氣不好,就在1萬手撲克牌的過程中輸?shù)翦X是很常見的。
為了減少運氣的成分,實驗使用了一種版本的AIVAT方差減少(variance reduction)算法,該算法在保持樣本無偏的情況下,對每種情況的值進行基線估計,以降低方差。
5個人類職業(yè)選手 1個AI
在這個實驗中,10000手撲克牌被玩了12天。
每天從專業(yè)人員中挑選五名志愿者參與。根據(jù)他們的表現(xiàn),將50000美元的獎金分配給人類專業(yè)人士,以激勵他們發(fā)揮最佳水平。
在應用AIVAT之后,Pluribus的獲勝率估計為每100手(5 bb / 100)約5個大盲注,這被認為是在對戰(zhàn)人類精英對手時取得的很好的勝利(盈利,p值為0.021)。
如果每個籌碼都值1美元,Pluribus將會贏得平均每人5美元的獎金,并且每小時可以賺到1000美元。這一結果超過了職業(yè)選手在與職業(yè)、業(yè)余選手的混合比賽中獲勝的預期。
Ferguson在實驗后感慨道:“Pluribus是一個很難應付的對手?!?/p>
5個AI 1個人類職業(yè)選手
這個實驗是由Ferguson、Elias和Linus Loeliger進行的。 許多人認為Loeliger是六人無限注德州撲克現(xiàn)金游戲中世界上最好的玩家。
每個人玩5000手撲克牌,桌上還有5個Pluribus。Pluribus并沒有根據(jù)對手的情況調(diào)整策略,因此機器人之間的故意勾結不是問題。
總的來說,人類損失了2.3 bb/100。Elias下跌4.0 bb/100(標準誤差2.2 bb/100), Ferguson下跌2.5 bb/100(標準誤差2.0 bb/100), Loeliger下跌0.5 bb/100(標準誤差1.0 bb/100)。
這張圖顯示了Pluribus在10000手實驗中對職業(yè)撲克玩家的平均勝率。直線表示實際結果,虛線表示一個標準差。
Elias說:“它的主要優(yōu)勢是能夠使用混合策略,這也是人類試圖做的事情。對人類來說,這是一個執(zhí)行的問題——以一種完全隨機的方式,并始終如一地這樣做。大多數(shù)人就是做不到?!?/p>
由于Pluribus的策略完全是在沒有任何人類數(shù)據(jù)的情況下從自我游戲決定的,因此它也提供了一個外部視角,即在多人無限制德州撲克游戲中最優(yōu)的游戲應該是什么樣子。
雖然Pluribus最初嘗試通過自玩離線計算藍圖策略時采用了limping策略,但隨著游戲的繼續(xù),它逐漸放棄了這一策略。但是Pluribus不同意“民間”的觀點,認為donk投注是一個錯誤;Pluribus比專業(yè)人士更經(jīng)常采用這樣的策略。
Gagliano說:“和撲克機器人比賽,看到它選擇的一些策略,真是令人難以置信的美妙。”
這張圖顯示了Pluribus在與職業(yè)選手競爭時的籌碼數(shù)量。直線表示實際結果,虛線表示一個標準差。
少量資源也推動人工智能發(fā)展:Pluribus讓通用AI有了更好的理解
此前,人工智能在完全信息的雙人zero-sum游戲中取得了一系列引人矚目的成功。但現(xiàn)實世界中的大多數(shù)戰(zhàn)略互動都涉及隱藏的信息,而不是兩方的zero-sum博弈。
Pluribus的成功表明,在大規(guī)模、復雜的多玩家設置中,盡管缺乏已知的對性能的強有力的理論保證,但精心構造的自我游戲搜索算法仍然可以成功。
Pluribus的不同尋常之處還在于,它的訓練和運行成本遠低于近期其他用于基準游戲的人工智能系統(tǒng)。
該領域的一些專家擔心,未來的人工智能研究將由擁有數(shù)百萬美元計算資源的大型團隊主導。
但是Pluribus是一個強有力的證據(jù),證明了只需少量資源的新方法也可以推動前沿人工智能研究。
盡管Pluribus是為玩撲克而開發(fā)的,但所使用的技術并不針對撲克,也不需要開發(fā)任何專業(yè)領域知識。
這項研究讓人們對如何構建通用的人工智能有了更好的基礎理解,它可以處理多智能體環(huán)境,既可以處理其他智能體,也可以處理人類,并讓人們可以用人類能力的巔峰來衡量這一領域的進展。
當然,在Pluribus中采用的方法可能不會在所有多智能體設置中都成功。
在撲克游戲中,玩家交流和串通的機會是有限的。在構建非常簡單的協(xié)調(diào)博弈時,現(xiàn)有的自我游戲算法可能無法找到一個好的策略。
然而,許多真實世界的交互——包括涉及欺詐預防、網(wǎng)絡安全以及對有害內(nèi)容采取行動的交互——可能被建模為涉及隱藏信息和/或多個智能體的場景,這些智能體之間的通信是有限的。
使Pluribus能夠在牌桌上擊敗多個對手的技術可能有助于AI社區(qū)在這些和其他領域開發(fā)有效的策略。
關注新智元和群,獲取Science論文原文!