① 淺談德州撲克AI核心演算法:CFR
自2017年AlphaGo戰勝世界圍棋冠軍柯潔後,人工智慧技術進入公眾視野。棋牌類AI隨之在人工智慧領域掀起熱潮。然而,在AlphaGo之前,人們就已經開始挑戰棋牌類AI,從簡單的跳棋、五子棋到復雜的中國象棋、國際象棋,再到圍棋和德州撲克,數十年來取得了豐碩成果。德州撲克作為不完全信息博弈,不僅要應對復雜的決策,還要應對對手的虛張聲勢、故意示弱等策略,其博弈樹無論是廣度還是深度都非常龐大,一直是科學家們想要攻克的高山。在AlphaGo戰勝柯潔的同一年,德撲AI DeepStack和Libratus先後在「一對一無限注德州撲克」中擊敗了職業撲克玩家,實現了不完全信息博弈的突破,而它們所採用的核心演算法就是Counterfactual Regret Minimization(CFR)。
1. Regret Matching
CFR演算法的前身是regret matching演算法,在此演算法中,智能體的動作是隨機選擇的,其概率分布與positive regret成正比,positive regret表示一個人因為過去沒有選擇該行動而受到的相對損失程度。
1.1演算法原理
石頭剪子布是最為簡單的零和博弈游戲,是典型的正則式博弈,其payoff table如下:
圖1·石頭剪刀布收益圖
Regret matching演算法流程在本例中為:
a)首次迭代,player1和player2都以[公式]概率隨機選擇動作,假設player1選擇布,player2選擇剪刀。
b)以player1視角,首次博弈結果收益為:[公式]。
c)根據結果收益計算後悔值,[公式]
d)進行歸一化處理更新player1的行動策略:[公式]。
e)根據更新後的策略選擇動作進行多次博弈,直至達到納什平衡
f)返回平均策略
核心代碼如下(具體代碼戳這兒):
1)獲得策略方法:1.清除遺憾值小於零的策略並重置策略為0;2.正則化策略,保證策略總和為13.在某種情況下,策略的遺憾值總和為0,此時重置策略為初始策略。
2)訓練方法:1.玩選擇策略進行博弈,根據博弈結果計算動作效益;2.根據動作效益計算後悔值。
實驗結果:
1)當固定對手策略為{0.4, 0.3, 0.3}時
圖2·固定對手策略,玩家策略
2)當玩家和對手都採用Regret Matching更新策略時
圖3·玩家和對手策略
2. Counterfactual Regret Minimization
石頭剪子布是典型的「一次性」博弈,玩家做出動作即得到結果。而生活中顯然許多的博弈屬於序列化博弈,博弈由一系列的動作組成,上一步的動作可能會導致下一步的動作選擇變更,最終的動作組合形成博弈結果。這種序列游戲我們不再使用payoff table表示,而是使用博弈樹的形式。博弈樹由多種狀態組成,邊表示從一個狀態到另一個狀態的轉換。狀態可以是機會節點或決策節點。機會節點的功能是分配一個機會事件的結果,因此每個邊代表該機會事件的一個可能結果以及事件發生的概率。在決策節點上,邊代錶行動和後續狀態,這些狀態是玩家採取這些行動的結果。
同樣地,對CFR演算法中的符號進行若干定義:
演算法流程:
2.2實例
庫恩撲克(Kunh』s pocker)是最簡單的限注撲克游戲,由兩名玩家進行游戲博弈,牌值只有1,2和3三種情況。每輪每位玩家各持一張手牌,根據各自判斷來決定加定額賭注過牌(P)還是加註(B)。具體游戲規則如下:
圖4·庫恩撲克規則
以玩家α視角構建庫恩撲克博弈樹:
圖5·先手玩家博弈樹
CFR演算法流程在本例中為:
a)初始策略為隨機策略,假設玩家α抽到的牌值為:3
b)第一輪迭代時,節點選擇動作P的虛擬收益計算方法為:[公式]。結合博弈樹求解得到:[公式]、[公式]、[公式]、[公式];[公式]、[公式] [公式] [公式]。同理,計算節點選擇動作B的虛擬收益為:[公式]
c)利用虛擬收益更新後悔值:[公式]
d)利用後悔值更新策略:[公式],[公式]
e)歸一化策略:[公式],[公式]
f)多次迭代,直至達到納什平衡
核心代碼實現:
實驗結果:
圖6·庫恩撲克,玩家和對手策略
3.引申
CFR演算法出現時就已經能夠解決德州撲克,但面對52張底牌、加註、過牌、河牌等復雜多變的情況使得德撲的博弈樹無論是深度還是廣度都十分的龐大,對計算資源和儲存資源上的開銷過於巨大,使得僅僅靠CFR演算法攻克德撲十分困難。而CFR後續的研究者們都在費盡心力優化CFR演算法的效率,致力於提高計算速度和壓縮存儲空間。在此,筆者簡單介紹幾種CFR變種演算法,僅做了解。
3.1 CFR+:
與CFR演算法不同的是,CFR+演算法對累計平均策略做折減,對迭代的策略進行平均時,給近期迭代的策略賦予更高的權重;直觀上,越到後期,策略表現越好,因此在都策略做平均時,給近期策略更高的權重更有助於收斂。
在CFR+演算法中,counterfactual utility被定義為以下形式:
[公式]
在的基礎上,CFR+演算法定義了一個[公式],此時CFR+演算法中的[公式]為一個累加值,而CFR演算法定義[公式]的為平均值,因此CFR+演算法中的regret計算方式為:
[公式]
另外,在CFR+演算法中,最後輸出的平均策略為一下形式:
[公式]
3.2 MCCFR:
MCCFR(Monte Carlo Counterfactual Regret Minimization)是蒙特卡洛演算法和CFR演算法的結合,其核心在於:在避免每輪迭代整棵博弈樹的同時,依然能夠保證[公式]的期望值保持不變。將葉子節點分割為不同的[公式],且保證覆蓋所有的葉子結點。
定義[公式]是在當前迭代中選擇[公式]的概率:[公式]。
定義[公式]表示在當前迭代中采樣到葉子節點的概率:[公式]
那麼在選擇[公式]迭代時,得到的采樣虛擬值為:[公式]
通過一定的概率選擇不同的block,得到一個基於采樣的CFR演算法。
3.3結語
除了上述介紹的兩個演算法外,CFR演算法的優化數不勝數,有提高計算速度的Discount-CFR、Warm Start、Total RBP,也有壓縮存儲空間的CFR-D、Continue-Resolving、Safe and Nested Subgame Solving等。
機器博弈是人工智慧領域的重要研究方向。非完備信息博弈是機器博弈的子領域。非完備信息博弈中存在隱藏信息和信息不對稱的特點,和完備信息博弈相比,非完備信息博弈更加貼近現實生活中。例如,競標、拍賣、股票交易等現實問題中都存在隱藏信息和信息不對稱。因此,研究非完備信息博弈問題更有現實意義。德州撲克博弈包含了隱藏信息、信息不對稱和隨機事件等重要特性,它是典型的非完備信息博弈。對其的研究具有非常重大的意義,感興趣的讀者可深入了解。
② 中國的人工智慧現在發展到什麼階段了
第一階段是人工智慧輔助階段。也就是當下,人工智慧惠民未必就是挑戰技術極限,也不必試圖替代人類。事實上,在很多行業,人工智慧技術的應用和普及程度非常低,簡單升級的空間非常大。
第二階段是人工智慧主導階段。大量具體工作過渡為以機器人和虛擬人為主。人的角色發生本質變化,從直接工作,變為間接指揮和控制機器人。在市場競爭壓力下,人工智慧將橫掃人類社會:一個證券公司使用機器人操作員,會促使所有證券公司使用機器人操作員;一個醫院使用機器人醫生,會促使所有醫院使用機器人醫生;一個國家使用機器人士兵,會促使所有國家使用機器人士兵。
第三階段是人工智慧取代階段。人工智慧可以替代人類進行科研創新工作,「人工意識」技術取得突破。此時,人們已經不再需要擔心人工智慧的能力,而是開始憂慮人類自己的角色。
世界的本質是計算,社會的本質是算計,計算機剛好都不缺。計算機可以完成一切的時代,人類的工作和學習都已不再是剛需,人類已經可以憧憬人工智慧高度發展帶來的世界大同,除了一個細思極恐的憂慮——如果人類對世界的價值只剩下物種多樣性時,我們該如何存在。
現在就開始思考後人工智慧時代的人類角色已經十分必要,與其未來穿越回來解決問題,不如現在就未雨綢繆。人工智慧必將普惠全人類,也將整體威脅全人類,如果讓世界自己選擇,是否也會傾向更加綠色環保、聰明智慧的「新人類」?我們也許可以設下人工智慧技術發展的某些紅線,但又如何能確保不會有逾越?我們也許可以把人類與人工智慧相融合,不僅造就機器人,也改造人本身,把「人工智慧+」進行到底。總之,如果不能很好解決人工智慧發展的雙刃劍問題,我們已經走在通往地獄的路上。