Uncertainty-driven Imagination for Continuous Deep Reinforcement Learning

文獻目錄

作者認爲雖然model-based方法可以提高採樣性能,但使用缺乏準確性的虛擬樣本會影響最終算法的效果。爲了解決這個問題,文章把傳統DDPG裏面用到的Experience Replay Buffer 分成了兩類:traditional replay buffer 以及imaginary replay buffer,然後在每次訓練前,通過一個動態的概率pp來決定從imaginary replay buffer裏面取出多少minibatch來做訓練。這個概率pp是通過計算agent對當前Q(st,at)Q(s_t,a_t)預估的uncertainty得到的。本文可以理解成同時使用了K個critic模型來進行評估,計算着K個模型值估計的方差即爲值的不確定度。具體做法是:如果agent對Q值的預估的方差很大(真實數據獲取的Q值不可信),則增大pp,即增加從imaginary replay buffer獲取數據的概率。但是隨着模型的收斂,agent對Q值的預估的方差會下降,從而概率pp會逐步減小。


1. Introduction

存在問題:

  • 當深度強化學習應用於機器人時,環境與agent之間的交互和重置是昂貴的、繁瑣的,甚至會導致物理損壞。

儘管可以通過大規模並行化來緩解這一問題,但是提高用於深度強化學習的數據效率是值得的,並且有利於並行和順序設置來實現日益複雜的任務。

在與系統交互最少的情況下,實現更好的數據效率的一種方法是增加收集的數據。在強化學習環境中,這可以通過人工轉換來實現,例如通過一個學習過的動力學模型,假設模型可以比任務的相應值函數學習得更快。然而,容易學習的模型(即低容量或低複雜性的模型)可能缺乏表達性,從而缺乏準確性。因此,agent必須在學習過程中平衡使用人工數據和真實數據。在這裏,我們介紹了一種方法,在適當的時候通過合成數據減少系統交互,以實現這種平衡。爲了抵消人工數據不準確帶來的不利影響,我們測量了agent的不確定性,並將其納入到生成的數據集上,限制訓練。

本文對目前的研究有三個貢獻。

  • 我們表明,每一步更新的大量增加確實會導致DDPG中的穩定性問題;
  • 我們使用動力學模型的虛擬轉換擴展了DDPG的replay buffer,並證明了這將導致對真實世界轉換的更小需求;
  • 我們將批評家擴展到bootstrapped神經網絡,以限制虛擬數據在高不確定性情況下的使用。

3. Background

sts_t處執行ata_t得到新狀態st+1s_{t+1}和獎勵rtr_t,這種轉換關係被描述爲環境的動力學模型M:S×AP[S]M:S\times A\rightarrow P[S]。它將狀態和動作映射到狀態空間上的一組概率度量P[S]P[S],定義轉換動力學ρM[st+1st,at]\rho_M[s_{t+1}|s_t,a_t]。agent遵循一些策略來選擇動作π:SP[A]\pi: S\rightarrow P[A],這是從狀態到動作空間上的概率度量的映射。

在每個時間步tt,agent接收到一個由即時獎勵函數給出的獎勵rtr_tr:S×ARr:S\times A\rightarrow \mathbb{R}。從狀態sts_t開始並遵循一個固定的軌跡的總體獎勵由回報R(st)R(s_t)來描述。當遵循策略ππ時,狀態sts_t的期望回報是對所有可能執行的操作和後續狀態的期望Rπ(st)=Esj>tM,ajtπ[R(st)]R^\pi(s_t)=E_{s_{j>t}\sim M,a_{j\ge t}\sim\pi}[R(s_t)]。初始狀態S0SS_0\subset S也可能遵循一些潛在的概率分佈ρ0[s0]\rho_0[s_0],於是,Rπ(S0)=Es0ρ0,sj>0M,aj0π[R(st)]R^\pi(S_0)=E_{s_0\sim\rho_0,s_{j>0}\sim M,a_{j\ge 0}\sim\pi}[R(s_t)]。因此,π\pi^*對應於一個策略,該策略針對起始狀態密度ρ0[s0]\rho_0[s_0]使RπR^\pi的預期收益最大化:
在這裏插入圖片描述

Model-free and Model-based Reinforcement Learning

