DeepMind提出DQfD:可從真實世界演示中進行強化學習
機器之心編譯
參與:吳攀
深度強化學習(RL)在困難的控制問題上已經實現了一些眾人矚目的成功。但是,這些演算法通常需要海量的數據才能達到合理的表現水平。實際上,它們在學習過程中的表現非常糟糕。對於模擬器來說,這可能還能接受,但這嚴重地限制了深度強化學習在許多真實世界任務上的應用——在真實世界任務中,智能體(agent)必須要在真實環境中學習。在這篇論文中,我們研究了一種智能體可以從系統之前的控制中獲取數據的設置方法。我們提出了一種名叫「學習演示的深度 Q 學習(DQfD:Deep Q-learning from Demonstrations)」的演算法,該演算法可以利用這種數據來實現學習過程的大幅提速,即使只有相對較少的演示數據也可以。DQfD 的工作方式是將時間差分更新(temporal difference update)和演示者(demonstrator)的動作的大邊際分類(large-margin classification)結合起來。我們表明 DQfD 在 42 種 Atari 遊戲中的 40 種上都有比深度 Q 網路(DQN)更好的初始表現,而且其在這 42 種 Atari 遊戲中的 27 種上都得到了更優的平均獎勵。我們還表明即使給出的演示數據很差,DQfD 也能學得比 DQN 更快。
3 學習演示的深度 Q 學習(DQfD:Deep Q-learning from Demonstrations)
在許多真實世界的強化學習設置中,我們可以獲取其之前的控制者操作該系統的數據,但我們無法獲得一個該系統的準確模擬器。因此,在一個智能體被應用到真實系統之前,我們想要智能體能儘可能地從演示數據中學習。這個預訓練階段的目標是學習使用一個價值函數(value function)來模擬該演示者(demonstrator),該價值函數滿足貝爾曼方程(Bellman equation),因此當該智能體開始與其環境交互時,其就可以通過時間差分(TD:temporal difference)更新的方式被更新。在這個預訓練階段,該智能體會從演示數據中採樣 mini-batch,並通過應用三種損失來更新該網路,它們分別是:雙重 Q 學習損失(double Q-learning loss)、監督式大邊際分類損失(supervised large margin classification loss)和在網路的權重和偏置上的 L2 正則化損失(L2 regularization loss)。其中監督式損失被用於對該演示者的動作的分類,而 Q 學習損失能確保該網路滿足貝爾曼方程,且可被用作是 TD 學習的起點。
要讓這樣的預訓練有效,該監督式損失是至關重要的。因為演示數據必然僅覆蓋了一小部分狀態空間(state space),沒有涵蓋所有的可能動作,所以許多「狀態-動作」不會被包含進來,也沒有數據將它們落實到真實的值上。如果我們打算僅使用 Q 學習更新來訓練該網路以得到下一個狀態的最大值,那麼該網路就會向著這些未落實的變數的最高值更新,這樣該網路就會通過該 Q 函數來傳播這些值。加入一個大邊際分類損失能將這些從未見過的動作的值落實成合理的值,使得由價值函數引起的貪婪策略(greedy policy)可以模擬其演示者(Piot et al., 2014a):
其中 aE 是該專家演示者在狀態 s 時所採取的動作,l(s, aE, a) 是一個邊際函數(當 a=aE 時,其值為 0;其它情況則為正值)。這個損失會迫使其它動作的值至少比演示者的值低一個邊界(margin)。如果該演算法僅使用這種監督式損失進行預訓練,那麼就沒有什麼可以約束這些連續狀態之間的值,而該 Q 網路就無不能滿足貝爾曼方程,但這又是使用 TD 學習來在線提升策略所需的。
我們也增加了應用於該網路的權重和偏置的 L2 正則化損失以幫助防止其過擬合於相對較小的演示數據集。
用於更新該網路的整體損失是這三種損失的結合:
λ 參數控制這些損失的權重。
一旦預訓練階段完成,理想情況下該智能體就已經學會了一個合理的策略,使其可以可靠地運行在真實系統上。在下一階段,該智能體開始在系統上運行,收集自己生成的數據,並將其加入到其智能體重放緩存(agent replay buffer)
。數據被加入到該智能體重放緩存,直到加滿,然後該智能體開始覆寫該緩存中的舊數據。與此同時,該演示數據仍然被維持在一個分離的演示重放緩存(demonstration replay buffer)
中,並保持不變。每個 minibatch 包含n個樣本,其中部分演示數據由下面的參數定義:
。對於自己生成的數據,僅會應用雙重 Q 學習損失,而對於演示數據,監督和雙重 Q 學習損失都會應用。
整體而言,學習演示的深度 Q 學習(DQfD)在以下 5 個方面與 DQN 不同(具體參閱 4.2.2 節)
預訓練:在開始與環境進行任何交互之前,DQfD 首先開始在演示數據上單獨訓練,預訓練過程會將 Q 學習損失和監督式損失結合起來,這樣就使得代理可以模擬演示者,同時還能讓價值函數為 TD 學習做好準備。
監督式損失:除了 TD 損失之外,還應用了一個大邊際損失來推動該演示者的動作的值超越其它動作的值(Piot et al., 2014a)。
L2 正則化損失:該演算法也在網路的權重加上了 L2 正則化損失以防止在演示數據上的過擬合。
分離的數據集:演示數據存儲在 Ddemo 且永遠不會被覆寫,而自己生成的數據存儲在 Dreplay 且經常被覆寫。
受控的數據採樣:每一個 minibatch 中演示數據與自我生成數據的相對比例通過
進行控制
4 實驗結果
圖 1:當給出了 1000 次轉換的最佳或 ?-greedy 演示時,所有三種演算法在 Catch 遊戲上的在線獎勵。甚至當該演示數據有 10% 的隨機動作時,DQfD 也能表現得差不多好。
表 1:該演算法測試過的 Atari 遊戲以及人類在該遊戲上實現的最佳和最差的扥,後面還給出了試驗和轉換的次數。
表 2:每個演算法在全部 42 種 100 萬 Atari 遊戲幀上進行 200 次迭代後得到的平均在線獎勵
圖 2:三種演算法在 Hero 遊戲上的在線獎勵。許多遊戲都有和這個遊戲類似的結果,其中 DQfD 的起始表現接近模仿策略(imitation policy),然後繼續提升
圖 3:三種演算法在 Pong 遊戲上的在線獎勵。儘管人類演示者在他們的演示中沒有贏下任何一場遊戲,但 DQfD 仍然在前面 58 次迭代中優於 DQN
※用對抗網路生成訓練數據:A-Fast-RCNN的實現
※Deep Learning中文印前版已開放,讓我們向譯者致敬
※從梯度下降演算法的詳解及實現到共軛牛頓法等優化演算法的基本概念
※機器之心深度研學社每周乾貨:2017-15
※教程|如何在單塊GPU上訓練大型深度模型?
TAG:機器之心 |
※Parrot Disco-Pro AG用戶演示及成果展示
※蘋果解釋為何發布會上iPhone X的Face ID演示失敗:是意外
※《Warhammer 40k:Free Blade》:在iPhone X上演示的AR遊戲
※OpenSIPS Push Notifications演示
※Surface Phone系統雛形?Win10 CShell真機演示大曝光
※iPhone UE4,AR遊戲《The Machines》 登蘋果大會演示舞台
※iPhone 8 Face ID 演示動畫、異形屏圖標曝光
※Cloak & Dagger攻擊:一種可針對所有版本Android的攻擊技術(含演示視頻)
※iPhone X Face ID現場演示失敗的小插曲,Apple的官方解釋是...
※扒一扒蘋果新品發布會上台做AR演示的公司-Directive Games
※iPhone+UE4,AR遊戲大作《The Machines》 登蘋果大會演示舞台
※iPhone 8的Face ID演示動畫曝光 從指紋到刷臉
※微軟HoloLens MR對比Snapchat AR視頻演示,你喜歡哪款?
※Face ID演示有沒有說服你購買iPhone X?
※iPhone 8 的Face ID演示動畫曝光:刷臉支付要來了
※Gigi Hadid和Kendall Jenner為你演示閨蜜裝的正確打開方式
※還可以這樣玩:微軟演示Paint 3D如何高效利用Surface Dial
※簡單實例演示js中this/applay/call用法
※Major Lazer熱單《Run Up》最新MV:麻辣雞演示Twerk自拍法