前 言
一年前我們曾探討過Robot Learning的發(fā)展>>梳理 | 機器人學(xué)習(xí)(Robot Learning)的發(fā)展,那么經(jīng)過近一年的發(fā)展,Robot Learning也有了很多新的進展,特別在Meta Learning上。不過今天我們先來專門探討Robot Learning中的一個具體應(yīng)用,也就是機器人抓取Robotic Manipulation/Grasping。為什么專門考慮這個問題?因為這個是體現(xiàn)機器人智能目前最亟待解決的問題之一。
我們可以考慮一下家用機器人需要具備什么樣的智能?可以說最主要就是要具備兩方面的能力,一個是移動導(dǎo)航能力,另一個就是機械臂的抓取能力。所以像下圖這個Fetch機器人其實就滿足了家用機器人所需的硬件了。我們今天不談移動導(dǎo)航的問題,只來談?wù)剻C器人抓取這個問題的研究前沿。
對于機器人抓取,其實本身有很多研究的具體問題和方式,比如目前抓取No.1的系統(tǒng)是伯克利的Dex-Net 4.0,有興趣的朋友可以看看這篇報道:Exclusive: This is the most dexterous robot ever created,但是Dex-Net 并不是一個端到端的深度學(xué)習(xí)系統(tǒng),它只是用神經(jīng)網(wǎng)絡(luò)來對抓取的位置進行估計, 然后通過planning的方式來抓取,本質(zhì)上是一個開環(huán)控制系統(tǒng)。這樣的系統(tǒng)對于完全靜態(tài)簡單的物體是沒問題,但是如果物體有阻擋,有改變,那這個系統(tǒng)就比較難處理了。所以,鑒于本專欄的偏好是通用人工智能AGI,我們在這里只想關(guān)注一種解決機器人抓取的方式,那就是:
End-to-End Vision-Based Robotic Manipulation 端到端基于視覺的機器人抓取
我們希望整個機器人抓取過程都是機器人自己學(xué)到的!這就非常近似于人類的行為!
那么有了這個主題,我們就來看看這方面的研究都有誰,基本上可以說就集中在兩個團隊:
1)Google Brain Robotics團隊
2) 伯克利Sergey Levine團隊
除此之外,Deepmind,OpenAI,Stanford的Li Fei-Fei團隊還有CMU的Abhinav Gupta團隊有一些亮眼的研究,但并沒有特別專注在Robotic Manipulation這個問題上。然后實際上Google Brain團隊Sergey Levine也在其中,所以接下來我們看到的paper基本上都出自Sergey Levine之手!
Paper List
[1] Sadeghi, Fereshteh, et al.?"Sim2real view invariant visual servoing by recurrent control."arXiv preprint arXiv:1712.07642(2017).
[2] Riedmiller, Martin, et al.?"Learning by Playing-Solving Sparse Reward Tasks from Scratch."arXiv preprint arXiv:1802.10567(2018).
[3] Quillen, Deirdre, et al.?"Deep Reinforcement Learning for Vision-Based Robotic Grasping: A Simulated Comparative Evaluation of Off-Policy Methods."arXiv preprint arXiv:1802.10264(2018).
[4] Haarnoja, Tuomas, et al.?"Composable Deep Reinforcement Learning for Robotic Manipulation."arXiv preprint arXiv:1803.06773(2018).
[5] Fang, Kuan, et al.?"Learning Task-Oriented Grasping for Tool Manipulation from Simulated Self-Supervision."arXiv preprint arXiv:1806.09266(2018).
[6] Kalashnikov, Dmitry, et al.?"QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation."arXiv preprint arXiv:1806.10293(2018).
[7] Matas, Jan, Stephen James, and Andrew J. Davison.?"Sim-to-Real Reinforcement Learning for Deformable Object Manipulation."arXiv preprint arXiv:1806.07851(2018).
[8] OpenAI?"Learning Dexterous In-Hand Manipulation"?(2018).
上面這些paper大致是近一年來比較重要的和robotic manipulation直接相關(guān)的paper了,由于本人主要關(guān)注Sergey Levine團隊的成果,可能會疏忽掉其他工作,如果有知友有好的相關(guān)paper推薦,歡迎在本文下留言,謝謝!
本文不打算具體的分析每一篇paper,而是從整體上對于目前機器人抓取的研究進展做一個整體的分析。
機器人抓取的研究進展整體分析
目前機器人抓取或者整個機器人學(xué)習(xí)的研究其實核心在于三個方面:
1)算法層面
2)sim-to-real 從仿真到真實環(huán)境的遷移
3)應(yīng)用層面
首先是算法層面,我們希望DRL算法在機器人抓取上能夠有更高的效率,更快的學(xué)習(xí)速度,以及處理更困難的學(xué)習(xí)任務(wù)。因此在上面的paper list中,[3] 對多種DRL off-policy的算法進行評估,[6] 則使用其中一個算法在真實場景中做大規(guī)模的實驗 [4] 則基于soft q-learning使得機器人具備更強的exploration能力 [2] 則研究通過auxiliary rewards 來處理復(fù)雜機器人學(xué)習(xí)任務(wù)中reward過于稀疏的問題。
接下來是仿真環(huán)境到真實環(huán)境的遷移問題。由于真實機器人實驗不方便并且實驗成本很高,使得從仿真遷移到真實成為一種幾乎必然的選擇 (Google那種機器人農(nóng)場的方法畢竟不是每個人都能干的),因此很多研究的重點都在于仿真到真實的遷移,比如[1] 通過多視角來研究sim2real [7] 則在仿真環(huán)境中研究非剛體的物體操作 [3] 提出來一個面向機器人抓取的仿真benchmark,對于機器人抓取的研究能夠起到很大的促進作用。
最后是應(yīng)用層面,大家不僅僅關(guān)注簡單的普通的機器人抓取問題,也考慮更復(fù)雜的manipulation問題,也因此,有了[8] OpenAI 剛剛出爐的機器手玩方塊的成果, [5][7]研究更復(fù)雜機器人抓取問題。
那么對于這三方面,到底有什么重要的研究進展呢?我們先來單獨分析一下OpenAI這個最新成果.
3 Learning Dexterous In-Hand Manipulation
這兩天OpenAI剛出來的成果,使用DRL實現(xiàn)機械手靈巧操作方塊,雖然這個工作面向的不是抓取,但是方法論上是完全相同的,這篇文章對于機器人抓取問題具有很強的借鑒意義。
1)這篇文章的成果:通過DRL算法PPO完全在仿真環(huán)境中訓(xùn)練機械手玩方塊,將訓(xùn)練好的模型直接遷移到真實場景中取得成功,并且整個訓(xùn)練不帶人類的演示demo,完全根據(jù)reward自學(xué)完成,而最后的實現(xiàn)效果竟然和人類的行為非常接近,很像人的操作。
2)取得如此成功的原因:(1)高度仿真的系統(tǒng),和真實環(huán)境非常接近,reality gap比較小 (2)使用仿真環(huán)境隨機化這個技巧來大幅度拓展仿真環(huán)境的范圍,使得神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)后能夠適應(yīng)各種場景,當(dāng)然就包括真實場景了。這種隨機化包含比如不同的摩擦力,不同的演示,不同的攝像頭角度等等 (3)大規(guī)模分布式并行訓(xùn)練,使用了幾百臺機器6144個cpu來運行分布式仿真環(huán)境收集數(shù)據(jù),然后用一臺8GPU的V100來訓(xùn)練模型,就像標(biāo)題說的,等價于訓(xùn)練了100年.
3)啟發(fā):(1)DRL能夠通過學(xué)習(xí)學(xué)到傳統(tǒng)非學(xué)習(xí)算法根本做不到的效果,端到端神經(jīng)網(wǎng)絡(luò)化必須是機器人的未來?。?)仿真環(huán)境超級重要,隨著技術(shù)的發(fā)展,仿真肯定可以做的越來越好,這就意味的未來的機器人必然會是在仿真中進行訓(xùn)練的,成本低,速度快,何樂而不為。(3)大規(guī)模的計算能夠直接彌補DRL sample inefficiency的問題,反正只要有足夠的設(shè)備,一天訓(xùn)他原來要1年的東西,數(shù)據(jù)堆上去,就能做出來。
進一步分析
上一小節(jié)我們簡單的分析了一下OpenAI這個很酷的工作,但是我們能得到的結(jié)論就是:這更多的是工程上的勝利,而非算法上的勝利。算法依然是PPO,并沒有實質(zhì)性的變化。
同樣的,之前Google在機器人抓取的重要進展[6]QT-Opt 將端到端機器人抓取的效果提升了一大截,但是我們具體分析它里面的算法就會發(fā)現(xiàn)算法上只是Q-Learning的一個變種,相比于DDPG,不使用Actor Network,而通過進化算法CEM來獲取actor,能夠使訓(xùn)練更穩(wěn)定,并且方便于做大規(guī)模分布式訓(xùn)練。
對于[6]和[8],其實我們都發(fā)現(xiàn)大規(guī)模分布式學(xué)習(xí)對于性能提升的重要性,這當(dāng)然也完全符合深度學(xué)習(xí)的情況,只要有數(shù)據(jù)和高性能計算,就能把性能堆出來。由于深度增強學(xué)習(xí)存在比監(jiān)督學(xué)習(xí)大的多的sample inefficiency問題,所以實際上深度增強學(xué)習(xí)要能work,需要的數(shù)據(jù)量會比監(jiān)督學(xué)習(xí)如imagenet還要大的多。也因此,我們看到AlphaGo,OpenAI的機器手,OpenAI的Dota,都動用了巨量的計算資源。一個小小的機器手,卻使用了6144個CPU和8個V100 GPU來訓(xùn)練,這也是非常空前的事情。
下一步呢?
有兩點是非常容易預(yù)測的:
1)未來必然會出來更多更好的仿真環(huán)境。這一年來的研究可以說就是比較明確的肯定仿真直接遷移到真實環(huán)境的可行性,那么就沒有理由更進一步的去開發(fā)更真實的仿真環(huán)境。
2)更快更強的分布式學(xué)習(xí)系統(tǒng)。這個就更不必說了,這是推動機器人學(xué)習(xí)進展的燃料。
有了上面這兩點,即使保持現(xiàn)有的算法不變,我相信都可以訓(xùn)練出比現(xiàn)在更強或者更復(fù)雜的機器人學(xué)習(xí)成果,端到端基于視覺的機器人抓取直接推到99%以上的準(zhǔn)確率是完全可能的,這就趨于商用了。
那么算法層面又該如何發(fā)展呢?
我們需要更復(fù)雜任務(wù)Task的牽引。比如我們需要雙機械臂的協(xié)作抓取,這就涉及到multi-agent robot learning。比如我們需要機器人能夠完成一個更長的任務(wù)系列,這需要Hierarchical Reinforcement Learning的研究。比如我們需要機器人能夠同時完成多個任務(wù),那這就需要multi task learning。比如我們希望機器人的generalization能夠更強,能夠處理沒看過的物體,那么這就需要Meta Learning的研究,那么這塊現(xiàn)在特別火了。比如我們需要機器人能夠快速的學(xué)習(xí)新任務(wù),這就需要Continual Learning,Meta Learning,如果是要求通過模仿學(xué)習(xí)來實現(xiàn),那就需要imitation learning。
這里我推薦大家可以閱讀第一屆CoRL整理出來的問題,從這里我們反而會覺得現(xiàn)在的Robot Learning真的是剛剛開始,現(xiàn)在研究的問題也太過于簡單了。
https://docs.google.com/document/d/1biE0Jmh_5nq-6Giyf2sWZAAQz23uyxhTob2Uz4BjR_w/edit
現(xiàn)在到了2018年才有了一個機器人抓取的benchmark,未來相信會有更多的benchmark出現(xiàn)來推動這個領(lǐng)域的發(fā)展。
https://docs.google.com/document/d/1biE0Jmh_5nq-6Giyf2sWZAAQz23uyxhTob2Uz4BjR_w/edit
最后小結(jié)
本文沒有詳細的分析每一篇paper的具體idea,而是比較寬泛的分析機器人抓取及機器人學(xué)習(xí)的整體研究進展??偟膩碚f,對于機器人抓取這個具體問題,從工業(yè)應(yīng)用上看將可以很快看到落地,要在仿真系統(tǒng)研發(fā)上推,在大規(guī)模分布式學(xué)習(xí)上推,核心確實在于工程實現(xiàn)上。而對于學(xué)術(shù)研究,最關(guān)鍵的是去定義新的task,新的benchmark,從而在新task的基礎(chǔ)上去推動算法層面和應(yīng)用層面的發(fā)展。
評論
查看更多