爲求得式1的解,環境的動力學模型通常是需要的,但一些無模型方法能夠繞過這一必要性。一種方法是學習Q-function,Qπ(st,at)=Esj>tM,ajtπ[R(st)at]Q^\pi(s_t,a_t)=E_{s_{j>t}\sim M,a_{j\ge t}\sim\pi}[R(s_t)|a_t],Bellman方程提供了一種遞歸的形式:Qπ(st,at)=Est+1M[r(st,at)+γEat+1π[Qπ(st+1,at+1)]]Q^\pi(s_t,a_t)=E_{s_{t+1}\sim M}[r(s_t,a_t)+\gamma E_{a_{t+1}\sim\pi}[Q^\pi(s_{t+1},a_{t+1})]]。對於高維狀態(動作)空間,Q-function通常由某個參數爲θQ\theta^Q的函數逼近器Qπ(,θQ)Q^\pi(\cdot,\cdot|\theta^Q)估計。通過最小化target value ytQ=r(st,at)+γmaxaQπ(st+1,aθQ)y_t^Q=r(s_t,a_t)+\gamma\max_a Q^\pi(s_{t+1},a|\theta^Q)當前QπQ^\pi-estimate的平方差:
在這裏插入圖片描述
另一種方法是使用策略梯度方法。與近似值函數,並從中得到隱式策略不同,策略本身由一些參數化的近似器表示。參數根據其性能的梯度直接更新,即策略梯度。在其基本形式上,策略是隨機的。然而,確定性策略的梯度也被推導出來了。這種方法可以嵌入到actor-critic或policy迭代算法中,並且自然地適合於連續動作域。

當環境動力學可以逼近時,也可以通過基於模型的強化學習和對學習模型的最優控制來求解。然而,考慮到環境的轉換和獎勵函數,提取一個最優策略通常是一項非常重要的任務,並且可能需要在運行時進行一些非常昂貴的計算。在這一領域使用的主要規劃者是迭代線性二次調節器或蒙特卡羅樹搜索。兩者都有最近的應用。無模型強化學習具有通用性強、學習後評估成本低等優點。另一方面,基於模型的強化學習方法通常需要較少的樣本(數量級)。

Deep Deterministic Policy Gradient

本文建立在DDPG算法的基礎上,DDPG算法是一種明確設計用來處理連續動作域的actor-critic方法。由於DDPG中的策略是確定性的,因此它是從狀態到動作的直接映射:μ:SA\mu:S\rightarrow A。它代表了當前最好的策略,即μ(st)=argmaxatQ(st,at)\mu(s_t)=\arg\max_{a_t}Q(s_t,a_t),當狀態(動作)空間連續時,value-based方法是無法求解的。actor μ\mu和critic QQ由相應的近似器μ(θμ),Q(,θQ)\mu(\cdot|\theta^\mu),Q(\cdot,\cdot|\theta^Q)估計。根據深度Q網絡的觀點,使用延遲更新的target Q-network和target policy network計算訓練目標值,由μ(θμ),Q(,θQ)\mu'(\cdot|\theta^{\mu'}),Q'(\cdot,\cdot|\theta^{Q'})表示。這顯著地穩定了深度Q學習。對於每個更新步驟,隨機生成一小批n個樣本。首先,使用目標q-和策略網絡計算目標值yi=ri+γQ(si+1,μ(si+1θμ)θQ)y_i=r_i+\gamma Q'(s_{i+1},\mu'(s_{i+1}|\theta^{\mu'})|\theta^{Q'})。然後critic的MSE損失由L(θQ)=1ni(yiQ(si,aiθQ))2L(\theta^Q)=\frac{1}{n}\sum_i(y_i-Q(s_i,a_i|\theta^Q))^2計算得到。根據所有樣本的均值更新策略:
在這裏插入圖片描述
θμ(1τ)θμ+τθμ,θQ(1τ)θQ+τθQ,τ(0,1].\theta^{\mu'}\leftarrow (1-\tau)\theta^{\mu'}+\tau\theta^\mu,\theta^{Q'}\leftarrow (1-\tau)\theta^{Q'}+\tau\theta^Q,\tau\in(0,1].

4. Model-assisted Bootstrapped DDPG

在這裏插入圖片描述
這項工作的主要動機是保持無模型Q-學習的普遍性和最優性,同時最小化與真實模型的交互次數以提高數據效率。學習模型的使用會產生錯誤轉換的風險,從而影響價值函數的近似。爲了抵消這些不利影響,引入了不確定性的概念,僅在適當的時候使用虛擬數據(即對於高度不確定性的樣本)。這些思想產生了Model-assisted Bootstrapped DDPG算法,縮寫爲MA-BDDPG(參見圖1)。爲了得到完整的算法,我們首先描述了DDPG與模型的結合,給出了一個變量,我們稱之爲模型輔助DDPG(MA-DDPG)。接下來,我們將展示如何利用bootstrapping在critic中包含一個不確定性度量,以及如何使用它來獲得虛擬rollout(隨後稱爲imagination)樣本的自動限制。

