解读《Superhuman AI for multiplayer poker》
目錄
- 引言
- 多人博弈理論與實際的挑戰
- Pluribus的描述
- 大型不完備信息博弈的抽象化
- 動作抽象
- 信息抽象
- 通過改進型蒙特卡洛CFR來進行自學習訓練
- 不完備信息博弈的深度限制搜索
- 實驗評價
- 總結
- 文章鏈接
引言
為什么poker能成為AI和博弈論領域要挑戰的問題?因為人們可以優雅且高效的從poker中捕捉隱藏信息。并且針對多人牌局的AI被認為是下一階段的重點。
多人博弈理論與實際的挑戰
目前AI在游戲領域取得成績均是基于雙人零和博弈(整體的利益不會改變,要么你贏我輸,要么我贏你輸),AlphaGo就是基于雙人零和博弈。在雙人零和博弈中,應用那是均衡策略至少可以保證不輸,基于雙人零和博弈的AI 算法就是去尋找納什平衡。找到一個基于三人或者更多人零和博弈的納什平衡是非常困難的(理論上接近納什平衡也是很困難的)。如果每個玩家單獨計算找到納什平衡,玩家聯合起來的策略可能就不是一個納什平衡。例如下面的Lemonade Stand Game:
在游戲中,每個玩家都要在這個環上找到一點離其他成員盡可能地遠。左圖表示了四個玩家,每個顏色代表了他們的一個納什平衡,處于納什平衡的玩家均勻的分布在環上。右圖表示如果他們獨立尋找納什平衡,那么玩家的聯合策略可能就不是一個納什平衡。
所以作者提出,我們的目標不是尋找一個具體的博弈論解決方案,而是創造出一個AI,通過經驗不斷地擊敗人類對手包括頂級的專業選手。
Pluribus的描述
Pluribus 策略核心是持續不斷地進行自學習自博弈,通過這樣的策略訓練,AI 系統和自己的鏡像進行對抗,而不獲取任何人類游戲數據或先前的 AI 游戲數據。Pluribus 利用自學習制定的離線策略為“藍圖策略”,隨著真實游戲的進行,Pluribus 通過在比賽中根據自己的實際情況實時搜索更好的策略來改進藍圖策略。
大型不完備信息博弈的抽象化
為了降低游戲的復雜性,作者忽略了一些考慮因素并且將類似的決策點放在一起,這個過程稱之為抽象。在抽象之后,劃分的決策點被認為是相同決策點。作者在 Pluribus 中使用了動作抽象和信息抽象。
動作抽象
動作抽象主要是減少AI所要考慮的動作即將一些產生影響相似的動作歸為一類。例如:在德州撲克中,下注200美元和下注201美元兩種動作又很小的差異,他們可以歸結為同一個動作。為了減少形成策略的復雜度,Pluribus在任何給定的決策點僅僅考慮 一些不同的下注情況。如果Pluribus只接受過100美元和200美元的投注訓練,而對手投注150美元,會產生什么的結果?Pluribus 會通過實時搜索算法對這種“離樹”行為產生相應動作。
信息抽象
對于透漏信息相似(比如說,在poker中,玩家的牌和顯示的底牌)的決策點進行合并,例如,10-high straight (6到10的順子)和 9-high straight(5到9的順子) 在牌型上差距明顯,但是針對他們的策略是相同的。Pluribus 可以將這些相似牌型放在一起進行相同的處理,從而減少了確定策略所需的不同情況的數量。信息抽象降低了游戲的復雜性,但它可能會消除一些對于超人表現來說非常重要的細微的不同。因此,在與人類進行實際比賽時,Pluribus僅用信息抽象來推斷未來下注輪次的情況,而不會用它來實際進行下注。
通過改進型蒙特卡洛CFR來進行自學習訓練
Pluribus 的藍圖策略使用了 CFR(counterfactual regret minimization)。
作者使用一種蒙特卡洛CFR(Monte Carlo CFR) 方法對博弈樹上的行動進行采樣而不是在每次迭代時遍歷博弈樹。
在圖中,玩家P1正在遍歷博弈樹。左圖模擬游戲直到結束。中間圖是對于左側面板中遇到的每個P1決策點,在P1決策點中探索P1可能采取的其他操作,并在游戲結束時進行模擬。然后P1更新其策略,選擇回報率更高、概率更高的行動。右圖P1探索P1在中間面板中遇到的每個新決策點可能采取的行動,P1在這些假設決策點更新其策略。這個過程會重復,直到沒有遇到新的P1決策點。(圖中的百分比僅供說明,可能與算法計算的實際百分比不符。)
遍歷者選擇的動作和實際的動作的差值將在迭代中被添加到這個動作的遺憾值中。
由于反事實值和期望值的差值是被添加到遺憾值中的而不是取代,所以,玩家第一次的動作會仍對后續的遺憾值產生影響。因此這種策略是為了將來的迭代。
在一般的CFR中,第一次動作的影響以1/T的速率衰減,其中T的迭代次數。為了快速減少早期的“壞”的策略的影響,Pluribus 在早期迭代中采取線性 CFR 方法(后期迭代不會使用這種方法,乘法的時間成本太高)。第一次動作的影響會以下面的速率衰減:
不完備信息博弈的深度限制搜索
由于無限制德州撲克的規模和復雜性,整個游戲的藍圖策略一定是粗粒度的。Pluribus只在第一輪下注時,根據藍圖策略進行游戲,因為第一輪的決策點的數量足夠少,藍圖策略可以承擔不使用信息抽象,并且在動作抽象使用大量的動作。在第一輪之后(即使對手賭注大小與藍圖策略中動作抽象的大小完全不同),Pluribus會進行實時搜索,來確定針對當前情況的更好、更細粒度的策略。對于對手在第一次偏離樹的下注,Pluribus通過the pseudoharmonic mapping將賭注映射到on tree附近的賭注上,然后繼續按照藍圖策略進行,就好像對手使用了on tree 上的賭注。
在許多完備信息博弈中,實時搜索時實現超人性能的必要條件。
在剪刀石頭布的游戲中,如果玩家P1首先行動,但是P1的動作不展示給玩家P2。然后,玩家P2行動。從玩家P1進行搜索,只前進行了一步,他的每一個動作都會產生一個零值的葉節點。如果玩家P2選擇納什均衡策略,玩家P2會以1/3的概率隨機選擇一個動作。那么選擇石頭的玩家P1的值為0,選擇剪刀的玩家P1的值也為0。那么玩家P1總選擇石頭也是一個最佳策略。但是實際上,玩家P2可以根據玩家P1的動作調整策略,調整為總是出布。在這種情況下,玩家P1總是出石頭的值是-1。在不完美信息子博弈中,葉子節點是沒有固定值的,他們的值取決于搜索者在子博弈中選擇的策略(搜索者在子博弈中分配給其動作的概率)。原則上,可以通過子博弈的葉子節點的值作為子博弈中搜索者策略的函數來解決,但是在大型游戲中是不是實際的。
Pluribus使用了一種改進的方法,搜索者明確認為任何或者所有的玩家都可以轉移到子博弈葉子節點之外的不同策略中。 作者假設當到達葉子節點時,每個玩家不是只有固定的策略而是可以在 k 個不同的策略之間進行選擇以進行接下來的博弈。這種技術會使搜索者找到一個更平衡的策略,選擇一個不平衡的策略,例如總是出石頭會被對手轉換到總是出布的策略懲罰。
在不完備信息博弈中搜索的另一個主要的挑戰是,玩家的在特定環境的最優策略依賴于對手如何看待玩家在每種情況下的策略是什么。比如說,玩家拿著一副特別好的牌,下注可能是一個很好的策略。但是如果玩家只在有好牌的情況下下注,那么對手就會知曉你的策略。為了解決這一問題,Pluribus根據它的策略追蹤每副可能的手牌達到當前狀態的概率。無論實際上持有哪副手牌,它都會先計算出每一手牌的動作,一旦計算出所有人的平衡策略,Pluribus 就會為它實際持有的手牌執行一個動作。
為了簡單起見,子博弈只顯示兩個玩家。節點之間的虛線表示要操作的玩家不知道她在兩個節點中的哪一個。左圖表示原始的博弈子樹,假設對手只是用一種固定的策略;右圖表示對手使用k(k=2)種不同策略的博弈子樹。
Pluribus使用兩種不同形式的CFR來計算子博弈中的策略,這取決于子博弈的大小和博弈的位置。如果子博弈相對較大或者在博弈的早期,則使用線性蒙特卡洛CFR。否則,Pluribus使用一種優化的基于向量的線性CFR形式,只對機會事件進行采樣(例如對公共牌進行采樣)。
實際測試時,Pluribus 僅僅使用了兩臺 Intel Haswell E5-2695 v3 CPU,僅占用小于 128G 的內存。AlphaGo 對陣李世石時使用了 1920 塊 CPU 和 280 塊 GPU。在對每一個子博弈進行搜索時,根據現場情況,Pluribus 僅需要 1-33 秒。在其與自己鏡像對抗的 6 人牌局中平均出牌時間為 20s,這遠比頂尖人類選手快了近乎 2 倍。
實驗評價
作者采用了兩種形式評估 Pluribus 對陣精英選手。1、5 個頂尖人類選手 +1 個 AI (5H1 AI );2、1 個人類頂尖選手 +5 個 AI (1H5AI )。作者通過使用 AI 領域中的標準度量mbb /game來衡量 AI 表現。作者利用 AIVAT 技術來減少游戲中的運氣成分。
在 5H1AI 實驗中,在應用了 AIVAT 之后,Pluribus 平均每手贏 48 個 mbb(48 mbb/game)。在 1H5AI 中,Pluribus 平均以 32mbb/game 的速率將人類擊敗。
總結
Pluribus的成功表明,盡管在多人博弈的性能上缺乏已知的強有力的理論保證,但在存在大規模、復雜的多人不完善信息這種情況下,一個精心構建的自我博弈加實時搜索算法可以產生超人的策略。
文章鏈接
《Superhuman AI for multiplayer poker》
總結
以上是生活随笔為你收集整理的解读《Superhuman AI for multiplayer poker》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue中runtimecompiler和
- 下一篇: 计算机国二复习攻略,全国计算机等级考试二