0
雷鋒網(wǎng) AI 科技評論按:在過去的兩三年中,我們經(jīng)常聽說人工智能在棋牌類游戲(博弈)中取得新的成果,比如基于深度強(qiáng)化學(xué)習(xí)的 AlphaGo 擊敗了人類世界冠軍,由 AlphaGo 進(jìn)化而來的 AlphaZero 還一并搞定了國際象棋和日本象棋;基于博弈論的冷撲大師(Libratus)也在無限注德州撲克比賽中擊敗了人類職業(yè)選手;今年在澳門舉行的 IJCAI 2019 上我們也發(fā)現(xiàn)了一篇斗地主 AI 論文。
不過,雖然這些團(tuán)隊各自做出了令人矚目的成果,但不管對于工業(yè)界還是學(xué)術(shù)界來說,都缺少一個迅速開發(fā)和測試棋牌類 AI 的環(huán)境。最近德州農(nóng)工大學(xué)胡俠帶領(lǐng)的華人團(tuán)隊就給出了他們的解決方案,開源了基于牌類游戲設(shè)計的強(qiáng)化學(xué)習(xí) Python 平臺 RLCard,在打包實現(xiàn)了多種牌類游戲算法的同時,也提供了中西方最流行的幾種牌類游戲環(huán)境(包括斗地主、麻將、21點、德州撲克、UNO等),致力于為強(qiáng)化學(xué)習(xí)提供一個統(tǒng)一、易用的開發(fā)和測試環(huán)境。雷鋒網(wǎng) AI 科技評論介紹如下。
具體來說,RLCard 實現(xiàn)了四種有代表性的強(qiáng)化學(xué)習(xí)算法:作為強(qiáng)化學(xué)習(xí)的代表算法的 DQN、作為帶有自我學(xué)習(xí)的強(qiáng)化學(xué)習(xí)的代表算法的 NSFP、反事實后悔最小化 CFR 以及深度反事實后悔最小化 DeepCFR。RLCard 中也帶有一個隨機(jī)智能體。
RLCard 中實現(xiàn)了八種牌類游戲環(huán)境:二十一點(Blackjack),三種德州撲克(簡化版德?lián)?Leduc Hold'em,有限制德?lián)?Limit Texas Hold'em 以及無限制德?lián)?No-limit Texas Hold'em ),斗地主,麻將,UNO 以及升級(目前升級游戲環(huán)境還在開發(fā)中)。
RLCard 安裝快速、使用簡單,提供大量的實例、文檔及 demo;提供人類與 AI,以及 AI 與 AI 間對戰(zhàn)的接口,支持并行加速。平臺設(shè)計遵循以下設(shè)計原則:
易于比較。在 RLCard 中的得到結(jié)果可以方便比較。不同的研究者會提出各種各樣的算法,RLCard 通過 AI 間博弈進(jìn)行性能評估。通過設(shè)置同樣的隨機(jī)種子,同樣的結(jié)果可以在多次實驗上復(fù)現(xiàn)。
易用。盡可能用簡單的接口產(chǎn)生游戲數(shù)據(jù),并且支持對游戲狀態(tài)編碼、動作編碼、獎勵函數(shù)設(shè)計、游戲規(guī)則的自定義。
可擴(kuò)展。盡可能最小化環(huán)境依賴,使得工具包維護(hù)簡單。新游戲遵循工具包的設(shè)計原則也可以方便加入。
對于游戲環(huán)境實現(xiàn),RLCard 平臺抽象并定義了這些游戲概念:玩家,比賽(Game),對局(Round),發(fā)牌者(Dealer),裁判(Judger)。游戲環(huán)境實現(xiàn)都通過這些概念對應(yīng)的類,這樣的相同的設(shè)計規(guī)范讓游戲邏輯更容易理解、更容易操作。別的牌類游戲也基本都可以符合這個結(jié)構(gòu),未來如果想要增加很容易。
作為對比,現(xiàn)有的強(qiáng)化學(xué)習(xí)庫多數(shù)都是單智能體環(huán)境的(比如 OpenAI Gym);近期雖然也有一些支持多智能體的環(huán)境(比如星際2),但它們并不支持牌類游戲。RLCard 專為牌類游戲設(shè)計,不僅是一些牌類游戲在強(qiáng)化學(xué)習(xí)庫中的首次實現(xiàn),也提供了簡單直觀的接口,便于強(qiáng)化學(xué)習(xí)研究。
在目前的學(xué)術(shù)文獻(xiàn)中,解決撲克游戲的最熱門的方法是反事實后悔最小化(Counterfactual Regret Minimization,CFR),以及它的各種變體,勝過了人類職業(yè)選手的冷撲大師(Libratus)使用的就是基于 CFR 的方法。不過,CFR 很消耗計算資源,因為它需要完全遍歷整個游戲樹,所以它也不適用于斗地主之類的狀態(tài)空間很大的游戲。
近期也有研究表明,強(qiáng)化學(xué)習(xí)策略可以在打賭類的博弈中取得很好的表現(xiàn),比如玩斗地主就玩得不錯。這些美妙的成果,以及強(qiáng)化學(xué)習(xí)本身的靈活性都讓我們有可能探索狀態(tài)空間、行動空間更大的更困難的牌類游戲。
RLCard 使用簡單,輸入 pip install rlcard 可快速安裝。安裝完成后,用以下 5 行代碼就能用隨機(jī)的智能體產(chǎn)生對局?jǐn)?shù)據(jù),返回的數(shù)據(jù)可直接用于強(qiáng)化學(xué)習(xí)算法訓(xùn)練。
另外,RLCard還提供了豐富的的運行實例,包括產(chǎn)生隨機(jī)數(shù)據(jù),訓(xùn)練CFR、DQN、NFSP等算法,以及多進(jìn)程運行實例。
RLCard 提供人機(jī)對戰(zhàn) demo。RLCard 提供 Leduc Hold'em 游戲環(huán)境的一個預(yù)訓(xùn)練模型,可以直接測試人機(jī)對戰(zhàn)。Leduc Hold'em 是一個簡化版的德州撲克,游戲使用 6 張牌(紅桃 J、Q、K,黑桃 J、Q、K),牌型大小比較中 對牌>單牌,K>Q>J,目標(biāo)是贏得更多的籌碼。與預(yù)訓(xùn)練模型對局展示如下:
除此之外,開發(fā)團(tuán)隊還對 RLCard 做了系統(tǒng)的評估。他們測試了最流行的強(qiáng)化學(xué)習(xí)算法在環(huán)境上的表現(xiàn)。測試方法包括與隨機(jī)策略的比較以及 AI 間互相對戰(zhàn)的比較。發(fā)現(xiàn)主流算法在小型游戲上普遍有較好的效果,但是在較復(fù)雜游戲(例如斗地主、UNO)效果一般。如何在復(fù)雜的游戲中更好地訓(xùn)練強(qiáng)化學(xué)習(xí)算法需要更多的研究。
團(tuán)隊也對游戲運行的效率進(jìn)行了評估。在 24 核 2.10GHz CPU 服務(wù)器上對各個游戲的運行時間進(jìn)行了測試,使用多進(jìn)程可以更高效地產(chǎn)生游戲數(shù)據(jù)。
目前 RLCard 的官網(wǎng)已經(jīng)上線,其中提供了詳細(xì)的文檔。學(xué)術(shù)論文也已經(jīng)發(fā)表在 arXiv,第一作者為查道琛。詳細(xì)信息可以訪問下面的鏈接:
官方網(wǎng)站:http://rlcard.org
未來,作者們還會繼續(xù)優(yōu)化和增強(qiáng)這個平臺,他們的計劃包括增加基于規(guī)則的智能體、增加更多預(yù)訓(xùn)練模型(幫助評價模型),增加更多游戲環(huán)境和算法,以及增加可視化和分析功能等。相信這個環(huán)境能對領(lǐng)域內(nèi)的研究人員們起到很大幫助。
感謝查道琛、胡俠對文本提供的幫助。雷鋒網(wǎng) AI 科技評論報道。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。