Model-assisted DDPG

我們用確定性模型來處理這個問題,並學習預測狀態的變化:MΔ:S×AΔsM^\Delta:S\times A\rightarrow\Delta s。在每一時間步,agent收集一個真實樣本sts_t,它是指定深度D的B個虛擬rollouts的起始點。對於每一步,根據當前真實策略和隨機噪聲選擇動作abda_{bd}。對於訓練,目標值、損失和目標更新等同於DDPG。由於actor和critic是根據想象的樣本進行更新的,因此這些更新可以歸結爲:
在這裏插入圖片描述
其中目標值yi^=r(si^,ai)+γQ(si+1^,μ(s^i+1θμ)θQ)\hat{y_i}=r(\hat{s_i},a_i)+\gamma Q'(\hat{s_{i+1}},\mu'(\hat{s}_{i+1}|\theta^{\mu'})|\theta^{Q'}),發生的狀態si^=MΔ(s^i1,ai1θM)+s^i1\hat{s_i}=M^\Delta(\hat{s}_{i-1},a_{i-1}|\theta^M)+\hat{s}_{i-1},模型MΔM^\DeltaθM\theta^M參數化。critic根據URU_R real batches和UIU_I imaginary batches進行更新,從而在每個循環中從兩個損失函數(等式(4)的兩種形式,但使用真實狀態ss而不是合成狀態s^\hat{s})獲得梯度。MA-DDPG的概述和詳細說明見附錄。

MA-DDPG算法流程:

初始化 critic網絡參數Q、actor網絡參數μ,以及目標網絡參數Q'和μ',和模型M^\Delta
初始化replay buffer R和imaginary replay buffer I
for e=1..E do
	獲得初始化狀態s_1
	for t=1..T do
 		獲取當前狀態的動作a_t=μ(s_t|θ^μ)+\xi (即以加入噪聲的方式實現探索)
 		獲得下一狀態s_{t+1}和獎勵r_t
 		將轉換(s_t,a_t,s_{t+1},r_t)存入replay buffer R
 		從狀態s_t,使用動力學模型M^\Delta生成B個長度爲D的隨機想象轉換
.		將想象轉換存入imaginary replay buffer I
		for u_M=1..U^M do
			使用R中的minibatch訓練動力學模型M^\Delta
		for u_R=1..U_R do
			使用R中的minibatch訓練Q和μ
		for u_I=1..U_I do
			使用I中的minibatch訓練Q和μ
			調整參數Q'和μ' 

從上面可以看出MA-DDPG僅僅是使用動力學模型來生成了虛擬的數據,即擴充了訓練數據集。

Including Uncertainty

在這裏插入圖片描述

神經網絡預測中不確定性的量化是一個積極研究的問題。貝葉斯神經網絡將概率分佈放在網絡權重上,從而給出不確定性的度量。正如Gal所觀察到的,這些模型承受着巨大的計算成本。他們建議通過使用dropout來近似高斯過程的後驗來解決模型不確定性問題。雖然這是一種可擴展且簡單的方法來測量預測中的不確定性,Osband等發現這種方法(及其對異方差模型不確定性的修正)帶來了令人不滿意的結果。爲了克服這些問題,他們將bootstrapping應用於深度Q-網絡,得到Q-函數的分佈,從而估計不確定性。爲了融合不確定性估計,並且仍然能夠適應連續作用域,將Bootstrapped DQN體系結構擴展爲遵循上述DDPG的actor-critic方案。

Q函數逼近器Q1:K(,θQ)Q_{1:K}(\cdot,\cdot|\theta^Q)被定義爲一個參數θQ\theta^Q的深度神經網絡,由一個可選的單共享體和K個獨立的網絡頭QkQ_k組成。在我們的實驗中,我們沒有使用共享體。與DDPG和MA-DDPG類似,目標值通過緩慢更新的目標網絡Q1:K,μQ_{1:K}',\mu'來計算。當agent接收到一個新的轉移時,對於某個概率分佈P,它會生成一個隨機掩碼mt=(m1,m2,...,mK)tm_t=(m^1,m^2,...,m^K)_t,其中miPm^i\sim P。在實驗中,mask的每個元素都是根據共享概率p的Bernoulli分佈繪製的。這確保了一個樣本只被頭部的部分子集看到,因此,創建了k個bootstrapped 樣本。然後將K個頭分別在它們各自的樣本上訓練。具體過程如算法1所示。

