Difference between revisions of "HMGHMG"

From EECH Central
Jump to: navigation, search
(Created page with "<p>文章目錄</p><br /><br /><ul><br /><br /> <br /><br /> <br /><br /> <br /><br /> <li> HMG娛樂城德州撲克中的阻擋牌:掌握技巧提升你的勝率</li><br...")
 
(No difference)

Latest revision as of 13:53, 18 May 2024

文章目錄











  • HMG娛樂城德州撲克中的阻擋牌:掌握技巧提升你的勝率
















  • 非完全信息HMG娛樂城博弈,有什麼經典的算法?
















  • 玩HMG娛樂城21點必知的訣竅,提升遊戲技巧


















Contents

"HMG娛樂城德州撲克中的阻擋牌:掌握技巧提升你的勝率"



德州撲克中的阻擋牌:掌握技巧提升你的勝率



在德州撲克中,阻擋牌是指那些可能出現在對手手牌中的牌,而這些牌有可能改變你的勝率。掌握阻擋牌的技巧可以幫助你做出更明智的決策,提高你在遊戲中的勝率。



1. 瞭解對手的可能手牌



在遊戲中,你需要觀察並分析對手的行為和下注模式,以猜測他們可能手中的牌。根據這些猜測,你可以推斷出對手可能會有哪些阻擋牌。



2. 考慮公共牌的影響



公共牌是指在遊戲中逐步翻開的共享牌。這些牌可以改變每個玩家的手牌組合,進而影響勝負。當公共牌翻開時,你需要考慮這些牌對你和對手可能手牌的影響,並相應地調整你的策略。



3. 識別關鍵牌



在德州撲克中,有些牌是關鍵牌,它們能夠明顯地改變你的勝率。這些牌通常是能夠形成高牌、對子、三條、順子、同花等強牌組合的牌。當這些關鍵牌出現在公共牌中時,你需要特別小心,並根據情況作出適當的決策。



4. 利用阻擋牌進行下注



當你手中的牌能夠阻擋對手可能的強牌組合時,你可以利用這個優勢進行下注。例如,如果你手中有一對A,而公共牌中有一個K,那麼你可以合理地推斷對手可能不會有一對K,從而增加你的下注量。



5. 注意對手的反應



當你利用阻擋牌進行下注時,觀察對手的反應是非常重要的。如果對手錶現出強烈的興趣或者快速跟注,那麼很可能他們手中有與你的阻擋牌相關的牌。在這種情況下,你需要謹慎地考慮是否繼續下注。



6. 謹慎使用阻擋牌



雖然掌握阻擋牌的技巧可以提高你的勝率,但是要謹慎使用這些技巧。過度依賴阻擋牌可能會讓你陷入困境,因為對手也可能有意識地利用這些牌來進行反制。因此,你需要在適當的時機使用阻擋牌,並根據遊戲的情況做出適當的調整。



總之,掌握德州撲克中的阻擋牌技巧可以提高你的勝率。通過瞭解對手的可能手牌、考慮公共牌的影響、識別關鍵牌、利用阻擋牌進行下注、注意對手的反應和謹慎使用阻擋牌,你可以在遊戲中做出更明智的決策,增加你的勝算。







非完全信息HMG娛樂城博弈,有什麼經典的算法?

非完全信息博弈,不完全信息博弈,例如橋牌,鬥地主等等。在設計這樣的ai時,有什麼成體系的算法?有沒有相關的書籍資料的推薦



本題已加入圓桌 » 漫談機器智能,更多「人工智能」相關的話題歡迎關注討論



For incomplete information games, the situation is much different and more complex than for complete information games such as Go. Players need to reason about what their opponents know, and what their own actions could reveal about their private information. The classic concept for solving incomplete information games is to compute or approximate a so-called Nash equilibrium. For a long time, the best algorithms could only solve toy problems, but recently the situation is much improved. One breakthrough was in 2007, with the development of Counterfactual regret minimization (CFR) by Martin Zinkevich and others here at University of Alberta computer Poker group, led by Michael Bowling. Later, they extended this work to solve the game of limit Texas hold』em poker, as reported in the journal Science in 2015. A very recent breakthrough is the work by our poker group, together with researchers from the Czech Republic, on no-limit Poker (see deepstack.ai). While previous techniques needed to reason about the complete game tree at once, these new techniques allow the use of heuristic search from the current state of the game. This work was published in the journal Science in March 2017. While some of this work is very recent, I believe that these are now the 「classic」 algorithms for such games.



Martin Mueller為機器之心 | GMIS 2017 全球機器智能峯會嘉賓,知乎賬號由Martin Mueller授權,機器之心代為註冊和運營,以上為Martin Mueller的英文版答案,以下為機器之心翻譯答案供大家參考。



對於不完全信息博弈,其情況與完全信息博弈(如圍棋)有很大的區別。博弈者不僅需要推理出他們對手到底知道什麼,並且還要推理出他們什麼樣的行動會暴露自己的私人信息。解決不完全信息博弈的經典方法是計算或逼近所謂的納什均衡。很長一段時間以來,最好的算法只能解決玩具問題(toy problems),但最近情況有了些好轉。直到2007年,Martin Zinkevich和其它阿爾伯塔大學計算機撲克研究小組的成員在Michael Bowling的領導下實現了一個突破,他們研究的反事實後悔最小化(Counterfactual regret minimization/CFR)便是這一次突破的產物。據Science於2015年報道,後來他們擴展了該項工作,以解決有限制德州撲克問題。最近的一次突破是由我們撲克研究小組和捷克共和國的研究員共同在無限制撲克(參見 deepstack.ai)上完成。雖然以前的技術需要一次性推理一棵完整的博弈樹,但這些新技術允許從博弈的當前狀態使用啟發式搜索。該項研究工作發表在Science 2017年三月刊上。雖然該項研究是非常新的,但我相信它們現在是這類博弈的「經典」算法。



博弈論算法接觸的不多,個人覺得其實是一些規則,這些規則將現實的博弈案例轉換成數學表達式。我在豆瓣上看到了一篇關於《Algorithmic Game Theory》簡介。



1.1信息安全經濟學



本文所涉及的科學領域為普適計算安全領域與計算機理論應用的交叉方向,即信息安全經濟學,這是一個新興的學科領域,並正在得到越來越多研究人員的關注。劍橋大學計算機實驗室的Ross Anderson 和TylerMoore在2006年10月27日《科學》雜誌上刊發的《信息安全經濟學(The Economics of Information Security)》一文,標誌着該學科領域的提出。信息安全經濟學的基本觀點是通過近些年的觀察實踐,發現許多安全問題的出現並非技術設計問題而是缺乏正確有效的激勵機制,與以往安全技術限制非法用户的使用不同,信息安全經濟學使用安全機制通過影響系統參與用户的策略選擇,使用户之間相互影響和制約以完成系統的預定目標。



信息安全經濟學的一個重要理念是引入微觀經濟學中外部性的概念,即實體操作直接對第三方產生消極或積極影響卻沒有承擔相應的義務或者獲得回報。消極外部性的一個例子是隱藏動作導致交互結果的失敗,如在網絡中雙方實體進行數據包中繼操作時,實體可以執行不易被觀察到的丟包操作從而導致傳輸失敗。解決消極外部性的方法是要求實體承擔責任,即不正常操作時要受到懲罰(可通過其他實體操作的外部性實現),或者正常操作時給予信用積分作為激勵。



當前信息安全經濟學研究大致有四個方向:一是軟件漏洞與系統漏洞的經濟學研究,二是私隱保護的經濟學研究,三是激勵與實施安全機制關係的研究,四是保護系統不受理性對手侵害的研究。本文的研究主要集中在第四個方面。傳統信息安全通常將用户分成兩類:誠實用户和惡意用户,但實踐發現系統的失效往往是由被稱作策略用户引起的,這種用户理性且自私,但沒有惡意目的。類似的用户在垃圾郵件、自私實體的TCP效應、建立路由、網絡創建等等領域都有出現。在普適計算信任模型中,策略用户可以在推薦獲取、推薦真實信任值等方面採取不轉發或不提供推薦信息、給出虛假信任值或團體欺騙等非合作操作,導致信任值難以體現用户間的真實關係,失去了信任模型本應實現的作用和意義。在本文的研究中,還有兩個方面需要注意,一是公平性方面,由於自私實體的理性化,在激勵或者報酬分配時都需要考慮公平性;二是考慮網絡拓撲結構對用户操作乃至對信息安全的影響。



1.2計算機經濟學



信息安全經濟學是計算機經濟學的一個重要分支,後者是最新的計算機科學與經濟學的交叉研究領域。計算機經濟學不僅包括將商業活動信息化的傳統電子商務領域,還包括利用經濟學方法如博弈論、微觀經濟學等理論解決計算機科學中所遇到的問題,計算機經濟學也被稱做算法博弈論(Algorithmic Game Theory)。計算機經濟學近年來得到了包括劍橋大學、耶魯大學、哈佛大學、卡內基梅隆大學、加州伯克利大學、史丹福大學和希伯來大學等世界各大著名研究機構的重點研究,在ACM SIGECOM組織的大力推行引導下,該領域的會議如EC、WEIS、WINE、NetEcon、SAGT、GameComm、GameNets如雨後春筍般出現並吸引越來越多知名研究人員參與到這個領域的研究,計算機經濟學將成為今後幾年計算機方面非常熱的一個研究領域。



算法博弈論作為計算機理論科學的一個新領域,重點關注並解決有關拍賣、網絡和人類行為的根本問題,它與微觀經濟學和博弈論的不同表現在以下幾方面:一是應用領域方面的不同,主要包括類Internet 網絡和非傳統拍賣;二是應用定量工程性的方法,從具體優化問題的角度對應用建模,尋求最優解、判斷不可解問題以及研究可解優化的上下限問題;三是討論可計算性問題,相對一些經濟方法無法在線性時間內由計算機解決(NP-C問題),算法博弈論將可計算性作為算法實施必須考慮的限制條件。算法博弈論大略包括以下幾個研究領域:一是研究各種均衡(如Nash均衡、子博弈Nash均衡等)的計算複雜性問題;二是從博弈論的觀點研究計算機學科中的許多問題;三是算法機制設計領域,研究領域包括網絡結構及性能方面的研究、在線拍賣和在線交易、在線廣告、搜索結果頁面排序及其它一些分佈式應用;四是計算性社會選擇問題。



作為經濟學中的重要研究工具,博弈論通常被用於研究公司在市場競爭中如何採取恰當的經營策略以達到期望的目標,而博弈論被引入到計算機科學則歸功於互聯網及其他開放式網絡的出現。在這些開放性網絡應用中存在着許多不同實體間的策略性交互操作,每個實體都有理性,來自於不同的組織並具有自己的利益,每個實體都依據實際環境選擇有利於自身的操作策略並實現利益的最大化,這些策略之間最終達到一種相互制約的均衡狀態。在達到的各種均衡狀態中,有些是系統設計者所希望看到的,有的則恰恰相反。博弈論研究這些均衡狀態的特性以便於區分選擇,而機制設計則通過制定實體需遵守的交互機制,促使實體在自身利益驅動下選擇設計者期望的策略,實現符合設計目標的系統總體均衡態。



1.3 博弈論與機制設計



1.3.1 博弈論簡介



博弈論被作為正式學科,一般以1944年美籍匈牙利數學家John Von Neumann(同時也是算法的創始人和計算機之父)和Oskar Morgenstern發表合著的《Game Theory and Economic Behaviors》(《博弈論與經濟行為》)為標誌,並在20世紀50年代由博弈論大師JohnNash提出並研究了博弈論中最重要的解概念–Nash均衡,奠定了非合作博弈論的理論基礎。



博弈論是應用數學的一個分支,當前其應用領域已經從最初的軍事領域擴展到政治、經濟、文化、法律和哲學等社會性學科以及生物、工程和計算機等理工性學科,並以經濟學科中的應用最被人所熟知。博弈論試圖以數學方式刻畫策略性場景中的用户行為,每個用户的選擇成功與否取決於其他人的行為選擇。2005年諾貝爾經濟學獎得主Robert Aumann認為,「交互的決策論」是博弈論的一個最恰當的定義,而另一位諾貝爾經濟獎得主Roger B. Myerson則將博弈論定義為「相互影響的決策理論」。



博弈論將實體間的相互操作看作是一個博弈,每個博弈參與者依據系統設計者事先定義好的規則選擇策略並進行操作,在博弈結束時獲得一定收益。博弈可以分為靜態博弈和動態博弈,靜態博弈指所有博弈者同時進行策略選擇,動態博弈指博弈者的操作具有先後之分,重複博弈也是動態博弈的一種。博弈類型也可以分為完全信息博弈和非完全信息博弈,其中完全信息博弈指全體博弈者在進行策略選擇時完全知道有關作出決定的所有信息,非完全信息博弈則相反,可能需要依憑一定的概率假設進行操作。還可以分為非合作博弈與合作博弈,在非合作博弈中,實體用户之間沒有籤約協議或存在協作,在合作博弈中,實體間先協同獲得最大的團體利益,再將團體利益分配到每個個體實體,在利益分配時會涉及到公平性和團體穩定性等問題。當前研究中較多的採用非合作博弈,從合作博弈的角度出發的研究並不太多。



在實體具有的信息和理性基礎上,實體對博弈進行預測並實際選擇策略,最終達到一種相互制約的結果均衡狀態,該結果即博弈問題的解。博弈論研究的中心問題就是尋找可能的解並研究其特性。對於非合作博弈論中的完全信息靜態博弈,研究的最多的結果均衡態包括佔優均衡和Nash均衡。佔優均衡指每個人的選擇策略都是佔優策略而形成的一種均衡,佔優策略是指不管他人選擇何種策略,博弈者都有一個最大化自己收益的最佳策略,Nash均衡是指當其他博弈者的策略不變時,單方改變自己的策略時不能增加自己的收益。佔優均衡一定是Nash均衡,反之則不一定。相對於最簡單基礎的完全信息靜態博弈,其他類型博弈的解都在Nash均衡的基礎上進行了改進,如完全信息動態博弈主要研究子博弈精煉Nash均衡,不完全信息靜態博弈主要研究貝葉斯Nash均衡,不完全信息動態博弈研究精煉貝葉斯Nash均衡。對於合作博弈論而言,解指參與合作的博弈者最終分配得到的支付。合作博弈論從合作團體穩定性、公平性等角度提出不同的解,有穩定集(stable set)、核心(core)、Shapley值、核(kernel)及核仁(nucleolus)等。



1.3.2 機制設計簡介



