首頁 > 科技

AI殺入鬥地主,快手DouZero對標AlphaZero,幹掉344個AI獲第一

2021-06-18 15:51:48

夢晨 發自 凹非寺量子位 報道 | 公眾號 QbitAI

AlphaGo在圍棋界大殺四方時就有人不服:有本事讓AI鬥地主試試?

試試就試試。

快手團隊開發的鬥地主AI命名為DouZero,意思是像AlphaZero一樣從零開始訓練,不需要加入任何人類知識。

只用4個GPU,短短几天的訓練時間,就在Botzone排行榜上的344個鬥地主AI中排名第一

而且還有線上試玩(連結在文章最後),手機也能運行。

線上試玩中演示的是三人鬥地主,玩家可以選擇扮演地主、地主的上家或下家。

選擇當地主來玩玩看,可以開啟顯示AI手牌功能,更容易觀察AI決策過程。另外可以設定AI考慮時間,預設是3秒。

在AI的回合,會顯示面臨的決策和每種打法的預測勝率。

有時可以看到AI並不是簡單的選擇當前勝率最高的打法,而是有更全局的考慮。

鬥地主對AI來說,很難

從博弈論的角度看,鬥地主是「不完全資訊博弈」。

圍棋是所有棋子都擺在棋盤上,對弈雙方都能看到的完全資訊博弈。

而鬥地主每個玩家都看不到其他人的手牌,對於AI來說更有挑戰性。

在棋牌類遊戲中,雖然鬥地主的資訊集的大小和數量不如麻將,但行動空間有10^4,與德州撲克相當,而大多數強化學習模型只能處理很小的行動空間。

鬥地主的所有牌型總共有27472種可能。

像下圖的手牌就有391種打法。

且鬥地主的行動不容易被抽象化,使搜尋的計算成本很高,像Deep Q-Learning和A3C等強化學習模型都只有不到20%的勝率。

另外作為不對稱遊戲,幾個農民要在溝通手段有限的情況下合作並與地主對抗。

像撲克遊戲中最流行的「反事實後悔最小化」(Counterfactual Regret Minimization)演算法,就不擅長對這種競爭和合作建模。

全局、農民和地主網路並行學習

首先將手牌狀態編碼成4x15的獨熱(one-hot)矩陣,也就是15種牌每種最多能拿到4張。

DouZero是在Deep Q-Learning的基礎上進行改進。

使用LSTM(長短期記憶神經網路)編碼歷史出牌,獨熱矩陣編碼預測的牌局和當前手牌,最終用6層,隱藏層維度為512的MLP(多層感知機)算出Q值,得出打法。

除了「學習者」全局網路以外,還用3個「角色」網路分別作為地主、地主的上家和下家進行並行學習。全局和本地網路之間通過共享緩衝區定期通訊。

△學習者和角色的演算法

DouZero在48個核心和4個1080Ti的一臺伺服器上訓練10天擊敗了之前的冠軍,成為最強鬥地主AI。

下一步,加強AI間的協作

對於之後的工作,DouZero團隊提出了幾個方向:

一是嘗試用ResNet等CNN網路來代替LSTM。

以及在強化學習中嘗試Off-Policy學習,將目標策略和行為策略分開以提高訓練效率。

最後還要明確的對農民間合作進行建模。好傢伙,以後AI也會給隊友倒卡布奇諾了。

柯潔在圍棋被AlphaGO擊敗以後,2019年參加了鬥地主錦標賽獲得了冠軍。

不知道會不會有AI「追殺」過來繼續挑戰他。

線上試玩:https://www.douzero.org

GitHub項目地址:https://github.com/kwai/DouZero

論文地址:https://arxiv.org/pdf/2106.06135.pdf

參考連結:[1]https://www.sohu.com/a/285835432_498635


IT145.com E-mail:sddin#qq.com