最前沿:深度增強學習再發力,家用機器人已近在眼前

1 前言

如果問你「家用機器人真正實用化還需要多久?」我說的是那種可以端茶倒水,幫你干這干那的機器人,可能你的回答是10年,15年。但是現在,深度增強學習的不斷發展,很可能將時間縮短到5年。

2016年9月16號,Li Feifei組(了解ImageNet的知友們肯定都熟悉)放出了最新的Paper:

Target-driven Visual Navigation in Indoor Scenes using Deep Reinforcement Learning

做了什麼事呢?使用深度增強學習實現目標驅動的視覺導航。說的簡單一點就是機器人找東西,有一個地面機器人,讓機器人去找一本書,或者去冰箱,機器人就自己去了,然後能找到物體停下。大家先看一下官方的視頻:

Target-driven Visual Navigation in Indoor Scenes using Deep Reinforcement Learni—在線播放—優酷網,視頻高清在線觀看" ></a><meta name="irTitle" conte http://v.youku.com/v_show/id_XMTczMTM5Mzk4OA==.html

實現機器人找東西有多困難呢?

very hard! 下文我們會說一下傳統機器人學的方法。

採用深度增強學習實現又有多大的意義?

先說結論。簡單的說就是以前為了實現機器人找東西這個事情,我們需要做大量的工作,大量的hand-engineering,但是現在,採用深度增強學習,我們只需要使用神經網路。就是機器人只根據實時看到的畫面還有目標選擇動作,這和人類的行為很像。並且整個過程都是學習來的。這種方法具有革命性的意義。

還記得之前那篇文章嗎?最前沿:從虛擬到現實,遷移深度增強學習讓機器人革命成為可能! - 智能單元 - 知乎專欄 那篇Paper作者研究如何通過遷移學習將不同場景學到的知識移植過來。特別是從虛擬到現實的遷移。但是,這篇文章想了個更簡單的做法-------我們造一個非常模擬的環境不就完了。

因此,這篇文章中,作者構建了一個非常好的模擬環境(如上圖),並且通過在高度模擬的環境中訓練,然後遷移到真實場景中。這種方法被證明是有效的。那麼想像一下,如果構建了一個更複雜更真實的場景,然後讓機器人在裡面無限次的訓練學習,掌握技能之後,再移植到現實世界。這將是game-changing的事情。讓家用機器人能夠端茶倒水將不再那麼困難。

下面,我們來好好分析一下這篇文章的意義。最重要的是深度增強學習的意義。

2 機器人找東西,傳統的方法怎麼做?

假設我們面前有一台輪式機器人,有攝像頭,可控制,上面還有一個機械臂。我們希望能夠跟機器人說去幫我拿一個杯子過來。然後機器人能夠自主的去廚房找到一個杯子,用機械臂拿起來,最後送到我手上。那麼為了實現這麼一個任務,我們首先需要實現的就是去找到杯子這個任務。我們再進一步假設房間里的東西都是靜止的,然後要求機器人能夠去找房間中的各種物品。

OK,在這種假設下,傳統的機器人學告訴我們要怎麼實現這個系統呢?

Step 1:建圖 Mapping和定位Localization也就是SLAM

要想找東西,總得先知道自己在哪,還要知道房間的結構好規劃路線。因此,我們得先利用機器人上面的感測器比如攝像頭、雷達等構建整個場景,因為要找東西,有的高,有的低,所以最好還是3d場景。

Step 2:構建語義地圖Semantic Map

要找東西,當然要知道東西在哪裡了。因此,這一步需要我們在上一步得到的地圖上添加語義,也就是各種東西的位置信息。或者反過來也可以給3d地圖裡面的每個東西貼標籤,這是冰箱,我就貼上冰箱的標誌,那是門,那我就貼上門的標籤。大家可以看到,這需要計算機視覺的物體檢測(Object Detection)技術,比如我們可以使用YOLO或者Fast R-CNN演算法在SLAM的同時進行物體檢測,為物體貼上標籤。比如上圖所示,我們知道桌子,椅子,柜子的具體位置。做完這一步,我們不但知道整個房屋的構造,機器人自己的位置,也知道每一個物體的相對位置。

Step 3:路徑規劃(Path Planning)