相比博弈論對博弈解的求解和分析而言,提出機制設計的原因是由於機制設計者想執行一項社會決策或選擇以達到某種社會性目的,但由於執行決策所需要的信息是分佈式的,只有社會成員自己知道,設計者不可能獲得信息或者獲取成本太高。因此,機制設計提供了一個關注激勵社會成員匯報自己私有信息問題的分析框架,研究如何設計一個博弈形式,或者稱作機制,令社會成員參與其中,得出的博弈解恰好符合設計者所想達到的社會選擇,這個問題也被稱作社會選擇的實施問題。這裏社會選擇是指整個社會羣體性的選擇結果,這個結果是由諸多獨立博弈者通過表達各自的偏好而聚集得出的,社會選擇的結果會反過來影響每個獨立博弈者的收益。比方在政治選舉時,每個選民表達自己的意願偏好,選擇一位候選者當選,所有選民的偏好聚集在一起共同決定了哪位候選者可以當選,候選者上任以後實施的政策會翻過來影響到選民的切身利益。



以社會選擇函數來刻畫社會選擇的標準,如果對於每一種可能的社會狀態,博弈形式(或機制)得到均衡解的結果與社會選擇函數對於同一社會狀態的計算結果相同,我們就説該博弈形式(或機制)以某均衡解的方式實施了該社會選擇函數。顯然,社會選擇函數是否能被某機制實施與解的選擇(如佔優均衡還是Nash均衡)密切相關。如果社會選擇的結果是個社會結果集合,則以多值映射社會選擇規則進行表示。



機制包括直觀顯示機制(或稱作直觀機制、顯示機制、直接機制)和非直觀顯示機制(或稱作非直觀機制、一般機制、間接機制)。在直觀機制中,設計者直接詢問參與者的私有狀態信息(或類型信息或私有偏好),非直觀機制中設計者只能觀測到參與者的行為(或消息),該行為由以內在狀態為參數的顯示策略函數決定。如果所有參與者的行為共同構成一個Nash均衡,則稱其對應的顯示策略共同構成一個事後納什均衡(ex-post Nash equilibrium)。



機制設計中的一個重要問題就是如何設置恰當的機制,使每個博弈者顯示自己的真實私有偏好,因為有的博弈者為了獲得自身利益的最大化而隱瞞自身真實偏好,或者通過策略性的顯示偏好而操縱社會選擇的結果。一般的,需要通過某種激勵策略實現這個目的,如果一種機制能夠獲得博弈者的真實信息並能夠防止博弈者的策略性操縱,這種機制被稱作真實機制,也被叫做激勵相容(incentive compatible)機制或防護策略(strategy-proof)機制。需要注意的是,博弈者最終收益的組成,若採用準線性的收益形式,最終收益等於初始收益與獲得報酬的兩者之和。通常設計的顯示機制包括社會結果選擇函數與實體支付函數兩部分,機制的設計就是通過適當的構造這兩個函數,使機制滿足一些所需要的特性,如實體只有在報告真實信息時才能獲得最大最終收益的真實機制特性。真實機制可以被用作獲得用户的真實意圖,在一些計算機應用有此需要時,就可以應用機制設計的方式予以實現。



激勵相容的直觀機制具有良好的數學性質,可由一組表示激勵限定的不等式表示並進行分析,但在實際應用中似乎很難有直接應用直觀機制的情況,往往都是通過觀察參與者顯示的行為,分析得出一組顯示策略構成一個均衡解。顯示原理較好的解決了這個問題,該原理聲明任何具有均衡解的非直觀機制都存在一個對等的直觀機制,且該直觀機制激勵相容。該原理的證明較為簡單,以佔優均衡為例,如果對於一個非直觀機制存在一組顯示策略構成一個佔優均衡,則可以如下方式構建一個激勵相容的直觀機制:直觀機制直接詢問私有狀態信息,以獲得的狀態信息為參數,通過作為均衡解的顯示策略算出對應的行為,機制再以該組行為為輸入參數,利用原有的非直觀機制模擬參與者實現社會選擇函數。依據佔優均衡解的定義,參與者自己在非直觀機制中的佔優策略是以其真實私有狀態信息為參數計算出的行為,一定使匯報者自己獲得最大受益。因此如果參與者在直接機制中匯報虛假狀態信息,則機制算出的行為一定不能使自身利益最大化。顯示原理還有其它相似的貝葉斯版本。基於顯示原理,我們可以重點關注並研究激勵相容的直觀機制。



上一篇中,我講到了用MCTS實現三人明牌鬥地主,相關連結:

zhuanlan.zhihu.com/p/20

實際的效果通過與真人進行鬥地主遊戲,AI的勝率大概在70%左右,單局得分收益為正。可以確定的是,如果AI作弊的話,人類玩家基本上是沒有什麼勝算的。



就以三個人打牌為例,發到超過另外兩家好牌的機率,我們簡單地估計可以認為是三分之一,所以如果在機械人完全作弊的情況下,如果AI不會配合那麼人類玩家的最高勝率應該在33%左右。如果AI會配合那麼人類玩家的勝率將非常低。也就是説基本上能做到,只要人類玩家的牌沒有機械人的好,那麼他就不能戰勝AI。當然,前提是需要配合合理的叫地主、加倍AI。



當然,真正的AI是不能作弊的。接下來介紹「採用determinization MCTS實現三人非作弊鬥地主AI」。所謂determinization MCTS(確定化MCTS)是根據一篇論文來實現的,原文可參考:

pdfs.semanticscholar.org

determinization MCTS的算法思想:



在不作弊的情況下,AI每次採取行動時所能獲得的已知牌局信息的所有可能稱為「信息集(Information Set)」



已知部分:











  • 牌面信息:自己的手牌、玩家剩餘手牌的張數、已公開的底牌、每個玩家打出的牌,最近一次出牌,最近一次首家出牌;








  • 牌局信息:誰是地主、誰是農民;








  • 玩家的遊戲動作信息:玩家的打牌動作,包括搶地主、叫分、加倍、出牌、跟牌和不要等信息。










未知部分:











  • 另外兩個玩家的手牌










在AI依據每個「信息集」作行動決策時,不論未知的部分如何變化,可選的行動都是相同的。比如,出牌時可選擇出牌的各種組合是相同的;跟牌時,能跟的牌的組合或選擇不要的可選行動是相同的。



determinization——確定化的算法含義是,將未知部分通過一定的方法「確定化」下來。比如,鬥地主共54張牌,每個玩家17張牌,底牌3張。首家出牌的地主,未知的牌有34張,這34張牌隨機成2組每組17張給到兩個農民,就是對地主目前的「信息集」進行「確定化」。



每次「確定化」之後,鬥地主就變成一個明牌的(完全信息)遊戲,可以使用我前文中提到的明牌MCTS搜索最佳行動。再進行足夠多次的「確定化」之後,再將每種「確定化」的明牌MCTS搜索結果進行匯總,最終再用UCT的方式在可選行動中找出UCT最大的節點,作為下一步行動。



確定化」可以採用純隨機的方式,也可以通過已知信息進行合理推測。比如,對方一人打了AAA5,自己沒有A和5,基本可以斷定另外一家手上有555A。根據經驗,如果能夠充分利用已知信息進行合理推測的方式進行「確定化」,達到的效果將非常接近真人專家的水平。越是能精確推測對方手牌,採用「確定化」MCTS方式的AI越能獲得更高的勝率和得分。



參考這篇論文中的試驗數據,使用25次「確定化」加300次MCTS的方式實現一個鬥地主AI,可以達到普通人類玩家的水平,勝率相比明牌MCTS肯定會降低很多,但是比按照固定規則實現的AI還是強很多。AI的出牌比較符合真實人類玩家的出牌選擇,可以達到比較好的陪玩效果



鬥地主AI主要優化方向:











  • 需要進一步優化明牌鬥地主MCTS的分支裁減策略,使明牌MCTS-UCT更加準確;








  • 需要優化「確定化」策略,目前採用純隨機的策略,還有很大的優化空間。可以考慮對每次出牌更新未知牌所屬玩家的概率,在「確定化」時使用這些概率進行推算,這樣將大大提高「確定化」的命中率。










相關參考



鬥地主AI這類非完全信息遊戲,一直有很多人進行研究。根據最近的論文,可以大體分享一下鬥地主AI的學術進展:











  • 學術路徑1:【明牌MCTS-UCT】 => 【determinization MCTS】=> 【Information Set MCTS】=> 【self-play Information Set MCTS】=> self-play類似AlphaZero的基於神經網絡的FPMCTS








  • 學術路徑2:強化學習










最新鬥地主AI學術論文和交流連結:

ijcai.org/Proceedings/2rlcard.org/index.html



非完美信息博弈(IIG)是人工智能中一個挺有潛力的方向,而CFR是其中最重要的一個算法。但可惜的是,跟CV、NLP這些方向相比,IIG的中文社區實在太小了,遇到問題基本也只能在通用強化學習的社區中進行淺層的討論。因此我建了個羣,希望能夠為IIG和CFR的研究者們提供一個深度交流的HMG娛樂城平台,歡迎各位同好進羣~



二維碼連結:s6.jpg.cm/2022/01/25/Lp





引言(Introduction)



博弈中的問題



我們將關注的博弈類別是嚴格對抗(零和)兩人博弈。



總的來説,多人博弈的理論結果是相當不幸的:均衡策略更難計算,而且它們缺乏與兩人博弈相同的吸引人的保證。



最優策略



在多個智能體的情況下,獎勵不僅取決於我們智能體的行為,還取決於博弈中所有其他玩家的行為。由於我們不了解對手的策略,最優性的問題很複雜。



最壞對手-Maximin



針對最壞情況下的對手優化獎勵將導致流行的maximin解決方案概念。這個解的概念保證存在於完美和不完美信息博弈中,並具有一些吸引人的性質。



納什均衡



納什均衡被定義為所有參與者的聯合策略(策略組合),其中沒有一個參與者從該組合的偏離中受益。



對於兩人零和完美與不完美信息博弈——最小最大化與納什均衡的概念一致











  • 如果我們可以同時玩兩個位置(例如,國際象棋中的白棋和黑棋,撲克中的小盲注和大盲注),我們就不會因期望而輸給任何對手。










離線算法



在實際博弈之前計算最優策略,換句話説,就是求解博弈。在玩遊戲之前,我們將為每個狀態計算一個策略,然後存儲它。



計算結果描述了在博弈的每個狀態下要遵循的策略,然後在博弈過程中簡單地檢索。



表格表示vs.隱式表示



計算策略的自然表示形式是表格形式,即明確存儲在每個狀態下的動作。雖然這種表示形式對於最佳策略來説可能是必要的,但對於大型博弈來説卻是難以解決的。值得一提的是,在某些情況下,可以表示可證明的最優策略,而不需要為博弈的每個狀態存儲策略。



與策略的顯式表示不同,可以選擇隱式表示,例如通過參數函數表示(策略的狀態) .



搜索算法



與離線算法不同,在線算法只計算博弈過程中所需要的/觀測到的狀態的策略。



搜索是在線算法的一種特殊形式,類似於人類下棋的方式。給定一個博弈的狀態,搜索算法使用前瞻樹推斷潛在的未來狀態。由於所有未來狀態的數量可能太多,因此這種前瞻通常會被截斷,並且終止狀態會被指定一個啟發式的價值。理想情況下,該估計值將在最優性假設下接近這些狀態的真實值。也就是説,未來狀態的價值是以該狀態作為根結點的子問題的價值,因為兩個玩家都在該子問題中採取最優的動作。然後,搜索算法使用這些子問題的價值來推斷前瞻樹中的最優的動作,從而為所討論的狀態生成最優策略。



搜索通常是3種技術的組合:











  1. 子問題分解








  2. (學習)價值函數








  3. 局部(前瞻)推理方法










搜索是一種吸引人的方法有多種原因:











  • 首先,我們可以在遊戲過程中使用計算資源,並將這些資源集中在與問題直接相關的部分。








  • 其次,搜索方法可以利用環境模型。








  • 雖然這些理由聽起來很吸引人,但最重要的是經驗表現,而搜索方法在實踐中確實表現出色。










強化學習&博弈論



有兩個主要的學科和相應的社區使用「遊戲」作為進展基準研究多智能體環境中的序列決策問題:強化學習和博弈論。











  • 在強化學習中,價值函數學習和搜索很快成為許多算法的共同組成部分。








  • 而博弈論通常側重於求解概念、複雜性結果和算法,並具有強大的理論保證——為不完美信息博弈產生可證明的最優策略。










這些技術是強化學習還是博弈論技術?



作者認為兩者都是。在完美和不完美信息博弈中,這些技術結合了價值函數、學習、搜索和強大的理論收斂保證。此外,兩個社區之間的界限正在模糊,許多具有挑戰性的環境需要兩個社區的洞察。



關鍵詞字典

























<tbody>

















































</tbody>

Reinforcement Learning Game Theory
Agent Player
Environment Game
Reward Utility
State InfoSet / InfoState / State
Policy Strategy


完美信息(Perfect Information)



形式化



完美信息博弈樹(Perfect Information Game Tree)



一個完美信息博弈樹由以下元素構成:











  • 玩家集合 ,0玩家是chance player(即環境,隨機性)








  • 狀態集合(樹的結點)








  • 終止狀態集合








  • 在狀態 下將要執行動作的玩家為 . 因為一個單獨的玩家在一個狀態下執行動作,定義 .








  • 在狀態s下的可行動作集合(樹的邊)記為 .








  • 「狀態-動作對」 → 「下一個狀態」 的映射 .








  • 一個 chance player 的固定策略: .








  • 一個玩家i在終止狀態的回報 .










<figure data-size="normal">







<noscript>













</noscript>













</figure>



派生概念











  • 在採取狀態 後的狀態為 ,類似的有 .








  • 用 表示 是 的祖先結點








  • 定義 為最大效用/最小效用










策略











  • 行為策略是一個狀態到可行動作的分佈








  • 一個玩家的策略為 ,在狀態s下的策略為 ,一個玩家所有策略的集合為 . 一個玩家採取動作a 的概率量為 .








  • 一個由兩個玩家構成的博弈中的策略組合為








  • 給定策略組合,我們假設到達某狀態 的概率為










<figure data-size="normal">







<noscript>













</noscript>













</figure>



期望獎勵



給定策略組合,玩家i的期望獎勵為:





平均策略



在行為策略空間的任何平均過程中,都必須謹慎。



是不對的,我們希望得到的是 . 這是因為dynamics是有固定順序的——終止狀態分佈 取決於整個序列。正確的行為狀態的平均必須要考慮狀態的到達概率。



<figure data-size="normal">







<noscript>













</noscript>













</figure>



零和博弈與常和博弈



對於常和博弈,獎勵是嚴格競爭的——一個主體的收益是另一個主體的損失。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

零和博弈就是 的常和博弈,零和博弈與常和博弈幾乎沒有區別,因為獎勵可以簡單地轉移到零,而不涉及策略或算法。



