人工智慧終於開始掌握人性中一些獨特的能力,並且比它的老師玩得還好。
要想在撲克中獲勝,就需要利用這樣一項能力:狡猾。為了獲勝,玩家必須分析對手如何出牌,然後欺騙他們交出手中的籌碼。當然,這種狡詐對人來說很自然。現在,人工智慧程序首次表現出能夠用類似的技能來欺騙人類的職業撲克選手。
近日,Facebook 與卡內基梅隆大學合作開發的一款新型人工智慧系統 Pluribus,在世界上最流行、最廣泛的撲克遊戲:六人無限注德州撲克 (Texas Hold'em poker) 中擊敗了頂級人類職業玩家。Pluribus 在「5 個 AI + 1 個人類玩家」和「1 個 AI + 5 個人類玩家」兩種模式下都擊敗了職業玩家。這是人工智慧機器人第一次在超過兩名玩家 (或兩支隊伍) 的大型基準遊戲中擊敗頂級專業人士.
此前,人工智慧技術已經能夠在只有一個對手的情況下打敗人類撲克高手。但像 Pluribus 這樣,在多人同桌的情況下擊敗人類精英玩家,才是關鍵的裡程碑。
Pluribus 是通過基於 Libratus 的幾項創新,以及 Tuomas Sandholm 在卡內基梅隆大學研究實驗室開發的其他算法和代碼實現這一成果的。Libratus 是 2017 年在雙人無限注德州撲克中擊敗人類職業選手的 AI。特別是,Pluribus 採用了新的在線搜索算法,它可以通過之前的幾個步驟就能有效地評估其下注選項,而不用搜索到遊戲結束。Pluribus 還使用了新的更快的自玩算法來玩包含隱藏信息的遊戲。
圖丨Tuomas Sandholm (來源:Carnegie Mellon)
更讓讓人想不到的是,這些進步可以使用很少的處理能力和內存——相當於不到 150 美元的雲計算資源——就培訓出 Pluribus。這個效率與最近其他人工智慧裡程碑項目形成了鮮明對比,它們需要相當於數百萬美元的計算資源來進行培訓。
這些在撲克遊戲中的創新具有十分重要的意義,因為兩個人的零和互動 (一名玩家贏,一名玩家輸) 在休閒遊戲中很常見,但在現實生活中卻非常罕見。現實世界中,對有害內容採取行動,應對網絡安全挑戰,以及管理在線拍賣或導航流量,通常會涉及多個參與者還有多重隱藏信息。多玩家交互對過去的人工智慧技術提出了嚴峻的理論和實踐挑戰。然而,現在的結果表明,人工智慧算法可以在雙人零和遊戲之外達到超凡的表現。
圖丨Seth Davies,職業撲克選手 (來源:Facebook)
它有掏空在線撲克公司的實力
研究人員通過與一群優秀的人類專業人士比賽來評估 Pluribus。職業選手包括 2000 年世界撲克大賽主賽事冠軍 Chris "Jesus" Ferguson,2012 年世界撲克大賽主賽事冠軍 Greg Merson 等。參賽的每一個選手之前都在撲克牌桌上贏得了超過 100 萬美元,其中有些人甚至贏得了超過 1000 萬美元的獎金。
對戰有兩種形式:五個職業玩家和一個人工智慧,一個職業玩家和五個人工智慧副本。在每一種形式下,牌桌上都有六名玩家,每一手開始都有 10000 個籌碼。小盲注是 50 個籌碼,大盲注是 100 個籌碼。
雖然撲克是一種技巧遊戲,但也有很大的運氣成分。對於頂級專業人士來說,僅僅因為運氣不好,就輸掉 1 萬手籌碼是很常見的。為了減少運氣的作用,研究人員使用了 AIVAT 方差減少算法來評估結果。例如,如果機器人的某一手真的很強,AIVAT 將從它的獎金中減去一個基線值來抵消運氣成分。
在 5 個職業玩家+1 個 AI 的實驗中,10000 手遊戲玩了 12 天。每天從專業人員中挑選五名志願者參與。官方將根據選手的表現分給他們獎金 5 萬美元,以激勵他們發揮出最佳水平。在使用 AIVAT 後,Pluribus 的勝率估計為每 100 手 5 個大盲注 (5 bb/100),這是以精英人類作為對手的壓倒性勝利 (盈利,p 值為 0.021)。如果每個籌碼都值 1 美元,Pluribus 平均每手贏得 5 美元的獎金,並且每小時可以賺到 1000 美元。這一結果超過了職業玩家在與職業和業餘玩家的混合比賽中獲勝的預期。
在 5 個 AI +1 個職業玩家的模式下,由三名志願者參與,每個人類玩家和 5 個 Pluribus 副本玩 5000 手。Pluribus 並沒有根據對手的情況調整策略,因此 AI 之間不存在故意勾結問題。總的來說,人類損失了 2.3 bb/100(每 100 手 2.3 個大盲注)。
Pluribus 的算法實在太成功了。「這對撲克社區來說可能是非常危險的,」參與開發算法的 Facebook 研究員 Noam Brown 說。他今年被評為《麻省理工科技評論》的 35 歲以下科技創新者之一。
「你通常可以找出對手的弱點,但沒有找到(它的)弱點,」遊戲中的撲克職業選手 Jason Les 說,「這個 AI 非常強大,你找不到任何可以利用或佔便宜的機會。」
研究人員擔心 Pluribus 可能被用來掏空在線德州撲克公司的金庫,因此決定不發布其代碼。目前,Facebook 也沒有計劃去應用為六人撲克開發的技術。
六人德州撲克的兩大挑戰
幾十年來,撲克遊戲一直是人工智慧領域一個困難而又重要的挑戰難題。
這是因為撲克遊戲中包含隱藏信息,你不知道對手的牌,想要獲勝需要會虛張聲勢以及一些其他策略,而且,這些策略又不同於象棋、圍棋和其他遊戲。這也是人工智慧技術在其他遊戲中取得突破,卻不能突破撲克的原因,撲克遊戲對人工智慧技術有天生的抵抗力。
具體來說,六人德州撲克一直面臨著兩大挑戰。
第一大挑戰,德州撲克不只是兩玩家的零和遊戲。
之前 AI 突破的所有基準遊戲僅限於那些只有兩名或兩隊玩家的零和遊戲,例如跳棋、象棋、圍棋、雙人撲克、星際爭霸 2 和 Dota 2。在這些情況下,人工智慧取得了成功,因為它採用了一種稱為納什均衡(Nash equilibrium)的策略。在兩名或兩隊玩家的零和遊戲中,精確的納什均衡能做到無論對手做什麼都不可能輸(例如,剪刀-石頭-布的納什均衡策略是隨機選取概率相等的石頭、布或剪刀)。
雖然納什均衡在任何遊戲中都是存在的,但在三個或三個以上對戰玩家的遊戲中,通常不可能有效地計算出納什均衡。此外,在一場多人參與的遊戲中,即使採用精確的納什均衡策略,也有可能失敗。其中一個例子是 Lemonade Stand 遊戲,每個玩家同時在一個圓環上取一個點,並要儘可能地遠離其他玩家。納什均衡是讓所有玩家在環上的距離相等,但實現這一點的方法有無窮多種。如果每個玩家獨立地計算其中一個均衡,那麼最終不太可能使所有參與者在環上的距離相等。
圖丨Lemonade Stand 遊戲(來源:Facebook)
在多於兩個玩家的零和遊戲中,納什均衡存在的缺陷,引發研究人員的思考:在這樣的遊戲中,正確的目標應該是什麼?以六人德州撲克為例,研究人員認為,目標不應該是一個特定的博弈論解決方案,而是創造一個通過長期經驗戰勝人類對手甚至專業人士的人工智慧。
在多於兩玩家的零和遊戲中,研究人員用來構造 Pluribus 的算法不能保證收斂到納什均衡。儘管如此,Pluribus 的策略始終能在六人撲克遊戲中擊敗精英人類撲克專家。
第二大挑戰,信息隱藏在更複雜的環境中。
沒有任何其他遊戲能像撲克那樣體現隱藏信息的挑戰,每個玩家都有其他玩家所缺乏的信息。一個成功的撲克 AI 必須對這些隱藏的信息進行推理,並謹慎地平衡其策略,保持自身的不可預測,同時仍然選擇好下一步行動。例如,虛張聲勢有時可能是有效的,但總是虛張聲勢就會被對手預測到手牌,並可能導致損失很多錢。因此,有必要謹慎地平衡一個人虛張聲勢的概率和他下注的概率。換句話說,在不完全信息博弈遊戲中,一個行為的價值取決於選擇它的概率和選擇其他行為的概率。
相反,在完全信息遊戲中,玩家不需要擔心如何平衡每一步的概率。例如在西洋棋中,好棋就是好的,無論它被選中的概率是多少。
之前的撲克遊戲機器人 Libratus,通過將基於 Counterfactual Regret Minimization(CFR) 理論完善的自玩算法與精心構建的不完全信息遊戲搜索過程相結合,來處理像雙人德州撲克遊戲中的隱藏信息。然而,在德州撲克中添加額外的玩家會成倍地增加遊戲的複雜性。這些以前的技術不能擴展到六人德州撲克。如今,Pluribus 使用的新技術可以更好地應對這一挑戰。
Pluribus 的培訓成本不到 150 美元
Pluribus 策略的核心是通過自我遊戲來計算的,在這種策略中,人工智慧對抗自己的副本,不使用任何人類遊戲數據作為輸入。人工智慧通過隨機遊戲從零開始,並逐漸改進。它會記錄遊戲進行了哪些操作,以及這些操作上的概率分布,然後在與早期版本的策略對戰中獲得更好的輸出結果。在 Pluribus 中使用的自我遊戲版本是迭代 Monte Carlo CFR (MCCFR) 算法的改進版本。
在算法的每次迭代中,MCCFR 指定一個玩家作為「遍歷者」,其當前策略在迭代中更新。在迭代開始時,MCCFR 基於所有玩家的當前策略 (最初完全是隨機的) 模擬一手撲克牌。一旦模擬完成,算法會檢查遍歷器做出的每個決策,並研究如果選擇其他可用的操作,它會做得更好還是更差。接下來,人工智慧會評估每一個假設的決策的價值,這些決策是按照可用操作做出的,以此類推。
在 8 天時間內,研究人員在 64 核伺服器上培訓了 Pluribus 的藍圖策略,所需內存不到 512 GB,而且沒有使用 GPU。按照典型的雲計算的成本估計,培訓成本不到 150 美元。這與最近的其他人工智慧項目突破形成了鮮明對比,這些突破通常需要花費數百萬美元進行訓練。
在玩德州撲克時,Pluribus 運行在兩個 CPU 上。相比之下,2016 年,AlphaGo 在與頂級圍棋專業人士李世乭的比賽中,使用了 1,920 個 CPU 和 280 個 GPU 進行實時搜索。而且,Pluribus 使用不到 128 GB 的內存。Pluribus 搜索每手遊戲所花費的時間在 1 秒到 33 秒之間變化,具體取決於實際情況。平均而言,Pluribus 的速度是典型人類職業選手的兩倍:在六人德州撲克中與自己的副本進行比賽時,時間為每手 20 秒。
圖丨Pluribus 和專業玩家的遊戲界面(來源:Facebook)
從撲克遊戲到現實不完全信息博弈的挑戰
此前,人工智慧在完全信息的兩玩家零和遊戲中取得了一系列引人矚目的成功。但現實世界中的大多數戰略互動都涉及隱藏的信息,而不是兩方的零和博弈。Pluribus 的成功表明,在大規模、複雜的多玩家博弈中,儘管缺乏強有力的性能以及理論保證,但精心構造的自玩搜索算法仍然可以成功。
Pluribus 的不同尋常之處還在於,它的訓練和運行成本遠低於近期其他用於基準遊戲的人工智慧系統。此前,該領域的一些專家擔心,未來的人工智慧研究將由擁有數百萬美元計算資源的大型團隊主導。Pluribus 是一個強有力的證據,現在有理由相信,只需少量資源的新方法可以推動前沿人工智慧研究。
圖丨由 Tuomas Sandholm 和 Noam Brown 開發的電腦程式在2017年的比賽中擊敗了四名職業撲克玩家(來源:網際網路)
儘管 Pluribus 是為玩撲克而開發的,但其所使用的技術並不針對撲克,也不需要開發任何專業領域知識。這項研究讓我們對如何構建通用的人工智慧有了更好的基礎理解。另外,Pluribus 在牌桌上擊敗多個對手的技術可能有助於 AI 社區在多種領域開發有效的策略。