虛擬遺憾最小化算法(Counterfactual Regret Minimization)
-
如果不能遍歷計算機所有節點的遺憾值,那麼可以採用虛擬遺憾最小化算法來進行模擬計算。
-
假設:
- 集合A是博弈中所有玩家所能採用的行爲集(如在石頭-剪刀-布遊戲中出石頭、出剪刀或出布三種行爲)
- I爲信息集,包含了博弈的規則以及玩家採取的歷史行動,在信息集I下所能採取的行爲集合記爲A(I)。
-
玩家i在第t輪次採取的行動ai∈A(Ii)反映了其在該輪次所採取的策略σit。包含玩家i在內的所有玩家在t輪次採取的行動a∈A(I)構成了一組策略組合σt。
-
在信息集I下採取行動a所反映的策略記爲σI→a。
-
在第t輪次所有玩家採取的行動是一條序列,記爲h。採取某個策略σ計算行動序列h出現的概率記爲πσ(h)。
-
每個信息集I發生的概率πσ(I)=∑h∈Iπσ(h),表示所有能夠到達該信息集的行動序列的概率累加。
-
給定博弈的終結局勢z∈Z,玩家i在遊戲結束後的收益記做ui(z)。
-
在策略組合σ下,施加博弈行動序列h後達到最終局勢z的概率爲πσ(h,z)。
有了這些定義之後,我們現在來計算虛擬遺憾:
- 當採取策略σ時,其所對應的行動序列h的虛擬價值(Counterfactual Value)如下計算(注:行動序列h未能使博弈進入終結局勢):
vi(σ,h)=z∈Z∑π−iσ(h)πσ(h,z)ui(z)
我們首先去計算其他玩家在產生行動序列h中他們的概率值是多少,乘以在這個策略下,從行動序列h進入到終止局勢z的概率,最終再乘以玩家i在終止局勢z的概率。之後對終止局勢做一個遍歷,把它的乘積做一個累加。
r(h,a)=vi(σI→a,h)−vi(σ,h)
r(I,a)=∑r(h,a)
- 玩家i在第T輪次採取行動a的遺憾值爲:
RegrettT(I,a)=t=1∑Trit(I,a)
RegretiT,+(I,a)=max(RiT(I,a),0)
- 在T+1輪次,玩家i選擇行動a的概率計算如下:
σiT+1(I,a)={∑a∈A(I)RegretiT,+(I,a)RegretiT,+(I,a)∣A(I)∣1if∑a∈A(I)RegretiT,+(I,a)>0otherwise
- 玩家i根據遺憾值大小來選擇下一時刻行爲,如果遺憾值爲負數,則隨機挑選一種行爲進行博弈。
例子-庫恩撲克(Kunh’s pocker)
- 庫恩撲克是最簡單的限注撲克遊戲,由兩名玩家進行遊戲博弈,牌值只有1,2和3三種情況。
- 每輪每位玩家各持一張手牌,根據各自判斷來決定加定額賭注。
- 遊戲沒有公共牌,攤牌階段比較未棄牌玩家的底牌大小,底牌牌值最大的玩家即爲勝者。
- 遊戲規則:
庫恩撲克(Kunh’s pocker):以先手玩家(定義爲玩家A)爲例的博弈樹:
從初始節點開始,1、2、3分別表示玩家A手中的牌,當玩家拿了1之後,玩家B只能拿2或者3。玩家A選擇過牌還是加註,玩家B也可以選擇過牌還是加註。依次進行下去,就構建了博弈樹。
- 在這個博弈樹裏面,總共的信息集與12個:{1,1P,1B,1BP,2,2P,2B,2BP,3,3P,3B,3BP}。
- 每個信息集由不同路徑可以到達。如信息集1PB可通過如下路徑到達:
1玩家A拿到大小爲1的紙牌→1P玩家A採取過牌行動→1PB玩家B採取加注行動
可見信息集1PB所對應的行動序列爲{P,B}
- 在該問題中,到達每個信息集的路勁均唯一,因此所有信息集僅對應一個行動序列。
有了上述定義之後,我們可以採取如下算法進行策略選擇:
- 初始化遺憾值和累加策略表爲0
- 採用隨機選擇的方法來決定策略
- 利用當前策略與對手進行博弈
- 計算每個玩家採取每次行爲後的遺憾值
- 根據博弈結果計算每個行動的累加遺憾值大小來更新策略
- 重複博弈若干次
- 根據重複博弈最終的策略,完成最終的動作選擇
計算1PB的遺憾值
- 假設初始情況下,兩個玩家都以隨機選擇的策略進行決策,即在任一節點,都以50%的概率分別選擇過牌和加註
- 若第一輪中,玩家A的博弈過程爲1→P1P→B1PB→BZ2,收益爲uA(Z2)=−2。
- 計算玩家A針對信息集{1PB}選擇“過牌”行動的遺憾值:
- 在當前策略下,行動序列h={PB}產生的概率:
πBσ(h)=1×0.5=0.5
由於在 {1PB}節點選擇加註和過牌的概率均爲50%,所以當前策略下,從行動序列h到達終結狀態z1和z2的概率分別爲:
πσ(h,z1)=0.5,πσ(h,z2)=0.5
又已知uA(z1)=−1,uA(z2)=−2,可知當前策略的虛擬價值:
vA(σ,h)=πBσ(h)×πσ(h,z1)×uA(z1)+πBσ(h)×πσ(h,z2)×uA(z2)=0.5×0.5×(−1)+0.5×0.5×(−2)=−0.75
- 若使用過牌策略,即σ{1PB}→P,此時玩家B促使行動序列h={P,B}達成的概率仍然爲πBσ(h)=0.5,由於最終抵達的終結狀態只有z1,所以πσ(h,z1)=1。
- 則最終選擇過牌的虛擬價值爲:
vA(σ{1PB}→P,h)=πBσ(h)×πσ(h,z1)×uA(z1)=0.5×1×(−1)=−0.5
- 在信息集{1PB}上採取“過牌”的遺憾值
r(I,P)=r(h,P)=vA(σ{1PB}→P,h)−vA(σ,h)=(−0.5)−(−0.75)=0.25
- 庫恩撲克的博弈共有12個信息集,對應上圖中的正方形和三角形
- 通過反覆迭代計算,可以得到到達各個信息集應採取行動的概率:
- 對於玩家A而言,庫恩撲克的混合策略納什均衡的理論解如下(α∈[0,1/3]):
可見,算法得到的解與理論得到的解之間較爲接近,驗證了算法的有效性。
我的微信公衆號名稱:深度學習與先進智能決策
微信公衆號ID:MultiAgent1024
公衆號介紹:主要研究分享深度學習、機器博弈、強化學習等相關內容!期待您的關注,歡迎一起學習交流進步!