伯克利和谷歌大腦的研究人員近日發(fā)表了全新的強化學(xué)習(xí)算法:柔性致動/評價(soft actor-critic,SAC)。作者表示,作為目前高效的model-free算法,十分適用于真實世界中的機(jī)器人任務(wù)學(xué)習(xí)。在這篇文章中,將詳細(xì)比較SAC與前沿強化學(xué)習(xí)算法的性能,并利用多個實際任務(wù)作為例子來展示最新算法的能力。這一算法還包含完整詳細(xì)的源碼實現(xiàn)供研究者學(xué)習(xí)和使用。
適用于真實機(jī)器人的深度強化學(xué)習(xí)
真實世界中理想的強化學(xué)習(xí)算法應(yīng)該具有什么樣的特性呢?與虛擬和實驗室環(huán)境相比,真實情況將為算法帶來一系列挑戰(zhàn)。包括通信和數(shù)據(jù)流連續(xù)中斷、低延時的推理、為避免設(shè)備機(jī)械損傷需要盡可能平滑連續(xù)的運動等,這些都為算法本身及其實現(xiàn)帶來了更多的要求。研究人員通常希望應(yīng)用在真實世界中的算法具有以下優(yōu)點:
·樣本效率。在真實世界中學(xué)習(xí)技能是耗時的任務(wù),對于每一個新任務(wù)的學(xué)習(xí)都需要多次試錯,學(xué)習(xí)一個新技能所需的總時間會十分可觀,所以良好的樣本復(fù)雜度是一個優(yōu)秀算法的先決條件。
·對超參數(shù)不敏感。真實世界中研究人員希望避免參數(shù)調(diào)整,而最大化交叉熵的強化學(xué)習(xí)提供了一個魯棒的學(xué)習(xí)框架來最小化超參數(shù)調(diào)節(jié)的需求。
·Off-policy學(xué)習(xí)。解耦策略(off-policy)學(xué)習(xí)意味著可以使用其他任務(wù)場景收集的數(shù)據(jù)來學(xué)習(xí),例如在準(zhǔn)備新任務(wù)時只需要調(diào)整參數(shù)和獎勵函數(shù),而解耦策略則允許復(fù)用已經(jīng)收集好的數(shù)據(jù)來訓(xùn)練算法。SAC是一個解耦策略(off-policy)和自由模型(model-free)深度強化學(xué)習(xí)算法。它不僅涵蓋了上述優(yōu)點,同時其樣本效率足夠在幾小時內(nèi)解決真實世界的機(jī)器人學(xué)習(xí)問題。此外其超參數(shù)十分魯棒,只需要單一的超參數(shù)集就可以在不同的模擬環(huán)境中獲得良好的表現(xiàn)。更為重要的是這一算法的實現(xiàn)還包含了以下特點,為真實世界的機(jī)器人學(xué)習(xí)提供了重要的作用:
·異步采樣;需要足夠快的推理來最小化控制環(huán)中的延時,同時也希望在執(zhí)行過程中進(jìn)行訓(xùn)練。所以在實際情況中數(shù)據(jù)采樣和實際訓(xùn)練應(yīng)該由獨立的線程或進(jìn)程運行;
·停止/假設(shè)訓(xùn)練;真實硬件中將會面臨一系列錯誤情況,需要考慮數(shù)據(jù)流連續(xù)中斷的情況;
·運動平滑.典型的高斯探索(exploration)將會導(dǎo)致致動器產(chǎn)生抖動,這會對硬件造成不利的影響甚至損傷驅(qū)動器和機(jī)械結(jié)構(gòu),所以在實際中研究人員使用了探索的時域相關(guān)性來有效緩解這一問題。
SAC
SAC基于最大熵強化學(xué)習(xí)框架,其中的熵增目標(biāo)如下所示:
其中s和a是狀態(tài)和行動,期望則包含了策略和來自真實系統(tǒng)的動力學(xué)性能。換句話說,優(yōu)化策略不僅最大化期望(第一項),同時還最大化期望的熵(第二項)。其中的參數(shù)α平衡了這兩項對于結(jié)果的影響,當(dāng)α為0時上式就退化為傳統(tǒng)的預(yù)期回報目標(biāo)函數(shù)。研究人員認(rèn)為可以將上述目標(biāo)函數(shù)視為熵約束的最大化預(yù)期回報,通過自動學(xué)習(xí)α參數(shù)來代替超參數(shù)。我們可以從多個角度解釋這一目標(biāo)函數(shù)。既可以將熵看作是策略的先驗,也可以將其視為正則項,同時也可以看作是探索(最大化熵)和利用(最大化回報)間的平衡。SAC通過神經(jīng)網(wǎng)絡(luò)參數(shù)化高斯策略和Q函數(shù)來最大化這一目標(biāo)函數(shù),并利用近似動力學(xué)編程來進(jìn)行優(yōu)化。基于這一目標(biāo)函數(shù)研究人員推導(dǎo)出了更好的強化學(xué)習(xí)算法,使其性能更加穩(wěn)定,并且達(dá)到足夠高的樣本效率來應(yīng)用到真實機(jī)器人中。
模擬基準(zhǔn)
為了評價新型算法的表現(xiàn),研究人員首先在仿真環(huán)境中利用標(biāo)準(zhǔn)的基準(zhǔn)任務(wù)來對SAC進(jìn)行了評測,并與深度確定性策略梯度算法(DDPG),孿生延遲深度確定性策略梯度算法(TD3),鄰近策略優(yōu)化(PPO)等算法進(jìn)行了比較。幾種算法在三種基本的模擬移動任務(wù)上進(jìn)行了性能比較,分別是豹,螞蟻和人形。
三種移動仿真任務(wù)
下圖描述了幾個算法在三個不同任務(wù)中的表現(xiàn),其中實線表示算法的平均回報而陰影則描述了算法表現(xiàn)的范圍,包含了最好和最壞的表現(xiàn)。SAC算法在下圖中由藍(lán)色表示,可以看到它的效果最好。更重要的是在最壞的情況下,它還可以保持較好的表現(xiàn)(這意味著在某些極端糟糕的情況下還能保持魯棒性)。
真實世界中的深度強化學(xué)習(xí)
為了檢驗算法在真實世界中的能力,研究人員在不依賴仿真或者試教的情況下從零開始讓機(jī)器人學(xué)習(xí)解決三個任務(wù)。第一個任務(wù)中利用了小型四足機(jī)器人米諾陶,它擁有八個直驅(qū)致動器。其運動空間由擺角和每條腿的延伸部分構(gòu)成,將運動映射到期望的電機(jī)位置,并利用PD控制器進(jìn)行跟蹤。其觀測數(shù)據(jù)包括電機(jī)角度、滾轉(zhuǎn)角度、俯仰角度以及基體的角速度。這一任務(wù)中欠驅(qū)動的機(jī)器人需要精巧地平衡腿部接觸力大小來實現(xiàn)移動。沒有訓(xùn)練過的機(jī)器人將會失去平衡并摔倒,摔倒太多次的試錯將會損壞機(jī)器人,所以樣本效率是算法的關(guān)鍵。下面展示了學(xué)習(xí)后的算法表現(xiàn),雖然在平面上對機(jī)器人進(jìn)行的訓(xùn)練,但在測試時的不同崎嶇、動態(tài)的地形上也獲得的較好的結(jié)果。這主要來源于SAC學(xué)習(xí)到了魯棒的策略,訓(xùn)練時的熵最大化使得策略可以很好地泛化這些地形的擾動而無需額外的訓(xùn)練過程。
適應(yīng)多種路況的米諾陶
第二個項目是利用三指靈巧手來旋轉(zhuǎn)一個閥門的任務(wù)。其中機(jī)械手有9個自由度,由9個舵機(jī)控制。學(xué)習(xí)出的策略將向PID控制器發(fā)送關(guān)節(jié)的目標(biāo)角度來實現(xiàn)控制。為了感知到閥的位置,機(jī)器人需要機(jī)遇下圖中右下角的原始RGB圖像來獲取信息。機(jī)器人的目標(biāo)是將閥帶有顏色的一邊旋轉(zhuǎn)到下圖所示的位置。閥由一個獨立的電機(jī)控制,并按照均勻分布每次初始化到不同的位置(電機(jī)的位置同時也為訓(xùn)練提供了基準(zhǔn))。這將強制策略從原始的RGB中學(xué)習(xí)到閥當(dāng)前的朝向。這一任務(wù)也由于需要同時感知RGB圖像和對九個自由度的控制而增加了難度。
轉(zhuǎn)動閥門的靈巧手
在最后的任務(wù)中,研究人員將訓(xùn)練7自由度的Sawyer來堆疊樂高塊。策略接收的信號包括關(guān)節(jié)的角度的速度以及末端執(zhí)行器的力作為輸入,同時輸出每個關(guān)節(jié)的力矩來控制機(jī)器人。這個任務(wù)中最大的挑戰(zhàn)在于需要先準(zhǔn)確的對好積木間的位置,隨后再用力克服插入的摩擦來安放積木。
堆樂高的Sawyer
SAC算法對于上面三個任務(wù)都給出了較快的解決:其中米諾陶全地形行走和Sawyer碼積木只用了兩個小時的訓(xùn)練時間,而靈巧手?jǐn)Q閥門則使用了20個小時。如果直接把閥門的角度告訴機(jī)器人而不是通過圖像去學(xué)習(xí),則只需要三個小時就能學(xué)會。而之前的PPO算法則需要7.4小時才能通過角度學(xué)會擰閥門。
實用化的DeepRL
SAC算法是深度強化學(xué)習(xí)實用化的關(guān)鍵一步,雖然在更具挑戰(zhàn)的場景和更大規(guī)模的情況下使用還需要很多的工作和研究,但SAC給出的結(jié)果已經(jīng)讓真實世界中的機(jī)器人向期待的目標(biāo)邁出了關(guān)鍵的一步,這對于強化學(xué)習(xí)在機(jī)器人領(lǐng)域的實用化具有十分重要的意義。如果小伙伴們想了解更多,請移步項目主頁:https://sites.google.com/view/sac-and-applications同時,研究人員們還將大部分著名的機(jī)器人強化學(xué)習(xí)算法打包成了一個工具包rlkit,其中就包含了本文的SAC算法。開源不久目前已經(jīng)在git上收獲了384顆星。
可以直接利用conda運行配置環(huán)境就可以直接開始愉快的玩耍了。https://github.com/vitchyr/rlkit此外還有一個利用PyTorch實現(xiàn)SAC的版本:https://github.com/rail-berkeley/softlearning以及:https://github.com/haarnoja/sac
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28627瀏覽量
207954 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4779瀏覽量
101031 -
強化學(xué)習(xí)
+關(guān)注
關(guān)注
4文章
268瀏覽量
11279
原文標(biāo)題:Soft Actor-Critic——用于真實機(jī)器人的高效深度強化學(xué)習(xí)算法
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論