最優策略



最佳響應



最佳響應是一個相對於固定策略實現最大回報的策略。



<figure data-size="normal">







<noscript>













</noscript>













</figure>



玩家i的策略被所有對手給予最佳反應後,玩家i得到的獎勵/回報/價值我們用 表示。玩家 是被動的,其他所有玩家是主動的。



<figure data-size="normal">







<noscript>













</noscript>













</figure>



算法1:計算最佳響應策略可以通過對博弈樹的一次自下而上的遍歷來完成



<figure data-size="normal">







<noscript>













</noscript>













</figure>



<figure data-size="normal">







<noscript>













</noscript>













</figure>



最大最小化



最壞情況下的推理會激發一種策略,使針對最壞情況下的對手的回報最大化。



<figure data-size="normal">







<noscript>













</noscript>













</figure>



最大最小化定理



<figure data-size="normal">







<noscript>













</noscript>













</figure>



玩家 和其對手 的最大最小化價值分別為:



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>



由定理2可知,最大最小值處於平衡狀態,即 。我們將此唯一值稱為博弈價值,並將其表示為。



最大最小化定理只在二人零和博弈中成立(這一證明適用於完美信息博弈和不完美信息博弈)。



納什均衡



如果策略組合 沒有一個參與者會因為偏離它受益,這種情況形成了一種均衡,稱之為納什均衡。



<figure data-size="normal">







<noscript>













</noscript>













</figure>



納什均衡vs.最大最小化



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

最優策略的屬性



價值保證



如果我們在作為任一玩家進行博弈時遵循最優策略,則針對「任何對手」的預期效用和大於或等於零:



<figure data-size="normal">







<noscript>













</noscript>













</figure>









  • 如果我們遵循最優策略,我們就不會輸。








  • 如果我們面對一個最佳對手,我們就平局。








  • 如果我們面對一個次優的對手,我們可能會贏(期待一個正的回報)。










這是因為即使對手採用了一種高度可利用的策略,我們所採用的最佳策略也可能不會利用任何錯誤。因為我們假想的是對手會對我們造成最差的情況。



凸性質



無論我們面對的對手是誰,最優策略都能保證我們的博弈價值。雖然可能有多種最佳策略,但我們遵循哪種策略並不重要——我們仍然享有相同的保證。



但有多少最優策略?



所有最優策略集合的結構是什麼?



很容易驗證最優策略的任何凸組合可以產生最優策略。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

多人博弈



雖然納什均衡的性質聽起來很有趣,但一旦我們離開兩人零和博弈的舒適環境,它們就消失了。請注意,引入更多玩家本質上與刪除零和屬性相同。對於非零和博弈,人們總是可以添加一個並沒有任何行動的虛擬玩家,並獲得剩餘獎勵。











  • 與兩人零和博弈不同,Nash和Maximin的解的概念是不同的。








  • 對於任何有限的博弈,納什均衡都是存在的。








  • 博弈不再有唯一的價值,即最大最小化定理不再成立。








  • 而在兩人遊戲環境中,任何納什均衡都保證了相同的博弈價值,因此玩家可以任意選擇任何納什,這在多人遊戲環境中並不成立。更糟糕的是,很可能是 這兩種策略都會給玩家帶來高回報,但如果他們不協調遵循這種均衡,並選擇不同的均衡,他們最終會得到 ,而這個策略組合可能對雙方都不利。這個問題也被稱為平衡選擇問題








  • 人們可以很容易地説,Maximin在多人遊戲環境中就像在兩個玩家中一樣困難。我們可以讓一個對手控制所有其他玩家。對於納什均衡,多人遊戲環境中的複雜性問題更為複雜。我們不能使用與Maximin相同的論點,因為納什均衡要求沒有一個參與者可以通過偏離策略組合而受益——即,每個參與者是獨立的存在。但如果多個智能體同時偏離,玩家可以從偏離中獲益。一般來説,該問題是PPAD完備








  • 現在最有希望的工作是在線設置和協調策略,而不是遵循固定的策略。










評估



給定次優策略π_i,我們通常想要評估它與最優策略的「接近程度」。











  • 可利用度:最壞情況下玩家的價值不高於博弈價值 ,那麼比較通常的度量為 ,可利用度為








  • ϵ-納什均衡:指玩家們從策略組合偏離,最多可以獲得 的增益










可利用度和ϵ-最優策略允許客觀和定量地評估策略,並將其最壞情況性能與最優策略的最壞情況性能進行對比。



但可利用度本身並不能充分説明智能體的實力。可以被特別聰明的下法擊敗的強棋手可以説是比總是投降的智能體更好的棋手。 然而,這兩種智能體都具有相同的可利用度。



有時,我們對最壞情況下的表現不感興趣,而是對智能體在針對特定對手池的正面評估中的定性表現感興趣。



問題在於,這種表現在很大程度上取決於對手池中的玩家,但在面對面的評估中也存在固有的「非傳遞性」,即存在「策略克制」的情況。



要計算可利用度或NASHCONV,我們需要計算準確的最佳響應。這需要一個完整的樹遍歷(算法1),這在大型遊戲中很快就會變得難以處理。



在兩人博弈中,通過固定其中一個玩家的策略,遊戲將退化為一個單智能體環境(Bowling,2003),其中最優策略對應於最佳響應。



因此,人們可以選擇任何標準的強化學習方法來學習(或近似)這個最佳響應策略並使用得到的近似策略來定義相應的度量——近似最佳響應。



局部最佳響應是另一種近似最佳響應的方法,結合了搜索和啟發式價值函數。



子博弈(Sub-games)



顧名思義,子博弈是博弈的子問題。子博弈是在線搜索方法的一個基本概念,有兩種關鍵的使用方法。雖然這兩種情況本質上都分解了問題並結合了問題的解,但它們在語義上非常不同。











  1. 首先,子博弈允許我們單獨地對一個小的子問題進行推理。搜索方法對子博弈進行推理,即關於由當前觀測的狀態定義的子博弈。








  2. 第二,子博弈是價值函數的基礎。如果當前狀態定義的子博弈仍然太大,則允許進一步分解。我們不必對子博弈中的所有未來狀態進行推理,而只需向前看一些步驟,並使用未來狀態(未來子博弈)的價值(可能是估計值)。










<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



a) 要推理的當前狀態。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



b) 與當前決策相關的所有狀態形成一個子博弈。







</figcaption>







</figure>

完美信息子博弈



給定當前狀態,與當前決策相關的最小狀態集是什麼?



在完美信息博弈中,它就是當前狀態和所有未來狀態,一棵以當前狀態為根結點的子樹。要驗證這種情況,請注意這些狀態的策略足以計算當前狀態的值,因為所有其他狀態中的策略都是無關的。



子博弈的定義屬性是——顧名思義——它是一個博弈。它需要是一個定義明確的博弈,以便單獨進行推理。 幸運的是,在完美信息博弈形式化中,這一點也很簡單。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

子博弈價值



<figure data-size="normal">







<noscript>













</noscript>













</figure>

子博弈價值對於分解和搜索方法非常重要,因為它們允許我們通過對未來狀態和相應子博弈價值的推理來推斷某個狀態下的最優策略。



子博弈完美最優策略



最優策略的完美精煉: 在整個博弈中的策略可以是最優的,並保證博弈價值,但在一些子博弈中卻以次優的方式進行博弈。最優性概念的一個重要改進是「子博弈完美策略」,它在每個子博弈中都是最優的。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

離線求解



最大最小化算法



<figure data-size="normal">







<noscript>













</noscript>













</figure>

最小最大化算法自下而上遍歷博弈樹,在子博弈中生成最優策略,並將子博弈值發送到樹上。然後將這些子博弈值轉化為大型子博弈的最優策略,直到過程達到根狀態結點(上圖和算法2)。最小最大化算法是分解的一個很好的例子,因為它內在地依賴於子博弈和子博弈價值的概念。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

請注意,當我們以自下而上的方式計算兩個玩家的策略時,我們沒有使用任何關於玩家如何在樹的上層部分玩的知識。這是因為在完美信息下,子博弈不需要這些信息,因為子博弈被簡單地定義為子樹。



由引理3可知,該算法生成的策略組合是一個納什均衡。



僅遍歷樹的一部分,同時保持相同的性質。Alpha-Beta剪枝允許只潛在地訪問 而不是 個結點



自博弈風格的方法



自博弈是一個強大的想法,智能體在自我強化的循環中改進他們的策略(下圖)。希望是隨着策略的不斷改進,它們最終會收斂到最優策略。在自博弈的框架中,智能體會產生一個策略序列 ,不同的算法在重要細節上有所不同。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

a) 首先是算法如何生成序列中的下一個策略



b) 第二個問題是預計哪種策略會收斂(例如,平均策略或當前策略)



通過獨立強化學習進行自博弈是強化學習社區的一種流行方法。這種方法簡單地使用單agent強化學習方法來改進agent針對對手的策略。



天真的方法是簡單地為兩個玩家分別運行一個單獨的agent強化學習方法,每個人都可以針對對手的最後一個策略進行改進。這確實是許多著名的雙人遊戲強化學習方法成功案例的核心(Tesauro,1995;Silver等人,2017b)。這個理由聽起來很有吸引力——如果我們不斷改進,我們最終肯定會有一個最優的策略嗎?



因此,我們在自博弈序列中的每個時間步,策略最好地響應對手之前的策略: 。我們稱這個序列為最佳響應序列。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

然而,對對手的最後一個策略做出最佳反應的自博弈方法不一定會收斂。



序列滿足最佳響應特性,但從不收斂。如果序列只是在不同的最優策略之間交替,這也不是壞事。但在每個時間步, 都是高度可利用的。該序列不收斂,並產生高度可利用的當前策略以及平均策略。



如果最好的響應是子博弈完美的,那麼最好的響應序列確實保證產生最優策略。請注意,這僅在完美信息博弈中是正確的,這些方法在不完美信息失效。



在線設置











  • 搜索算法在根本地不同的環境中運行,只在一個狀態被訪問時產生一個策略。








  • 在線算法可以根據過去的經驗和遊戲進行計算,允許對手進行自適應或者重複使用以前計算的部分內容。








  • 在線算法可能會產生與任何離線算法不一致的遊戲動態。










因此,我們引入了一個「一致性層次結構」,允許我們在在線算法與某些納什均衡一致時進行形式化。這種呈現的層次結構中最強大的一種,即強全局一致性,允許人們使用表格化以一種特別簡單的方式計算可利用度。



警示性案例



考慮某個遊戲,在遊戲期間,在線算法











  1. 運行離線算法一段時間








  2. 檢索策略 並採取行動










由於算法總是「遵循」一個均衡,我們自然會認為這個算法是穩健的。事實並非如此,這種算法可能具有很高的可利用度。不完美信息博弈則會給它帶來更多挑戰。



重複博弈



一場重複博弈由一系列的單個的比賽組成(例如,與世界冠軍進行一些國際象棋比賽)。



隨着比賽的進行,一旦算法實際觀察到訪問狀態,它就會在線生成訪問狀態的策略。然後,我們對智能體在重複博弈期間的累積回報感興趣。特別令人感興趣的是針對最壞情況對手的預期獎勵。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

在線算法



一種在線算法 將重複博弈中訪問的狀態映射到策略,同時可能使用並更新其「內部狀態」。由於算法的狀態是先前訪問(查詢)狀態的函數,因此我們也可以使用 表示其在與過去經驗相對應的特定「內部狀態」下的輸出。



<figure data-size="normal">







<noscript>













</noscript>













</figure>









  • 在線算法的一個特例是「無狀態算法」,它的函數的輸出獨立於「算法的狀態」。








  • 如果輸出取決於「算法的狀態」,我們稱該算法為「有狀態算法」。








  • 有狀態和無狀態算法之間的區別有一些重要的後果,因為「算法的狀態」是算法的「內存」,允許以過去為條件。








  • 個人理解:「算法的狀態」即算法的參數










給兩個在線玩家 我們使用 表示當這兩個玩家面對面時,長度為 的所有可能的重複博弈 的分佈。 的平均獎勵為 。使用 表示玩家玩 場比賽的期望平均獎勵。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

穩健性



對於「ϵ-穩健」的在線算法 , 對「任何對手」的期望平均回報至少與對於任意數量的 場 遵循「ϵ-納什均衡」「固定策略 」的比賽的回報一樣高。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

響應博弈



為了計算ϵ-穩健性,我們構造了一個重複k次的重複博弈,在這裏我們替換了在線算法 的決策,而使之具有固定的chance策略 ,導致單智能體博弈的指數級大小,這是因為算法是有狀態的,依賴於博弈的結果軌跡,而一共有 個結果。在本例中,



<figure data-size="normal">







<noscript>













</noscript>













</figure>

表格化離線策略



當在線算法是無狀態的,則無論先前的比賽如何,都會為信息狀態產生相同的策略,則不需要 k -響應博弈。



固定策略 充分描述了算法的行為,可利用性和穩健性的概念變得相同。 為了計算相應的固定策略,只需在在線算法中查詢遊戲中的所有信息狀態 。我們將此策略稱為表格化策略。



通過搜索重新求解



為了證明在線搜索算法是ϵ-穩健的,我們通常希望正式聲明在線算法與ϵ-均衡是「一致」的。



局部一致性



它只是保證每次我們查詢在線算法時,都有一個ϵ-均衡,與該狀態產生的行為策略一致。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



局部一致性:獨立解決子博弈可以導致解決方案,其中所有單獨的狀態的策略都與最優策略一致,但每個狀態都可能有不同的策略。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



強全局一致性







</figcaption>







</figure>

全局一致性



它保證了均衡的存在,該均衡與遊戲過程中訪問的所有狀態一致。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

強全局一致性



全局一致性的問題本質上在於它保證了在博弈「產生之後」存在一致的均衡。



強全局一致性還保證了博弈「本身的生成」與均衡一致。 換句話説,在線算法只是完全遵循「預定義的均衡」。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

強全局一致性保證了算法可以列表化,並且列表化策略的可利用性與在線算法的ϵ-穩健性相匹配。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



(a) 在線搜索可能需要重新求解的未知離線策略π







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



(b) 使用 π 強全局一致的在線搜索







</figcaption>







</figure>

使用搜索進行重新求解



要證明在線算法是穩健的,最簡單的方法是確保它與某些策略 是強全局一致的。



這樣的搜索方法就像離線策略 一樣,只是 沒有顯式表示。給定一個狀態 ,我們不是只求解一下該狀態的最優策略。



我們寧願重新求解該狀態的策略,確保其與「原始」策略 相匹配。然後,搜索將逐步為所有訪問的狀態重新求解此策略(上圖)



搜索



完全前瞻在線最小最大化算法



