AI+遊戲:高效利用樣本的強化學習

矽說發表於2018-04-23

3月15日,騰訊AI Lab第二屆學術論壇在深圳舉行,聚焦人工智慧在醫療、遊戲、多媒體內容、人機互動等四大領域的跨界研究與應用。全球30位頂級AI專家出席,對多項前沿研究成果進行了深入探討與交流。騰訊AI Lab還宣佈了2018三大核心戰略,以及同頂級研究與出版機構自然科研的戰略合作(點選 這裡 檢視詳情)。

騰訊AI Lab希望將論壇打造為一個具有國際影響力的頂級學術平臺,推動前沿、原創、開放的研究與應用探討與交流,讓企業、行業和學界「共享AI+未來」。

彭健:美國伊利諾伊大學厄巴納-香檳分校電腦科學系助理教授

AI+遊戲:高效利用樣本的強化學習

在下午的“AI+遊戲”論壇上,美國伊利諾伊大學厄巴納-香檳分校電腦科學系助理教授彭健博士做了主題為《實現能高效利用樣本的強化學習》的演講。

彭健博士的研究方向是計算生物學和機器學習的相關領域(如基因組、系統生物學和分子生物學方面的大資料分析處理)。在計算生物學方面,他一直致力於開發高效的演算法,對龐大的基因資料集以及系統生物學和分子生物學中的資料集進行分析處理整合。在機器學習方面,他的主要研究興趣為取樣、變分推理方法以及高維圖模型的結構化學習演算法。他曾獲得CROI青年學者獎、斯隆研究獎、美國國家自然科學基金會職業生涯獎、PhRMA基金獎等多個國際著名獎項。他是ISMB、 RECOMB、 AISTATS、ACM-BCB、 AAAI 和 GLBIO等機器學習和生物資訊學會議的程式委員會會員,以及PNAS、PLOS Computational Biology、 IEEE/ACM TCB等國際頂級期刊的審稿人。彭健博士為美國芝加哥大學豐田技術學院電腦科學博士,曾於美國麻省理工學院Berger Lab進行博士後研究。


演講內容

深度強化學習的近期進展(包括深度 Q 學習和基於神經網路的策略優化)已經證明在傳統人工智慧方法無法解決的很多問題上是有效的。達到人類水平的遊戲智慧體、AlphaGo機器人操作都是其中引入注目的案例。但是,這些任務策略學習需要大量的計算資源,這使得深度強化學習演算法難以實際應用於計算機遊戲等更復雜的任務。

本演講將討論一些令現有演算法難以應用的挑戰(尤其是獎勵傳播延遲、方差估計高和探索不充分),同時介紹一些解決方案,展示它們在 Atari 遊戲和機車機器人任務上的應用。

以下為演講全文(為便於閱讀進行過適當編輯整理):

AI+遊戲:高效利用樣本的強化學習

大家下午好,我叫彭健,來自美國伊利諾伊大學厄巴納-香檳分校計算機系,今天我講一講我們研究組對深度強化學習的一些改進。

目前的遊戲 AI(特別是一些基於深度學習的 AI)的表現相比傳統的基於規則的演算法實現了很大的提升。而且在各種各樣的遊戲上都有這種現象,比如控制類遊戲、物理模擬類遊戲(比如《憤怒的小鳥》)、基於第一視角的探索性遊戲(比如《Minecraft》)、以及更難的有大面積搜尋空間的遊戲(比如《王者榮耀》、《DotA》、《星際爭霸》)。另外,AlphaGo 是目前最有影響力的工作。其實所有這些遊戲 AI 背後的演算法都有深度強化學習

AI+遊戲:高效利用樣本的強化學習

