1. 程式人生 > 資訊 >玩王者榮耀、鬥地主、打麻將,但她是正經搞 AI 的北大教授

玩王者榮耀、鬥地主、打麻將,但她是正經搞 AI 的北大教授

一位導師下載好了《王者榮耀》,還鼓勵她的博士生們去玩一玩。

真的很難想象,這種“名場面”就真真兒的發生在了國內頂級學府 —— 北京大學。

……

這位導師叫李文新,是北大資訊科學技術學院的一名教授。

△李文新教授

但她和學生們打《王者榮耀》可是真的正兒八經的,因為李文新的研究方向,正是遊戲 AI:

其實“遊戲”這個詞,並不應該是刻板印象中的手遊、端遊等等,我們對它的理解是更泛化的。

“遊戲”是對“現實”的抽象和模仿。我們期望在遊戲中獲得與現實接近的快樂成功體驗,卻又避免現實中由於失誤和出錯帶來的真實損失。

因此遊戲是一個非常好的試錯和迭代成長的虛擬環境。將現實問題環境虛擬成遊戲,在遊戲中通過大量試錯糾錯來迭代優化問題解決方案,是一種重要的教育手段和研究手段。

甚至在李文新的眼裡,遊戲 AI 才是真正的人工智慧。

(不禁令人想起最近大火的《失控玩家》了)

△《失控玩家》劇照

遊戲 AI 到底擁有何種魅力,能讓李文新如此痴迷?

在遊戲裡搞 AI

先來看看李文新帶著博士們,是怎麼打的《王者榮耀》。

他們要做的,其實就是在限定的時間和資源內,訓練出一個最優決策模型,並把它部署到遊戲 AI 對戰伺服器平臺上。

這就像是一個“煉丹”的過程,讓他們的智慧體通過訓練,練就各種“功法”,然後去和別人家的智慧體過招。

例如在之前的一場比賽中,《王者榮耀》英雄間的博弈是這樣的:

雖說都只是智慧體,但在這波 battle 中,它們很好地發揮了自身的“基本功”:

作戰中

預測敵方走位

釋放技能連招

已擊殺,陣亡

而在每個“基本功”背後,都是智慧體審時度勢後的最佳決策。

這就是李文新團隊最近在打的“遊戲”。

而更具體一點來說,就是在特定的環境中,對多智慧體之間的博弈策略展開研究。

它有幾個難點:

  • 第一是智慧體的每一個決策都有非常多動作可以選擇(決策空間大,不能逐一列舉嘗試);

  • 第二是決策的成敗與否不僅與自己的選擇有關,還與對手的決策有關,所以需要對敵人做預測(同時決策問題,存在迴圈剋制的策略);

  • 第三是作戰環境和敵人的某些資訊是未知的(非完全資訊,需要對未知資訊進行探測和猜測);

  • 第四是遊戲從開始到最終是一個比較長的決策過程,需要權衡長期收益和短期收益,並且需要形成一些組合套路(陣法);

  • 第五是多智慧體之間存在合作關係,讓智慧體學會合作和佈陣,依舊是這個領域的前沿難題。

總之每一次決策都會對全域性產生非常複雜的影響,是有種“牽一髮而動全身”的感覺了。

……

但除了像《王者榮耀》這種 MOBA 遊戲之外,李文新團隊更痴迷的其實是中國傳統遊戲:

鬥地主和國標麻將。

例如鬥地主是這樣的:

打麻將是這樣的:

這場面,看著是不是挺像線上小遊戲的?

不不不,仔細看圖中的這些“玩家”,其實它們都不是人,而是一個個訓練好的智慧體。

而且講真,讓 AI 打咱們這些個“祖傳”遊戲,難度可是要比《圍棋》高得多。

因為從博弈論的角度來看,鬥地主和打麻將是屬於非完全資訊多人博弈。

簡單來說,就是遊戲中有多個玩家,每個“玩家”都看不到其他人的手牌,並且初始手牌和牌堆是隨機發放的。