全前瞻在線Minimax算法是一種無狀態在線方法,它通過向前搜索和推理以當前狀態為根結點的子博弈,為當前狀態提供一種策略。



這允許搜索集中於當前決策的相關部分,因為子博弈是我們可以單獨推理的最小子問題。



完全前瞻在線Minimax算法是在基於當前決策結點 的「完整子博弈」上運行Minimax算法。然後,它為當前狀態制定一個策略 並且無視子博弈中其他狀態的策略。



優點是,如果當前狀態接近遊戲結束,我們只需要對一個小的子博弈進行推理。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

缺點是,如果狀態接近遊戲開始,我們無論如何都必須遍歷整個遊戲樹(上圖)。



因此,該算法可能並不比離線Minimax算法好,儘管它可以避免存儲完整策略所需的內存。雖然該算法可能不是很實用,但它是本論文中提出的未來算法和方法的重要組成部分。



有限步前瞻在線最小最大化算法



有限前瞻的思想是只前瞻一些步驟,截斷搜索並使用未來子博弈(當前子博弈的未來子博弈,下圖)的價值(函數)取代繼續搜索的過程。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

極小極大算法只使用未來狀態的價值來推導策略。如果給定子博弈的博弈價值(最優策略下的價值),我們仍然能夠導出當前狀態下的最優策略。



在線Minimax算法的有限前瞻版本構建了一個有限步的前瞻樹,並在該樹中運行Minmax算法。由於我們仍然需要知道前瞻結束時狀態的價值,因此該算法使用價值函數來評估這些狀態(算法3)。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

分解











  • 首先,搜索方法通過對以當前狀態為根結點的子博弈進行推理,生成當前狀態的策略。








  • 第二,在有限的前瞻情況下,子博弈是價值函數的基礎。










概念上相似的分解也將在不完美信息中發生。



重新求解與一致性



雖然搜索的推理是局部的,但它需要確保生成的策略與整個博弈的最優策略在全局上是一致的。幸運的是,在這種情況下,這特別容易,因為該算法產生的行為策略與離線最小最大化算法完全相同。另一個可能的論點是使用定理10。



我們也知道,在強全局一致性的情況下,可以將在線算法視為重新求解離線策略。



在在線極小極大算法的情況下,重新求解的策略是離線極小極大算法(算法2)在整個遊戲中運行時產生的策略。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



a) 重新求解已訪問狀態的策略。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



b) 在線最小最大化完全前瞻。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



c) 在線最小最大化有限前瞻。







</figcaption>







</figure>

估計價值函數



精確的價值函數允許搜索過程在有限的前瞻中推理,因為它們在前瞻結束時為相關的未來狀態提供精確的博弈價值。但是為了計算博弈價值,我們需要求解對應於這些狀態的子博弈。也許我們可以估計未來狀態的價值,而不是使用精確的價值。











  • 歷史上,第一種近似價值的方法是基於遊戲特定的啓發法(例如國際象棋中的材料)。








  • 另一種流行的方法是使用採樣並通過採樣一些軌跡來估計狀態價值。








  • 現代方法通過機器學習範式學習評估函數,因為問題的本質允許生成大量數據,以便使用自博弈方法進行訓練。








  • 最近,深度學習(LeCun et al.,2015;Schmidhuber,2015)被證明非常適合這一任務,因為它們提供了出色的經驗泛化性。










前瞻樹的規模



對於精確的價值函數,前瞻樹的大小是不相關的,因為即使是單個的一步前瞻也可以保證生成最優策略。



但一旦我們只有近似價值,人們就會期望更大的樹會產生更好的策略。實際上,樹的「大小」確實很重要。雖然這是這種情況的較好理由,但不能保證這種行為。



此外,在實踐中,大小並不是唯一重要的參數,「結構」通常也很關鍵。 我們通常希望更深入地搜索當前策略可能發揮作用的地方,或者我們對價值不確定的地方(類似於人類在遊戲中執行搜索的方式)。例如,在國際象棋中,職業棋手在他們認為有趣的地方進行深入搜索。因此,在搜索過程中動態擴展前瞻樹也很常見,而不是構造固定大小的前瞻。



案例



搜索和價值函數的結合導致了完美信息博弈的歷史性成就。



Samuel’s Checkers







Samuel’s checkers is an exciting application that dates all the way back to 1959 (Samuel, 1959). It is amazing to see how many of the ideas considered as new and modern already appeared in this program. While the strength of the program was relatively weak, one must realize how limited both hardware and software were at that time. And while search algorithms for perfect information games have made a great deal of progress both in strength and generality since then, the core principles of search combined with self-play learned value functions are already present here.

























  • 搜索算法:它是帶有Alpha-Beta剪枝的Minimax的一個變體。前瞻樹是使用基於深度的規則以及一些特定於遊戲的屬性動態生成的。








  • 價值函數:該價值通過手工製作的遊戲特定特徵的多項式組合進行估計。不僅通過自博弈調整了權重,學習方法還使用了自舉技術。最後,本文還描述了一種從先前的人類遊戲中學習的方法。










Deep Blue







Being one of the most popular board game in the world, chess playing algorithms have always been of great interest to computer scientists. Shannon’s work from 1950 already describes a simple variant of minimax search and even includes a section on approximate value function computed as a combination of game specific features (Shannon, 1950).

























  • 搜索算法:深藍採用了大規模並行搜索,結合了硬件和軟件搜索。該搜索是Alpha-Beta搜索的一個變種,動態生長的樹被設計成高度不均勻的。








  • 價值函數:深藍的評估是在硬件上實現的。這使得評估速度特別快,但很難修改。評估功能包括大約8000種不同的國際象棋特定特徵(「通過的棋子」,「bishop對」)進行組合以產生最終價值估算。製作如此複雜的遊戲特定的價值函數是一項艱巨而耗時的任務。作者自己表示,「……我們在兩次比賽之間花費了絕大多數時間來設計、測試和調整新的評估函數。」。










TD-Gammon







TD-Gammon showed how powerful a combination of self-play learning and neural nets as value function approximation can be (Tesauro, 1995). It was the first successful application of this combination for large games, achieving impressive performance

























  • 搜索算法:搜索樹是一個相當小的2層前瞻樹,較大的樹被認為是未來可能的改進。








  • 價值函數:TD Gammon為其價值函數使用前饋全連接神經網絡值。特徵表示最初對原始棋盤表示進行編碼,後來添加了更多特定於遊戲的手動編碼特徵以提高性能。










Alpha Go







AlphaGo further showed the power of combining deep learning and self-play. Go is a prime example of game where hand-crafting value functions or features is particularly difficult, and thus state of the art programs relied on rollout simulations to estimate the state values.

























  • 搜索算法:使用的搜索是MCT的一種變體,帶有p-UCB公式,用於指導模擬。








  • 價值函數:價值函數用深度卷積神經網絡表示,並通過監督學習對人類數據進行預訓練。然後,自博弈被用於進一步的改進。雖然這個版本中仍然存在一些特定於遊戲的特徵,但進一步的改進使智能體更加通用和強大。










From AlphaGo to MuZero







AlphaGoZero uses no human data and removes hand-crafted features, while achieving even stronger performance (Silver et al., 2017b). AlphaZero then achieves master level perfomance on go, chess, and shogi — using a single algorithm (Silver et al., 2017a). This work has also now been reproduced by Leela Zero, one of the strongest and opensourced chess engines (Pascutto, 2019).

























  • MuZero是這種一宗系的最新代表,它使這種方法更加通用,因為它不需要遊戲規則來構建遊戲樹進行搜索。








  • 規則是在自博弈中學習的,搜索在規划過程中只使用學習的模型。這意味着MuZero在搜索過程中不需要訪問環境,只在執行動作時才需要訪問環境。










不完美信息(Imperfect Information)



博弈案例



Kuhn Poker







Kuhn poker is a very simple poker game with only 3 cards in the deck and a single betting round (Kuhn, 1950). The deck includes only three cards: (J)ack, (Q)ueen and (K)ing. Both players are dealt a single card out of a deck, they each put one chip the table (ante) and a simple betting round follows. First player either (b)ets a chip (adding one more chip on the table) or (c)hecks. If the first player bets, the second player can either (c)all or (f)old — both actions terminating the game. If the first player checks, the second player can either bet one chip or check. Check terminates the game, while for bet, the first player acts again and can either check or fold — both actions terminating the game. If any player folded, they lose the chips on the table. Otherwise, the player holding the higher card wins these chips.

















Leduc Poker







Leduc poker is a slightly larger poker game often used as a test domain in imperfect information games. The card deck consists of 6 cards (two suits and three ranks), and there are two (limited) betting rounds with a single public board card (Southey et al., 2005). Note that while the game is larger than Kuhn poker, it is still very small.

















Limit nad No-limit Texas Hold』em Poker







Texas hold』em poker is played with the standard 52 card deck. The game progresses in four betting rounds: i) pre-flop ii) flop iii) turn and iv) river. Cards are dealt at the beginning of each round. In the pre-flop, each player is dealt two private cards (hand). In the later rounds, public (facing up and observable to all players) cards are dealt on the table: three on the flop, one on the turn and one on the river. During each betting round, the players alternate taking one of the three action types: i) fold ii) check/call and iii) bet/raise. By folding, the player gives up and loses the money wagered up to this point (pot). Calling matchesthe bet of the opponent, and check is the initial call action when the player isfacing no bet/raise. Raise increases a player’s wager, and bet is the initial raisewhen there is no opponent’s bet to be raised. The round ends when both playersmatch their bet, and the game terminates when either of the player folds or whenthe last round (river) ends. When neither player folds before the end of the river,both players reveal their hand and the player with the strongest combination of the private and public cards wins the pot. For the ranking of the possible cardcombinations and more detailed rules see e.g. Harroch and Krieger (2007)







Finally, the difference between limit and no-limit poker is that in limit poker,there is a single bet size the player can make. In no-limit, the player is free tomake a bet up to their stack size, and all-in bet then refers to agent betting theirentire stack.

















Graph Chase







Graph chase games are a simple, security-like games. Players get to move theirstones from node to node, alternating their moves. One player (evader) controlsa single invisible stone and is trying to escape the opponent. The second player(chaser) controls multiple stones (the location of these stones is publicly observable) and is trying to catch the invisible stone (by moving a stone on to thelocation of the invisible stone). The evader wins if they gets to survive a specifiednumber of moves, and loses otherwise. While the rules can surely be made morecomplicated, this simple variant still makes an interesting game.

















<figure data-size="normal">







<noscript>













</noscript>













</figure>





There are some important conceptual difference to poker. In poker, all actions are publicly observable, making some of the decomposition constructions easier. In graph chase games, the chaser does not get to see the exact action (edge) the evader took. Furthermore, the number of states the player can be in varies as the game progresses. In poker, this corresponds to the possible hands of a player, which is fixed in individual betting rounds. These distinctions are important as we need our algorithms to handle this general case.

















形式化



我們重點關注分解觀測隨機博弈,它比較適合搜索算法。



適合搜索算法的原因:











  1. 將觀測分解為私人和公共組件








  2. 智能體的狀態的符號的引入,即使他們不採取行動










任何子問題分解和搜索只有在「序列形式決策」中才有意義



矩陣博弈(Matrix Games)



事實證明,不完全信息博弈的最簡單形式是基於同時移動。也就是説,兩個玩家可以同時採取動作。一開始,可能不清楚這與不完美的信息有什麼關係。原因很簡單——我們可以把這種互動想像為一個玩家先採取動作,同時對對手隱藏動作。然後,對手在不知道第一個玩家做了什麼的情況下採取動作。



矩陣博弈(也稱為正則形式博弈)是一種簡單的形式化,第一個玩家(行玩家)選擇一行,而第二個玩家(列玩家)選擇一列(定義16)。第一個玩家的獎勵計算為 .



<figure data-size="normal">







<noscript>













</noscript>













</figure>

