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