雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

機器之心原創

作者:思、一鳴

也許我們以後能拜 AI 為師學習打麻將,成為雀壇冉冉升起的一代新星?

麻將無疑是我國最家喻戶曉,老少咸宜的一項棋牌遊戲。近年來,隨著人工智能在圍棋、德州撲克、Dota、星際爭霸等眾多遊戲中獲得亮眼的成績,AI 在麻將領域卻一直缺少跨越性的突破。 最近,由微軟亞洲研究院開發的麻將 AI 系統 Suphx 成為首個在國際知名專業麻將平臺「天鳳」上榮升十段的 AI 系統,這是目前 AI 系統在麻將領域取得的最好成績,其實力超越該平臺公開房間頂級人類選手的平均水平。

在今天剛開幕的上海世界人工智能大會上,微軟全球執行副總裁沈向洋也正式對外宣佈,微軟亞洲研究院創造出號稱歷史上最強大的「麻將 AI」AI Suphx,實力媲美頂級人類選手。

雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

其實今年 Dota 與星際爭霸那樣的遊戲突破,更多的是一種綜合能力,不僅有策略,同時還有操作和執行層面的能力。而麻將等棋牌遊戲更多是純智力與策略,因此它的突破更困難一些。微軟亞洲研究院副院長劉鐵巖表示:「可以說 Dota 這類遊戲更「遊戲」,而麻將這類棋牌遊戲更「AI」。」

微軟 Suphx 麻將 AI 有多強

日本在線麻將競技平臺「天鳳」因其完善的競技規則、專業的段位體系,成為了業界知名的高水平專業麻將平臺。平臺目前有全球近 33 萬名麻將愛好者參與,其中不乏大量的專業麻將選手。 微軟亞洲研究院開發的麻將 AI 系統 Suphx(Super Phoenix,意為「超級鳳凰」)於 2019 年 3 月登陸天鳳平臺,在 AI 被允許參與的公開競技房「特上房」與人類選手展開了 5000 餘場四人麻將對局。6 月,Suphx 成功晉級十段,成為特上房中段位最高的選手之一,也是首個達到天鳳十段的 AI 系統。

這一段位僅次於最強的天鳳位,而目前平臺上僅有的 14 位天鳳位選手都是在只有人類才被允許進入的私有房間「鳳凰房」(鳳凰房和特上房的計分方式不同)裡晉級天鳳位的。據悉,鑑於 Suphx 的卓越表現,天鳳平臺正在討論是否可以破例讓它進入鳳凰房。一旦如此,Suphx 問鼎天鳳位或許指日可待。

雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

Suphx 的排名位居天鳳平臺十段之列。

天鳳平臺通過計算穩定段位(Stable Rank)來衡量玩家的實力水平,在經過多場對局後依然能保持高而穩定的段位是非常不易的。在 5000 餘場對局中,Suphx 的穩定段位超過了 8.7,是一個極高的數字。

據統計,即使是天鳳平臺的所有頂級人類選手在取得十段後的整體穩定段位也僅為 7.4。Suphx 在特上房的穩定水平與所有取得過天鳳十段的頂級人類玩家相比要領先約 1.3 個段位,足見這個 AI 的實力非凡。

雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

這樣的雀神 AI 是怎樣煉成的呢?這要從麻將所處的不完美信息遊戲說起。

下棋打牌玩麻將

從圍棋到德州撲克,再到麻將 AI,這幾年機器學習已經在「拼智力」這條路走了很遠。

以前圍棋的難主要體現在狀態空間非常複雜,19×19 的棋盤上每一個位置都有「黑、白、無」三種狀態,這樣的複雜度差不多是 10^172。2017 年,AlphaZero 利用蒙特卡洛樹搜索 和深度強化學習,成功解決了包括圍棋在內的多個完美信息遊戲。

既然完美信息博弈已經難不倒智能體了,那麼該探索探索不完美信息了。在 NIPS 2017 的最佳論文中,「冷撲大師」提出了一種新型子博弈求解技術,它在一對一無限注德州撲克中打敗了頂尖人類選手。在今年 7 月份,冷撲大師的進化版「Pluribus」在六人不限注徳撲上打敗了職業玩家,並通過限制搜索深度而大大降低算力需求。

不過德州撲克每個人只有兩張隱藏手牌,它的隱藏信息並不是很多。那麼機器學習能不能挑戰隱藏信息更多的遊戲,運氣程度更大的遊戲?從橋牌到麻將,微軟已經在非完美信息博弈上做了很多研究,這一個維度還有很多值得探索的問題。