擴展性形式博弈(Extensive Form Games



擴展形式的博弈是博弈樹對不完美信息環境的自然延伸,允許順序交互。在不完美信息下,玩家無法直接觀察博弈的確切狀態,因此可能存在玩家無法區分的多個世界狀態。擴展形式的博弈通過將這些狀態分組為所謂的信息集(或狀態)來實現這一點。然後在這些信息狀態中定義智能體的策略。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

是玩家函數:確定非終止結點將要執行動作的玩家, 是玩家 將要決策的結點的集合; 表示同一個信息集中不同的結點;



策略



行為策略規定了所有單獨的信息集(狀態)中的行為。它是從信息狀態到動作分佈的映射。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

EFG例子



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



擴展形式的石頭剪刀布。各個狀態(歷史)都有相應的歷史記錄(總共有13個歷史記錄,其中9個是終止的)。在終止狀態下面,我們還包括player 1終止效用。最後,虛線將歷史連接到信息集/狀態中。在這種情況下,兩個玩家都有一個信息集。







</figcaption>







</figure>

同一個信息集中的序列的倒數第 個元素要相同,即自己的歷史 (狀態或動作)要保持一致; 同一個信息集中的決策結點可以執行的動作也是相同的; 每一個決策結點只能屬於一個信息集。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



Kuhn Poker的EFG:藍色的是玩家1的信息集,橙色的是玩家2的信息集







</figcaption>







</figure>

這個想法就是讓一個玩家先採取行動,將所有後續的歷史記錄分組到一個信息集中,這樣對手就不知道第一個玩家採取了什麼行動。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

EFG相對於矩陣博弈



完美回憶:每個玩家都準確地記憶他過去所做的動作。



由此產生的矩陣博弈可以比擴展形式博弈的原始序列表示大指數倍。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

EFG的缺點











  1. 它過於廣泛,因為它允許不完美回憶,這迫使智能體忘記以前已知的信息(例如,過去採取的動作)。當信息集使用其前綴對歷史進行分組(即將節點與前一個節點進行分組)時,會發生這種情況。不完美的回憶令人不安,因為它不僅不現實,而且會帶來不幸的複雜後果。包括最佳響應在內的許多基本概念變得複雜,甚至納什均衡的存在也變得NP-難。








  2. EFG會丟失許多環境中固有的關鍵信息-觀測的概念,具體説明智能體觀測到的內容和時間。








  3. 對於非執行動作的玩家,沒有信息狀態的概念。這是有問題的,因為當我們比賽時,我們可能需要對對手可能處於的狀態進行推理。








  4. EFG沒有明確區分私人信息和公共信息。但是,對於健全的搜索方法來説,關於非執行動作的玩家可以獲得哪些信息以及將信息分解為私人和公共信息的知識都是至關重要的概念。








  5. 最近,nontimeability被認為是該模型允許的另一個不現實屬性(Jakobsen等人,2016)。由於時間的流逝對智能體是可觀察的,一些擴展形式的博弈無法實現。如果一個博弈有一個精確的確定時間,則稱其為timeable的;如果每個標籤正好比其父標籤高一個,則稱其為1-timeable的。










<figure data-size="normal">







<noscript>













</noscript>













</figure>

增強的EFG(Augmented EFG)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

是 的劃分的集合,其中每個 是 的精煉。



首先,信息集劃分了 而不僅僅是 ,因此對非執行動作的玩家也定義了信息集。



其次, 定義公共狀態和相應的公共樹,其中單個玩家的劃分是此公共劃分的精煉。



分解手寫體手寫體隨機博弈(Factored-Observation Stochastic Games



這個簡單的基於觀測的模型自然地描述了該領域並保留了必要的信息。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

案例



<figure data-size="normal">







<noscript>













</noscript>













</figure>

解決了4個問題:











  1. 不完美回憶 AOH導致完美回憶








  2. 非執行動作的智能體 所有智能體同時做動作








  3. 非可計時性 動作的數量即時間步








  4. 私有信息和公共信息的缺失 對私有信息和公共信息進行建模










與EFG的關係



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

派生對象



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>









  • 將博弈中的隨機性建模為由chance player 而不是通過隨機轉移函數T引起,通常是有用的。chance player 和其他玩家一樣接受觀察並採取行動,但其策略是固定的。 的添加不會導致通用性的損失,因為它們的動作總是可以合併迴轉移函數 ,但在某些情況下,這種觀點在概念上和形式上更方便。








  • 定義 為最大效用/最小效用,










狀態符號和視角



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

例子



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



Different levels of information for the Kuhn poker.







</figcaption>







</figure>

Different levels of information for the Kuhn poker. Top left: Public tree depicting the publicly observable information (i.e. the public view). Top right: Action-observation sequence tree of player 1 (i.e., player 1 view). Bottom: The world-state tree of the game (i.e. the game view). Red: Example states used in Last Table



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



This Table reports number of world states, infostates and public states for the imperfect information games used in this thesis







</figcaption>







</figure>

總結



分解觀測隨機博弈是一種現代的形式化,它反映了從使用擴展形式博弈以及考慮搜索方法中獲得的經驗教訓。該形式化以隨機博弈為基礎,旨在使社區更緊密,因為下一個研究前沿需要兩個領域的洞察和合作。



離線策略



最佳響應



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

與完美信息的區別



以前,我們只需要在所有未來狀態考慮對手的策略。這是因為這提供了有關這些未來狀態之間轉移概率的充分信息。在一個完美的信息最佳響應中,沒有必要考慮對手在一個狀態之前如何發揮,因此真正的自下而上傳遞是可能的。



而在不完美信息中就不成立。問題是"狀態-動作-狀態"轉移動態取決於信息狀態中分組的各個歷史的分佈。這種分佈又取決於對手過去的行為。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



Best response computation for the second player in rock-paperscissors.







</figcaption>







</figure>

Best response computation for the second player in rock-paperscissors. Single infostate of the player consists of three different histories, and the utility of the policy depends on distribution over these histories. That in turn depends on the strategy of the opponent in previous states



最大最小化



<figure data-size="normal">







<noscript>













</noscript>













</figure>

納什均衡



<figure data-size="normal">







<noscript>













</noscript>













</figure>

納什均衡vs.最大最小化



首先,極小極大定理(定理2)仍然成立,因為最初的參考證明是針對矩陣對策的。



定理4和定理5的證明保持不變,因為沒有針對完美信息的假設。



與完美信息的區別



不完美信息對最佳響應、最大最小化和納什均衡的概念幾乎沒有改變。在不完美信息中,最優策略的概念、動機和性質也是一樣的。最優策略仍然保證存在,並提供相同的吸引人的保證(例如,如果我們同時打兩個位置,它保證對任何對手都有積極的預期回報,推論5.2)。因此,在不完美信息中遵循最優策略的原因與在完美信息中一樣吸引人。我們只需要更強大的算法來計算策略。離線算法也是如此,但在線搜索算法更是如此。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

不確定性等級和支持集合大小











  • 在不完美信息中,對手的狀態存在不確定性;








  • 給定一個玩家的狀態,對手可以處於多種狀態。結果表明,不確定性水平與最優策略下所需的行動數量(即支持集合的大小)之間存在直接聯繫。










多人博弈



在多玩家環境中選擇納什均衡進行博弈。多個玩家只有通過策略的協調,才能到達納什均衡點。



十字路口博弈



<figure data-size="normal">







<noscript>













</noscript>













</figure>

均衡選擇問題是,列玩家可以選擇第一個均衡,而行玩家可以選擇第二個均衡。在這種情況下,兩個玩家都選擇Go動作並相撞,這違反了獎勵保證,並且不是納什均衡。



子博弈



由於玩家關於遊戲的視角不同,玩家可能的狀態也不同,他們各自的(信息狀態)樹也不同。



不完美信息博弈中的子博弈有兩種概念概括:











  • 我們需要推理的一組狀態








  • 可能初始狀態的分佈










需要推理的狀態集合



給定一個玩家的狀態,我們需要對哪些狀態進行推理?











  • 我們必須考慮其他玩家可能參與的所有狀態。








  • 在不完美信息博弈中,可能存在多個與當前觀測一致的一致狀態。為了解釋這些狀態中的任何一個,對手現在必須考慮第一個玩家可能處於的所有可能狀態。這種遞歸推理一直持續到我們找到當前情況下所有相關狀態的集合為止。










一致性狀態



一致狀態:與當前狀態一致的(對手的)狀態集



一致性操作:從當前狀態到一致狀態集的映射



<figure data-size="normal">







<noscript>













</noscript>













</figure>

Common Information Set



一致性操作代表遞歸過程的一個步驟。我們需要重複這個操作,直到找到在一致性操作下封閉的狀態的閉包集。這個特定的閉包被稱為Common Information Set(定義22)。Common Information Set表示相關狀態的最小集合。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

Common vs Public Information



雖然Common Information定義了相關狀態的最小集合,但有一種更簡單的方法可以找到在一致性操作下封閉的集合,而不需要遞歸構造過程(閉包)。我們只需要考慮所有共享Public Informationstate



因為Common Information Setpublic state set的子集: ,共享一個public informationstate set在一致性操作 下是封閉的。



Public state的唯一缺點是它可能嚴格地更大。但在許多博弈中(例如,在所有示例遊戲中), 和 完全相同,因此public states的概念因其簡單而更可取。



未來狀態



給定狀態 ,我們需要對 和這個集合的所有未來狀態進行推理 。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

因此,我們需要推理的所有狀態都是一個公共狀態中的狀態及其它所有的兒子狀態——一個公共子樹。



Public Subtree



我們現在已經完成了子博弈概括的第一個基本部分。在完美信息中,相關狀態集只是以當前狀態為根結點的子樹。在不完美信息中,我們需要使用公共狀態子樹



注意,在common informationpublic information更可取的情況下(相應的集合要小得多),所有結果都適用於由common information形成的子博弈。



Walk-through Example



<figure data-size="normal">







<noscript>













</noscript>













</figure>

Simple poker game with a three card deck , but the possible deals for the first and second player are . This asymmetrical deal distribution helps to illustrate the details of common and public information sets.



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



(a) Infoset [d|Q] of the first player.







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



(b) Infoset [d|Q] of the second player.







</figcaption>







</figure>

15.2 (a) When reasoning about the player’s state , we need to reason about all the possible current and future states of both players - and continue this reasoning process until we get a closure. (b) First level of such recursive reasoning.



<figure data-size="normal">







<noscript>













</noscript>













</figure>

(a)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

(b)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

(c)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

(d)



15.3



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

Two initial states , share the same public states. In this example, public state is larger than the common information sets.



分佈



在完美信息下,一個子樹中所有狀態的策略足以計算這些狀態的價值。在不完美信息的情況下並非如此,在不完美信息的情況下,轉移動態以及因此產生的效用不僅取決於子樹中的策略,還取決於上面的策略。



具體地説,子樹中的轉移動態完全由「可能的初始歷史分佈」和「該子樹的所有信息狀態的策略」確定。



分解分佈



計算子樹中的價值需要針對所有這些狀態的策略以及初始歷史的分佈。



但這些歷史記錄的任何分佈都不能由一個智能體play產生,因為它們只能控制各自信息狀態上的動作(而不是整個歷史記錄)。



給定初始的公共狀態,歷史上的分佈是:











  1. 固定chance factor








  2. 玩家在公共狀態上的策略函數










chance factor是固定的,並且對於任何歷史都可能不同。 另一方面,智能體的策略不是固定的,並且對於分組在同一單個信息狀態中的所有歷史記錄都是相同的。











  • 對於歷史h,到達概率是chance contribution的乘積 ,且玩家們到達概率: 。然後,某個玩家的到達概率 是其信息狀態序列中導致該歷史的策略的乘積: 。因為這個量對於信息狀態 中的所有歷史都是相等的,所以我們有 。








  • 因此我們可以計算 ,將該項分解為每個玩家的信息狀態到達概率。為了計算某公共狀態下歷史的分佈,我們只需要知道該公共狀態下所有玩家信息狀態的到達概率。這種觀察的重要性在於,InfoState的數量通常要小得多。










例子



<figure data-size="normal">







<noscript>













</noscript>













</figure>

公共子博弈



我們現在有了搜索最關鍵概念所需的一切——不完美信息子博弈的概括(一般化)。在完美信息下,子博弈僅通過子樹識別,而不完美信息子博弈則通過以下方式識別:











  1. Public state








  2. Per-player distribution over their info-states .










正如我們將看到的,這個子博弈允許所有與完美信息中相同的分解概念。即允許:











  • 在子博弈中求解最優策略。








  • 定義子博弈的價值函數。








  • 分解。








  • 構建可證明安全的搜索方法。










公共子博弈是一個博弈



公共子博弈形成了一個定義明確的不完美信息博弈。



我們的想法是,我們構建一個博弈,就像它從公共子樹開始一樣,在初始狀態上具有適當的分佈



我們只需構建一個以chance node為根節點的博弈,該節點「deals out」初始歷史/狀態,每個歷史的概率是每個玩家contribution(包含chance player)的(標準化)乘積。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

價值函數



一個重要的概括是,在完美信息中,子博弈的價值是單個標量。在不完美信息中,它是一個價值向量,是每個初始信息狀態的價值。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

例子



Next Table illustrates the value function in rock-paper-scissors. Consider the subgame rooted in the public state just after the first player acted and the second player is to act. That public state contains a single infostate of the second player and three infostates of the first player (after the rock, paper or scissors action). The sub-game and the value function thus requires a distribution over the three possible initial states of the first player, and the probability of the second player being in their single state is 1. The output then consists of a single value for each of the players』 states (three values for the first player and one value for the second player).



<figure data-size="normal">







<noscript>













</noscript>













</figure>

唯一的博弈價值,多重的狀態價值



博弈價值是唯一的,因此該價值在任何最優策略下都是相同的,但各個狀態的值可能不同。不同的最優策略可以產生不同的信息狀態值。



但我們為什麼要關心這些狀態的價值呢?為什麼博弈的價值不夠?











  • 一旦在搜索中使用這些價值函數,它的重要性就會變得很明顯,在搜索中我們將需要各個狀態的價值










<figure data-size="normal">







<noscript>













</noscript>













</figure>

輸入分佈中的小擾動可能導致基本最優策略的大的變化,從而導致輸出狀態價值發生變化,但僅會導致博弈價值較小的變化。原始博弈變成了非零和博弈。



結構



由於信念的存在,不完美信息中的價值函數變得更加複雜,因此存在一些與函數結構相關的重要問題。輸入分佈的微小擾動是否會導致輸出的劇烈變化?有什麼結構嗎?一旦我們開始函數逼近和學習(例如使用神經網絡),函數的結構就變得更加相關,因為不可能進行無結構的學習/泛化。











  • 博弈本身的價值 具有特別好的分段線性結構。








  • 一般來説,輸入分佈的小輸入擾動會導致輸出狀態價值發生較大的變化。








  • 換句話説,博弈定義中的小擾動會導致博弈如何以最佳方式進行(策略)的劇烈變化,但只會導致博弈價值的微小變化。








  • 幸運的是,這種靈敏度只發生在分段線性值函數的臨界點上。








  • 此外,當潛在的策略不是最優的,而是 ε-最優時,可以限制狀態價值的變化。










<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

離線求解Ⅰ



現在我們將描述不完美信息博弈的離線求解方法:











  1. 離線求解Ⅰ介紹了優化方法和自博弈方法;








  2. 離線求解Ⅱ介紹了本文最重要的離線求解方法——基於遺憾最小化框架的方法,這些方法是最終的搜索技術的核心;








  3. 離線求解Ⅲ討論了無法直接使用表格法的大型遊戲。










離線求解Ⅱ中描述了如何在序列設置中最小化遺憾-反事實遺憾最小化(CFR)。CFR將全部遺憾分解為每個信息狀態下個人遺憾的總和,允許一個人獨立地最小化這些部分遺憾。



矩陣博弈的直接優化



<figure data-size="normal">







<noscript>













</noscript>













</figure>

因為16.1是仿射函數的分點最小值,所以該函數是凹的



圖解解釋



<figure data-size="normal">







<noscript>













</noscript>













</figure>

以特定方式可視化遊戲(圖16.1a)可以很好地洞察最佳響應價值函數的結構。此時以玩家1為視角,對手為玩家2,求最佳反應價值函數是關於玩家2的策略的最小化,即玩家2選擇策略使玩家1的價值最小。



我們可以看到,函數是凹的,且是分段線性的——這是對「直接使函數最大化的」算法的關鍵洞察。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

矩陣博弈的線性規劃



16.1的分段線性結構可以用來創建一個「封閉形式的線性規劃」,以優化所討論的函數。



我們將為行和列參與者構造一個線性優化,然後使用強對偶性來證明極小極大定理。



行玩家



<figure data-size="normal">







<noscript>













</noscript>













</figure>

由於(16.2)是雙重線性(即需要對2個變量進行優化)的,我們需要通過引入新變量來解耦 和 。給定行玩家的策略 ,最佳反應的對手只需選擇效用最小的列。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

列玩家



<figure data-size="normal">







<noscript>













</noscript>













</figure>



最小最大化理論



<figure data-size="normal">







<noscript>













</noscript>













</figure>

關鍵的觀察結果是,行玩家16.5和列玩家16.6的maximin策略的線性規劃形成了一對對偶線性規劃。由於兩者都是可行的,強對偶性成立,因此這些規劃的最優值相等



序列形式博弈的線性規劃



本節將最優策略的線性規劃公式從矩陣博弈推廣到序列博弈。即使可以將序列博弈轉換為矩陣形式,但這並不實際,因為與序列表示相比,生成的矩陣博弈可能是指數級的。



序列形式



雖然行為策略定義了如何在單個信息狀態下採取行動,但由於其非凸性,這種表示方式對於線性/凸優化沒有直接的用處。



幸運的是,有一種策略的凸表示形式——序列形式



其思想是將玩家達到某一狀態的概率表示為玩家導致該狀態的動作序列的乘積。然後,我們必須確保這些到達概率的形式是正確的,到達所有子狀態的概率量相加之和等於它們的父狀態。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

最優策略



<figure data-size="normal">







<noscript>













</noscript>













</figure>

通過獨立的強化學習進行自博弈



IRL自博弈算法在不完美信息博弈中無法產生最優策略。



確定性最優策略



由於不完美信息下的最優策略可能必須是隨機的(推論17.1),因此自博弈無法收斂的原因可能是它在每個時間步都產生了確定的最佳響應策略。但即使在存在最優確定性策略的博弈中,最佳響應序列也可能無法收斂。



例子



<figure data-size="normal">







<noscript>













</noscript>













</figure>

Table 16.3 presents a modified rock-paper-scissors game with added action (W)ater. Water draws against all the actions, and both players playing water is an optimal policy in this game (there are other optimal policies). Sequence is then a best-responding sequence failing to converge in this game.



多智能體強化學習



單智能體強化學習方法在多智能體環境中缺乏理論保證,通常會產生高度可利用度的策略。



雖然我們通過允許算法在每個自博弈步驟完全收斂到最佳響應來簡化分析,但這種方法不能產生最優策略,即使智能體不那麼積極地改進它們的策略(例如使用少量的策略梯度或Q-learning步驟)。



虛擬博弈



「虛擬博弈」最佳反應對手的平均策略,而不是最後一個策略。











  • 設 表示玩家 到時間 的平均策略。虛擬自博弈序列就是 。








  • 對平均策略做出最佳反應具有重要的理論意義,因為平均策略組合隨後趨於最優。








  • 人們可以使用單智能體強化學習方法來近似個體的最佳反應。然後,「削弱虛擬博弈」,用一種越來越好的策略取代對平均策略的最佳反應。該算法的問題在於其收斂速度,其中所需的迭代次數可能呈指數增長。










Double Oracle Methods



與其使用最佳響應來產生自博弈序列,不如使用它來迭代構建和擴展要解決的矩陣博弈











  • Double-Oracle方法(McMahan et al.,2003)迭代地擴展了行和列玩家在t時刻要考慮的動作子集 。








  • 然後,通過線性優化等方法求解該限制的矩陣博弈 。接下來,兩個玩家通過考慮原始無限制的博弈 中的所有動作,計算出針對結果最優策略的最佳反應。








  • 然後將限制的博弈擴展為 ,重複該過程。








  • 當限制的博弈不再擴展時(當 時),Double-Oracle方法終止,關鍵結果是限制的博弈的最優策略也適用於原始博弈。










這種方法通常在限制的博弈比原始博弈小得多時終止。但在最壞的情況下,限制的博弈會完全恢復為原始博弈(即使支持集合的規模較小)。



然後,策略空間化的響應預言器(PSRO)將此思想擴展到難以計算最佳響應的大型遊戲中,並使用強化學習方法來近似最佳響應。



限制博弈由神經網絡表示的單個的策略組成,稱為元博弈。這種方法現在有多種並行且有效的變體(McAleer等人,2020年)。此外,AlphaStar(遊戲《星際爭霸II》的人工智能)基於類似的方法構建,最終推出了888行和888列的元博弈(Vinyals等人,2019a,b)。



最後,Double-Oracle方法可以有效地推廣到序列設置(Bosansky等人,2014)。與PSRO的結合在序列表示中產生了有效的PSRO方法(McAleer等人,2021年)



離線求解Ⅱ-後悔度最小化



後悔度最小化是一個一般的在線凸學習概念,其中agent在未知環境中反覆做出決策。後悔度衡量累積獎勵最佳的「與時間獨立的」動作事後會得到的獎勵之間的差異



雖然環境可能是對抗性的,因為每個時間步的獎勵向量可能取決於所選擇的動作,但仍有可能為後悔度的事後表現提供強有力的保證。



如果後悔度呈次線性增長(平均後悔度收斂到零),則稱算法是「Hannan consistent」的。



當用於自博弈時,後悔度最小化與博弈本身有着優雅而重要的聯繫。



在自博弈中,可以使用對手的策略計算獎勵向量,然後兩個玩家使用後悔度最小化選擇下一個策略。然後可以證明玩家的平均策略是 ε -最優的,ε 不大於玩家平均後悔的總和。當平均後悔度收斂到零時,平均策略收斂到最優。



設置



我們考慮的Regret: External regret with a comparison class of all the actions.



<figure data-size="normal">







<noscript>













</noscript>













</figure>

後悔度最小化算法



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

「一直出石頭」



<figure data-size="normal">







<noscript>













</noscript>













</figure>

簡單地貪婪



<figure data-size="normal">







<noscript>













</noscript>













</figure>

這並不是一個很大的改進,因為我們需要為漢南一致性提供次線性的後悔度。結果表明,為了保證次線性後悔度,有必要產生隨機策略



Hedge



Hedge算法:基於加權大多數算法的參數化算法,選擇與後悔度的指數成正比的動作。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

後悔度匹配



後悔度匹配:一個人只是按照動作的正的後悔度在所有動作中的比例來執行一個動作。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

與納什均衡的聯繫



平均後悔度 和ϵ-納什均衡之間具有顯著聯繫



<figure data-size="normal">







<noscript>













</noscript>













</figure>

算法5:矩陣形式博弈中的自博弈後悔度最小化( 是收益矩陣)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

收斂性分析



平均後悔度 與自博弈的平均策略的最優性之間存在至關重要的聯繫。



由於後悔度本質上衡量的是我們可以改進多少,而自博弈中的後悔度是對手策略的函數,因此與 ε-納什均衡有直接聯繫



<figure data-size="normal">







<noscript>













</noscript>













</figure>

定理22將平均後悔度與平均策略的質量聯繫起來。因此,我們只需要一個具有次線性後悔度增長(Hannan一致性(平均後悔度收斂到零))的後悔度最小化,並且我們有一個可證明收斂到納什均衡的方法。



可能的邊界



一般化對抗情況:對於任何算法,都有可能構造一個平均後悔度收斂速度不能比 更快的對抗序列。



當環境不是嚴格對抗時,可以利用預測後悔框架中的結構。一個特別有用的結構是獎勵向量不隨時間劇烈變化時——逐漸變化。 當我們「控制」雙方時,可以在自博弈中利用逐漸變化的想法。 獎勵向量不太可能發生劇烈變化,因為智能體的策略只是逐漸變化。 然後在預測後悔框架中使用該結構,我們預測下一個獎勵向量。 預測越好,收斂越快,並且存在收斂速度為 的預測後悔度算法。 然後,此速度對於自博弈設置是最佳的,因為它與相應的下限匹配。



交替更新



同步更新



當我們在自我遊戲中應用後悔度最小化時,我們同時更新了兩個玩家。玩家使用後悔度最小化生成他們的策略 ,然後用於計算當前後悔度。這被稱為同步更新。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



自博弈中的後悔度最小化-同步更新。兩個玩家同時更新他們的策略,後悔度更新是對稱的,因為它對兩個玩家的更新是使用相同的策略對的。







</figcaption>







</figure>

交替更新



還有另一種選擇——交替更新——我們會一個接一個地更新玩家。我們使用 為一個智能體運行後悔度最小化步驟,產生 。然後,該策略用於另一個智能體的後悔度最小化步驟,其中當前後悔基於 。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



自博弈中的後悔度最小化-交替更新。玩家一個接一個地更新策略,其中一個玩家的後悔度更新使用的「策略對」與對手不同。







</figcaption>







</figure>

例如 來自於 , 來自於



對於同時更新,兩個智能體的遺憾更新基於 序列。對於交替更新,一個玩家使用 ,而另一個玩家使用 。



因此,自博弈中的交替更新是不對稱的——獎勵向量的計算並不像同步更新那樣對稱。



一個重要的警告是定理22隻適用於同步更新,因為交替更新的黑盒後悔度最小化可能無法收斂。必須使用關於後悔度最小化器的附加假設來恢復收斂保證。幸運的是,後悔度匹配就是這樣一種後悔度最小化方法。



反事實後悔度最小化



在矩陣博弈中,我們計算了對回顧中最好的行為的後悔度。換句話説,我們比較了所有可能的純策略。但在序列設置中這意味着什麼?正如我們所知道的,我們總是可以轉換成矩陣博弈。雖然這是可能的,但由於指數級規模的爆炸,這是非常不切實際的。











  • 幸運的是,在序列形式的博弈中,可以直接最小化後悔度。








  • 反事實後悔度最小化(CFR)全部後悔度分解為每個信息狀態的單個小後悔度(反事實後悔度)。








  • 然後,我們可以用所有這些部分後悔度的總和來限定總後悔度,從而使我們能夠獨立地最小化這些部分後悔度。這樣就有可能將後悔度最小化的思想從序列博弈推廣到凸序列決策的更一般情況










反事實價值



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

反事實後悔度



<figure data-size="normal">







<noscript>













</noscript>













</figure>

關鍵的結果是:一個人可以用正的反事實後悔度之和來限制全部的後悔度



<figure data-size="normal">







<noscript>













</noscript>













</figure>

它將全部後悔度分解為立即後悔度的總和,並允許我們獨立地最小化立即狀態後悔度(例如,使用後悔度匹配)。此外,計算反事實價值、計算後悔度和更新可以通過單個樹遍歷完成。



單個部分後悔度分解的思想可以推廣到凸集的序列決策過程。



平均策略



結合定理23和定理22可以保證,如果我們在每個信息狀態中使用Hannan一致後悔度最小化,平均策略收斂到最優。



在平均過程中,不能忘記根據當前到達概率行為策略進行適當加權。



反事實最佳響應



<figure data-size="normal">







<noscript>













</noscript>













</figure>

表示的是玩家i被其他玩家Best Response後得到的反事實價值



公共樹實現



CFR算法迭代地:











  1. 使用單獨的狀態的反事實後悔度生成策略








  2. 計算反事實價值並更新後悔度








  3. 對策略進行平均










一個這樣的迭代可以通過單個博弈樹遍歷有效地實現,其中遍歷將到達概率發送到樹下(用作等式 17.6 中 的到達權重)並將價值向上傳遞(使用公式 17.6 對價值進行反向傳播)。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



CFR的公共樹實現通過遍歷公共樹,並將到達概率沿樹向下傳播,將反事實價值沿樹向上傳播。







</figcaption>







</figure>

一旦我們在CFR算法中使用價值函數公共樹的實現將是非常有益的。



請注意,公共樹遞歸遍歷使用公共狀態的所有狀態的到達概率和反事實價值進行操作(上圖),這對於價值函數的使用特別有用。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

CFR+



CFR+極大地改進了最先進的方法,並已被用於解決德州撲克的限制。



CFR+以三種方式修改普通CFR:











  1. 使用後悔度匹配+








  2. 使用交替更新








  3. 使用策略的線性平均值










<figure data-size="normal">







<noscript>













</noscript>













</figure>

MCCFR



當CFR方法在每次迭代中遍歷整個博弈樹時,蒙特卡羅方法對所有此類軌跡的子集進行採樣。



從技術上講,蒙特卡羅CFR(MCCFR)是一系列算法,由終止歷史序列 的劃分 定義,在每次迭代中對塊 進行採樣,僅更新該塊相關的信息狀態。結合適當的重要性抽樣校正項,可以保證價值和更新在預期上與CFR中的相同,並得出後悔度的概率界限。



這有一個明顯的好處,即每次迭代的速度要快得多,但我們必須付出的代價是,由於採樣引入的方差,這些值是有噪聲的。較小的塊 提供更快的迭代和更高的方差。因此,不同的採樣方案基本上平衡了每種速度的迭代和方差。



結果採樣



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

收斂速度



MCCFR方法的收斂速度通常比它們的全樹遍歷方法慢(即使在比較時考慮到更快的迭代時間)。抽樣變量的主要問題是,它們引入的方差可能會對長期收斂產生顯著影響。



Variance Reduced-MCCFR



方差縮減的MCCFR:其思想是估計未採樣動作的價值,並使用控制變量技術確保動作價值的期望值保持無偏,而不管估計價值如何。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



方差縮減MCCFR(VR-MCCFR)和相關方法的高級概述。







</figcaption>







</figure>

方差縮減MCCFR(VR-MCCFR)和相關方法的高級概述。a) CFR在每次迭代中遍歷整個樹。b) MCCFR對軌跡進行採樣,並僅計算採樣動作的值,而偏離軌跡的動作被視為零值。雖然MCCFR使用重要性抽樣權重來確保值無偏,但抽樣引入了高方差。c) VR-MCCFR遵循與MCCFR相同的採樣框架,但對採樣動作(藍色)和偏離軌道動作(紅色)使用基線值。這些基線使用控制變量,並發送自舉估計,以減少每次迭代的方差,從而加快收斂速度。



