0
| 本文作者: 汪思穎 | 2018-05-06 18:01 |
雷鋒網 AI 研習社按,本文首發于知乎專欄智能單元,作者 Flood Sung,雷鋒網 AI 研習社獲其授權轉載。
1. 前言
深度增強學習 DRL 在仿真機器人已經取得了很大的成功,同時,也在真實的機器人抓取(Robotic Manipulation)問題上有了很大的進展。然而依然會有很多搞機器人的朋友會質疑深度增強學習(Deep Reinforcement Learning)在真實機器人上的可行性,比如說能在大狗機器人上面通過 DRL 來實現嗎?老實說我也覺得困難重重,最主要的問題就是所謂的 reality gap:真實機器人和仿真機器人存在很多的差別,在仿真中能夠 work,大概率不能在真實環境中 work。
然而,Google 最新的一篇 paper 告訴我們:不!DRL 在真實機器人上面是可行的,只要我們盡可能的減小這個 reality gap:
論文地址:https://arxiv.org/abs/1804.10332
看了上面的視頻,不知道大家會不會被驚訝到?以前需要巨量人工來調整的控制算法,現在用一個兩層的神經網絡實現了!可能沒有搞過機器人控制的朋友不太理解,就單單在四軸飛行器上調一個 PID 控制器都要調到崩潰!所以當真正在真實的四足機器人上用神經網絡實現運動控制的時候,感覺真的有點難以置信!
如果我們要簡單的說一下,未來就是機器人全神經網絡化,全部不需要復雜人工編程,全部通過自己學習的方式來掌握運動是完全可能的!并且,可以比傳統機器人控制算法做得更好!
下面我們來稍微說一下這篇 paper 的一些思想方法。
2. 構建一個足夠接近真實的仿真環境就好!
四足機器人不同于機械臂,能夠直接在真實環境中進行 DRL 訓練,四足機器人訓練成本顯然要高太多,因為它到底要摔多少次才能走起來?就算土豪如 Google 也沒那個錢來燒!所以,直接在真實環境中用 DRL 訓練四足機器人是基本不可能的,那么我們能做的顯然就只有在仿真環境中訓練,然后遷移到真實機器人上了。那么,這里的核心就是 Reality Gap 的問題,如何減少 Reality Gap,讓仿真環境足夠真實?
這篇文章處理了以下幾個部分:
1)構建一個更接近真實的仿真四足機器人模型。這個很好理解,比如讓仿真機器人的尺寸,重心等等都和真實機器人基本一致。
2)構建一個更好的驅動器模型(Actuator Model)。這里的實驗采用的是位置控制,也就是頂層的神經網絡只輸出目標位置,下層的執行還是實驗傳統 PD 控制器。所以呢,那就在仿真環境中調一個和真實差不多的電機控制器唄。
3)模擬好延遲 Latency。這一點對于機器人控制很重要,真實機器人在控制時由于硬件數據傳輸,延遲是不一樣的,所以要在仿真中模擬好延遲。
對于仿真環境也就是上面三部分的處理。那么,接下來就是怎么訓練的問題了。
3. 加點訓練技巧 tricks 讓神經網絡的泛化能力加強
訓練也是需要精細化調整的。這個工作直接使用 PPO 來訓練,兩層的神經網絡,位置控制,為了使得訓練效果更好,又做了下面三個處理技巧:
1)隨機化動態參數(Dynamic Parameters),也就是仿真機器人中的各種參數數據,比如重量,摩擦力,IMU 的誤差等等。
2)加上隨機外部擾動(Random Perturbations), 上一條是機器人內部參數,這一條則是在外部施加一個額外的擾動力,比如模擬一下風什么的。
3)使用一個合適的觀察空間(Observation Space),這一條則是針對具體的訓練,一個合適的觀察空間對于訓練效果影響很大,特別如果維度太高的話就很難訓練。所以這個工作僅僅使用了四足機器人基座的俯仰角,傾斜角,基座的角速度及 8 個電機的角度。而這就足夠來訓練。
上面的處理技巧很好理解,特別是前兩個,就是通過隨機化讓神經網絡的 generalization 泛化能力變強,這樣的話即使遷移到真實環境,也能有較好的適應!
4. 一點小結
這個工作是一個極其工程化的工作,上面我們分析的這篇文章的主要方法其實都非常好理解,甚至談不上所謂的創新。但是對于這種工作,能夠 work 才是關鍵。Work 就是一切!Google 的這個工作可以進一步的提升大家對于深度學習應用到機器人上面的信心!相信接下來 Robot Learning 這個領域必然會有更大的發展!
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。