首先,計算K個頭部的不同目標值,ytQ1:Krt+γQ1:K(st+1,μ(st+1θμ)θQ1:K)y_t^{Q_{1:K}}\leftarrow r_t+\gamma Q_{1:K}'(s_{t+1},\mu'(s_{t+1}|\theta^{\mu'})|\theta^{Q_{1:K}'})。然後critic在合併損失上進行更新:
在這裏插入圖片描述
其中nk=iδmik0n_k=\sum_i\delta_{m_i^k\ne0}δ\delta是Dirac delta function。請注意,masks會修改損失,從而將梯度只重定向到相應的頭部。然後根據所有頭部的所有相應更新的平均值更新單個網絡actor μ\mu的參數θμθ^\mu
在這裏插入圖片描述

更新了actor和critic後,target networks的權重Q1:KQ_{1:K}'μ\mu'通過τ(0,1]\tau\in(0,1]向當前權重偏移(類似DDPG)。model-based的損失與更新如前一節所述。基於Q函數上的分佈,agent可以通過方差估計其不確定性。

Limiting Model Usage

限制與當前不確定性成比例的想象力使用的一個簡單方法是將不確定性度量轉換爲概率分佈,並引發有偏見的硬幣翻轉(induce a biased coin flip)。然後,拋硬幣的結果決定是否在假想批次上訓練。agent的方差可能是特定於任務的。另一方面,度量不應依賴於方差的先驗知識。爲了避免這種必要性,我們把不確定性放在迄今爲止所看到的最大方差的context中。在形式上,我們定義在episode ee中從replay buffer II訓練用到的minibatch bb的概率爲P[bI]=σ^e+12=σˉe2maxEσˉE<e2P[b\subset I]=\hat{\sigma}_{e+1}^2=\frac{\bar{\sigma}_e^2}{\max_E\bar{\sigma}_{E<e}^2},其中σˉe2\bar{\sigma}_{e}^2表示ee方差的均值。這將平均方差比限制爲[0,1][0,1],可以解釋爲:如果不知道方差值的高低,則最大值是一個合理的參考點。因此,這種潛在的概率分佈產生了一種無量綱的不確定性度量,並且隨着時間的推移,當critic的不同heads趨於一致時,這種概率分佈應該會減少。但是,這使得一開始的生成數據噪聲非常大,並且由於預測誤差而限制了模型的使用,這爲將來的工作提供了重要的方向。

算法1描述如下:

初始化 critic網絡參數Q、actor網絡參數μ,以及目標網絡參數Q'和μ',和模型M^\Delta
初始化replay buffer R和imaginary replay buffer I
設置方差比率(variance ratio)\hat{σ}_1^2=0
for e=1..E do
 	獲得初始化狀態s_1
 	for t=1..T do
 		獲取當前狀態的動作a_t=μ(s_t|θ^μ)+\xi 並觀察方差σ_t^2(Q)
 		獲得下一狀態s_{t+1}和獎勵r_t
 		生成隨機mask m_t
 		將轉換(s_t,a_t,s_{t+1},r_t,m_t)存入replay buffer R
 		從狀態s_t,使用動力學模型M^\Delta生成B個長度爲D的隨機想象轉換
		將想象轉換存入imaginary replay buffer I
		for u_M=1..U^M do
			使用R中的minibatch訓練動力學模型M^\Delta
		for u_R=1..U_R do
			使用R中的minibatch訓練Q和μ
			調整參數Q'和μ' 
		for u_I=1..U_I do
			生成隨機數 rand ∈ [0,1]
			if rand < \hat{σ}_e^2 then
				使用I中的minibatch訓練Q和μ
				調整參數Q'和μ' 
	在e中添加方差值並設置迄今爲止看到的最大方差
	設置當前方差比率(Limiting Model Usage中\hat{σ}的更新公式)

5. Experimental Results

在這裏插入圖片描述
Experiments: MuJoCo下搭建的三個環境Reacher, Pusher and Jaco。前兩個是OpenAI Gym中的環境。

  • Reacher:雙連桿臂必須在二維空間中達到給定的隨機目標。連續狀態空間有11維,連續動作空間有2維。
  • Pusher:使用具有七個自由度的手臂將隨機放置的對象推到固定的目標位置。連續狀態空間有23維,連續動作空間有7維。
  • Jaco:此環境將reacher任務擴展到kinova1 jaco手臂的3d隨機目標到達任務。連續狀態空間具有24個維度(不包括手指),連續動作空間有六個。

