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