如下展示了不同遊戲的兩種複雜度,其中信息集數目表示遊戲可觀察狀態的多少,而信息集平均大小則表示隱藏性的多少。

雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

劉鐵巖博士表示:「如果我們沿著不可見的隱藏信息維度,再極致化地推演遊戲的發展,就會發現目前的遊戲 AI 技術還有很大的發展空間,需要更多全新的技術。」

從完美到不完美信息博弈

當博弈是完美信息時,只要算力足夠多,那麼肯定就能通過搜索的方式找到最優的策略。

我們可以利用搜索樹來理解這一過程,例如棋手每一步棋可以看作選擇一個子節點,那麼整盤棋一定可以表示為某條路徑,現在 AI 要做的就是選擇能帶來勝利的路徑。如下是最為經典的一種搜索樹,AI 在每一個狀態都希望最小化對手的最大收益。

雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

劉鐵巖博士說:「即使是圍棋那種狀態空間非常複雜的遊戲,只要在搜索過程中加一些指導、做一些剪枝,就能在有限算力的情況下找到很好的決策。」 現在再看看德州撲克與麻將等不完美信息博弈,它們和圍棋有很大的不同。因為參與者互不知道對方的底牌是什麼,所以 AI 基本上沒法向前推演。尤其是在參與者只知道幾張牌,周圍缺失信息遠遠超過已知信息時,模型差不多隻能靠「預測」。對於這樣的遊戲,核心技術就不再是樹搜索,而是需要在某種預測的指導下做決策。 「完美信息博弈與不完美信息博弈,它們最基本的指導思想有著很大的差別。」劉鐵巖博士說,「在信息不完全的情況下,更重要的是去做預測而不是簡單地搜索。」 除了底牌和對方手牌不可見以外,麻將的遊戲順序也存在很大的不確定性。想象一下,象棋圍棋都是一手一手輪著來,然而麻將天生就有「吃碰槓」,它會隨機打亂遊戲的順序。這種情況下,麻將的遊戲樹是很不規則的、且動態變化的,我們無法判斷什麼時候搜索就跳到了另一個區域,因此傳統的樹搜索就很難真正起作用。所以我們需要新技術來做預估和預測。

這樣看來,儘管圍棋或麻將對於人類而言只是玩法不一樣,但完美信息與不完美信息對強化學習智能體的影響還是非常巨大的。

麻將 AI 都能怎麼做

既然麻將與圍棋 AI 在本質上有很多不同,那麼以前這個任務都是怎樣解決的?早期的麻將 AI 會人為地把領域知識編碼到遊戲 AI 的程序裡。後來隨著深度學習、強化學習的流行,人們開始研究利用它們來自動學習和強化遊戲 AI 的能力。微軟的 Suphx 就是基於深度強化學習,同時還發明瞭很多針對非完美信息博弈的新技術。

但是這裡有一個問題,前面都是從博弈論的角度討論圍棋和麻將,而如果我們要使用博弈論與強化學習解決麻將遊戲,那麼它們之間的關係又是什麼樣的?

劉鐵巖博士表示,博弈論是一個比較廣的概念,現實中有很多策略都是通過博弈論設計的。一般規則比較簡單的遊戲可以推導出最佳策略,只要智能體按照策略來玩遊戲就不太可能會輸。比如說在德州撲克的 2 人博弈中,我們可以通過納什均衡推導出最佳策略。

但是對於更復雜的麻將,博弈論一般只能作為框架來指導智能體做自我博弈,或者作為指引來設計各種獎勵項函數。博弈論主要提供設計思想,沒辦法提供建模能力,因此我們需要強化學習這種可計算的方式找到更好的解決方案。

博弈論與強化學習的結合更像指導與實踐的聯合,兩者在打造麻將 AI 的過程中起著不同的作用。

Suphx 是如何打造的

前面已經介紹過非完美信息博弈的難點,然而除了非完美信息,麻將的狀態空間和獎勵機制都非常複雜。比如說獎勵機制,因為一輪遊戲包含 8 局,每一局得分通過和牌牌型與番數計算,最後 8 局的總分才會最終影響段位獎懲。而和牌牌型與番數的計算規則非常複雜,因此怎樣給智能體分配獎勵就非常重要了。

為了解決這些問題,微軟 Suphx 通過一系列新型強化學習算法,令智能體在具有策略學習能力的同時具備大局意識,從整輪遊戲的高度做出策略性的判斷。總體而言,Suphx 的技術創新主要分為以下三部分:

  • 自適應決策
  • 先知教練
  • 全盤預測
雀神,微軟亞研推出超級麻將AI Suphx,還上了專業十段水平