Parameters: 在所有方法中保持所有共享參數相同。由於我們在MA-BDDPG和DDPG中都遇到了穩定性問題,所以在使用多個更新時,我們不得不降低學習率。對於reacher和jaco任務,我們將默認的URU_R值設置爲20,將UIU_I值設置爲80。對於pusher任務,這些值設置爲5和95。然而,我們也將我們的結果與具有100次更新的DDPG進行比較,以及與原始DDPG超參數設置的示例性運行進行比較,原始DDPG超參數設置分別具有每個週期1次和20次更新。具有默認設置的DDPG由DDPG*表示。括號中的數字表示不同的更新值,否則將使用與MA-BDDPG中相同數量的實際更新。

Results:
在這裏插入圖片描述
在這裏插入圖片描述
在給定的時間範圍內,MA-BDDPG顯示出在所有任務中的學習速度明顯更快。在這三個環境中,Reacher環境的動態最簡單,因此模型學習更快。我們認爲,這就是MA-DDPG從一開始就獲得更好性能的原因,但是該模型的準確性似乎在大約100 episodes後會減慢學習速度。那時,MA-BDDPG已經減少了不確定性,因此減少了想象力的使用,從而專注於真實數據。請注意DDPG和DDPG*中100次更新以及DDPG*中20次更新的對抗效果,如表1所示。每個週期似乎沒有足夠的額外信息,因此不能從這麼多的更新中獲益。但是,基於模型的想象力不是萬能藥,使用過多的人工信息會導致巨大的穩定性問題,正如在Pusher和Jaco實驗中的MA-DDPG結果中所看到的那樣。限制使用虛擬rollouts可在所有三個任務中顯着提高性能穩定性,並獲得針對此超參數的魯棒性。這意味着更快的成功,如表2所示。關於三個給定任務,與具有相同超參數設置的DDPG相比,MA-BDDPG節省了92%,44%和93%的訓練時間。這意味着速度提高了12.35、1.77和15。此外,與DDPG*相比,MA-BDDPG可以節省92%,69%和91%的episodes,直到達到成功的表現,這意味着速度提高了12.35、3.22和11.13。對於DDPG和DDPG*,我們在[1,100]的範圍內逐步增加了更新量,並且找不到比使用的參數更好的超參數設置。

我們注意到當使用太大的imaginary replay buffers時,會出現性能下降和穩定性問題。因此,即使需要長期的樣本和負面的例子,使用僅涵蓋最後幾個episodes的imagination的imaginary replay buffers,學習的速度也變得更加穩定。我們認爲這是由於模型更新過多後狀態預測的差異造成的。replay buffers中的樣本可能不一致,從而對學習產生不利影響。設置imaginary replay buffers的大小,使其僅覆蓋最後幾個episodes,其行爲類似於在稍後的訓練過程中隱式優先級體驗重播。它增強了最近成功的軌跡,從而使學習更快。另一方面,對真實轉換的均勻採樣仍然會跟蹤negative experience。

jaco任務和pusher任務在速度上有很大的不同。圖3中的模型錯誤給出了一個可能的解釋,我們認爲這是由幾個原因造成的。首先,pusher任務只在配置空間的一個非常狹窄的部分中起作用,而jaco任務則覆蓋了更大的部分。其次,Pusher任務是一個雙層任務。機器人必須向障礙物移動,然後把它推到目標上。一開始,機器人並不移動物體,而是試圖朝着它移動。關於模型學習,只收集對象不移動的樣本。因此,當agent確實移動對象時,模型首先必須重新學習環境動力學的這一部分,這將導致模型誤差的增加和隨後的非常緩慢的減少。這使得模型學習的任務更加困難,快速的模型自適應是未來工作的一個方向。最後,由於agent在配置空間的一個非常狹窄的部分移動,所以方差很快變小。即使在主體重新學習運動物體的動力學之後,想象力也很少被使用,因此幾乎沒有進一步的影響。在一開始我們經歷了更快的學習與更大的rollout長度。但是,後來方法變得不穩定,所以我們不得不減少它。使用更快的適應模型或靈活的推出長度,似乎可以帶來更大的好處。

6. Conclusion

本文介紹了Model-assisted Bootstrapped DDPG算法。它通過由並行學習的神經模型生成的人工數據來增強在現實世界中收集的轉換。這種轉換增強受到Q函數不確定性降低的限制。結果表明,該方法在保持穩定性的前提下,顯著提高了學習速度。

接下來,不應設置固定的rollout長度,而應限制模型誤差對擴展深度和模型使用的影響。快速的模型自適應對於更高複雜環境的適用性將有很大的用處。此外,每個週期的數據生成可能是實際應用程序的瓶頸。將數據生成移動到事件的結尾或並行化數據生成和執行可能會很有用。混合真實數據與虛擬數據,也爲未來的工作提供了一個有趣的方向。

Appendix

A. MA-DDPG

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章