Deep Robotic Learning (1) -監督學慣用於端對端學習(無人車/機械臂)存在的問題

本人就sergey levine的一些資料,總結一些感想。(水平有限,歡迎指正)

1.首先為什麼要用這個標題?

這個詞(deep robotic learning)是sergey levine提出的,確實已經相當火了,從15年到現在,我收集的關於這方面的論文已經不下於百篇。

就像為什麼deep learning這麼流行?比如視覺而言,因為它取代了傳統手工設計特徵,自動提取圖像中有用的特徵;如下圖:

那麼同理deep robotic learning也是一樣的道理:因為它取代了傳統設計各個中間模塊的步驟,自動提取狀態中的特徵,以及做出相應的決策。如下圖:

這麼一個框架好在哪裡?

和deep learning的優勢一樣,手工設計的一些中間模塊難以泛化很多情況,而deep robotic learning通過大數據的優勢,直接端對端,從而能對各種複雜情況有很好的泛化。(無人車就是個例子)

那為什麼不用deep reinforcement learning 作為標題? 因為,這麼一個框架而言,並非要用到強化學習。今天就只談談監督學習在這個框架中的作用和一些問題。

所以基本的概念就不多寫了,主要寫一些個人感到比較核心的問題

2.下面這個監督學習框架能直接用於無人車嗎?

這個框架我記得在ng的08年的machine learning課程中就有提到,當時也是用在無人駕駛。(和某些深度強化學習演算法(比如Deep Q learning)不同在於,它輸出的不是Q(s,a),而直接是a,也就是說,這個網路直接對策略π(a|o)進行擬合)

那麼假設數據量足夠,調參什麼的都沒有問題,則該網路能用於無人車上嗎?

思考10秒。。。

答案是:否

那為什麼呢?看上去沒有問題啊?

原因有二:

1) 真實環境中開車並非是一階MDP模型

仔細想一想這個網路,它的圖模型就是這個:

所以它本質就是一個一階MDP模型 (比如上圖狀態s3隻與s2有關,而與s1無關)同時它只能處理一階MDP模型。所以階數如果提高的話,只用採用LSTM或者RNN來進行記憶了。

2) 存在複合誤差(compound error)(或者理解為累計誤差)?

首先,任何網路再牛逼,數據再多,對於新的環境也必定是有微小的誤差的:

但是,如果這個狀態的誤差在上一個狀態進行累加,那最後的結果就會「漂"的飛起,直至發散:

3.一個改進思路

下面是16年NVIDIA的研究人員提出的一個方案:

個人認為存在誤差的原因是存在轉移概率p(s",r|s,a),這個方案相當於在訓練過程中引入了反饋來訓練CNN,相當於把轉移概率p(s",r|s,a)給求出來了。

4.那有沒有通用的,來處理這種複合誤差(compound error)的演算法呢?

,比如DAgger演算法。本質就是讓我們的π(a|o)更加地趨向於訓練數據(廢話),但這個特點在於一些訓練數據不是直接採集來的,而是π(a|o)生成,然後再人工標註的,這樣就能更直接地對策略進行調整。但這個演算法仍然不能用於無人駕駛,因為需要大量人工標註太過麻煩。

5.監督學慣用於擬合一個複雜操作任務(如機械臂)會有什麼問題?

這裡的複雜操作任務不僅僅是無人駕駛,也包括了維度高的機械臂的任務(比如baxter機器人打磨一個零件或抓一個東西)

1) 真實環境中操作任務並非是一階MDP模型

怎麼理解?就說這個打磚塊遊戲吧(各位也可以理解為機器人打乒乓球)

那誰能告訴我,下一幀,球會向哪動?

2) multimodal behavior問題(也就是多解性問題)

不論是無人車,或者是機械臂,到一個地方,或者執行某個任務都不止一個解:

那麼網路輸出來預測值有可能是:

圖a

也就是向左,向右權值一樣

那看上去,似乎沒關係,我隨便選一個不就行了?

沒錯,當action維度低,且是離散的話,那沒有問題。

但是當action維度高,或者是連續的話,問題就來了。連續幾個狀態同時是這種問題的話,這樣處理會導致輸出混亂,不連續(因為action我是隨機選的,故得到的action存在跳變)。同時,一般離散輸出轉為連續輸出時,都採用一個高斯模型去表述輸出,這樣NN的輸出只要為這個高斯模型的幾個離散的參數變數就行了(比如中心μ,標準差σ),也就是這樣:

圖b

但是請思考:這個圖b的高斯模型去擬合圖a的輸出分布可能會有什麼結果?

結果可能就是:

直接撞樹

6.正對第5點,有什麼措施嗎?

針對5的1),一般採用RNN/LSTM進行序列關係記憶,比如這個:

針對5的2),一般採用方法之一是可以用高斯混合模型來表示輸出:

有些文獻上稱為MDN,比如:這篇:Learning real manipulation tasks from virtual demonstrations using LSTM

再比如谷歌機器人(Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection)中採用的CEM演算法,其實原理都是一樣滴

7.小結

監督學習特點還是人工標註,一些學者也想到了一些特定的方法來標註(比如無人機):

但是,當這個無人機在比如火山口,化糞池,或者無人機在超越人的反應速度飛行時,這是我們難以去標註的。

這時候,深度強化學習或者遷移學習也許是一個思路。

推薦閱讀:

機械臂能否進行精度較高的切削工作?
柔軟好擼還不用吃喝拉撒的貓兒,你要不要養一隻?
說機器人研究了幾十年沒多大進展?一位機器人從業者看不下去了……
Letrons 機器人:現實版變形金剛,從拉風的跑車秒變汽車人戰士
Google Brain Robotics: Towards Lifelong Robot Learning

TAG:深度学习DeepLearning | 机器人 | 机器学习 |