在深度強化學習中目前有兩種比較有效的演算法。第一種演算法是策略優化,也就是說我們通過一個函式定義智慧體的一個行為,比如根據當前的遊戲畫面或圍棋盤面定義接下來的操作。這個過程中有兩種可能:一種是確定性的策略,也就是說知道下面需要走哪一步;還有一種是隨機的,也就是說可能存在各種不同的選擇,我可以根據概率來選擇其中一個操作。策略優化方法是現在目前比較流行的方法,因為這是一種比較簡單和直接的優化辦法。目前主要的方法是通過策略梯度來進行優化,也就是通過優化策略來最大化未來得到的獎勵(reward)。

第二種方法叫做 Q 學習,這是一種通過學習價值函式或價值網路的方法。這個價值函式能給出對未來獎勵的預測。在 AlphaGo 中,這兩種演算法是交叉在一起的。策略網路學習下一步要走哪個子,價值函式對當前落子進行價值估計。

AI+遊戲:高效利用樣本的強化學習

在目前的深度強化學習中,最大的一個難題是取樣複雜度太高了,也就是說我們需要大量資料來訓練我們的智慧體。不論是策略優化方法還是 Q 學習的方法,都需要大量資料。比如這裡展示的幾個例子,在《Space Invader》和《Seaquest》這兩個 Atari 遊戲中,智慧體所獲得的分數會隨訓練資料增加而增加。可以看到,利用經典的深度強化學習演算法可能需要 2 億幀畫面才能學到比較好的效果。AlphaGo 最早在 Nature 公佈的版本也需要 3000 萬個盤面。

這樣高的取樣複雜度,就導致我們沒法在各種複雜遊戲中使用深度強化學習。有兩個可能的原因。第一個原因是遊戲中的獎勵訊號通常是稀疏的或會延遲到來,也就是說我們在相當長的時間內都不會得到遊戲的反饋。另一個原因可能是沒有足夠的探索,也就是說我們當前學習的策略可能會被困在區域性最優。

下面我講一下針對這兩個問題我提出來的可能解決方案。

第一,考慮到獎勵的稀疏性和延遲性問題,我們就想有沒有辦法可以使獎勵傳遞得更快?

AI+遊戲:高效利用樣本的強化學習

現在我們考慮一個很簡單的遊戲——第一視角的迷宮探索類遊戲。在這個遊戲中,我們只能觀察到前方視野中的資料。我們的任務是從迷宮的某處出發,到達某個點。這種情況下,我們就只有一個非零獎勵,也就是迷宮的出口。在探索過程中,我們不能得到任何反饋。在圍棋中也是一樣,我們一直要到最後一步才能知道我們是輸還是贏。

AI+遊戲:高效利用樣本的強化學習

在這樣的情況下,我們自然會想能不能讓獎勵訊號傳播得更快一點。經典的 Q 學習演算法是每次傳播一步,也就是採取了一個動作就立即會有一個獎勵反饋。我們很自然就會想:也許能把很多步的獎勵積累起來,跨越多個時間點一次性傳播回當前時間點。

AI+遊戲:高效利用樣本的強化學習

下面我給大家介紹一下我的一個簡單想法。假設在 Q 學習中有一個時間線,在一局遊戲中不同的時間點上有不同的動作,對應不同的獎勵。每個時間點都有一個價值函式 Q(sj,aj),表示在當前狀態 s 時採取動作 a 的價值。經典的 Q 學習演算法就是這樣的,我們向下走一步,然後看能不能通過這一步的操作來更新 Q。

如果我們想實現更快的獎勵傳播,我們就需要向前多看若干步。這是一個很自然的想法。如果我們知道整個時間線,在當前狀態,我可能對未來有一個規劃和估計;如果我知道我的未來,我就可以知道當前可能會有更好的選擇,我就可以得到一個對未來比較樂觀的估計。我知道如果我選擇一個其它動作,我能在當前時間線上得到更好的價值。這是一種展望未來式(looking forward)的演算法。利用貝爾曼方程(Bellman Equation),我們可以得到當前估計的下限。

AI+遊戲:高效利用樣本的強化學習