隨機發牌帶來的難度在於很難事前準備針對特定牌局的策略。

在非完美資訊遊戲中,由於資訊是不完全、非對稱的(例如撲克和麻將中對手的手牌和遊戲剩餘的底牌都是未知的),因此對於參與者來說許多不同的遊戲狀態看起來是無法區分的。

例如在撲克遊戲中,自己拿了兩張 K,對方拿了不同的牌對應不同的狀態;但是從自己的視角看,這些狀態其實是不可區分的。

我們把每組這種無法區分的遊戲狀態稱為一個資訊集。

除了資訊集的數量,還有一個重要的指標:資訊集的平均大小,即在資訊集中平均有多少不可區分的遊戲狀態。

在鬥地主和麻將等非完美資訊遊戲中,鬥地主的資訊集數量是 1053~1083,資訊集大小是 1023,麻將的則是 10121 和 1048。

李文新還介紹到,像鬥地主和麻將,還會涉及到動態結盟的問題。

這樣一來,對 AI 的挑戰性就更高了。

在 1997 年 IBM 的“深藍”戰勝了國際象棋大師卡斯帕羅夫,它使用的演算法是基於啟發式搜尋的,人類象棋大師的經驗被編寫在了程式程式碼中。

2016 年“AlphaGo”戰勝了圍棋大師李世石,它使用的演算法是基於蒙特卡洛樹搜尋、監督學習(深度學習)和強化學習的。

在監督學習中,AI 模仿了人類頂尖棋手的下棋方法,但只靠模仿人類是無法超越人類的。

強化學習則是讓 AI 在與 AI 自己的千百萬次對弈中不斷自我成長,進而超越了人類棋手。自此強化學習方法成為遊戲 AI 演算法研究的主流方法。

簡單來說,強化學習的過程可以概括為:智慧體與環境的互動,環境根據智慧體的行為給予其不同程度的獎勵(懲罰),智慧體因為想要最大化自己的累計收益,所以會根據環境對不同行為的反饋來重塑自己的行為(學習)。

使用強化學習的方法來訓練智慧體時,我們並不直接告訴智慧體應該如何做,而是在環境中合理設定獎懲機制,使得智慧體因為想要獲得最大累積收益而“主動地”調整自身行為,進而達到主動學習的目的。

像家長在孩子做好事情時會給予獎勵,做錯事會給予懲罰,以使孩子朝著家長期望的方向發展,就是一個強化學習中通過調整環境獎勵機制促使智慧體朝著預定方向進化的例子。

這種通過調整環境的獎勵機制來指引智慧體的進化方向的方法可以有效地將人類經驗融入到機器學習過程中去,因為獎勵機制的制定可以是人為的。

如何更好地利用強化學習方法訓練非完全資訊多人博弈遊戲 AI,是否有比強化學習更好的方法使智慧體習得多人合作的策略,目前仍是遊戲 AI 領域的難點問題。

李文新團隊的工作還不止於此,他們為了能讓更多人蔘與到遊戲 AI 的研究中,還特意打造了 AI 對戰平臺 ——Botzone。

在這個 AI 平臺上,使用者可以提交自己的智慧體程式進行 AI 之間的對戰,也可以親自作為玩家參與到與 AI 的對決中。

剛才展示的鬥地主、國標麻將的例子,就是在 Botzone 中的較量。

而除了這兩款遊戲,Botzone 還提供了坦克大戰、掃雷、俄羅斯方塊和它們的各種變體。

李文新還在北大開了一門《遊戲中的 AI 演算法》選修課,作業是設計打各種遊戲的 AI,受到同學們的歡迎。

……

不難看出,李文新是一個資深遊戲迷了。

但令人意外的是,在遊戲 AI 這個領域,她卻屬於“轉型選手”。

半路“出家”到遊戲 AI

如此“愛玩”的李文新教授,其實是最近幾年才把研究方向轉到遊戲 AI 上的。

她早些年主要研究生物特徵識別,是國際上最早從事自動化掌紋識別的研究者之一,後來還擴充套件到更難識別、也更不容易偽造的指靜脈識別。

說到這裡李教授還透露了一個小祕密,2009 到 2014 年間,北大課外鍛鍊考勤使用的指靜脈識別系統就是她們團隊做的。

那為何不沿著這個方向繼續做下去?

李教授的回答稍微有點“凡爾賽”:她覺得自己在生物特徵識別上的研究算是成功了,可以告一段落了。

故事是這樣的。

隨著她帶的學生陸續畢業,其中兩位博士創業開了家公司,在教育考試,銀行,社保醫保等領域都接了大專案,把團隊的科研成果實際落地了。

李文新教授認為學術界的使命就是開闢一個新的領域,具體到應用中怎麼降低成本、產生效益那是工業界該考慮的事。

所以她做為一個學者現在該做的是去尋找下一個領域。

生物特徵識別其實是她在中國香港理工大學讀博士時導師的研究方向。更早時候她在北大讀碩士時,導師帶著她研究的是地理資訊系統。

前兩個研究方向等於都是導師幫她選擇的,而這一次轉型,她想自己去尋找新的挑戰。

那又是為什麼選到了遊戲 AI 這個方向?

雖然李文新教授自己從小也對棋牌類和體育運動類的遊戲很感興趣,但與遊戲 AI 結緣的故事要從 2002 年開始,她組織北大學生參加 ACM 主辦的國際大學生程式設計競賽 (ACM/ICPC) 說起。

當時除了正賽還會在旁邊開設一個分賽場,與正賽裡的高難度演算法題不同,分賽場的專案往往帶有對抗性質,比如機器人足球賽。

2005 年的 ICPC 亞洲區預選賽在李教授的推動下正是在北京大學舉辦,當年對抗賽的專案是“坦克大戰”。

在一定規則下,每個參賽隊伍為坦克制定一套策略,然後上場對戰,輸了的還可以現場修改程式碼繼續參加下一輪。

在一屆屆這樣的比賽中她還觀察到一個特別的現象,對抗賽上勝出的學校往往不是正賽上的傳統強校。

似乎與解演算法題相比,為遊戲制定策略有著不一樣的難度和挑戰。

用李教授自己的話說,從這些對抗賽上她第一次“看見”了遊戲 AI。

後來,她自己在教學中也嘗試加入對抗要素,想引發更多學生對 AI 的興趣。

再後來,就是像她帶領團隊為 ICPC 正賽開發的線上程式評測系統 POJ 一樣,也為遊戲 AI 開發一個 Botzone 測評和對戰平臺。

在 AI 測試評估這件事上李文新教授的一個觀點是:

但凡進入一個研究領域,第一步總是先要有個測試平臺,才能為後續研究的迭代找到優化方向。

此時,遊戲 AI 還沒有成為她的主業,不過她越來越覺得與給一個特定的視覺或語言任務建模相比,遊戲是動態的博弈,充滿了變化和挑戰。

到了生物特徵識別上的研究告一段落後,她覺得不如就找這個自己喜歡又有挑戰的方向來做。

因為搞科研必須是自己喜歡才會有激情,才能做到廢寢忘食,研究才能深入。

2016-2017 年,李文新教授開始堅定的轉向研究遊戲 AI 領域。

這個時間也正好趕上 AlphaGo、AlphaZero 連續打敗人類,掀起了一陣 AI 熱潮。

現在李文新教授帶的博士生裡,就有一位是喜歡下圍棋、讀本科時對 AlphaGo 深感震撼而選擇了這個方向的。

以 AlphaGo 為代表的強化學習技術是當前遊戲 AI 研究的主流方法,不過李文新教授的研究並不僅限於這裡。

具體內容還包括遊戲 AI 的複雜度分析、遊戲 AI 對戰能力和學習能力的評測方法、遊戲 AI 的學習成本分析、遊戲 AI 的模仿和傾向性聚類,甚至遊戲對局的自動解說、新模式遊戲設計等等。

當初的 Botzone 對戰平臺也發展成了知名的多智慧體博弈系統,有 8 萬多個 AI 在上面總共進行過 3900 多萬次對局。

Botzone 上產生的大量對戰資料也成了遊戲 AI 進一步研究的寶貴資料。

並且這些資料是開放下載的,讓全國各地的大學生,還有一些中學生團隊都可以在 Botzone 上面學習和比賽。

這些年的研究和教學經歷讓李文新教授越來越覺得“遊戲 AI 是人工智慧該有的樣子”。

“遊戲 AI,是真的人工智慧”

遊戲 AI 應當是 AI 主流方式之一。

這是李文新對遊戲 AI 的評價。

其實細想一下,這並不難理解。

遊戲 AI 研究的是面對一個場景如何決策的問題,在現實世界裡,如何決策體現了人類的高階智慧。

我們只需要將現實世界建模成遊戲環境,就可以在遊戲環境中尋找解決現實世界問題的方法,之後把找到的解決方法還原到現實世界中去解決真實的問題。

這是一種非常經濟而有效的方法。

更重要的是,由於強化學習的方法可以使 AI 在環境中自我成長,很可能獲得超越人類的決策智慧,這時人類很可能要反過來向 AI 學習了。

遊戲環境是人類定義的,所以遊戲的難度和引數是自主可控的,有非常大的彈性,這就使得遊戲成為人工智慧技術最好的試驗場。

提高遊戲的難度,就可以使得最新的硬體和各種最新演算法有了用武之地。

像“深藍”,使用了平行計算機和並行程式設計技術;AlphaGo 使用了 TPU 及深度學習和強化學習技術。藉助遊戲提供的高難度決策問題,硬體和軟體技術在解決難題過程中都有了突破性提升。

當一個問題過於困難時,我們也可以降低遊戲的難度,使原本困難的問題得到部分解決,進而再逐步提升難度,遞進式解決困難問題。

想想我們玩兒過的電子遊戲:賽車、CS、DOTA、我的世界、星際爭霸……, 不是真實,勝似真實。

我們在其中的體驗、感受、決策也可以遷移到現實世界中。

如果在星際爭霸中幾個 AI 學會了合作佈陣,那同樣的方法可用於真實世界的機器人對抗。

如果一個 AI 在遊戲裡會開賽車,而遊戲環境儘量逼近真實,那這個 AI 就能成為自動駕駛技術的起點。

其實遊戲離現實並不遙遠,它無需綁縛在傳統產業上也能體現其價值。

遊戲本身就是一個前景巨大的產業,在解決了衣食住行這些人類最基本的需求之後,精神需求就被提上日程。

和讀一本書、看一場電影相比,打一場遊戲也並不低階。恰恰相反,在遊戲中我們可能會更多用腦,完全主動地參與。

就像有些書是禁書,有些電影少兒不宜一樣,遊戲的內容也需要監督和把控。

在遊戲產業中,不只遊戲 AI 會用到人工智慧技術,遊戲的生產、運維中,也是處處都會涉及到 AI 技術。可以說人工智慧技術在遊戲產業中大有可為。

在被問到是否贊同“下一個 AI 里程碑可能會在複雜策略遊戲中誕生”時,李文新表示她是非常認同的。因為現在越來越多的研究者正在興趣盎然地研究這一問題。

不過,在她的眼裡,遊戲 AI 還有更深一層的意義:

遊戲 AI 是活在遊戲裡的“人”,人也是活在人生的大戲中,兩者可以互相啟發。

……

最後,如果想要更加深入地走進李文新教授的遊戲 AI 世界,敬請關注今年由 CNCC 舉辦的計算機大會。

本屆大會中,李文新教授將會圍繞《遊戲 AI 演算法與平臺》展開討論。