最前沿:機器人學習Robot Learning之模仿學習Imitation Learning的發展
1 前言
在上一篇文章最前沿:機器人學習Robot Learning的發展 - 知乎專欄 中,我們介紹了機器人學習Robot Learning這個方向的發展趨勢,並介紹了部分基於DRL的方法,那麼在本文,我們將繼續介紹一下最近發展起來的機器人學習的一個重要分支------模仿學習Imitation Learning。通過深度增強學習Deep Reinforcement Learning,我們可以讓機器人實現從0開始學習一個任務,但是我們人類學習新東西有一個重要的方法就模仿學習,通過觀察別人的動作從而完成學習。因此,模仿學習Imitation Learning就是這樣一個應運而生的方向:希望機器人也能夠通過觀察模仿來實現學習。
最近Pieter Abbeel在MIT的Talk放出了ppt,非常的前沿,介紹了他們前幾天才發出來的一堆工作,甚至包含了還未發出的工作(One Shot Visual Imitation Learning),可以說Pieter Abbeel團隊自己挖坑自己填的能力實在是太強了。與此同時,DeepMind也不是吃素的,也是在這幾天發布了多篇和Imitation Learning相關的工作。
然後大家也看到了,模仿學習的終極目標就是One Shot Imitation Learning,能夠讓機器人僅需要少量的示範就能夠學習。做到這一步就真的太強了。因此非常期待One Shot Visual Imitation Learning這篇paper。為了實現one shot,那麼必然要結合Few Shot Learning少樣本學習這個方法,而這個方向目前競爭最火熱的就是學會學習Meta Learning/Learning to Learn (事實上One Shot Visual Imitation Learning也是直接結合Meta Learning來做)。 關於學會學習,我們在 最前沿:讓AI擁有核心價值觀從而實現快速學習 - 知乎專欄 讓我們談談機器人革命 - 知乎專欄 這兩篇文章中也做了一定的介紹,在之後我們也會再專門寫一篇文章介紹目前學會學習各種百花齊放的方法。
最後,不管是Deep Reinforcement Learning for Robotics,還是Imitation Learning,Meta Learning,都可以說是目前深度學習最最最前沿的研究方向了,這些方向的研究將直接影響未來必將到來的機器人革命。所以也很想知道在知乎有多少知友也在做這一方面的研究,如果有知友主要精力也是在研究DeepMind和OpenAI在這一方面的Paper,並且也在做相關的研究,歡迎在專欄下留言。然後,對於同在Deep Learning的知友,也歡迎在專欄下留言,說說你對這個方向的看法。
2 相關Papers
[1] Model-Free Imitation Learning with Policy Optimization, OpenAI, 2016
[2] Generative Adversarial Imitation Learning, OpenAI, 2016
[3] One-Shot Imitation Learning, OpenAI, 2017
[4] Third-Person Imitation Learning, OpenAI, 2017
[5] Learning human behaviors from motion captureby adversarial imitation, DeepMind, 2017
[6] Robust Imitation of Diverse Behaviors, DeepMind, 2017
[7] Unsupervised Perceptual Rewards for Imitation Learning, Google Brain, 2017
[8] Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation, Google Brain, 2017
[9] Imitation from Observation/ Learning to Imitate Behaviors from Raw Video via Context Translation, OpenAI, 2017
[10] One Shot Visual Imitation Learning (等待發布), OpenAI, 2017
一些比較古老的文章我們就不管了,搞懂上面這十篇文章基本上就搞明白現在Imitation Learning到底搞到什麼程度了。從上面我們也可以看出,Imitation Learning主要還是由OpenAI做的貢獻,DeepMind和Google Brain各自貢獻了部分(其實Google Brain也是由Sergey Levine領導)所以其實也很顯然,如果三個世界上最頂級的人工智慧研究機構都在研究Imitation Learning,那麼說明Imitation Learning真的很重要。
OK,下面我們逐一簡要分析一下每一篇Paper的核心idea,只觀其大略,不細究細節。可以說本文對於關注這個方向的知友只能取到導讀的作用,大家要想真正深入理解,還是需要好好的看看具體的Paper。
3 Paper Idea簡析
對於模仿學習Imitation Learning,可能很多人會覺得是不是只要監督學習就可以。確實,如果有巨量樣本,並且覆蓋各種對的,錯的情況,那麼直接拿這些樣本訓練一個神經網路也就完事了,Nvidia就幹了這麼個事Paper, 通過採集大量樣本來實現無人駕駛。顯然,這種通過異常暴力的手段來做模仿學習是非常局限的。樣本沒那麼多怎麼辦?無法獲取負樣本怎麼辦?甚至沒辦法直接獲取樣本怎麼辦?(比如我們希望通過人示範來讓機器人模仿)所以模仿學習有得研究。
[1] Model-Free Imitation Learning with Policy Optimization, OpenAI, 2016
模仿學習和增強學習不一樣的很重要的一點是增強學習有Reward,而模仿學習沒有。那麼一種想法就是如果我們可以利用專家數據構造出這個Reward,那麼顯然我們也就可以使用這個Reward來採用DRL演算法進行訓練。這篇文章是在吳恩達提出的學徒學習Apprenticeship Learning的基礎上進行神經網路化,從而使用Policy Gradient方法來更新網路,基本思想是利用當前策略的樣本和專家樣本估計出一個Reward函數,然後利用這個Reward進行DRL。但是基本上這篇文章的做法是很難真正Work到複雜場景的,關鍵還是這個Reward根據當前測量數據和專家數據來估計的準確性其實很低。就說讓機器人倒水這種事,即使是人都很難界定一個動作的好壞,所以要能夠更好構造Reward,或者直接不用Reward。
[2] Generative Adversarial Imitation Learning, OpenAI, 2016
這篇文章把GAN引入到Imitation Learning當中,基本的思路就是就是構造一個GAN,其中的Generator用於生成動作序列,而Discriminator則用於區分這個動作序列是專家動作還是不是。那麼Discriminator的輸出其實等價於Reward,Generator因此可以使用一般的DRL演算法如TPRO來訓練,通過這樣的GAN的訓練,希望Generator生成的動作和專家動作越來越接近。基於GAN的Imitation Learning這個做法非常的novel,換了一種方式來獲取Reward(也可以說繞開了人為設定Reward的方式),可能最大的問題就是訓練的效果可以達到怎樣的程度。
[3] One-Shot Imitation Learning, OpenAI, 2017
這篇文章比較有名了,OpenAI專門弄了個Blog Robots that Learn 來介紹這個成果。確實做的比較有意思,能夠讓機器人使用機械臂搭積木。那麼這篇文章的Idea是比較簡單的,首先要注意這篇文章並沒有使用視覺pixel信息輸入,而是直接輸入的積木的位置信息。這篇文章可以說是構建了一個帶Condition的神經網路,輸入Demo+當前state,然後輸出Action。Demo(專家演示)作為一個條件輸入。這樣神經網路就可以區分任務Task。那麼只要構造了足夠多的Task,神經網路對於任務就有一定的區分度,從而面對一個新的同一個範圍內的Task,也能夠直接應對,從而實現One Shot。這篇文章的成果很Promising,基於Pixel的他們結合Meta Learning也做出來了,(初步了解)基本上就是用Meta Learning訓練一個提取特徵的base model,從而可以用少量數據就能對應到One Shot Imitation Learning的網路中。
[4] Third-Person Imitation Learning, OpenAI, 2017
這篇文章換了一個角度,之前的模仿學習都是第一視角,就是專家的視角和機器人的視角是一樣的,但是實際上人類可以用第三視角看著老師做動作然後學習,因此也就是有了這篇文章。這篇文章延續了GAN的思路,但是加了兩層的GAN,一個GAN是為了區分Domain也就是視角不一樣,目的是通過這種訓練讓即使不同的視角也能提取出相同的Feature,另一個GAN就是區別是不是專家了,目的是構造出Reward用於DRL訓練。總的來說,第三視角的模仿學習的關鍵是不同視角的特徵一致性,只要能讓不同視角得到相同特徵輸出,那麼就可以無所謂視角了。
[5] Learning human behaviors from motion captureby adversarial imitation, DeepMind, 2017
接下來這兩篇文章是DeepMind剛發布的,DeepMind也專門弄了個Blog https://deepmind.com/blog/producing-flexible-behaviours-simulated-environments/ 。 DeepMind的思路依然是以模擬為主,和OpenAI不一樣。
那麼這篇文章的出發點和OpenAI的也不一樣。這篇文章是希望在原有DRL演算法訓練的基礎上,通過模仿人類的動作來調整Policy,使得機器人的行為看起來更像人,而不是僵死。這篇文章的結果也確實讓人大開眼界,機器人的行為看起來很人非常像,而使用人的樣本還可以很少。想想波士頓動力的大狗,辛辛苦苦搞了幾十年搞出來,現在通過深度學習可能可以更快更好的實現。之所以說更好是因為大狗的運動模式是固定的,但是通過神經網路可以賦予大狗各種各樣的模式。就像這篇文章裡面的例子,可以讓機器人正常走也可以讓其學醉漢走路,還可以通過鍵盤控制。所以這裡也非常期待完全神經網路化的大狗機器人出來。
文章的思路還是基於GAN的方法,簡稱GAIL,也就是文章[2]。文章對[2]的方法進行了拓展,Discriminator甚至不需要輸入action,而只需要state。
通過Motion Capture獲取人的行為,然後訓練一個discriminator作為reward function,然後使用TRPO演算法進行DRL。這是第一次DeepMind使用OpenAI的人提出的DRL演算法。看來TRPO在連續控制上還是有優勢的。
[6] Robust Imitation of Diverse Behaviors, DeepMind, 2017
上一篇文章主要面向單一行為,而這篇文章則希望模仿多種行為。基本思路依然是在GAIL上進行改進,添加了一個VAE encoder從而更好的提取圖像特徵信息,使得整個GAIL更魯棒,其他部分看起來沒有太大變化。這篇文章因為加上了VAE Encoder,大幅度提升了信息量,對於一個全新的動作,也能夠直接模仿,這點和One Shot Imitation Learning又很接近了。這裡特別注意不同行為的模仿都只使用同一個Policy 網路。
總的來說DeepMind這兩篇文章把GAIL方法應用到了一個新的境界,這效果一點不輸OpenAI的真實機器人,反倒是OpenAI自己人提出的GAIL卻沒有發揚光大。
[7] Unsupervised Perceptual Rewards for Imitation Learning, Google Brain, 2017
這篇文章的目的是構造Reward,但是希望完全無監督的生成Reward(其實我覺得對於Imitation Learning的問題也沒法有監督呀,本來就沒有Reward)。當然這裡文章之所以說Unsupervised主要是說要讓神經網路無監督的從視頻中感知重要的過程。比如說倒水,會有很長一段時間,但是中間倒水的那個動作瞬間顯然是最重要的。如果計算機自己能判斷這種關鍵點,我們也就是能夠大概的給出個reward,從而應用DRL。所以這篇文章也很牛逼,換句話說就是我們人給機器人示範了一系列動作,機器人可以自己判斷哪些動作是關鍵的,並且弄出一條平滑的Reward Function曲線,然後就開始自己訓練成功。而且這篇文章還是完全基於視覺的,這就很厲害了。這篇文章的方法是基於預訓練的model如Inception來提取圖像的特徵,然後使用IRL來計算Reward。
[8] Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation, Google Brain, 2017
這篇文章提出一個Time-Contrastive Networks實際上就是把不同的視頻幀做一個multi-view metric learning,讓相同時間片的幀的特徵聚在一起,不同時間片的幀的特徵分得越開越好。那麼在這樣的訓練基礎下,本質和Third Person Imitation Learning非常接近,目的是讓不同視角的特徵輸出盡量一樣,這樣也就可以模仿學習。也就是說既然人做的動作和機器人的動作要得到相同特徵,那麼機器人動作就和人動作一致。人做的動作基於圖像輸入到網路,輸入機器人的關節動作,那麼這個動作也就和人的動作一致。
[9] Imitation from Observation/ Learning to Imitate Behaviors from Raw Video via Context Translation, OpenAI, 2017
這篇文章是Third Person Imitation Learning的進一步研究,但是這篇文章牛大發了:
這篇文章做的想法非常誇張,直接對第三視角的視頻進行轉換,轉成第一視角。然後使用神經網路提取的視頻特徵計算Reward從而應用DRL。看上面的圖,第三個圖是從第一個圖轉換過來的(完全通過神經網路輸出),這轉換的效果令人震驚!具體的訓練方法其實還很簡單,就是直接構造一個帶Condition(也就是目標視角的第一幀圖像)的Encoder-Decoder網路,然後直接用MSELoss計算預測圖像與真實圖像的偏差。當然,作者為了讓提取的特徵也一致,還加了特徵的MSELoss。
真的是思路簡單,效果驚人。但是其實大家可以看到,基本思想還是要讓不同視角輸出的特徵相一致。
12 後記
我自己看了這些文章感覺還是很興奮的,模仿學習發展得如此之快,效果比想像的好。從上面的方法看,構造更好的提取視頻特徵的方法非常重要,而GAN一定程度上解決了不知道怎麼設計Reward的問題。但是人真的是這麼模仿學習的嗎?這個疑問或許可以創造出更好的方法吧!
由於能力和時間有限,分析如有錯誤之處,望批評指正!謝謝啦!
推薦閱讀:
※量子即未來:微軟發布量子開發工具包免費預覽版
※《離線》上線後的變與不變
※它是上個世紀重症精神病人的救星,但現在卻是楊永信手中恐怖的刑具
※淺談新一代窄體客機動力明星,PW1000G與Leap
TAG:深度学习DeepLearning | 机器人 | 科技 |