控制變量



<figure data-size="normal">







<noscript>













</noscript>













</figure>

基線增強估計價值



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

基線的選擇



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

和RL中的基線方法的關係



<figure data-size="normal">







<noscript>













</noscript>













</figure>

離線求解Ⅲ-近似和抽象方法



抽象方法



第一種方法是簡單地使用表格方法,但將這些方法應用於較小的抽象博弈(下圖)。希望是,如果抽象的博弈策略與完整博弈相似,那麼最終的策略將近似於最優解。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

完整博弈(a)首先被抽象為一個較小的、可處理的、限制博弈(b)。然後通過表格離線方法求解抽象的博弈,生成限制博弈上的策略(d)。為了play原始博弈,我們需要將抽象博弈上的策略轉換為完整博弈上的策略(c)。「翻譯」的問題出現了,因為在抽象的博弈中必然有更少的狀態。



理想的情況是無損抽象(Gilpin和Sandholm,2007),但這對於通常解決儘可能大的抽象的大型遊戲是不可能的。但是更大的抽象並不一定會導致原始博弈中更好(更低的)的可利用度。更令人驚訝的是,即使一個抽象嚴格來説更細粒度,情況也可能並非如此(Waugh et al.,2009)。但在實踐中,更大的抽象往往會產生更強的策略(Johanson,2016)



翻譯問題



抽象只能包含動作的一個子集,而誤解了其中的許多動作。



軟翻譯試圖在抽象的臨近的狀態之間插入策略(Schnizlein等人,2009)。但軟翻譯在很多方面只是對子彈傷口的創可貼。Local best response甚至能夠以巨大的間隔利用最好的抽象方法智能體(Lisy和Bowling,2017)。



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



