最新综述 | 强化学习中从仿真器到现实环境的迁移
?PaperWeekly 原創 ·?作者|李文浩
學校|華東師范大學博士生
研究方向|強化學習
最近 survey 了一下 sim2real 領域最近的相關工作,先整理個第一版(共有七篇論文)的總結。
整篇總結分為以下四個部分:
問題的定義以及工作的出發點
方法的分類
具體算法
一個實例
問題的定義以及工作的出發點
sim2real 的全稱是 simulation to reality,是強化學習的一個分支,同時也屬于 transfer learning 的一種。主要解決的問題是機器人領域中,直接讓機器人或者機械臂在現實環境中與環境進行交互、采樣時,會出現以下兩個比較嚴重的問題:
采樣效率太低(在用強化學習算法解決機器人相關問題時,所需要的樣本量一般會達到上千萬,在現實環境中采集如此數量級的樣本要耗費幾個月的時間)
安全問題 (由于強化學習需要通過智能體在環境中進行大范圍的隨機采樣來進行試錯,因而在某些時刻其做出的行為可能會損傷機器人自身,例如手臂轉動角度過大或者避障任務中由于碰撞造成的不可逆損傷等等;也可能會損害周圍的環境甚至生物)
但是如果我們在模擬器中進行強化學習算法的訓練,以上兩個問題均可迎刃而解。但是,這里同樣會存在一個問題,由于模擬器對于物理環境的建模都是存在誤差的,因而在模擬環境中學習到的最優策略是否可以直接在現實環境中應用呢?
答案往往是否定的,我們把這個問題稱為 “reality gap”。而 sim2real 的工作就是去嘗試解決這個問題。
這里值得注意的一點是,雖然這個方向叫做 sim2real,其實其中的所有的算法都可以直接應用在 sim2sim,real2real 等的任務中。
方法的分類
sim2real 中的典型工作大致可以分為以下五類:
Domain Adaption 主要是通過學習一個模擬環境以及現實環境共同的狀態到隱變量空間的映射,在模擬環境中,使用映射后的狀態空間進行算法的訓練;因而在遷移到現實環境中時,同樣將狀態映射到隱含空間后,就可以直接應用在模擬環境訓練好的模型了。
Progressive Network 利用一類特殊的 Progressive Neural Network 來進行 sim2real。其主要思想類似于 cumulative learning,從簡單任務逐步過渡到復雜任務(這里可以認為模擬器中的任務總是要比現實任務簡單的)。
Inverse Dynamic Model 通過在現實環境中學習一個逆轉移概率矩陣來直接在現實環境中應用模擬環境中訓練好的模型。
Domain Randomization 對模擬環境中的視覺信息或者物理參數進行隨機化,例如對于避障任務,智能體在一個墻壁顏色、地板顏色等等或者摩擦力、大氣壓強會隨機變化的模擬環境中進行學習。
具體算法
這一部分將對以下六篇論文進行詳細的說明:
[1] Towards Adapting Deep Visuomotor Representations from Simulated to Real Environments [arXiv 2015] Eric Tzeng, Coline Devin, Judy Hoffman, Chelsea Finn, Xingchao Peng, Sergey Levine, Kate Saenko, Trevor Darrell
[2] Learning Invariant Feature Spaces to Transfer Skills with Reinforcement Learning [arXiv 2017] Abhishek Gupta, Coline Devin, YuXuan Liu, Pieter Abbeel, Sergey Levine
[3] Sim-to-Real Robot Learning from Pixels with Progressive Nets [arXiv 2016] ?Andrei A. Rusu Deepmind.
[4] Transfer from Simulation to Real World through Learning Deep Inverse Dynamics Model [arXiv 2016] Paul Christiano, Zain Shah, Igor Mordatch, Jonas Schneider, Trevor Blackwell, Joshua Tobin, Pieter Abbeel, and Wojciech Zaremba
[5] Sim-to-Real Transfer of Robotic Control with Dynamics Randomization [ICRA 2018] Xue Bin Peng, Marcin Andrychowicz, Wojciech Zaremba, and Pieter Abbeel
[6] Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World [IROS 2017] Josh Tobin, Rachel Fong, Alex Ray, Jonas Schneider, Wojciech Zaremba, Pieter Abbeel
3.1 GDA
論文標題:Towards Adapting Deep Visuomotor Representations from Simulated to Real Environments
論文鏈接:https://arxiv.org/abs/1511.07111
該論文屬于 Domain Adaption 類別。
▲ 虛擬環境以及現實環境收集到的圖像對比
如上圖,本文的基本思想是,無論是在模擬環境還是在現實環境智能體收集的圖像中,對于任務比較重要的便是一些可控制物體或者目標的位置。因而希望學到的隱含表示能夠保留這部分物體的位置信息。
以上是針對圖像局部信息的約束。而對于整體圖像來說,本文希望模擬環境以及現實環境在這個公共的隱含表示空間中的隱含表示無法被一個二分類器所分辨出來。另外,對于一對圖片,例如上圖,本文希望這一對圖片的隱含表示的歐氏距離能夠盡可能接近。
根據以上三個約束,可以得到以下三個損失函數:
Pose Estimation Loss:
Domain Confusion Loss:
其中:
Contrastive Loss:
其中:
而求解整個問題的最終優化目標即以上三個損失函數的加權求和:
給出一個更加容易理解的框架圖:
但是這種方法存在一個問題,在計算 contrastive loss 時需要使用一對在模擬環境以及現實環境中能對應上的圖片。這種對應關系如果需要人工完成工作量很大而且如何去分辨兩張圖是否是對應關系也沒有一個絕對的標準。
因而本文提出了一種無監督方法來自動從數據集中找出這種對應關系,具體來說分為以下五個步驟:
只使用虛擬環境中收集的圖片(進行位置標記)并只是用 pose estimation loss 訓練一個表示學習網絡。
使用上一步訓練好的表示學習網絡抽取數據集中所有圖片(包括仿真環境以及真實環境)的第一個卷積特征圖。
對以上特征圖采用 5x5 的最大池化。
為每一個仿真-現實圖片對計算相似度,即計算其拉直后的特征圖的內積。
每一張真實環境中的圖片對應的虛擬環境的圖片為相似度最高的那一張。
3.2 ICLR 2017
論文標題:Learning Invariant Feature Spaces to Transfer Skills with Reinforcement Learning
論文鏈接:https://arxiv.org/abs/1703.02949
這篇論文同樣屬于 Domain Adaption 領域,即學習一個虛擬環境以及真實環境的狀態(state)的公共的隱含表示空間。其整個學習過程分為兩步,第一步進行表示學習,第二步采用學習到的表示在現實環境中進行強化學習。
首先本文對需要解決的問題有如下假設:
Assume that the reward functions share some structural similarity, in that the state distribution of an optimal policy in the source domain will resemble the state distribution of an optimal policy in the target domain when projected into some common feature space.
即當仿真環境以及真實環境的狀態同時映射到一個公共的隱含表示空間中,這兩個環境所需要解決的問題的回報函數具有一定的相似性。
舉個例子,我們在仿真環境中構建一個擁有兩個關節的機械臂希望它能夠將一個冰球推到指定位置,回報函數設計為冰球與目標位置的距離的負值;然后在現實環境中,我們擁有一個有三個關節的機械臂去完成同樣的任務。
在這個例子中,雖然從智能體獲得的圖像表示完全不同(一個兩關節一個三關節),但是回報函數其實是一樣的,與關節數目沒有關系。當然這是一個比較極端的例子,回報函數可以不完全一樣。
所以本文的目標是學習兩個映射函數,能夠將兩個環境中的狀態映射到一個共同的隱含表示空間,這與上一篇論文只有一個公共的映射函數不同:
而要能通過這個目標來求出兩個映射函數,還需要做出以下假設:
仿真環境以及真實環境的智能體需要學會完成同一個任務
動作空間一致,狀態空間的維度一致
第一個假設必須存在是由于需要從這個共同的任務中去學習這兩個映射函數。這兩個假設其實不算很強烈的假設,對于第一個假設來說,這個共同任務可以是一些比較簡單的任務,使得訓練成本較小。
另外對于第二個假設,如果仿真環境以及現實環境中使用的是同一款機器人或者機械臂,動作空間一致以及狀態空間的維度一致是一個非常自然的假設。
3.2.1 表示學習
要進行如上公式所示的表示學習,我們首先需要對兩個環境中的狀態(學會的共同任務中的狀態)進行對齊(與上一篇論文里的對齊意義是一樣的),這里存在兩種方法進行對齊:
Time-bases Alignment
Dynamic Time Wrapping
第一種方法非常簡單,對于兩個環境中的智能體都學會解決的共同任務,如果智能體在仿真環境以及現實環境中動作執行的時鐘是大致相同的,那么只要讓兩個環境中的智能體同時開始執行這個共同的任務,其分別產生的狀態序列一定是對齊的。
但是時鐘相等的假設過于強烈了,因而第二種方法是一個可行性更高的方法。
它是一個迭代的方法,它需要一個計算兩個序列相似度的距離函數,根據這個距離函數來找出使得兩個序列距離最近的對齊方式;對齊后,再根據新的對齊方式更新距離函數,如此不斷迭代直至收斂或者到達停止條件。
這個方法主要在于如何去選擇這個距離函數,本文的做法是首先用 time-bases alignment 方法得到一個初始的對齊方式,再使用下面要講到的表示學習的方法學習兩個映射函數,將整個序列每一對對齊狀態映射后隱含表示向量的歐氏距離的和作為 dynamic time warpping 方法中序列相似度的距離函數。
以上就是狀態對齊步驟,下面就要進行正式的表示學習了。我們注意到,對于以上公式,其實有個非常簡單的解,即這兩個映射函數的是個輸出永遠為 0 的常數函數。
這樣一個解顯然不是我們需要的,因為我們可以加上一個約束,即學習到的隱含表示能夠盡可能多的保留原表示的信息,即學習到的隱含表示是一個 auto encoder 的隱向量。根據以上假設以及我們的優化目標,可以得到如下表示學習損失函數:
同樣給出一個更容易理解的框架圖:
3.2.2 知識遷移
在進行了第一步的表示學習后,我們需要利用學習到的表示在現實環境中進行新任務的訓練。
但是注意,我們學習的表示是經過如下兩個約束學到的,第一個約束可以認為是一個 auto encoder 的降維;第二個約束是能夠與模擬環境最優策略產生的狀態概率分布相同的一個隱含狀態表示空間。
因而我們不能單單只利用學習到隱含表示去在現實世界中訓練,這樣在模擬環境中訓練好的策略沒有辦法對現實任務的訓練造成任何影響,這個影響必須通過將現實任務的狀態序列與模擬環境中最優策略產生的狀態序列對齊后才能夠實現。
本文通過對現實環境中智能體需要解決的任務的回報函數的基礎上加上如下附加項來實現知識遷移:
這里的上標?表明,在進行現實環境中智能體的訓練時,模擬環境必須同步運行。
3.3 CoRL 2017
論文標題:Sim-to-Real Robot Learning from Pixels with Progressive Nets
論文鏈接:https://arxiv.org/abs/1610.04286
本方法屬于 Progressive Network 類別方法,其使用的 Progressive Nerual Network 是遷移學習領域提出的一種網絡結構,其具體形式如下圖(左)所示:
左圖中每一列(column)代表一個獨立的任務,任務訓練順序從左到右。雖然任務訓練順序從簡單到復雜從直覺上來看是比較合理的,但是 PNN 并不一定要滿足這個規律, 其任務訓練順序可以是任意的。
由于我們以第三列(第三個任務)為中心來考慮,因而有實線與虛線的差異??梢钥吹?PNN 的思想非常簡單,在后面任務的每一層計算時,輸入端并上之前任務前一層的輸出即可。但是 PNN 擴展到強化學習中進行了如下三個改變:
現實環境中使用的神經網絡要比模擬環境中要小。原因主要是由于原 PNN 論文發現,當列數越多時每一列網絡的參數都很稀疏,完全可以進行網絡壓縮或者剪枝。
輸出層不再接受前置任務的輸入。由于模擬環境與現實環境在動作空間上可能存在差異,因而在輸出層借鑒前面任務的知識反而容易產生誤導。
為了讓智能體在現實環境中訓練所需的樣本量更小,因而輸出層的參數直接復制之前任務的參數用來初始化,用以提升算法訓練初期的探索度。
值得注意的是,論文的結果還表明使用 LSTM 進行策略網絡的建模要比使用 MLP 效果更好。其實還有很多其他工作也同樣發現了這一點,主要還是因為大部分現實中的強化學習問題都是部分觀察的,不滿足馬爾可夫性質。
3.4 Christiano et al.
論文標題:Transfer from Simulation to Real World through Learning Deep Inverse Dynamics Model
論文鏈接:https://arxiv.org/abs/1610.03518
本文屬于 Inverse Dynamic Model 類別。其主要基于的假設是即使虛擬環境無法對現實世界進行完全準確的建模,但是其狀態的變化還是合理的。
例如,對于一個將物體推到指定目標位置的任務來說,一個機械臂將冰球往前推那么下一個狀態就是冰球往推動方向前進一些,但是不會往相反的方向移動。
基于這個假設,首先在虛擬環境訓練好一個策略,其輸入是前 n 個時間步的狀態(這里同樣考慮到部分觀察的問題),將輸出的動作輸入到虛擬環境模型中,就會轉移到虛擬環境中的下一個狀態。
將這個狀態與現實環境中的前 n 個時間步的狀態輸入到真實環境中學習到的逆動態模型中,就會得出能夠輸出這下一個狀態所需要采取的動作。具體見下圖:
以上過程唯一需要詳細說明的便是如何在現實環境中學習一個逆動態模型,其實非常簡單:
但是這個模型的好壞取決于在現實環境中收集的樣本的質量,即樣本是否具有足夠的多樣性從而覆蓋足夠大的狀態空間。一個簡單但有效的做法是在探索時的動作上增加一定的噪聲,但是加入噪聲的頻率等需要仔細考量否則就會使得收集到的數據質量下降,論文經過實際的實驗得出以下兩點經驗:
不需要每個時間步都加入噪聲。
當現實環境中智能體執行動作發生狀態轉移時轉移到一個與虛擬環境差別很大的狀態時,就應當即時停止這一輪的采樣。
3.5 ICRA 2018
論文標題:Sim-to-Real Transfer of Robotic Control with Dynamics Randomization
論文鏈接:https://arxiv.org/abs/1710.06537
本文屬于 Domain Randomization 類別。本文出發點在于深度強化學習算法具有以下特性:
DeepRL policies are prone to exploiting idiosyncrasies of the simulator to realize behaviours that are infeasible in the real world.
即強化學習算法在一個特定環境中進行學習時,會嘗試去挖掘某些專屬于這個環境的特性從而使得算法的泛化能力很差。為此,本文將強化學習的優化目標更改如下:
這里的 代表決定環境的物理參數。如果智能體優化的是在大量不同物理參數確定的虛擬環境中累積回報的期望值的話,訓練出的策略就會更加魯棒。對于一個特定的環境,本文采用 HER+RDPG 算法進行最優策略的訓練:
其中的策略網絡以及值函數網絡采用如下方式進行建模:
3.6 IROS 2017
論文標題:Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World
論文鏈接:https://arxiv.org/abs/1703.06907
本文同樣屬于 Domain Randomization 類別,只不過不同于上一篇論文是隨機化物理參數,本文是隨機化環境的視覺表示。具體來說,本文是想學習一個定位器,通過輸入一張圖片來定位其中所有目標物體的三維坐標:
具體需要隨機化的視覺信息包括:
桌子上所有目標物體的位置以及紋理
桌子、地板、背景以及機械臂的紋理
攝像機的位置、朝向以及可視范圍
場景中光源的數量
場景中光源的位置、朝向以及光譜特征
加入到圖像中噪聲的類型以及數量
一個實例
在這一部分我將介紹一下 OpenAI 在 sim2real 領域做出的一個工作,其地位類似于多智能體強化學習領域的 OpenAI Five。
4.1 Learning Dexterous In-Hand Manipulation
這個例子主要用到的技術包括以下幾點:虛擬環境的隨機化、大規模分布式采樣以及精確的虛擬環境搭建。其所需要完成的任務是:使用一個具有 20 個自由度的機械手,將其手掌中的立方體從初始朝向利用手指翻轉到目標朝向:
為了建立一個足夠精細(但是依舊存在無法建模的物理量)的虛擬環境,OpenAI 以機械手為球心半徑為 80 厘米的球面上均勻分布了 16 個精度為 20 微米的追蹤器,能夠定位機械手任意位置的微小位移。
之所以采用如此高精度的追蹤器是為了盡可能準確地對機械手的相關物理參數,例如手指關節處的阻尼等等,這樣的物理參數有將近 500 個。
我認為這個工作之所以能夠直接將虛擬環境中學習到的最優策略直接應用到現實環境中,這個高精度的虛擬環境功不可沒:
▲ 真實環境 vs 虛擬環境
整個系統的訓練步驟大致可分為以下三個部分(最后是訓練完畢的執行部分):
▲ 系統流程圖
下面將詳細對每一個部分進行說明。首先是第一個部分,包括模擬環境中數據的并行采樣以及整個強化學習的參數更新框架:
上圖中采用的分布式數據收集以及模型訓練框架同樣也是 OpenAI Five 所采用的。
從左下方開始,多個并行采樣的 worker 會將自己根據當前策略采集的樣本發送給與自己相關聯的 Redis 服務器上,模型更新模塊中的 Puller 將會定期異步地從 Redis 服務器中拉取一個 batch 的數據并放到 RAM 中。
之后 Stager 從 RAM 中拉取一個 mini-batch 放到 GPU 上,與其他采用 MPI 協議聯系的 GPU 一起對參數進行更新。
更新后的參數將每個 Optimizer 都保存一份。之后 Optimizer 沿著之前相反的路徑將更新后的參數存儲到 Redis 服務器上,workers 將定期異步地從 Redis 服務器上拉取最新的策略參數進行采樣。整個訓練過程就是以上過程的迭代。
下圖表示了不同規模的并行對于最終算法性能的影響:
第二部分,具體的強化算法選用的是 PPO 算法,其策略網絡以及值函數網絡建模如下:
▲ 強化學習算法架構
▲?策略網絡以及值函數網絡結構
其中輸入部分左邊代表機械手的狀態,右邊代表物體的朝向,具體的維度如下所示:
▲ 狀態空間
由于 PPO 算法的值函數網絡只會在訓練時使用到,因而采用完整信息對其進行訓練。在訓練時算法采用了如下三種隨機注入方法:
Dynamic Randomization
Domain Randomization
Unmodeled Effects Randomization
具體見下面三張圖:
▲ Dynamic Randomization
▲ Domain Randomization
▲ Unmodeled Effects Randomization
最后一部分,由于機械手的任務不應該局限于轉動方塊,還應該包括操縱其他物體。而且由第二部分可知策略網絡以及值函數網絡的輸入可知需要立方體的朝向以及位置信息,目前是通過 16 個高精度追蹤器確定的。
OpenAI 為了提高整個系統的通用性,因而在方塊的周圍相隔一定高度 120 度角均勻放置了三個攝像頭,嘗試學習一個模型,輸入是三張不同角度的圖片,輸出是立方體的位置以及朝向。這樣就可以把立方體換為任意的物體。其具體的網絡結構如下:
▲?Object Pose Prediction
▲?Pose Prediction Network Architecture
點擊以下標題查看更多往期內容:?
基于強化學習的多尺度信息傳播預測
漫談強化學習中的引導搜索策略
多智能體強化學習(MARL)近年研究概覽
如何快速理解馬爾科夫鏈蒙特卡洛法?
圖神經網絡時代的深度聚類
深入理解圖注意力機制(GNN)
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的最新综述 | 强化学习中从仿真器到现实环境的迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有车辆经过地感线圈车辆检测器自动启动
- 下一篇: 王腾否认小米 15 手机背面设计“渲染图