我們也可以向回看,進行一下反省。如果我們知道這樣一個時間線,我們可以回到過去,我可以知道在過去的時候我可能有更好的選擇。我們同樣可以用貝爾曼方程展開,得到當前估計的上限。這個演算法比較簡單。

AI+遊戲:高效利用樣本的強化學習

如圖所示,上面是經典深度 Q 學習的演算法,這是每一步的演算法。現在我只需要對這個演算法修改一點點,加兩個約束——一個是基於未來的下限,一個基於過去的上限。這樣我們就能大大減小价值函式的搜尋空間,從而能實現更好的取樣效率。

AI+遊戲:高效利用樣本的強化學習

我們做了一些簡單的實驗。在 DeepMind 用來評價自己的演算法的 64 個 Atari 遊戲基準上,我們評估我們的方法的取樣效率。在一個 GPU 上,經典的 DQN 演算法需要 10 天以上時間才能達到與人類相當的遊戲水平,而我們的演算法只需要一天,而且得到的結果還更好。這個方向可能還有其它做法,這只是我們的一個嘗試。

第二個問題是沒有足夠的探索,也就是說遊戲智慧體可能會困在區域性最優。

AI+遊戲:高效利用樣本的強化學習

比如,這是我們之前嘗試的一個遊戲。智慧體需要探索一個迷宮,然後救出人質或達到一些其它目的。這個遊戲的場景很簡單,所以很容易訓練。但很快在這個狀態就會卡住,就無法得到一個很好的策略。

AI+遊戲:高效利用樣本的強化學習

其它一些強化學習演算法也會陷入類似的問題。比如在機器人學的研究中,人們利用了 A2C和 PPO 等一些其它演算法。可以看到,如果用同樣的演算法訓練同樣的遊戲若干次,不同的次數可能就會得到非常不同的訓練結果。這是因為策略優化和 DQN 演算法很容易陷入區域性最優,而且我們不知道它們什麼時候能跳出來。

AI+遊戲:高效利用樣本的強化學習

所以我們就想,如果只訓練一個模型容易陷入區域性最優,那麼我們就訓練多個模型。這個演算法與自然界採用的一些方法很像,比如蟻群演算法和其它一些組合優化演算法。我們可以同時採取多個不同的模型,同時進行訓練。我們的目標是同時優化這些模型的表現,同時讓這些模型看起來不太一樣。基於這一思考,我們首先提出一種名叫非引數變分推理(SVPG)的演算法,這個工作發表在 UAI 2017 會議上。

AI+遊戲:高效利用樣本的強化學習

另一個比較直觀的想法是用遺傳演算法。我們通過經典的遺傳演算法,同時維護若干個模型,然後讓這些模型分別自己進化並進行雜交。之後我們選取其中更好的後代進行優化。針對深度強化學習,我們設計了一個新的基於神經網路的 crossover 優化器。也就是說,當我們有一個父親模型和一個母親模型的時候,我們可以怎樣得到一個比較好的後代模型?

AI+遊戲:高效利用樣本的強化學習

我們用了一個不同於傳統的方法。我們用模仿學習(imitation learning)方法訓練一個後代,讓它去模擬父親和母親的策略行為。然後我們在一些機器人環境中探索了這些演算法的優異性。我們的演算法在大多數機器人任務上都能超越之前的最佳方法。

我剛才介紹了針對探索和獎勵延遲問題的一些解決方法。而深度強化學習還有很多其它問題。如果我們想利用深度強化學習設計比較複雜的遊戲 AI,可能就會遇到很多難題。比如,第一個問題可能是策略梯度估計時方差比較大——我們做了一些優化這個方差的工作。第二個問題是動作空間比較大,我們需要一些抽象(abstraction)方法來縮小動作空間。第三個問題是現在的演算法的資料有效性還是不夠,我們需要一些更好的優化演算法。

謝謝!

相關文章