國際象棋的抽象方法要求構造一個抽象博弈(b),然後在原始博弈(a)和抽象博弈(b)之間映射狀態和動作。







</figcaption>







</figure>

局部最佳響應



局部最佳響應(LBR)表明,由於翻譯問題,即使是基於最佳抽象的無限制撲克智能體,也可以通過相對簡單的技術以大優勢利用(Lisy和Bowling,2017)。



由於無限注撲克牌大型博弈中精確的最佳響應值難以確定,因此局部最佳響應通過近似最佳響應策略來近似該值。











  • 通過固定對手,環境成為一個單智能體環境,其中最佳響應是最優策略(Bowling,2003),因此我們可以使用任何單智能體算法來找到(或近似)此類策略。結果策略的性能作為智能體可利用性的下限








  • 局部最佳響應使用帶有撲克啟發式價值函數的小型搜索樹。








  • 在搜索樹中,它只向前看兩個動作(最多看對手的一個動作),只考慮可行動作的一個子集(例如fold,call,pot-bet)。








  • 對於其價值函數,當兩個玩家都跟隨call動作直到遊戲結束時,它使用預期的rollout值(對於德州撲克,可以高效準確地計算該值)。










<figure data-size="normal">







<noscript>













</noscript>













</figure>

非表格方法



解決表格法難以解決的博弈的另一個選擇是隱式表示策略和其他必要的值(例如後悔度)(例如使用神經網絡),依賴於網絡的泛化能力。



結合不必遍歷整個博弈樹的方法(例如MCCFR或VR-MCCFR),這種方法允許使用近似求解大型博弈的算法。



RCFR(Waugh等人,2015年)使用回歸樹,需要跟蹤一個比整個博弈大得多的數據集。這限制了這種方法在大型博弈中使用非表格方法時的實用性。



大型遊戲中非表格方法的前兩個成功例子是DeepCFR(Brown等人,2018a)和雙重神經網絡反事實後悔最小化(DNCFR)(Li等人,2018),它們都結合了深度學習和MCCFR,並在同一時間出版。



兩種算法都使用單獨的網絡來表示:











  1. 後悔度








  2. 平均策略










在線設置



重複博弈



<figure data-size="normal">







<noscript>













</noscript>













</figure>

在線算法



<figure data-size="normal">







<noscript>













</noscript>













</figure>

穩健性



<figure data-size="normal">







<noscript>













</noscript>













</figure>

搜索一致性



在完美信息博弈中,與「子博弈完美均衡」局部一致的算法是穩健的。



在不完美信息博弈條件下,即使算法與子博弈完美均衡一致,局部一致性也是不夠的







原論文中的案例有誤,所以不展示









搜索



要實現強全局一致性並非易事,因為我們必須跨信息狀態協調策略。



搜索技術使用的基本算法是反事實後悔度最小化。該算法特別適用於價值函數,因為它已經將全部後悔度分解為單個的部分信息狀態的後悔度之和。



<figure data-size="normal">







<noscript>













</noscript>













</figure>









  • 我們首先從一個單步搜索算法開始,該算法對當前子博弈進行推理(圖20.1a),類似於第8.1節的全前瞻在線minimax算法。全面的前瞻設置是我們處理一致性複雜性的地方。








  • 我們從不安全的重新解決開始,這是一種不穩健的方法,它激發了未來穩健方法的關鍵因素——約束反事實價值,以確保單個的局部一致性。








  • 然後將這些值用於另一個關鍵概念——重新求解博弈(和重新求解小工具),其中特定的小工具博弈保證產生滿足約束的子博弈。








  • 遵循論文的另一個貢獻,其中對小工具的特定修改允許提升(精煉)子博弈策略,同時仍確保強大的全局一致性。








  • 然後,我們將該算法擴展到多步,在遊戲過程中不斷使用安全的重新求解方法——持續重新求解算法。使用全前瞻進行持續重新求解,類似於全前瞻minmax搜索算法。主要的複雜性在於算法不斷更新用於安全重新求解過程的約束。








  • 然後,我們將該算法與廣義價值函數相結合,允許在CFR算法中使用有限的前瞻。這將導致最終的算法——使用有限的前瞻和價值函數進行連續解析(圖20.1c)。








  • 最後一個算法是本文介紹的所有構建塊的最終結果,它為不完美信息遊戲提供了一個安全的搜索算法。










完全前瞻不安全重新求解



在不完美信息中,子博弈的概念被定義為











  1. 公共狀態








  2. 玩家信息狀態的分佈










我們首先分析如果我們重新求解一個子博弈會發生什麼,在這個子博弈中,玩家初始狀態的分佈是使用整個博弈的最優策略計算的。



重新求解子博弈的過程如下:



<figure data-size="normal">







<noscript>













</noscript>













</figure>

的結果是否一致?這樣的算法穩健嗎?



它既失去了理論保證,又在經驗上產生了可利用性較高的策略。



案例



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

很容易驗證這個子博弈中的任何策略都是最優的。但是,儘管在子博弈中任何策略都是最優的,但在原始博弈中沒有任何策略是最優的。



因此,簡單地求解由先驗最優策略構造分佈的子博弈甚至不是局部一致的方法。這種方法也被稱為不安全的重新求解



為什麼會失效?



為什么子博弈的策略是最優的,而不是局部一致的?



當我們構造子博弈並求解最優策略時,我們允許對手在子博弈中做出最佳響應,但在到達該子博弈之前,我們使用最優策略固定了到達概率(子博弈初始分佈)。對手不能在這場子博弈之前改變他們的策略,也不能改變他們的到達概率。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

現在的問題是,對手在這個子博弈之前改變他們的策略,更頻繁地達到他們的第二種狀態,並提高他們的總最佳響應值,這對他們是有利的。



價值的角度



在完美信息中,只存在一個對手的根結點狀態和一個我們希望最小化的對手的反事實價值。



在不完美信息中,存在對手的多個潛在狀態 和相應的價值向量 。那麼應該選擇什麼策略,策略 或 ?



固定初始信念提供了對這些單個價值的加權,從而使單個加權值最小化。但隨着權重(到達概率)的變化,結果值也會發生變化。



安全重新求解



安全的重新解決方法確保對手不能通過改變其到達概率來增加其子博弈價值



為了防止這種情況,我們需要在子博弈中找到一個策略,其中對手的單個反事實價值保持與整個博弈的原始最優策略相同(甚至(對當前玩家來説)更好,不大於原始策略)。



這樣就保證了具有重新求解價值的策略的強全局一致性



<figure data-size="normal">







<noscript>













</noscript>













</figure>

安全重新求解生成一個策略,該策略 的含義是對手的反事實價值。 請注意,這始終是可能的,因為我們正在重新求解的原始最優策略滿足此約束



最優化問題形式化



<figure data-size="normal">







<noscript>













</noscript>













</figure>

小工具形式化



其思想是仔細構造一個博弈,由此產生的最優策略保證滿足約束。 從技術上講,我們將構造一個小工具博弈,其中小工具博弈的最優解和所需策略之間存在一個平凡的映射。











  • 構造的核心是在子博弈的頂部插入一個小工具(通常稱為「CFR-D小工具」)。它從一個chance node開始,該結點首先將對手分配到其根信息狀態結點








  • 然後,對手可以選擇(在每個信息狀態下)是否終止並接收約束值,還是繼續玩原始的子博弈








  • 這種巧妙的構造迫使玩家進行子博弈,以使對手的價值不大於相應的終止價值。










小工具博弈公式的美妙之處在於,它只是構建了一個與子博弈大小相似的新博弈。這允許我們使用任何算法來解決不完美信息博弈,例如,CFR系列的任何方法



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



a)小工具博弈是為特定的公共子博弈構建的,構建需要:i)玩家的到達概率 ii)對手的反事實價值 b) 對手首先開始遊戲,然後在每個信息集中選擇是(t)終止並接收約束價值,還是(f)跟隨並繼續玩原始子博弈。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



a) Sub-game of rock-paper-scissors. b) CFRD gadget for re-solving the sub-game. Note that the zero values for the (T)erminate action come from the optimal solution.







</figcaption>







</figure>

注意:(T)終止動作的價值0來自最優解。



Stackelberg 均衡



小工具構造的相同想法最近也被推廣到Stackelberg均衡解概念中。



首先,它表明可以使用精心構造的上界和下界約束(與上界相比)實現Stackleberg均衡的安全重新求解。



其次,它為下限約束引入了修改的小工具構造(並為上限約束使用「CFRD小工具」構造)。



CFR-D



CFR-D算法將博弈樹分解為主幹博弈和子博弈,僅為主幹博弈進行存儲和平均化策略











  • 在每個CFR迭代過程中,單個子博弈(使用當前CFR策略定義的到達分佈)被求解,策略被丟棄,只返回單個價值。因此,主幹計算使用一種有限步前瞻價值函數的形式。








  • 在博弈期間,CFR-D只使用存儲的主幹策略,直到它到達其中一個子博弈。 由於子博弈策略從未顯式存儲,CFR-D然後使用CFR-D小工具按需重新求解子博弈。










這種分解最初是出於克服內存限制的需要,本質上是以時間換取內存



子博弈精煉



<figure data-size="normal">







<noscript>













</noscript>













</figure>

子博弈精煉框架:











  1. 博弈的策略是使用粗粒度抽象預先計算的








  2. 在博弈過程中,一旦我們到達定義足夠小的子博弈的節點,我們將精煉該子博弈的策略








  3. 這與主幹的原始策略一起創建一個組合策略。重點是生成改進的組合策略










長期以來,最先進的方法只是為博弈的簡化(抽象)版本預先計算最優解(第18.1節)。當智能體play博弈時,它只是根據這個預先計算的策略執行動作。但隨着博弈接近尾聲剩下的子問題要麼變得容易處理,要麼可以對子博弈進行更細粒度的抽象



一個吸引人的想法是為子博弈計算一個新策略,精煉原始策略(上圖)。人們可以使用CFR-D小工具來保證這種方法的「穩健」性。



但是,即使可以在更細粒度的抽象中做得更好,CFR-D小工具也沒有足夠的理由這樣做——它只能保證恢復原始解。也就是説,在細粒度抽象中得到的策略保證不比基於粗抽象的原始策略差



子博弈間隔



雖然CFR-D小工具恢復了原始策略,但「最大間隔」旨在對其進行改進,由此產生的改進在某種意義上是最優的。



子博弈間隔:對應於原始策略的價值新策略的反事實最佳反應價值之間的間隔



<figure data-size="normal">







<noscript>













</noscript>













</figure>

最壞情況下的表現與間隔的值密切相關。如果它是非負的,那麼新的策略保證不會比原來的策略有更高的可利用度。 而且,假設對手的最佳反應以非零概率到達子博弈,則針對該最佳反應的性能將得到改善,並且該改善至少與子博弈的間隔成正比(可能更大)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

一旦我們進入子博弈,我們就改進了策略,我們要麼面對對手的最佳反應,要麼面對對手在遊戲早期犯下的錯誤。 此外,達到子博弈的概率與 成正比。



最優化形式化



<figure data-size="normal">







<noscript>













</noscript>













</figure>

這裏



小工具博弈構建



<figure data-size="normal">







<noscript>













</noscript>













</figure>

a) CFR-D 小工具:每個根狀態下的對手 選擇(T)終止,接收上界值 或繼續玩子博弈(F)。 b) 最大間隔小工具:對手選擇一個信息狀態 開始,終止結點價值被調整為0,以便使原始策略下的價值均為零。



我們通過對原始子博弈進行兩次修改來創建小工具博弈。











  1. 我們使用 改變對手的效用,將所有狀態價值初始化為零








  2. 我們在子博弈頂部添加對手節點,然後添加chance node,允許對手選擇任何起始狀態。










我們將通過在相應的符號中添加波浪線來區分小工具博弈的狀態、策略、效用等。 以下是這些步驟的詳細説明(另請參見上圖,其中可視化了構建的最大間隔小工具)



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

完全前瞻持續重新求解



顧名思義,該算法不斷地對遊戲過程中訪問的狀態執行重新求解步驟。因此,持續重新求解需要使用和更新單個重新求解步驟所需的不變量。這些不變量在遊戲軌跡上更新,因為基於先前狀態的完整前瞻包括當前遊戲狀態及其所需價值



更新不變量



回想一下,重新求解步驟需要以下不變量











  1. 玩家的到達概率








  2. 對手的反事實價值








  3. 首先注意,對於博弈的第一個狀態,不需要重新求解,我們可以簡單地求解初始博弈並存儲結果。








  4. 對於在博弈過程中訪問的狀態,我們構建了一個子博弈,該子博弈以當前公共狀態作為根結點,並使用相應的不變量進行重新求解。








  5. 不變量從前面的前瞻樹中檢索,因為它一定包含當前訪問的狀態。然後重複此過程,直到遊戲結束。










<figure data-size="normal">







<noscript>













</noscript>













</figure>

持續重新求解: a)在博弈的第一個狀態下運行求解。 b)重新求解步驟針對玩家要執行動作的下一個狀態執行。為了運行重新求解,我們使用「對手的價值」和「玩家的到達概率」構建了重新求解博弈。由於前一步驟中的前瞻包括該狀態,因此前一計算包括這兩個量。 c) 我們繼續運行重新求解,以便玩家以相同的方式處理接下來的所有節點



<figure data-size="normal">







<noscript>













</noscript>













</figure>

導致的策略



由於我們需要對公共狀態中的所有狀態進行推理,該算法為所有此類狀態生成策略,而不是當前的信息狀態(即,我們可能持有的所有撲克牌的策略)。儘管針對當前狀態以外狀態的策略對行動選擇沒有直接的幫助,但它們需要被用來使重新求解搜索「穩健」。它們也可以通過方差減少技術加以利用(例如,AIVAT)。



由於重新求解步驟使用小工具博弈,因此可以使用任何博弈求解方法。常見的選擇是使用CFR系列的一個成員,並且還使用蒙特卡洛變體分析了持續重新求解。



有限步前瞻和價值函數



由於公共樹的概念,前瞻樹和子博弈的分離是可能的,我們將展示公共樹CFR的一個簡單修改,它充分利用了子博弈的價值函數。



CFR和價值函數



考慮一下如果我們使用一個後悔度最小化器來遍歷前瞻樹的所有狀態,並且使用一個後悔度為0的策略來實現子博弈的所有狀態(下圖)。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

