Wieland Brendel、Jonas Rauber、Matthias Bethge
眾所周知,強化學習(RL)是一種強大的技術,它能夠解決諸如移動(locomotion)、Atari游戲、賽車游戲以及機器人操作等復雜的任務,而這些全部是通過在一個獎勵函數上訓練智能體以其優(yōu)化行為實現的。但是,對于許多任務來說,我們很難設計一個既容易訓練又能產生理想行為的獎勵函數。假設我們想要一個機械手臂學習該如何將一個環(huán)放到一個釘子上,那么最自然的獎勵函數為,若智能體到達所需的終端配置下將獲得值1的獎勵,否則為0。然而,對于這個任務所要求的動作——在釘子的頂部對齊該環(huán),然后將其滑動到底部,在這樣一個二進制獎勵下進行學習是不切實際的,因為我們最初策略中的一般隨機探索不太可能實現這樣的目標。另一方面,我們可以試著對獎勵函數的形式做些調整,以潛在地緩解這個問題,但找到一個良好的形式需要大量的專業(yè)知識和實驗經驗。例如,直接將環(huán)的中心與釘子底部之間的距離最小化會導致一種不成功的策略,也就是將環(huán)撞擊到釘子上。對此,我們提出一種不用修改獎勵函數的有效學習方法,通過在開始位置自動生成課程以進行學習。
生成課程而不是調整獎勵函數
我們希望訓練一個智能體,使其能夠從任何起始位置到達目標,而不需要專家對獎勵函數進行調整。顯然,并不是所有起始位置的難易程度都是一樣的。尤其是,即使是放在目標附近的隨機智能體,也可以在某時刻達到目標,獲得獎勵,從而開始學習。隨后,這些獲得的知識可以被引導用以解決起始位置遠離目標的任務。通過選擇我們在訓練中使用的起始位置的順序,我們可以利用這個問題的基本結構,并提高學習效率。這種技術的一個關鍵優(yōu)勢是獎勵函數不被修改,而直接對優(yōu)化稀疏獎勵進行優(yōu)化不容易產生不良行為。對一系列相關學習任務進行排序被稱為課程學習(curriculum learning),而對我們來說,一個關鍵問題是如何選擇這個任務的順序。我們的方法,關于此,我們將在下面進行更詳細的解釋,它使用學習智能體的性能以自動生成從目標開始并向外擴展的任務課程。
反向課程學習
在面向目標的任務中,目的是從任何起始狀態(tài)都能夠到達期望的配置。例如,在上面介紹的“將環(huán)放置在釘子上”任務中,我們希望從任何起始配置開始都能夠將環(huán)放置在釘子上。從大多數的起始位置來看,我們初始策略的隨機探索始終沒有到達目標,因此沒有獲得任何獎勵。盡管如此,如果一個隨機策略從附近的位置初始化,那么這個隨機策略就非常有可能到達釘子的底部。然后,一旦我們已經學會了該如何從目標周圍到達目標,那么學習從更遠的起始位置開始也變得很簡單了,原因在于如果探索行為將其狀態(tài)驅動到目標附近,那么智能體就已經知道該如何繼續(xù)學習了。最終,智能體成功地學會從廣泛的起始位置到達目標。
這種反向學習或者從目標向外擴展的方法,是啟發(fā)于動態(tài)規(guī)劃方法,在這種方法中,可以使用更為簡單的子問題的解來計算更為復雜的問題的解。
中級難度起點(SoID)
為了實現這個反向課程,我們需要確保,對于智能體來說這個向外擴展能夠以適當的速度進行。換句話說,我們想要用數學語言描述一組追蹤當前智能體性能的啟動,并為我們的強化學習算法提供一個很好的學習信號。我們特別關注的是策略梯度算法,通過在總預期獎勵的梯度估計的方向上采取步驟以改進參數化策略。這個梯度估計通常是原來的強化(REINFORCE)(https://link.springer.com/article/10.1007/BF00992696)的一個變體,通過收集從狀態(tài){si0}i=1..N開始的N個策略軌跡{τi}i=1..N進行估計。
在面向目標的任務中,軌跡獎勵R(τi,si0)是二進制的,以表明智能體是否到達了目標。因此,如果從si0開始執(zhí)行當前策略πθ,則通常的基線R(πi,si0)將會對到達目標的概率進行估計。因此,我們從方程(1)中看到,從成功概率為0或1的起點si0收集的軌跡對應的求和項將會消失。這些都是“浪費”的軌跡,因為它們對于梯度的估計沒有起到什么作用——它們要么太難,要么太簡單。在我們之前關于多任務強化學習的研究中已經引入了類似的分析。在這種情況下,為了避免我們現有的策略從永遠無法到達目標或已經到達目標的位置開始訓練,我們引入了“中間難度起點”(SoID)的概念,它們是開始狀態(tài)s0,滿足:
Rmin和Rmax的值可以對最小成功概率(從這個開始點訓練的可接受的)和最大成功概率(高于我們所更愿意關注的從其他起點開始訓練的)進行估計。在我們所有的實驗中,我們使用的是10%和90%。
反向課程的自動生成
從上面的知識和推導出發(fā),我們想用從SoID狀態(tài)開始的軌跡訓練我們的策略。不幸的是,在每次策略更新中都找到了完全滿足方程式(2)的所有起始點,因此我們引入一個有效的近似來自動生成這個反向課程:我們在先前迭代期間被估計為中級難度起點的點附近采樣相關狀態(tài)。要做到這一點,我們提出了一種方法,通過在最后一次訓練迭代中收集的軌跡對非中級難度起點的起點進行過濾,然后對附近的狀態(tài)進行采樣。
過濾掉非中級難度起點
(Non-SoID)
在每個策略梯度訓練迭代中,我們從一些起始位置{ si0} i = 1..N收集N個軌跡。對于大多數起始狀態(tài)而言,我們至少從那里收集三條軌跡,因此我們可以對從這些起點Rθ(si0)開始的策略成功概率進行蒙特卡洛估計計算。對于估計值不在固定邊界Rmin和Rmax內的每個si0來說,我們將會將該起點丟棄,以便在下一次迭代期間不會從該處進行訓練。起點處,以前策略的SoID可能不是當前策略的SoID,因為它們現在已經到達目標了,或者由于更新后的策略變得更糟了,所以重要的是要保持過濾掉非SoID以維護一個課程以適合于當前智能體的性能。
附近采樣
在過濾非SoID之后,我們需要獲得新的SoID以繼續(xù)擴展我們開始訓練的起點。我們通過對剩余的SoID附近的狀態(tài)進行采樣,因為這些狀態(tài)與當前的策略有相似的難度,因此也可能是SoID。但是,什么樣的方法算是對某個狀態(tài)si0附近進行采樣的好方法呢?我們建議從這個si0中采取隨機探索行為,并記錄訪問狀態(tài)。這種技術比直接在狀態(tài)空間中應用噪聲要好得多,因為這樣做可能產生不可行的狀態(tài),或者無法通過執(zhí)行來自原始si0的動作實現。
假設
為了初始化算法,我們需要在目標sg 處進行一個初始化,然后從中運行布朗運動,從收集的起始點進行訓練,過濾掉非SoID并進行迭代。這些在指定問題中通常很容易獲得,而且這只是一個簡要的假設,而不是要求充分證明如何達到這一點。
我們的算法利用從收集的軌跡起點處選擇起點分布的能力。在許多系統(tǒng)中都是如此,就像所有的模擬系統(tǒng)一樣。Kakade與Langford(http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.7.7601)也提出了這一假設,并提出修改起點分配的有用性的理論證據。
應用于機器人
導航到一個固定的目標和對期望配置進行精細的操作是兩個面向目標的機器人任務的例子。我們分析了提出的算法是如何自動生成用于以下任務的反向課程:質點迷宮(Point-mass Maze)(圖1a)、螞蟻迷宮(圖1b)、環(huán)上釘(圖1c)和鑰匙插入(圖1d)。
質點迷宮(Point-mass Maze)
在這個任務中,我們要學習如何從迷宮中的任何起點到達圖1a右上角的紅色區(qū)域的末端。 我們在圖2中看到,隨機初始化策略——就像迭代i=1時那樣,在任何位置成功的概率都為0,但它在目標周圍。圖2的第二行顯示了我們的算法如何在i=1的目標附近提出起始位置。我們在后續(xù)的文章中看到,由我們的方法生成的起點保持對一個區(qū)域進行追蹤,而在該區(qū)域中訓練策略有時成功,但并非總是成功,因此為任何策略梯度學習方法提供了良好的學習信號。
為了避免忘記該如何從某些地方達到目標,我們保留所有以前策略中為SoID的起點重播緩沖區(qū)。在每次訓練迭代中,我們從這個重播的狀態(tài)中抽取一小部分軌跡。
螞蟻迷宮導航
(Ant Maze Navigation)
在機器人技術中,往往需要復雜的協(xié)調運動才能達到所需的配置。例如,如圖1b所示的四足動物需要知道如何協(xié)調其所有的力矩來向目標移動和前進。即使在達到目標時只提供成功/失敗獎勵,我們的算法也能夠學習這種行為。獎勵函數沒有修改,包括任何距離目標,質量速度中心或探索獎金。
細粒度操作
(Fine-grained Manipulation)
我們的方法也可以解決復雜的機器人操作問題,如圖1c和1d所示。這兩項任務都有一個七自由度的手臂,并具有復雜的接觸限制。第一個任務要求機器人將一個環(huán)向下插入釘子的底部,第二個任務試圖將一個鑰匙插入鎖中,順時針旋轉90度,將其進一步插入并逆時針旋轉90度。在這兩種情況下,只有在達到所需的最終配置時才會給予獎勵。在沒有課程的情況下,最先進的強化學習算法無法學習如何解決任務,但是通過反向課程生成,我們可以從一系列廣泛的起始位置獲得成功的策略。
結論和未來的方向
最近,強化學習方法已經從單一任務范式轉向解決任務集。這是為了更接近現實世界的場景,每次需要執(zhí)行任務時,起始配置、目標或其他參數都會有變化。因此,推進課程學習領域來開拓這些任務的基本結構是至關重要的。我們的反向課程策略是朝這個方向邁出的一步嘗試,在運動和復雜的操作任務中產生令人印象深刻的結果,這些任務在沒有課程的情況下是無法解決的。
此外,在我們用于操作任務的最終策略的視頻中可以觀察到,智能體學會了利用環(huán)境中的接觸物而不是避開他們。因此,基于本文所提出的部分方法的學習在解決傳統(tǒng)運動規(guī)劃算法難以解決的問題上具有很大的潛力,如非剛體對象的環(huán)境或任務幾何參數的不確定性。我們的未來工作是將我們的課程生成方法與域隨機化方法結合起來,以獲得可遷移到現實世界的策略。
如果你想了解更多信息,請查看我們在機器人學習大會上發(fā)表的論文:
Carlos Florensa,David Held,Markus Wulfmeier,Michael Zhang,Pieter Abbeel。強化學習的逆向課程生成(http://proceedings.mlr.press/v78/florensa17a/florensa17a.pdf)。在2017年機器人學習大會上發(fā)表。
我們也在項目網站上開源了代碼。https://sites.google.com/view/reversecurriculum