1. 針對巨大的狀態空間,Suphx 會對探索過程的多樣性進行動態調控,從而比傳統算法更加充分地試探牌局狀態的不同可能。另一方面,一旦某一局的底牌給定,其狀態子空間會大幅縮小,Suphx 也就能進行有針對性的調整。

因為麻將每一次洗牌都會有不同的牌面,所以智能體還要學會將以前的打牌經驗與本局的牌面聯繫起來,從而調整策略。研究團隊讓 Suphx 在推理階段根據本輪的牌局來動態調整策略,對縮小了的狀態子空間進行更有針對性的探索,從而更好地根據本次牌局的演進做出自適應的決策。

簡單而言,自適應決策會令智能體進行大量的學習後,在離線推理過程中還根據實際情況調整打牌策略,這樣才能適應不同的初始牌面。

2. 針對非完美信息博弈,Suphx 創新性地使用「先知教練」技術來提升強化學習的效果。其基本思想即在自我博弈的訓練階段利用不可見的一些隱藏信息來引導模型的訓練方向,使其學習路徑更加接近完美信息意義下的最優路徑。從而迫使 AI 模型更加深入地理解可見信息,並找到有效的決策依據。

也就是說在自我博弈的過程中,先知教練是可以「窺探」到底牌的,它要在近乎完美信息的情況下決定如何出牌。然後再據此為指導,去訓練看不到底牌的 AI 智能體。這樣會引導智能體根據目前的牌局「預測」對手的手牌和底牌可能是什麼樣的,並作出更正確的決策。

3. 針對麻將複雜的牌面表達和計分機制,研究團隊還利用全盤預測技術搭建起每局比賽和 8 局終盤結果之間的橋樑。這個預測器通過精巧的設計,可以理解每局比賽對終盤的不同貢獻,從而將終盤的獎勵信號合理地分配回每一局比賽中,以便對自我博弈的過程進行更加直接而有效的指導,並使得 Suphx 可以學會一些具有大局觀的高級技巧。

那麼麻將的隨機性呢

麻將與其它棋牌遊戲有一個很大的差別,麻將擁有大量的隨機性,例如每次初始的牌面、摸到的牌、吃碰槓打亂的順序等等。Suphx 很大一部分工作都在建模這些隨機性,前面介紹的先知教練與全盤預測也都是在處理這個問題。 在訓練過程中,麻將的這種隨機性是不可控的,如果智能體一開始就從非完美信息出發,那麼它是完全不知道該怎麼制定策略的。這種隨機性會令智能體在訓練過程中產生很大的波動,在稍微不同的可觀測信息下獲得很大不同的策略。所以先知教練會間接地讓智能體在完全信息的指導下進行訓練,從而在一定程度上消除這些隨機性,以便學習到更加魯棒的策略。 雖然先知教練可以消除訓練過程的隨機性,但是真正對弈的時候會產生新的隨機性,因為當局的牌面和底牌都會煥然一新,是訓練過程中沒有見過的。自適應決策則嘗試利用以前的通用學習結果,並快速地適應當前牌局,從而抵抗底牌變化帶來的隨機性。總體來說,Suphx 幾乎所有核心技術,都在嘗試處理不完美信息帶來的隨機性。

想象一下,如果智能體通過各種技術建模了隨機性,那麼就相當於預測出所有的隱藏牌面和底牌,麻將又回到了完美信息博弈。而完美信息博弈,只要有足夠的算力,那麼一定可以找到非常優秀的解。

Suphx 需要數學基礎

如果讀者們想要試試麻將 AI,那麼注意了,可能你需要的數學基礎要比一般的機器學習還強一些。劉鐵巖博士表示,在整個遊戲 AI 中,有以下數學知識非常重要:

  • 統計學知識:需要對麻將中的大量隨機性進行估計與建模;
  • 博弈論知識:需要將打麻將形式化為博弈過程,並將其作為模型設計的指導;
  • 機器學習知識:線性代數、最優化方法等常規的數學基礎。

很多機器學習算法工程師並不太瞭解博弈論,但做麻將 AI 確實需要一些跨界知識。例如機器學習是一種純統計的方法,我們看重的是模型平均效果,而博弈論更看重最差的情況,它們兩者間的世界觀都有一些不同。

其實像 AlphaGo,它幾乎是由純機器學習團隊構建的,而冷撲大師的德州撲克團隊關注更多的是博弈論。所以對於他們的研究或論文,風格是非常不同的。

因此,對於麻將,我們既無法通過純機器學習來建模,又無法通過博弈論處理這麼複雜的博弈。只有結合兩者,才能為 Suphx 提供足夠強大的基礎。


分享到:


相關文章: