多智慧體強化學習及其在遊戲AI上的應用與展望
一.引言
近些年來,隨著機器學習演算法的持續優化和創新,計算資源和分散式計算系統帶來的算力提升,以及可利用資料量的大大增加,AI(人工智慧)技術迎來迅猛發展,在眾多領域取得亮眼成就。
在影像分類、目標分割和目標檢測領域最常提及的ImageNet計算機識別挑戰賽中,取得 SOTA 的模型引數量的逐年增加(AlexNet引數量60M,FixResNeXt-101 32×48d引數量829M),其在各項任務中取得的效果也越來越好。這一系列成就促進了利用人臉識別技術來驗證身份,解鎖手機,抓捕犯罪嫌疑人等方面的多種落地應用1。語音識別上,在很多細分場景中也取得很多矚目成就,國內的三家公司搜狗(Sogou)、百度(Baidu)和科大訊飛(Iflytek)均在2016年召開釋出會宣佈各自的中文語音識別率準確率可達到97%以上2。目前在多語言間的翻譯,語音轉文字等方面都極大地方便人類的生活。資訊流和商品的推薦上,人工智慧技術幫助人們在浩如煙海的資訊中快速的匹配到自己感興趣的內容和商品。
另外,一些生成式的技術也獲得廣泛關注。對抗生成網路(Generative Adversarial Networks,簡稱GANs)是一種通過對抗過程生成模型的AI處理框架3,基於GANs處理框架,可以從無到有生成新的內容,比如英偉達(Nvidia)在2018年釋出了超逼真的人臉生成AI系統4,可以按照某種要求生成細節極其豐富的人臉影像。Facebook AI團隊最新出品的“文字風格刷”(TextStyleBrush),它只需要一張筆跡的照片,就能完美還原出一整套文字字跡來5。
[ 生成技術的發展 ]
AlphaGo在圍棋專案上的卓越表現在學術界和工業界引起了深度強化學習的一股熱潮6。2016年3月,AlphaGo戰勝韓國圍棋高手李世石,2017年5月,在中國烏鎮圍棋峰會上,AlphaGo Master與排名世界第一的世界圍棋冠軍柯潔對戰,以3比0的總比分獲勝。10月機器狗對狗大戰,最強的新版AlphaGo Zero以89:11的戰績打敗了曾經戰勝柯潔的舊版AlphaGo Master。之後,深度強化學習技術一路高歌,OpenAI在Dota2上開發的OpenAI Five可以達到人類頂尖水平7,Deepmind在StartCraft上開發的AlphaStar也達到了人類職業玩家的水平8。
整體上看,AI的能力在之前的固定環境下的“聽、說、看”等感知智慧領域已經部分達到或超越了人類水準,後續將持續地向決策智慧演進,即AI不僅需要知道環境是什麼樣的(會看,會聽等),還需要知道在具體的環境下做出正確的決策,才能在真實世界中發揮出更大價值。除此之外,之前的很多研究都是隱含假設了只有一個智慧體(single agent),而把其他部分當做環境的一部分進行處理。然而,實際環境中往往要考慮和其他個體互動,存在諸如合作,競爭等情形,比如機器人裝配/足球,自動駕駛中的多車輛避讓,以及遊戲中存在的各種複雜的場景設定。
[ 近年來一些強化學習的案例 ]
從演算法技術層面來說,近年來感知智慧上的重大突破很多是由於深度學習技術強大的表示學習的能力所帶來,而決策智慧的發展則需要依靠強化學習的正規化來往前推進。同時,由於現實世界中多個智慧體之間互動關係的存在,在強化學習的基礎上,又進一步地引入了博弈論的知識,並發展出多智慧體強化學習這一領域,以解決更復雜的現實世界中的決策問題。
當前,多智慧體強化學習已經有了一定的發展,取得不錯成績。這篇文章主要就是詳細梳理和介紹其整體脈絡和發展情況,並對其在遊戲AI領域中的應用進行探討和展望。
[ 從感知智慧到決策智慧 ]
二. 博弈論基礎
01:引言
博弈論的發展具有一定的歷史, 時至今日,已有18位博弈論的專家獲得諾貝爾經濟學家,展示了博弈論的影響力和重要性。
早在1934年,Stackelberg就已提出了斯塔克爾伯格均衡(Stackelberg Equilibrium )的概念;而更廣為所知的納什均衡(Nash Equilibrium )的概念也在1951年由Nash提出。1951年,Brown提出了重複博弈中的虛擬博弈(Fictitious Play)的概念來求均衡解;1965年,Selten提出了擴充套件式博弈中的子博弈完美均衡;1967年,Harsanyi則針對貝葉斯博弈提出了貝葉斯納什均衡;1973年,Smith & Price進一步提出了演化博弈論;Aumann提出了Correlated Equilibrium;1994年,Papadimitriou則研究了均衡計算的複雜度,提出了PPAD的概念9 10。
博弈論發展過程中,有各個領域的科學家和研究人員參與,涉及的領域有經濟學,數學,電腦科學等等。各個領域的人所關注的重點存在很大不同,經濟學家更側重於觀察和提出一些均衡的概念來對真實世界的現象進行描述,而不關心如何去計算或學習均衡解,而計算機領域的研究人員則更關注如何去得到均衡解,以及求解的複雜度等等。這裡主要從幾個角度上進行簡要介紹,包括博弈論的基本概念,典型的博弈的形式,博弈中的策略的型別,經典的均衡概念,更進一步地,介紹我們所關心的學習問題。
02:博弈的組成元素
一般來說,博弈中存在三種必要的元素,其與強化學習中經常使用的術語有一定的關聯。
第一個必需的要素是玩家(Player),Players N=1,2,…,n , 其表示的是參與博弈的各方, 比如兩個人的剪刀石頭布的博弈中的兩個玩家,可以看出,這與強化學習中所使用的智慧體(Agent)的概念存在相似之處。第二個所必需的要素是策略(Strategy),其表示的是參與博弈的玩家們所採取的動作,即整體策略空間,是所有玩家策略空間的笛卡爾積,A=A1×A2×?An,比如上述的雙人的剪刀石頭布博弈中,有A1={剪刀,石頭,布},A2={剪刀,石頭,布},顯然其與強化學習中所定義的動作有非常大的相似之處。第三個必需的要素是收益(Payoff)函式或效用(utility)函式, 表示的是博弈中玩家採取了某個策略之後所得到的回報情況u=(u1.u2,?,un),ui:A→R。
在一般的博弈建模中,都會有所謂的理性人假設,博弈中的每一個玩家都盡力以自己的最小經濟代價去獲得自己的最大回報。為什麼需要這個假設的原因也是顯然的,參與博弈的玩家可以選擇合法範圍內的任意策略,如果不加以限制,那整個博弈的計算過程將無法進行。當然,這樣的假設在現實世界中也存在著明顯的侷限性和過於理想化等問題,這裡就不過多討論。
03:不同的博弈形式
1)正則式博弈和擴充套件式博弈
正則式博弈(Normal-form Game),或者叫標準式博弈,指的是可以用矩陣或者表格的方式定義出來的博弈,即定義出上述的博弈三要素。比如上面的雙人剪刀石頭布博弈,就是一個正則式博弈,其中行表示的是一個玩家(row player), 列表示的是另一個玩家(column player)。表格裡面的數值分別表示兩個玩家在此策略下所獲得的回報,比如石頭對石頭時,雙方回報均為0,石頭對剪刀時,列玩家的回報為1,行玩家的回報為-1,其他的可以依此類推。
與正則式博弈不同,擴充套件式博弈(Extensive-form Game)不能用上述表格形式來描述博弈的元素,玩家在執行策略時存在著先後關係,需要用博弈樹(Game Tree )來進行表示。在博弈樹中,非葉節點表示的是一個玩家的決策點,邊則表示這個玩家所採取的策略,而葉節點則表示的是獲得的回報。比如在一個簡單的雙人博弈中,雙方依次做出向左或者向右的決策,當兩次決策相同時,兩人均獲得1的回報,否則兩人均獲得0回報,則其博弈樹會是如下所示的形式,起點a時玩家1採取了左動作到達b點,然後玩家2採取了左動作,到達葉節點d,此時雙方均獲得了1回報,其他情形也依此類推。
[ 擴充套件式博弈 ]
理論上說,擴充套件式博弈也可以用正則式博弈來表示,即轉化為正則式的表達形式。採取的方式是將擴充套件式博弈中每一步可能出現的情形全部展開放在正則式博弈中,即將多步動態的資訊轉換為單步靜態的資訊表示。以上面的擴充套件式博弈為例,第一個玩家的可能策略有左,右兩種,第二個玩家的可能策略有(左,左),(左, 右),(右, 左),(右, 右)四種。其中,元組的第一個表示的是當第一個玩家採取第一個動作(左)時,第二個玩家採取的動作。元組的第二個則表示的是當第一個玩家採取第二個動作(右)時,第二個玩家採取的動作。當動作個數,玩家個數,輪數增加時,這個過程就繼續增加。
從上面的例子中能夠看出,雖然理論上擴充套件式博弈可以轉換為正則式博弈,但是策略空間會隨著參與博弈的玩家個數而指數變化,如上述簡單例子中的第二個玩家22=4種動作。因此實際上在這樣的場景中還是會按照擴充套件式博弈的形式來進行建模和分析,比如針對很多棋牌類遊戲的建模。
2) 隨機博弈
隨機博弈是上述概念的進一步擴充套件,也被稱之為馬爾可夫博弈。與正則式博弈相比,其具有博弈各方同時執行動作的特性,並且,會繼續執行多步。與擴充套件式博弈相比,其一方面是多步的博弈,另一方面具有了狀態(state)的概念,與馬爾科夫決策過程有相似之處。
具體地,其形式化定義可以被描述為(S,A1,2,?,n,R1,2,?,n,T,γ),其中,S表示狀態空間,A表示聯合動作空間A1×A2?An, Ri=Ri(s,ai,a?i)表示的是第i個智慧體的獎賞函式,T:S×A×S→[0,1]表示的是聯合動作下的狀態轉移函式。同時,其具有了Behavioral Strategy的概念,以策略π:S×Ai→[0,1]表示,指的是第個智慧體在當前狀態下所實際執行的動作的概率,其與狀態相關。
[ 隨機博弈 ]
04:非完美資訊與非完全資訊
1)非完美資訊
在上述過程中,均假設所有的資訊對所有玩家可見,在很多博弈場景中並不適用。比如在一些MOBA遊戲中,迷霧的存在使得對方玩家採取的動作並不都對我們玩家可見,同樣地,一些棋牌類遊戲中也同樣存在類似現象。
存在一定的歷史動作對一些玩家不可見的博弈,稱之為非完美資訊博弈(Imperfect Information Game)。在非完美資訊的設定下,會存在一些狀態我們無法區分(因為並不知道是之前做了哪個動作),我們把這些無法區分開的狀態集合稱之為資訊集(Information Set)。比如上面擴充套件式博弈的例子,如果玩家1開始執行的動作對玩家2不可見,則{b, c}就是對於玩家2的一個資訊集。
[ 非完美資訊和資訊集 ]
2) 非完全資訊
前面所闡述的內容中,均假設了每一個玩家對博弈中的元素,包括參與博弈的玩家個數,所有玩家採取的動作(除了非完美資訊),玩家採取動作後的回報情況完全清楚,即知道全部的知識。非完全資訊指的是玩家並不完全知道這些資訊,對於執行動作所帶來的回報並不完全清楚。一般來說,可以用博弈開始時,玩家是否有私有資訊來判斷是否為非完全資訊博弈。比如拍賣,各個玩家對於商品的預期價格,可接受最高價格等資訊就是博弈開始前玩傢俬有資訊,比如麻將的初始牌也是博弈開始前玩家所私有的資訊,因此這兩個博弈均屬於非完全資訊博弈。
實際上,非完全資訊也可以轉換為非完美資訊來進行處理,其主要通過海薩尼轉換(Harsanyi Transformation)來完成。具體地,通過引入自然玩家(nature player)來參與博弈,但是隻在博弈開始前發揮作用,完成其他正常玩家博弈前的準備。通過這樣的方式,然玩家的歷史動作對於正常玩家不可見,轉換成了非完美資訊15。
05:博弈的均衡
1) 博弈求解的基本概念
在博弈中,我們用ai,a?i分別表示第i個玩家以及除了第i個玩家外的其他玩家的動作。對於給定的a?i∈Ai×A2×?An, 稱ai是a?i的最佳應對(Best Response, BR)?ui(ai,a?i)≥ui(a′i,a?i),?a′i∈Ai。也就是說,最佳應對使得就是在其他玩家採取時能夠獲得最大效用的動作。
最佳應對是當其他玩家選擇固定動作a?i時,第i個玩家所採取的“最好”策略,那麼如果無論其他玩家採取何種動作,當前玩家ai的都是最佳應對呢?顯然這個策略具有不論其他玩家如何決策,都存在優勢的特性,也因此被稱之為佔優策略(Dominant Strategy,DS),即, ai是佔優策略?給定任意a?i,ai是最佳應對。比如在下圖的囚徒困境博弈的例子中,考察列玩家, 由於3>2, 則Defect是其針對Cooperate的最佳應對,同樣地,1>0, Defect又是其針對Defect的最佳應對,因此,在這個博弈中,Defect是列玩家的一個佔優策略。
2)納什均衡
納什均衡應該是博弈論中最廣為人知的概念之一了16。就像名字中所暗含的,其主要表達的是當前博弈環境中所能達到的均衡和穩定的狀態,具體含義是,對於每一個玩家來說,當其他玩家不改變策略時,當前所有玩家的策略都是最佳應對,則稱當前的聯合策略達到了納什均衡。這種情形下,任意一個玩家,都沒辦法通過只改變自己的策略,來獲得更高的回報。形式化表達為: 一個聯合策略a∈A是一個納什均衡?對於任意玩家i來說,ai都是針對a?i的最佳應對。
比如在下面的Battle of Sex博弈中,雙方都選擇Party或都選擇Home均為納什均衡解,在這兩處時,每一個人都無法通過改變自己的決策來獲得更高的回報。而在下面的囚徒困境博弈中,雖然當兩個人都選擇Cooperate時,雙方都可以獲得2的回報,但是由於此時一方可以通過改變自己的決策來獲得更大的回報,因此不是一個納什均衡。只有當雙方都選擇Defect時,任意一方才都無法通過改變自身行為提高回報,達到了納什均衡。從這個例子中,我們也可以看出,納什均衡並不一定與我們直覺上的“最優”完全相同,其表徵的是均衡的概念。
06:博弈的求解
在有了博弈的概念,均衡的概念之後,需要解決的問題就是如何去求解。目前博弈論領域有著眾多的求解方法,我們今天主要介紹其中的幾個。
1) Fictitious Play
Fictitious Play的概念Brown 1951年就已提出,其想法也很自然。博弈中的每一個玩家都維持一個關於其對手歷史動作的belief,然後學習對這個經驗分佈的最佳應對。
如下面的Matching Pennies博弈,雙方的博弈序列如表中所列,後面的beliefs是兩個玩家分別出兩個動作的統計值,會根據歷史動作進行更新。這種方式雖然簡單,但是其被證明在雙人零和博弈,潛在博弈中均可以收斂到納什均衡。
2) Double Oracle
Fictitious Play演算法是保持對手玩家的歷史動作的belief資訊,並採取最佳應對。Double Oracle演算法則是首先針對對手玩家歷史上所有的策略求納什均衡,再對這個納什均衡採取最佳應對,如果這個最佳應對已在策略池中,則演算法停止,否則將此最佳應對加入到策略池,繼續下一輪,如此反覆。這裡的最佳應對被認為是“Oracle”(神諭)給出的, 且雙方玩家均採取這種方式來更新策略,這也是Double Oracle這個演算法名稱的由來。
以剪刀石頭布為例,如果採用Double Oracle來求解,其過程如下:
第0輪:
開始博弈,雙方均只有石頭,restricted game 石頭 vs 石頭
第1輪:
求解納什:(1, 0, 0), (1, 0, 0)
Br1,Br2= 布, 布
第2輪:
求解納什:(0, 1, 0), (0, 1, 0)
Br1,Br2= 剪刀, 剪刀
第3輪:
求解納什: (1/3, 1/3, 1/3), (1/3, 1/3, 1/3)
第4輪:
找不到新的最佳應對,結束
輸出(1/3, 1/3, 1/3)
[ 剪刀石頭布上的Double Oracle求解示例 ]
3) No-regret Learning
Regret一般被稱為後悔值或遺憾值。我們用at表示第t輪的聯合動作,則玩家i在第t輪沒有執行a′i動作的regret被定義為:Rt(a′i)=ui(a′i?at?i)。即執行a′i,能帶來回報的增益多少,就是我們有多後悔沒有執行這個動作的程度。更進一步地,從第1輪到第T輪到累積regret值被定義為:CRT(a′i)=∑Tt=1Rt(a′i), 即前T輪如果都做a′i能帶來的總體增益。
在得到了regret以後,我們就可以利用其來決定動作的執行了,這就得到了Regret Matching方法,其含義是,在第t輪選擇動作時,選擇regret為正的動作(即有更大收益的),並且選擇的比例正比於regret(即收益更大的會更有機率被選擇到),當然,如果沒有一個動作有正的regret,則隨機選擇一個即可。一個具體的形式可能是:圖片。其被證明可以收斂到correlated均衡。
三. 多智慧體強化學習演算法基礎
01:強化學習基礎概念
機器學習研究的是如何通過資料或者以往的經驗來提高計算機演算法的效能指標,使系統能夠在下一次完成同樣或者類似的任務時更加高效。根據反饋訊號的不同,通常可以將機器學習分為監督學習,半監督學習,無監督學習和強化學習。其中,強化學習的訓練沒有現成的樣本,而是智慧體在與環境的互動中收集相應的(狀態,動作,獎賞)的樣本進行試錯學習,從而不斷地改善自身策略來獲取最大的累積獎賞11 12。
[ 單智慧體強化學習示意圖 ]
強化學習通常採用馬爾科夫決策過程(Markov Decision Process, MDP) 來作為數學模型。一個MDP通常可形式化為一個五元組(S,A,T,R,γ),其中S表示的是狀態的集合,A表示的是動作集合,T表示是在當前狀態下執行某動作轉移到某個狀態的概率,R則表示對應的獎賞,γ表示折損係數。通常我們使用π(s×a)→[0,1]表示在狀態s 下執行動作a 時的概率, 稱之為策略(policy)。強化學習的目標就是去找到一個策略能使得累積獎賞最大:圖片 。有兩類主要的方法去求解,分別稱之為基於值函式的(value-based)方法與基於策略的(policy-based)方法。
第一類方法主要是通過學習值函式來得到當前應當選擇的最優策略,其常用的迭代方式是
第二類方法則是通過引數化策略的方式來直接學習π,即
其中dπθ是一個平穩分佈。
02:多智慧體強化學習
在傳統的強化學習基礎上,進一步引入多智慧體的概念,就有了多智慧體強化學習這一領域11 12。普遍意義上,多智慧體強化學習採用隨機博弈進行建模,有(S,A1,2,?,n,R1,2,?,n,T,γ)的表示,其中,S表示狀態空間,A表示聯合動作空間A1×A2?An, Ri=Ri(s,ai,a?i)表示的是第i個智慧體的獎賞函式,T:S×A×S→[0,1]表示的是聯合動作下的狀態轉移函式。
[ 多智慧體強化學習示意圖 ]
上述建模中,當n=1時,就退化為單智慧體MDP,當狀態空間|S|=1時,就退化為正則式博弈。另外,如果在上述要素上做出一些限制,比如,假設狀態不是完全可見(非完美資訊),且所有的智慧體的獎賞函式均相同,則其會變成Dec-POMDP,這也是目前合作型別的多智慧體強化學習最常使用的建模方式。
按照這樣的建模方式,同樣可以得到類似單智慧體中的值函式(value function)和狀態-動作值函式(Q value function), 其具體形式如下所示,其中i表示計算第個智慧體的情況,而是所有智慧體的聯合動作,合併發揮作用。
同樣地,求解多智慧體強化學習問題也有value-based方法和policy-based兩類方法。然而,在多智慧體的環境中,“最優”的概念會發生變化。比如對於完全合作的博弈問題,所有的智慧體擁有相同的獎賞函式。而對於完全競爭的博弈,即零和博弈,一個智慧體的目標是讓其他所有智慧體的回報最小,自己的回報最大。為了區分不同場景下不同博弈目標的最優,經典的多智慧體強化學習的研究中用不同的均衡解概念,包括Stackelberg equilibrium,minimal regret,correlated equilibrium以及我們熟知的Nash equilibrium等。
基於上述原因,多智慧體強化學習中的value- based方法可以被抽象為如下形式:
比如,Nash-Q Learning演算法就是利用納什均衡來作為最優的定義,則上述兩部分具體為:
求解當前的納什均衡:
通過Nash值函式來改良對Q function的估計:
MARL設定中的Policy-based的方法也同樣需要做一定的變化來進行適應。顯然地,對於多個智慧體的環境,其目標函式可表示成圖片,利用隨機的策略梯度方法進行更新時,具體計算方式為:
其中, 表示第個agent所執行的動作,表示是其他所有agent所做的聯合動作。同樣地,與單智慧體RL相同,可以使用確定性的策略梯度來求解,則計算方式為:
03:經典MARL視角下的分類
天下大事,無外乎兩種,一曰合作,二曰競爭,如果有第三種,那就是合作與競爭的混合。在傳統的MARL研究中,可以根據任務型別來進行分類。一般來說,最常用的分類方式是三類,第一類是合作任務,比如一群機器人合作完成一個任務,這些機器人彼此之間具有完全相同的目標;第二類是競爭任務,比如很多對抗性的遊戲,雙方具有完全相反的目標;第三類是混合性的任務,agent之間既具有合作性,又具有競爭性。
[ 按照任務型別分類 ]
另外,也有從學習方法角度來進行分類的。第一種就是我們所熟悉的分成Value-based方法和Policy-based方法以及更加強調博弈論部分的內容。同時,MARL方法也可以利用中心化的學習(Centralized Learning )和去中心化學習(Decentralized Learning)的方式來進行分類。
[ 按照求解方法分類 ]
四. 學習如何合作
01:CTDE
合作任務是多智慧體領域經常會面臨的問題,主要指智慧體一起工作,相互合作,並最大化共享的團隊回報。一般會使用Dec-POMDP的方式來進行建模,可以用value-based和policy-based的方式來進行學習17。
使用value-based方法來求解多智慧的合作問題,必須解決的問題就是如何建模多個智慧體的的值函式。
第一種直接的方法,採用所有智慧體聯合的網路,中心化的計算總體的值函式Qtot的方式來求解,也就是將所有智慧體的狀態,動作,獎賞等放進同一個網路當中去,並訓練得到一個聯合的值函式。顯然,這種方式最大的問題就是很難擴大到比較複雜的問題上去,即方法的Scalability有限。
第二種方法完全相反,中心化的值函式難以擴充套件,就採取完全獨立的方式,即去中心化值函式,見圖12左所示。與中心化方法相比,顯然此方法的擴充套件性會更好,比如Independent Deep Q-Networks18。但是其突出的問題在於,整體目標如何與個體目標達成一致,個體之間如何分配,即會有比較大的Credit Assignment問題。
第三種方法則結合了上述兩種方法的優勢,提升擴充套件性的同時,可以有效地減小Credit Assignment的問題。具體地,每一個智慧體保留各自訓練值函式的部分,但是在個體值函式之上,增加Mixing Network,完成個體目標與整體目標之間的連線,如下圖右所示。基於此,每一個智慧體在執行策略的時候,根據自己的區域性值函式來選擇動作,但是整體的訓練又是經過Mixing Network之後的整體目標。
[ 各智慧體獨立訓練(左)和CTDE訓練(右) ]
從上述描述中可以看出,第三種方式的主要特點是中心化的訓練,非中心化的執行(Centralized Training Decentralized Execution), 也用此特性來命名這種方法,並簡稱為CTDE。同樣地,為了保證聯合的目標與個體目標之間的一致性,Mixing Network部分需要做出一定的限制,被稱之為Individual-Global Maximization Principle,簡稱IGM Principle,其數學表達為:
02:VDN 演算法
按照CTDE的思路和值函式分解的要求,一個實現簡單,使用的也比較多的演算法Value Decomposition Networks(VDN)被提出19。VDN在處理多個智慧體的值函式時,採用了簡單的求和(Summation)的方式,即有下圖所示結構:
[ VDN結構示意圖 ]
通過這樣一個和的值函式形式,結合神經網路的BP操作,實際上也隱含地實現了多個智慧體之間的Credit Assignment。然而,當每一個智慧體均取最大值時,他們的和必然也是最大值,但反過來卻不一定成立,也就是說,以Summation方式來進行值函式分解,其是滿足IGM的充分條件,但卻不是必要條件。同時,這也意味著VDN演算法的表示能力有所限制,對於不滿足Summation這樣的充分條件的多智慧體情形,就不能很好的刻畫。同時,除此之外,VDN在網路結構上還做了更多的設計,使得引數共享,以及各個智慧體之間可以進行通訊。
VDN演算法雖然比較簡單,但是其在眾多問題上的表現均比各個agent單獨訓練要好很多。合作智慧體強化學習領域中常用一個測試環境StarCraft Multi-Agent Challeng(SMAC),其主要是將星際爭霸2遊戲上的各個子場景拿出來進行訓練和對比21。其中的一個子場景是2m_vs_1z,需要讓兩個海軍陸戰隊與一個狂熱者進行對戰,直接對戰的情況下,兩個海軍陸戰隊是無法戰勝狂熱者的。使用VDN演算法在這個場景下進行訓練,海軍陸戰隊學會了不斷放風箏的技巧,並通過這種方式戰勝了狂熱者,如下圖所示。
[ VDN用於SMAC 2m_vs_1z的訓練 ]
03:QMIX演算法
除了VDN演算法,目前MARL最為常用的演算法之一是QMIX演算法20。QMIX也是在CTDE的框架下對Mix Network部分進行優化。VDN演算法使用了Summation的方式進行中心化的訓練,QMIX演算法則放鬆這個約束,並不要求各個智慧體與整體的值函式是和關係,而是做了單調性的要求,即圖片,以增強其表示能力。
在具體的實現上,QMIX網路中使用了一個方法,在其Mixing Network中,增加一個取絕對值的啟用函式,使得所有的權重ω限定為非負。除此之外,其在網路結構其他部分也進行了設計,圖 15(b)是QMIX整體的結構,與一般的CTDE結構相同,在各個智慧體的值函式之上增加Mixing Network。圖 15 (c)表示的是單個智慧體的的結構,主要採用了一個DRQN來擬合自身的Q值函式,迴圈輸入當前的觀測 以及上一時刻的動作來得到Q值。圖 15 (a)就是Mixing Network的結構了,其也將狀態st作為輸入,輸出為混合網路的權值及偏移量。為了實現網路中權重的非負性,採用了一個線性網路以及絕對值啟用函式的結構,但是偏移量則沒有做非負性約束。
[ QMIX結構示意圖 ]
由於滿足上文的單調性約束,對Qtot進行argmax操作的計算量是隨智慧體數量線性增長,而不是隨智慧體數量呈指數增長。另一方面,與VDN演算法相比,VDN演算法中使用求和的方式來表示總體與個體的關係,其表達能力顯然是比較有限的,而QMIX演算法使用的是單調性的限制,其限制更少,表達能力更強。具體地,VDN演算法採用的求和方式,是一種線性函式的形式,而QMIX演算法採用的單調性要求,是一種單峰形式。以下圖 16為例,VDN和QMIX所能表示的情形如第二第三列所示,真實的形狀如第一列所示,可以看出,QMIX的表示能力比VDN要強,另外,在第二種情況下,不僅是雙峰,還有一個尖銳的峰,則QMIX也不能很好的求解。
[ VDN與QMIX表示能力比較示意圖 ]
同樣地,在SMAC上使用QMIX演算法進行訓練,在星際爭霸2的很多場景上取得很好結果,如下圖 17所示:
[ QMIX在SMAC環境上的訓練效果 ]
04:基於策略的方法
上面主要介紹了幾個基於值函式的多智慧體方法,與單智慧體強化學習方法類似,多智慧體的方法也可以用基於策略的方式來求解。
在基於值函式的方法中,我們主要採取了CTDE的方式來進行訓練,以實現規模和效果的權衡。在Actor-Critic框架中,去中心化的執行變得很自然。如下圖所示,每一個智慧體均維持一個Actor,並完成個體的互動,而Critic部分採取和CTDE相似的處理,使用中心化的訓練方式。整體上看,就是中心化Critic去中心化Actor(Centralized Critic with Decentralized Actors), 這也是目前基於策略的合作多智慧體強化學習最常採取的訓練方式。
[ Centralized Critic with Decentralized Actors示意圖 ]
這種機制下,考察其訓練與單智慧體有何不同。在單智慧體中,計算梯度的方法可能是圖片,而採用Centralized Critics with Decentralized Actors的多智慧體,Actor部分多個,有各自的策略(動作),則梯度計算為圖片。與單智慧體相似,我們也可以通過增加一個ai無關的的baseline來減小方差,即圖片,其中a?i表示除第i個智慧體外的其他智慧體的動作,以與ai無關,滿足baseline的要求。
在此基礎上,有兩個目前相對使用較多的演算法。一個是隨機性策略的Counterfactual Multi-Agent Policy Gradients(COMA)32,其主要是引入了counterfactual baseline,以起到降低方差和更好的credit assignment的作用,整體結構如下圖所示。另一個是確定性策略的Multi-agent Deep Deterministic Policy Gradient (MADDPG),其可以看作是DDPG演算法在多智慧體上的擴充套件33。
[ COMA結構示意圖 ]
五. 學習如何競爭
除了合作外,多智慧體中最常遇到的情形就是競爭了,我們這裡主要考慮的是zero-sum的情況,比如各種遊戲場景中不同團隊之間就是這樣的零和博弈。這部分討論如何在零和博弈設定下,不斷地提升多智慧體的能力,戰勝更強的對手。
01:Naive Self-play
self-play是在這種場景下最常使用的演算法之一。Naive Self-play主要指的是,智慧體將上一版本的模型作為對手來進行訓練,併產生新的模型,如此迭代2。通過這種方式面對不斷增強的對手進行訓練,可以防止由於巨大的技能差異而導致梯度消失,其流程如下圖20所示。這種方式在圍棋,象棋和很多其他的遊戲中均取得了巨大的成功,比如AlphaGo專案中採用了這種方式來進行訓練,Avatar平臺上目前也支援了動作格鬥,MOBA,FPS等各品類的PvP遊戲採用這種方式來進行遊戲AI等研發和生產,如下圖所示。
[ self-play流程 ]
[ Avatar平臺上執行Self-play ]
從博弈論的視角看,Self-play是一種迭代的求解Best Response的過程。當然,這裡使用的是學習的方式,使用強化學習演算法加上比較好的引數,得到了針對當前對手模型的近似Best Response,再 繼續進行下一輪迭代,持續提升模型的能力,並且每次訓練的對手能力不會和自己相差太大,可以有效地增加訓練效率。
那麼這種Self-play的機制能夠適應所有的零和博弈的情況嗎,或者說在什麼情況下才能成功呢?整體上看,主要有兩點:
區域性上看,上述每一輪訓練中,必須保證訓練有效,出現能力的提升,即At+1>At,At>At?1,?
全域性上看,要使得上述迭代流程有效,最根本的要求是這是一個Transitive Game,各個玩家的勝負情況必須以完全傳遞,即:如果有At能夠打敗At?1,且At+1能夠打敗At,則一定會有At+1可以打敗At23。
02:σ-uniform Self-play和Prioritized Fictitious Self-play
Self-play要取得成功需要滿足上述兩點要求,第一點是很自然的,我們假設通過良好的演算法設計和引數選擇,能夠使得單輪訓練達到目標,這裡不再考慮。第二點要求博弈能夠滿足傳遞性,目前在很多遊戲中使用的排名機制Elo Rating包含了這樣的假設。玩家之間不可能都發生過對戰,利用這樣的傳遞性就能夠實現對所有玩家的能力進行排序。顯然,當滿足這樣的條件時,Self-play可以持續有效的進行,並保證能力不斷地提高。
有些博弈能夠滿足傳遞性要求,被稱為Transitive game,比如關於Good,Better,Best三者的評價以及三者之間的PK,其就是按照整體排序,相互之間的博弈具有完全傳遞性。一個相反的例子是剪刀石頭布博弈,三者之間相生相剋,每一個平均收益均為0,顯然是無法通過單純Self-play的方式來提升策略的。
在Navie Self-play的設定中,每次訓練都只將最近版本模型作為對手,在存在迴圈勝負的博弈場景中,可能出現策略退化(strategy collapse),即訓練後期的模型對戰靠前模型的勝率會出現下降,甚至下降到打不過的程度。為了解決這個問題,一個很自然的想法就是把歷史上的各個版本的模型也加入到對手模型中,與這些模型一起對戰訓練,以期望能夠解決策略退化的問題。
一類經常使用的方法就是σ-uniform Self-play。其主要是將迭代過程中的老模型收集起來,而不是直接丟棄,加入到模型池中,然後在選擇對手模型時,給予這些舊模型一定選擇比率,使得模型在整個訓練過程中不會遺忘對戰舊輪次模型的策略。一種簡單的策略是,絕大部分對局仍然使用最新模型,而剩餘的對局在老模型上進行均勻隨機取樣。
Dota2上的遊戲AI OpenAI Five在訓練過程中就採用了這樣的方式。具體地,其80%的遊戲對局使用的對手是最新模型,而剩餘20%遊戲對局的對手則是在老模型中選擇,以增強模型的魯棒性。不過,對於老模型的選擇比例,其繼續進行了優化,使用了一個老模型上的動態取樣系統。每一個老模型i=1,2,…N,都會被給予一個分數qi,然後對手模型會根據softmax分佈來進行取樣。當模型被加進歷史模型池中時,qi會被賦予最大值,當其輸給了當前訓練的模型,其分數則會被減少,圖片,其中η被固定為常量0.01。可以看出,在這個機制中,絕大部分的計算資源會放在最新的模型上,在老模型中,會把更多的計算資源放在那些當前模型勝率更低的對手模型上,而降低那些勝率很高的對手模型,以儘量做到效率與效果的平衡。
圖22展示了OpenAI Five訓練早期,對手模型版本號的變化情況。剛開始時,對手模型絕大部分都是很新的版本,而隨著訓練的進行,其更舊版本模型所佔比例呈現越來越高的趨勢。另一個角度上,圖中的斜率表示了當前訓練的模型超過歷史版本的速度有多快,在比較靠後的版本中,對手的分佈中依舊包含比較多老版本模型,既表明了在初期訓練後,學習程式會變慢,也證明這種加入歷史模型做對手進行訓練的必要性。
[ OpenAI Five訓練早期對手版本號變化 ]
Prioritized Fictitious Self-Play是另一類改進方法。其與上述方法思路相近,只是在對手模型的選擇方面採取了更加精細化的選擇和處理,其是由Deepmind在星際爭霸的AI AlphaStar上首先提出並應用的。為了能夠能夠選擇到最有價值的對手,放棄了直接大部分比例使用最新模型的方式,而是完全利用模型之間的對局情況提供匹配訊號,根據下式, 針對當前訓練的模型,對整體模型池中C的模型B進行匹配概率的打分:圖片, 其中,f:[0,1]→[0,∞]是某個權重函式。具體地,可以設定圖片,其中x是勝率,p是某個用來調節分佈的正數。這種方式使得對手選擇時更加註重難的對手,比如圖片,即可以100%戰勝的對手不會被選擇,通過更關注難的對手,要求訓練中必須打敗每一個對手,而不僅僅只是優化平均表現,這顯然對於存在迴圈博弈的場景更加有效。如果一直與最難的對手打,一方面會使得其他對手缺少上場機會,另一方面難以獲得有效資訊,也會降低訓練效率。因此,在AlphaStar使用的PFSP的結構中,還提出另外一種形式圖片, 顯然這是在x=0.5時取得最大值的凸函式,而在x=1或x=0時取值為0,即其具有更傾向於選擇能力更加匹配的對手,以加快學習效率。
除此之外,在很多遊戲中還存著眾多不同的角色,陣容,所可能出現的搭配眾多,其中也必然會出現較大的不平衡, 從而也會影響模型的訓練過程以及最終模型線上的表現。出於此原因,我們在使用Avatar平臺進行遊戲AI開發時,進一步地針對模型,陣容,角色等進行訓練中的匹配調整,形成了如下圖所示的流程,在模型方面融合了σ-uniform Self-play和PFSP等各項技術,在陣容調整方面融合了CFR(counterfactual regret )24和PFSP的方法,並使用熱更新的方式來進行線上更新,加快訓練效率。如下圖1所示。經過這樣的處理,我們在某遊戲的場景中,針對100種陣容搭配進行測試,其中絕大部分陣容的勝率均出現明顯上升,整體的勝率均值上升,各陣容勝率的方差有所降低,如下圖2所示。
[ 基於Avatar平臺實現更細粒度的對手模型匹配 ]
[ 對手模型匹配陣容勝率變化情況 ]
03:Population Play (PSRO與與League)
經過上述優化處理,在很多博弈環境中,已經可以得到很好結果,通過對戰歷史對手集合增加了魯棒性,並根據勝率調節具體的選擇比例,增加訓練效率,減少策略退化。我們通過演算法的優化,引數的調整,可以在不少的博弈問題上,能夠得到一個模型,可以針對Self-play得到的所有歷史模型,均訓練得到很好的效果。
不幸的是,我們又有了新的問題。首先,對於完全的迴圈博弈而言,不存在這樣的一種策略,可以打敗其他所有策略,比如剪刀,石頭,布,到底哪個更好是沒有意義的。
次之,假設我們可以訓練出完全剋制模型池中歷史版本對手的模型,是否就完成了我們的目標呢?從監督學習的視角來看,這涉及到訓練集和測試集的差異。我們Self-play訓練得到很好的模型,能否在真實的博弈空間中發揮很好的作用,取決於當前訓練得到的這一批模型的分佈與真實的分佈差距情況,如果滿足獨立同分布的假設,那麼顯然其可以獲得比較好的泛化誤差。然而,在Self-play的訓練過程中,無法有這樣的保證。當所有歷史模型僅僅分佈在真實空間中很小一簇中時,即使訓練出來的模型可以打敗所有的歷史模型,當其遇到空間中 相隔比較遠的模型時,依然可能會有很差表現。
最後,從遊戲業界使用遊戲AI的需求來看,也對其有能力覆蓋廣,每一個能力段有多種多樣風格表現的要求,而不僅僅是某種固定的套路而已,這顯然也是單一的Self-play無法完成的。
為了解決上述問題,需要將問題上升一個層次,不僅僅關注單獨的博弈本身,而是把視角放在更高的population層次上。我們不必解答剪刀石頭布哪個更好的問題,而是從元博弈的角度(Meta-game)上進行求解,並且在population層次擴充套件探索到的博弈空間,並生產出更加豐富的AI。
一個有代表性的工作是Policy Space Response Oracle (PSRO), 其實際上是前面所說的Double Oracle在meta-game上的擴充套件,其所選擇的是更高層的策略而不是原始的動作25。使用N個agent的population的進行訓練,並且對手使用的是所有對手的納什均衡策略,如下圖1所示。當然,與Double Oracle不同的是,使用Deep RL的演算法來求解Best Response,由於使用的是納什均衡,也被記為PSRON。在此基礎上,還有一個改進版本PSROrN, 其區別是選擇對手策略時,不僅有納什均衡的要求,還加上了只選擇能打得過的對手,不去考慮那些打不過的。PSROrN,的一個可能好處是使得博弈空間得到擴充套件,如下圖所示,在剪刀石頭布的博弈中,當布與石頭,剪刀與布,石頭與剪刀進行對戰時,其博弈空間會從灰色變成藍色,逐步變大,而如果反過來與自己打不過的那些進行對戰,其博弈空間則會從變小,從灰色變成橙色,如下圖2所示。然而,這說法目前缺乏理論支撐,在不同的博弈場景下可能有很大差別。
[ PSRO演算法流程 ]
[ 不同的PSRO設定對gamescape的影響 ]
另一個廣為人知的使用population play的工作是AlphaStar,其採用了不同的處理方法,稱為聯盟訓練(League Training)。AlphaStar的研發中使用了相當多的技術,包括但不限於利用人類樣本做模仿學習初始化,利用人類樣本約束後續的學習不要走偏,網路結構的設計與搭配,Off-policy學習的技術改進等等。其中,為了克服星際爭霸遊戲中較為明顯的迴圈勝負問題,AlphaStar使用了一個全自動的聯盟訓練框架,聯盟一共包含三類智慧體,分別是Main Agent、Main Exploiter和League Exploiter,從名字上來看,可以分別理解為是主力選手、開發主力選手弱點的陪練和開發整個聯盟選手弱點的陪練,在AlphaStar中,使用了不同的對手取樣方式,來訓練這三類智慧體, 包括Self-play, 不同設定的PFSP,以及他們的組合。通過引入聯盟訓練的方式,AlphaStar模型在能力上得到了進一步的提升,達到了職業玩家的水平8 34。
04:著名案例簡析
粗略地看,博弈可以分為傳遞性博弈,和非傳遞性博弈,在前面均有相應例子。但是,對於複雜的博弈場景,比如很多電子遊戲,其更加可能是傳遞性博弈和非傳遞性的結合,真實世界則更加如此。
有工作就對複雜博弈場景中傳遞與迴圈的關係進行探究,並認為紡錘體是更合適的一個建模和描述26。如上圖2所示,高度表示能力的高低,技能的水平,而每一個橫截面則表示在此能力下,所採取的不同策略,打法等。在能力很低時,橫截面面積小,具有很好的傳遞性,對應了我們訓練開始naive self-play往往也能發揮比較好的效果。隨著能力上升,橫截面面積逐漸增大,即迴圈性逐漸增多,這也與我們的認知相似,中等水平的玩家總是互有勝負,且玩法各有特點,同時也使得AI的訓練變得更困難,更容易“繞圈”。而當水平繼續增高,到達了真正的超高水平時候,迴圈性就變得很小,找到了博弈中的“最優解”,從而做到”萬變不離其宗”。
[ 博弈空間的視覺化 ]
帶著上面這樣的認識,我們去重新審視目前一些著名的遊戲AI案例,整理各自在訓練迭代中所採取的方法。引爆這波AI熱潮的AlphaGo(Nature),採用了人類資料來做模仿學習27,獲得了一個很好的初始化(imitation init),並結合了蒙特卡洛樹搜尋的方法優化效率,最後再使用Self-play進行強化學習的不斷迭代,以將其提升到超越人類的水平。AlphaZero則在此基礎上完全去除了對人類資料的依賴,完全依靠強化學習訓練,並實現了在圍棋,國際象棋,日本象棋上的通用性。Dota2上達到很高水平的OpenAI Five,在神經網路設計上進行了精細的設計,以實現團隊中五個英雄的資訊共享和目標一致。同時在獎賞工程中做了非常多細緻的設計和引數調整,融入了人類先驗知識,在迭代過程中,沒有簡單使用naive self-play,而是將歷史模型也放進對手模型池。星際爭霸2遊戲本身策略更加複雜,且不同的種族,不同的策略之間存在明顯的迴圈勝負關係,因此在AlphaStar的設計中,不僅使用了人類資料來做模仿學習的初始化,還在後續強化學習的訓練中繼續基於人類資料的統計量對模型進行約束,更進一步,其使用了pupulation play的方式來進行訓練,以提升模型的魯棒性和能力上限。
[ 一些案例採用的部分技術 ]
六. 遊戲AI中的應用與展望
01:遊戲與AI
遊戲與人工智慧技術一直有著非常緊密的關係。自電子遊戲誕生之後,人工智慧研究者就把電子遊戲作為測試人工智慧演算法的一個理想的環境。這裡面很重要的原因是,很多電子遊戲,尤其是棋牌類的遊戲,都是被人類規則良好定義的,蘊含著人類智慧的基本要素。因而在人工智慧發展的早期,絕大部分人工智慧的研究者都在努力做出一個很厲害的機器人可以在電子遊戲中戰勝人類29。在最早的時候,圖靈和夏農就嘗試使用Minimax 演算法來讓AI下棋,強化學習+自我對弈也很快被Arthur Samuel應用到跳棋(Checker)中28。
隨著深度學習在近幾年取得的突破性進展,人工智慧正在深刻的改變著安防、金融、醫療等領域,那麼在千億美元規模的遊戲行業,人工智慧技術同樣可以發揮其作用。同時,現代的遊戲中,越來越多的呈現出多人對抗,多人組隊等特性,以提升其趣味性,或者存在著大量的遊戲內的小怪,Boss來作為遊戲的關卡。這些具體的場景使得遊戲業界內一直會有設計比較好的遊戲AI的需求,以快速生產遊戲中的大量高質量智慧體。
智慧體控制,指的是遊戲中的玩家和非玩家角色的控制,這裡的角色控制,廣義上包括角色的劇本、臺詞等,而狹義則指角色的遊戲行為(gameplay),傳統遊戲AI的做法是通過規則驅動的思路來實現,即設計出角色在不同情況下的行為邏輯,再通過角色控制的介面,配合動畫實現具體角色行為。為了在遊戲中填充智慧體,需要大量經驗豐富的遊戲研發/測試人員,對於人力有著強烈的依賴。同時,這種基於規則的方式,從簡單的條件判斷到狀態機,再到有複雜層次結構和控制邏輯的行為樹,雖已能夠創造出大量的豐富行為,但仍然存在著大量限制。而這種困境恰恰是AI技術可以去解決和優化的地方30。
更進一步地,我們對玩家在遊戲中的體驗和感受進行考察。對玩家來說,到底什麼樣的遊戲體驗是好的,什麼樣的遊戲難度是合適的,與什麼樣的對手作戰會感到興奮,與什麼樣的隊友配合會覺得愉悅,遊戲內各角色的機制設計又是否合理等等,都是影響玩家體驗的重要因素。只有各種要素具備,與玩家恰當的適配時,玩家才可能真正產生“心流”體驗31,玩家的能力,心態,遊戲階段各有不同,決定了只依靠人工設計的方式是無法讓每一個玩家都擁有很好的體驗。
[ 心流體驗 ]
基於此,採取資料驅動的方式,對玩家進行建模,捕捉到玩家的能力,遊戲階段,興趣變化等資訊,再為其提供符合其心流狀態的遊戲體驗就是我們需要考慮的問題。而對於遊戲內的智慧體而言,多智慧體強化學習的技術就成了一項耀眼的技術。
02:AI對手,千變萬化
智慧體在遊戲中存在已久,其往往有兩類角色。一類是作為一個人類角色(Player Character,簡稱為PC)而存在,一般也稱為Bot,比如可以應用於AI來促成開局(人數不夠),掉線時的託管,人機對戰,以及故意輸給玩家的溫暖局場景,比如在很多MOBA遊戲中就為新手提供了人機模式的聯絡,以及隊友掉線時的託管服務等。一類是作為非人類玩家(Non-Player Character, NPC)而存在,比如很多角色扮演類遊戲(Role-PlayingGame)中就存在大量的NPC,這些NPC需要AI來使得遊戲更加流暢的執行,提高遊戲的體驗。《全境封鎖》遊戲中共設計了36個敵對NPC型別,分佈在5種不同的派系中,根據玩家在地圖當中的位置,將會遇到一個或多個派系,並且每個陣營都會隨著遊戲的進行來改變難度。通過種種複雜的設計,遊戲中的NPC似乎就具有了不同的“個性”與“能力”,有些“猥瑣”的NPC遇到玩家會躲藏起來,而另外一些“激進”的NPC會積極主動的對玩家採取回擊,如下圖所示。
[ 全境封鎖 ]
遊戲製作團隊通過對遊戲內NPC的大量的個性化設計和調整,給玩家帶來了與之前的很多遊戲完全不同的體驗,並收穫了廣泛的好評,證明了遊戲內智慧體的妥善應用會給遊戲本身帶來巨大增益。但是在《全境封鎖》的NPC設計中,還是採取傳統的行為樹設計方法,這一方面使得整體的開發成本大大增加,不同派系,不同“性格”的NPC都需要做出不同的設定和調整,另一方面也使得NPC的能力和風格受到很大的約束,在更復雜的情境下不一定能夠表現的好,同時也很難進一步地得到更多的豐富變化。
很自然的方法就是利用MARL的技術來生產Bot/NPC。通過不同的任務設定來玩家安排智慧體作為敵人,通過為遊戲中不同的派系和型別的智慧體設定不同的目標和引數,結合population play的方式,引匯出其具有不同的傾向性,滿足玩家對於多樣性的體驗需求,即使是完全相同陣營和種類的智慧體,也同樣能夠做到“性格”上的差異,更有趣味。一個可能的方案是,訓練得到在遊戲局面下具有不同能力與風格的智慧體,根據玩家的使用者畫像/近期表現等,為其提供一個可動態化組合的劇情設計。比如,我們希望玩家遭遇到哪些場景,在其中通過智慧體的行為調整,讓其獲得怎樣的體驗,在此基礎上,結合玩家遊戲內具體指標和玩家在遊戲中的長期指標來進一步地動態調整,提升玩家的長期遊戲體驗,如下圖所示。
[ 更加豐富的劇情化AI ]
03:AI隊友,想你所想
然而,實際的遊戲運營中,僅僅將AI作為對手是不夠的的。比如即使能夠讓玩家勝利,但由於團隊遊戲中,某個玩家操作不夠好,總是無法體驗個人超常發揮的感受,甚至是個人戰績仍然不好的情況。一個更好的解決方案是,讓AI作為玩家的隊友,與玩家一起遊戲,根據遊戲局面的發展,調整AI的行為,幫助玩家獲得更有意思的體驗。具體地,以MOBA遊戲為例,我們通過更好的AI對手的匹配和調整,也無法保證其中的某一個玩家在團戰中總能發揮的更好,或者按照其想要的方向去發展遊戲,比如其可能會有如下種種體驗很差的情形。也許從整個團隊來說,他們取得了很好的結果,但是這個玩家的遊戲體驗肯定是非常不好的,有深深的“孤兒感”。
想要解決這樣的問題,可以採取的方式就是讓AI取代玩家來做隊友,其訓練的目標是提升真實玩家的遊戲體驗,而非自己的體驗。利用多智慧體強化學習技術是可能做到這一點的,根據不同遊戲的差異,以及對於玩家的配合程度的需求差異,對玩家的意圖進行提前識別,對玩家的訊號進行捕獲,並給予智慧體不同的回報函式,再結合合作,競爭的設計來進行訓練。與對手類似地,我們也可以設計出能力和風格多樣的智慧體,並根據場上的局勢和使用者的偏好來進行匹配和調整。
[ 劇情化隊友AI ]
04:AI,一封寫給遊戲,寫給我們,寫給世界的情書
《失控玩家》正在熱映中,其在口碑和票房上都取得了不錯的成績,也引起了觀眾對於遊戲,遊戲製作以及遊戲中玩家與NPC的關係的討論,不少玩家都開始思考和重溫自己與NPC之間曾發生的故事。一名知乎使用者在觀影后寫下了這樣的文字:
(作者:咕嚕咕嚕)
算不上資深玩家,但還是想聊聊看完之後的感受。
我的淚點可能有點奇怪,是在黑人保安巴迪在片尾喊出那一句「這是我最精彩的一天」的時候。
在我們眼中,大部分 NPC 可能只是一個可有可無的存在,但是對於 NPC 來說,他們存在的意義在初始設定中就是「為了我們而活」,所以當巴迪終於覺醒並渴望打破機械般重複的生活的時候,我真的為他尋找到新的生命的意義而感到高興。
實際上我是一個在玩遊戲的時候特別喜歡和 NPC 互動的玩家,我知道他們都有既定的程式用以框住他們的行動,但我總是很好奇如果超越了程式,他們會有怎樣的反映,活出怎樣的人生,和我產生怎樣的對話。
[ 蓋和好朋友巴迪 ]
與上面相似,影片中的很多場景也給我留下深刻印象。當蓋有了意識,有了喜歡的姑娘,不再每日重複同樣的路線,不再點同樣的咖啡,不再說著同樣的話語,而是開始在遊戲中升級,開始在屬於他的“真實世界”,“自由城市”中享受生活;當所有的NPC在蓋的感召下都開始意識覺醒,不再重複自己的職業設定,不再充當被人類玩家狂揍和射擊的角色,紛紛過起了自己的生活;當影片最後,銀行保安站巴迪在斷橋上向蓋喊道“這是我人生中最精彩的一天”時,我的心情複雜而又滿懷期待。
第一重感受,這些場景在很長時間內仍然屬於“科幻”範疇,並不會真實出現。第二重感受,作為玩家 ,對於更加逼真擬人的遊戲內容有著相當程度的期待,如果我們的遊戲裡能夠再靠近這種情形一些 ,不再完全的單調和重複,多一些驚喜,該多有意思。第三重感受,作為AI研究人員和遊戲相關從業者,我明白遊戲業界在實現所謂更好的遊戲內NPC/Bot方面的難點,也瞭解目前更先進的一些技術成果,並熱烈地期待著其在某些方面可以更加靠近我們的想象和期待。
人類對於遊戲的喜歡從不曾退卻,對於智慧的嚮往從不曾減少,對於生活的熱愛從不曾停歇。
遊戲一直是智慧絕佳的試驗場,其在給我們帶來快樂的同時,也見證了很多突破性的成就,從國際象棋上的Deep Blue,到圍棋上的AlphaGo,再到Dota2上的OpenAI Five和星際爭霸2上的AlphaStar,再到德州撲克上的Pluribus Poker 等等,AI一直不斷地突破,探索著智慧的邊界。
影片最後,蓋對米莉說道:“我只是一封他寫給你的情書,愛你的人在現實世界裡”。
現實世界裡的,是一代代的科研人員和工程師,是一批批喜歡遊戲的玩家,是所有熱愛生活的人們。
AI,是寫給遊戲,寫給我們,寫給這個世界的情書。
[ 他們的自由人生 ]
>>>參考資料
[1] Deng, Jia, et al. "Imagenet: A large-scale hierarchical image database." 2009 IEEE conference on computer vision and pattern recognition . Ieee, 2009.
[2] 百度、搜狗、訊飛同時宣佈語音識別準確率達到97%,他們是怎麼做到的?
[3] Goodfellow, Ian, et al. "Generative adversarial networks." Communications of the ACM 63.11 (2020): 139-144.
[4] Karras, Tero, Samuli Laine, and Timo Aila. "A style-based generator architecture for generative adversarial networks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.
[5 ] Krishnan, Praveen, et al. "TextStyleBrush: Transfer of Text Aesthetics from a Single Example." arXiv preprint arXiv:2106.08385 (2021).
[6] Silver, David, et al. "Mastering the game of go without human knowledge." nature 550.7676 (2017): 354-359.
[7] Berner, Christopher, et al. "Dota 2 with large scale deep reinforcement learning." arXiv preprint arXiv:1912.06680 (2019).
[8] Vinyals, Oriol, et al. "Grandmaster level in StarCraft II using multi-agent reinforcement learning." Nature 575.7782 (2019): 350-354.
[9] RLChina 2021 第3課 博弈論入門
[10] Myerson, Roger B. Game theory. Harvard university press, 2013.
[11] Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. MIT press, 2018.
[12] 深度強化學習在遊戲中的應用: https://mp.weixin.qq.com/s/af5JgPgH-fi3VHX_lz9HZw
[13] Bu?oniu, Lucian, Robert Babu?ka, and Bart De Schutter. "Multi-agent reinforcement learning: An overview." Innovations in multi-agent systems and applications-1 (2010): 183-221.
[14] RLChina 2021 第11課 多智慧體入門(一)
[15] Hu, Hong, and Harborne W. Stuart Jr. "An epistemic analysis of the Harsanyi transformation." International Journal of Game Theory 30.4 (2002): 517-525.
[16] Maskin, Eric. "Nash equilibrium and welfare optimality." The Review of Economic Studies 66.1 (1999): 23-38.
[17] OroojlooyJadid, Afshin, and Davood Hajinezhad. "A review of cooperative multi-agent deep reinforcement learning." arXiv preprint arXiv:1908.03963 (2019).
[18] Tampuu, Ardi, et al. "Multiagent cooperation and competition with deep reinforcement learning." PloS one 12.4 (2017): e0172395.
[19] Sunehag, Peter, et al. "Value-decomposition networks for cooperative multi-agent learning." arXiv preprint arXiv:1706.05296 (2017).
[20] Rashid, Tabish, et al. "Qmix: Monotonic value function factorisation for deep multi-agent reinforcement learning." International Conference on Machine Learning. PMLR, 2018.
[21] Samvelyan, Mikayel, et al. "The starcraft multi-agent challenge." arXiv preprint arXiv:1902.04043 (2019).
[22] Hernandez, Daniel, et al. "A generalized framework for self-play training." 2019 IEEE Conference on Games (CoG). IEEE, 2019.
[23] Balduzzi, David, et al. "Open-ended learning in symmetric zero-sum games." International Conference on Machine Learning. PMLR, 2019.
[24] Brown, Noam, et al. "Deep counterfactual regret minimization." International conference on machine learning. PMLR, 2019.
[25] Lanctot, Marc, et al. "A unified game-theoretic approach to multiagent reinforcement learning." arXiv preprint arXiv:1711.00832 (2017).
[26] Czarnecki, Wojciech Marian, et al. "Real world games look like spinning tops." arXiv preprint arXiv:2004.09468 (2020).
[27] Hussein, Ahmed, et al. "Imitation learning: A survey of learning methods." ACM Computing Surveys (CSUR) 50.2 (2017): 1-35.
[28] Samuel, Arthur L. "Some studies in machine learning using the game of checkers." IBM Journal of research and development 3.3 (1959): 210-229.
[29] Yannakakis, Georgios N., and Julian Togelius. Artificial intelligence and games. Springer, 2018.
[30] 遊戲AI:AI的遊戲還是遊戲的未來 https://gameinstitute.qq.com/article/10030
[31] Csikszentmihalhi, Mihaly. Finding flow: The psychology of engagement with everyday life. Hachette UK, 2020.
[32] Foerster, Jakob, et al. "Counterfactual multi-agent policy gradients." Proceedings of the AAAI Conference on Artificial Intelligence . Vol. 32. No. 1. 2018.
[33] Lowe, Ryan, et al. "Multi-agent actor-critic for mixed cooperative-competitive environments." arXiv preprint arXiv:1706.02275 (2017).
來源:騰訊遊戲學堂
原文:https://mp.weixin.qq.com/s/AV0IWBuRWz97U9lceILuRw
相關文章
- 強化學習-學習筆記13 | 多智慧體強化學習強化學習筆記智慧體
- 深度強化學習的人工智慧在遊戲中的運用:遊戲AI入門及AI優化指南強化學習人工智慧遊戲AI優化
- 強化學習在金融市場中的應用(上)強化學習
- AI 大戰 AI,一個深度強化學習多智慧體競賽系統AI強化學習智慧體
- 強化學習之原理與應用強化學習
- 多工學習(MTL)在轉化率預估上的應用
- 【強化學習篇】--強化學習從初識到應用強化學習
- AI+遊戲:高效利用樣本的強化學習AI遊戲強化學習
- 人工智慧(AI)在遊戲中的應用(下)人工智慧AI遊戲
- 探索人工智慧與強化學習:從基礎原理到應用前景人工智慧強化學習
- 深度強化學習技術開發與應用強化學習
- 深度學習及深度強化學習應用深度學習強化學習
- DeepMind綜述深度強化學習中的快與慢,智慧體應該像人一樣學習強化學習智慧體
- 異構記憶體及其在機器學習系統的應用與優化記憶體機器學習優化
- ICLR 2020 多智慧體強化學習論文總結ICLR智慧體強化學習
- 北大領銜,多智慧體強化學習研究登上Nature子刊智慧體強化學習
- 百度NLP:強化學習之原理與應用強化學習
- AI在汽車中的應用:實用深度學習AI深度學習
- AlphaGo原來是這樣執行的,一文詳解多智慧體強化學習的基礎和應用Go智慧體強化學習
- 【AI in 美團】深度學習在OCR中的應用AI深度學習
- 深度強化學習在時序資料壓縮中的應用強化學習
- 楊強:深度學習、強化學習、遷移學習的結合及應用進展深度學習強化學習遷移學習
- 遊戲的強化學習簡史遊戲強化學習
- 強化學習在e成科技人崗匹配系統中的應用強化學習
- 深度強化學習入門:用TensorFlow構建你的第一個遊戲AI強化學習遊戲AI
- 深度學習在乳腺癌上的應用!深度學習
- 卷積操作的概念及其在深度學習中的應用卷積深度學習
- 【AI in 美團】深度學習在文字領域的應用AI深度學習
- 資訊化在最佳化中應用的學習
- N.GAME丨網易互娛AI Lab技術主管曾廣俊:讓遊戲更智慧——強化學習在互娛遊戲的落地GAMAI遊戲強化學習
- AI在視訊遊戲中的應用AI遊戲
- 【強化學習】強化學習的基本概念與程式碼實現強化學習
- 人工智慧 (12) 強化學習人工智慧強化學習
- DeepMind用元強化學習框架探索多巴胺在學習過程中的作用強化學習框架
- Facebook實時人體姿態估計:Dense Pose及其應用展望
- 什麼是深度強化學習? 又是如何應用在遊戲中的?強化學習遊戲
- AI Agent框架(LLM Agent):LLM驅動的智慧體如何引領行業變革,應用探索與未來展望AI框架智慧體行業
- 八千字長文深度解讀,遷移學習在強化學習中的應用及最新進展遷移學習強化學習