有了地圖和定位,再加上目標位置,ok,萬事俱備了。我們只要根據這個設計出一條最佳的路徑,然後讓機器人走就行了。這就是路徑規劃需要乾的事情。

小結一下

在傳統的機器人學中,要實現機器人找東西這件事,需要完成上面三大任務。真是太複雜。單單SLAM都是一個很大的研究課題了。而這中間需要的計算量,需要的人力工程,都是非常多的。那麼,這篇Paper是怎麼做的呢?

3 深度增強學習是怎麼做的?

深度增強學習的思路就完全不是機器人學的思路了,而是人的思路。上一節我們說又要建圖,又要路徑規劃的。問題是:我們人需要這麼做嗎?不得不承認,我們人具備自動在大腦中構建3d場景的能力,但是對於找東西我們並不需要這麼做。我們人就是大致知道東西的位置,然後往那個方向上走就行了。

因此,深度增強學習要僅使用2D的視覺信息來完成找東西的任務!

如上圖所示,機器人找東西的任務變成:看到圖像,選擇行走動作,直到找到想要的物體,停下。

這篇文章的創新點在哪呢?

就是將目標圖像作為輸入!老實說這個創新點非常簡單,也蠻低級的,而且僅針對這種目標能夠具化的任務有效。但是對於機器人找東西而言,等於和人一樣給個目標圖像,然後讓你去找到它。這樣做的好處就是神經網路具有通用性。之前,如果只用當前看到的圖像作為輸入,那麼每找一個東西,都要單獨訓練一個網路。現在,把目標圖像作為輸入進行訓練,那麼就可以使這個網路不管輸入什麼目標都ok,也就具備了通用性。

這篇文章採用了A3C演算法,也就是Deepmind提出的當前深度增強學習最強的演算法來訓練,主要就是神經網路的模型變了,還有多線程訓練的方式做了一點改變(也就是同時開啟多個Agent訓練多個場景多個任務)。甚至,還根據不同場景搞不同的神經網路來輸出,這算不算通用我得打個問號。

為了讓觀察的圖像輸入和目標圖像輸入能夠和在一起,為兩個圖像採用了相同的預訓練好的神經網路(使用ImageNet訓練的深度殘差網路)。

要理解整個訓練過程,需要熟悉A3C演算法,鑒於篇幅,這裡就不細講了。本專欄將陸續發布更多文章介紹深度增強學習的各種演算法。

對於這個成果我們應該思考一個問題是:神經網路是如何讓機器人找東西的?

4 深度神經網路通過學習學到了什麼?

它並沒有記住物體的位置,更不知道房屋的結構。但它記住了在每一個位置,通向各個物體的行為方法。

比如說,冰箱在左前方5米,那麼機器人在這個位置的時候根據看到的圖像做出向左前方走的動作。它只是知道要這麼走,它知道這個軌跡,但是並不知道其他。

反過來想,傳統的機器人學方法可以通過記錄軌跡來控制嗎?

當然是可以,但是同樣的,SLAM和語義地圖還有路徑規劃都是避開不了的工程。而採用深度增強學習,我們是讓機器人通過不斷試錯的方法來找到這條路徑,而不是計算。

5 小結與展望

深度增強學習確實是一種非常模仿人類行為的思路。在真實環境中,我們確實很難讓機器人通過試錯來找到正確的行為方式,但是如果我們能夠構建非常逼真的模擬環境的話,我們就很有希望在模擬環境中訓練機器人,然後遷移到真實場景中。這樣的話,讓機器人通過自學習來掌握各種技能就真不是說說而已了。我懷疑DeepMind已經在構建非常好的模擬環境訓練他們的機器人,也許DeepMind的下一個重量級工作就是深度增強學習的機器人了!

聲明:本文為原創文章,未經作者允許不得轉載!

本文圖片來源於Paper及網路。

推薦閱讀:

後資本主義時代資本是如何綁架科技的?
為了聽聖誕黑膠唱片,我們DIY了一架唱片機
跳票這一詞是由誰先提出來的?是科技界獨有用詞嗎?
袁隆平:一次次的突破,卻換來一句「吃飽了撐的」
為什麼電腦都從C盤開始算?A盤B盤去哪了?

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