CFR定理(定理23)保證了這種方法的收斂性。











  • 由於子博弈中的零後悔度策略對應於一個反事實的最佳反應,兩個博弈方對彼此的反應最佳,因此博弈最優。








  • 因此,在每次CFR迭代期間,我們可以在所有子博弈中簡單地使用最優策略。此外,CFR的向上傳遞只需要這些子博弈的值。








  • 為了在前瞻樹中運行CFR,每次迭代都不需要顯式地計算子博弈中的最優(零後悔度)策略,它只需要對應「子博弈的最優價值」——「價值函數」。








  • 之所以這是一個特別簡單的改變,是因為我們最初實現的CFR已經在公共狀態上運行。








  • 一個重要的細節是,「價值函數」返回的反事實價值需要是反事實最佳反應價值。這是因為價值函數返回最優策略下的價值,但我們需要進一步限制相應的最優策略-確保子博弈中每次迭代的後悔度都為零。幸運的是,產生零後悔度的最優策略並不困難,CFR算法已經產生了這樣的策略。










<figure data-size="normal">







<noscript>













</noscript>













</figure>

為子博弈的最優價值(這裏是對CFR算法的修改,注意:使用這裏的2行~4行替換算法6的11行~16行)



使用價值函數的持續重新求解



我們只需修改連續的重新求解,以便各個重新求解步驟使用有限的前瞻和廣義價值函數。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

持續求解: a)對遊戲的第一個狀態運行「有限的」前瞻性求解。 b) 重新求解步驟針對玩家要執行的下一個狀態執行。為了運行重新求解,我們使用「對手的反事實價值」和「玩家的到達概率」構建了重新求解博弈。如果前一步驟中的前瞻包括此狀態,則前一次計算中將包括這兩個量。 c) 我們繼續為玩家以相同方式執行動作的所有下一個結點運行重新求解。



價值函數



深度學習方法是學習和表示廣義值函數的自然選擇,但是我們應該如何訓練這些價值函數呢?應使用哪些訓練數據和損失?



最終目標是學習價值函數,以便搜索結果具有低可利用度策略。但可利用度是「搜索」和「價值函數」相互作用的複雜函數。由於這個問題在完美信息博弈中遠未得到解答,因此,目前對不完美信息案例知之甚少也就不足為奇了。



實驗



不精確價值函數:即從有着非零反事實後悔度的ϵ-最優策略產生價值的函數



我們使用具有不同迭代次數的CFR算法作為價值函數。這一點很重要,因為在實踐中,我們只能使用近似的價值函數



提高價值函數的質量(通過增加價值函數的CFR迭代次數),然後允許搜索更接近最優解。



局限性



目前,所提出的穩健搜索方法存在一些固有的局限性。重新求解步驟以及值函數對公共狀態 中的所有狀態進行推理。雖然這在穩健重新求解方法中是必要的,但在一些博弈中,這樣的狀態數量非常大。這些方法還需要明確的環境模型(即博弈樹)來運行搜索。最後,由於模型是離散的,它不能捕捉連續的動作空間。



DeepStack



搜索/重新求解步驟



<figure data-size="normal">







<noscript>













</noscript>













</figure>









  • 前瞻樹一直建立到下一輪(用於前翻牌圈和翻牌圈的信息狀態)或直到遊戲結束(用於轉牌圈和河牌圈)。








  • 這保證了前瞻包含了所有可能的下一個狀態,以便我們能夠在持續重新求解過程中正確地更新不變量。








  • 然後,DeepStack使用CFR和CFR+的混合用於策略計算——結合後悔度匹配、同步更新和平均策略的均勻分佈權重。此外,當平均策略和反事實價值時,它跳過了迭代的前半部分。其動機是早期迭代通常相對較差(特別是在無限制撲克的情況下)。跳過式迭代已經被證明是合理的,並且是一種常用的技巧。










<figure data-size="normal">







<noscript>













</noscript>













</figure>

Preflop Preflop used 2, 000 iterations, skipped 1, 000 of them and the lookaheadwas built until the beginning of flop. During the initial skipped iterations, theauxiliary preflop network (at the end of the preflop) was used to speed up thecomputation. This allows to use a single value function call for each state at theend of the preflop, rather than enumerating all the possible (isomorphic) 22, 100flops. For the final iterations that actually accumulate the the average strategyand counterfactual values, we did the expensive enumeration and flop evaluationsas we need the counterfactual values for continual resolving.



Flop Preflop used 1, 000 iterations, skipped 500 of them and the lookahead wasbuilt until the beginning of turn.



Turn Preflop used 1, 000 iterations, skipped 500 of them and the lookahead wasbuilt all the way until the end of the game. To speed up the computation, we used a bucketed abstraction for the river sub-games within the lookahead tree (the same bucketing as used for neural net representation described in Section 21.3.2).



River Preflop used 1, 000 iterations, skipped 500 of them and the lookahead was built all the way until the end of the game. No abstraction other than the sparse lookaheads were used as these river sub-games can be resolved relatively quickly.



前瞻中的動作抽象



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



(a) 重新求解包含在抽象中的狀態。我們只是簡單地使用該狀態的不變量。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



(b) 在對手做出稀疏前瞻中未包含的動作後重新求解狀態。由於遊戲的結構和DeepStack使用的前瞻,我們可以使用前一狀態的不變量。







</figcaption>







</figure>

<figure data-size="normal">







<noscript>













</noscript>













</figure>

DeepStack使用稀疏的前瞻樹,只考慮了所有可能動作的子集(每個信息狀態中幾乎有20000個動作)。



DeepStack利用遊戲的特定結構來正確計算這些不變量,即使當前狀態 未包含在稀疏搜索樹中。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

動作抽象分析



稀疏前瞻樹抽象的選擇只影響:











  1. 智能體可以執行的動作








  2. 下一個重新求解步驟中使用的反事實價值的質量










<figure data-size="normal">







<noscript>













</noscript>













</figure>

價值函數



使用深度全連接神經網絡表示價值函數。



由於博弈是零和博弈,因此反事實價值的到達加權和必須保持平衡(等式21.1)。 為了確保這一點,我們加入了額外的自定義層來重新分配「超額量」,確保網絡只產生零和價值。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

網絡特徵



為了簡化網絡的泛化任務,我們將單個撲克手牌(公共手牌和私人手牌的組合)上的分佈映射為桶/簇上的分佈。



這實質上壓縮了系統的狀態空間 卡片組合下降到使用的存儲桶數。對於turn和flop網絡,我們使用了1000個使用k-means聚類生成的簇,基於真實行動者在手牌的強度特徵上的距離。



人類評估



<figure data-size="normal">







<noscript>













</noscript>













<figcaption>



Figure 21.3: Win rate of DeepStack against the individual human players: AIVAT value with 95% confidence interval and number of hands per player. Thanks to AIVAT variance reduction, the result is significant for all but one individual player who finished the required 3, 000 hands







</figcaption>







</figure>

局部最佳響應評估



<figure data-size="normal">







<noscript>













</noscript>













</figure>

AIVAT 方差縮減技術



先前的方差縮減技術











  • 複製(或鏡像)手牌是一個簡單的想法,旨在減少運氣在幾率事件中的作用(Davidson,2014)。鏡像手牌法複製了玩家兩個位置的幾率事件。也就是説,在撲克遊戲中,智能體可以使用相同的幾率發牌(私人手牌和公共牌)玩兩個位置(大盲和小盲座)。(例如,同一副牌,分別多次在兩個位置玩)其動機是,如果一名玩家通過有利的發牌獲得「運氣」,則方差將減少,因為智能體也從不利的位置開始玩(注意,這種方法還將數據點的數量減半,作為一對結果,然後形成一個單獨的測量)。當涉及人類遊戲時,這當然是有問題的,因為我們需要重置智能體的記憶,以確保他們不能預測幾率事件。典型的解決方法是與人類配對,配對的人類在不同的房間裏玩時會得到重複的手牌(房間一:計算機對玩家一,房間二:計算機對玩家二)(Hedberg,2007)。這種配對方法確實在Claudico和Libratus事件中使用過。這種方法雖然簡單,但只提供了一點小小的改進。








  • 其次,虛擬觀測的重要性抽樣技術(Bowling等人,2008年)使用玩家策略的知識,用 中的兼容終止狀態的期望替換單一的終止狀態回報 ,並使用重要性抽樣校正。在撲克牌項目中,這將單手牌結果替換為智能體可以被發到的所有其他手牌的期望值,以及它們各自到達該終止公共狀態的概率(在撲克牌文獻中通常稱為「範圍評估」)。








  • 第三,MIVAT(White和Bowling,2009)等技術使用控制變量方法來減少幾率事件造成的方差。每一個幾率動作都與一個價值估計(基線)配對,從而得出軌跡上每一個幾率事件的修正項(就像VR-MCCFR一樣)。在撲克牌中,這些修正項基本上是為了否定幾率「運氣」的因素,例如,當智能體打到好/壞的發牌時。










AIVAT



<figure data-size="normal">







<noscript>













</noscript>













</figure>

(a) 蒙特卡羅估計使用單一抽樣結果 。 (b) 虛擬觀測的重要性抽樣考慮了所有可能的私有狀態的結果。 (c) MIVAT使用「帶有基線的單一結果」和「控制變量」來形成軌跡上每個幾率事件的校正項。 (d)AIVAT使用「假想觀察值」與『「幾率事件」以及「智能體決策」的校正項』相結合。



AIVAT(動作已知的價值評估工具,(Burch et al.,2018))結合了」虛擬觀測「和」控制變量「的技術。與MIVAT不同,它對幾率行為和智能體行為都使用基於」控制變量「的修正項。因為我們不知道對手的策略,所以對他們的動作沒有修正項。



我們在無限注德克薩斯撲克中比較了這些技術,使用了一個相對較小的抽象智能體,該智能體接受了MCCFR的基本策略訓練。然後將得到的反事實價值用作校正項的基線。



<figure data-size="normal">







<noscript>













</noscript>













</figure>

其他搜索智能體



Libratus











  • 在DeepStack之後不久,Libratus利用搜索擊敗了頂尖的人類職業玩家(Brown和Sandholm,2018)。Libratus基本上有兩個階段。








  • 當子博弈足夠小,可以進行推理時,Libratus會使用全前瞻和稀疏動作抽象來運行連續重新求解(作者將連續重新求解稱為「嵌套重新求解」,因為他們並行開發了該技術(Brown和Sandholm,2017))。不過在之前的幾輪,Libratus沒有使用有限步的前瞻和價值函數。








  • 與其進行搜索,它重新使用了以前的基於抽象的技術,其中預先計算的抽象策略稱為「藍圖」策略。










Modicum











  • 繼Libratus之後,作者提出了Modicum(Brown等人,2018b)。








  • Modicum取代了「藍圖」策略,並使用帶價值函數的有限前瞻搜索。使用手工設計的基於rollout的評估函數,而不是學習價值函數。








  • 此評估功能的優點是,它特別快速且易於評估。








  • 另一方面,它的保證性非常有限,必須為每個遊戲手動構造此評估函數










Supremus











  • Supremus 本質上是對 DeepStack 的重新實現,具有更大的神經網絡、更大的搜索樹和更多的訓練數據(Zarick 等人,2020)。








  • Supremus 隨後參與了 2021 年 Doug Paulk(被認為是世界上最好的單挑無限德州撲克專家)和 Daniel Negreanu(被公認為 2014 年十年最佳撲克玩家並擁有 贏得超過 42, 000, 000 美元)的公開比賽。 Doug Paulk使用 Supremus 幫助他制定策略,他最終贏得了大約 1200000 美元(Hedberg,2021 年)。








  • 由於不斷的重新求解和學習價值函數,最先進的智能體在幾年內從很容易被利用的簡單技術,發展至甚至擊敗了最好的人類玩家。










DeepRole











  • DeepRole是遊戲「the Resistance:Avalon」(一款多智能體隱藏角色遊戲)的智能體。其搜索算法結合了在公共狀態下運行的CFR、搜索和價值函數,訓練類似於DeepStack(Serrino et al.,2019)。










ReBeL











  • Rebel是一種最新的算法,可以被認為是「模擬」CFR-D(Brown等人,2020年)。








  • 雖然算法在重新求解過程中不必使用小工具,但它是有代價的。它對重新解決策略做出了非常強的假設,假設其訓練和評估階段完全匹配,即假設子博弈中的重新求解策略與主幹博弈計算期間產生價值的策略相匹配。換句話説,其使用「不安全重新求解」,而不是使用小工具,並假設生成的策略與最初生成子博弈價值的策略相匹配。這種強的假設還限制了算法在實際遊戲中使用不同的前瞻和思考時間(完美信息博弈中基於搜索的強大智能體的一個關鍵特性),因為它引入了訓練和評估階段之間的不匹配。








  • 因此,該算法與基於持續重新求解概念的智能體具有根本不同的屬性和假設,其中唯一的假設是價值函數的質量










"玩HMG娛樂城21點必知的訣竅,提升遊戲技巧"



玩HMG娛樂城21點必知的訣竅,提升遊戲技巧



21點是一種非常受歡迎的撲克牌遊戲,目標是在不超過21點的情況下,接近甚至等於21點。這裏有一些玩21點必知的訣竅,可以提升你的遊戲技巧。



訣竅1:掌握基本策略



在玩21點時,掌握基本策略是非常重要的。 立即登入 。例如,如果底牌是2到6之間的數字,而你手上的牌總和是12到16之間,則建議你要求抽牌。經過研究和實踐,你可以學會不同情況下的最佳基本策略。



訣竅2:不僅看自己的牌



在21點中,不僅需關注自己的牌,還要關注其他玩家的牌和底牌。觀察其他玩家抽到的牌和他們的行動可以幫助你做出更明智的決策。同樣地,觀察底牌可以幫助你推測出經銷商手中的牌,從而作出更好的選擇。



訣竅3:管理你的賭注



在21點中,賭注管理非常重要。確定你的賭注大小,不要輕易改變它。如果你贏了一些回合,可以考慮增加賭注,但要謹慎行事。同樣地,如果你連續輸了幾回合,不要讓情緒影響你的判斷,避免哀莫大於心死。



訣竅4:學會計算牌



計算牌是21點中的一個重要技巧。通過記住已經出現的牌和計算剩餘的牌,你可以推測剩餘的牌堆,進而調整你的策略。儘管這需要一些實踐,但隨着經驗的積累,你可以改善你的計算牌的能力。



訣竅5:不要貪心



在21點中,貪心是一個常見的錯誤。如果你手上的牌已經很接近21點,千萬不要再要求抽牌。這是因為補牌的風險很大,可能會使你超過21點。學會有節製地停止抽牌,這是贏得遊戲的關鍵。



結語



21點是一個刺激有趣的遊戲,掌握這些訣竅可以提高你的遊戲技巧。記住,關注基本策略、觀察其他玩家和底牌、管理賭注、學會計算牌,同時不要貪心,這些都是成為21點大師的關鍵。祝你好運!



#HMG娛樂城21點 #HMG娛樂城德州撲克 #HMG娛樂城平台 #HMG娛樂城博弈