DRL前沿之:End to End Learning for Self-Driving Cars

前言

如果大家關注上個月Nvidia GTC,那麼大家應該會注意到Nvidia 老大黃仁勳介紹了他們自家的無人駕駛汽車,這個汽車的無人駕駛技術和以往的方法不一樣,完全採用神經網絡。這個系統取名爲DAVE。
NVIDIA GTC Self-Driving Car
上面的視頻需翻牆觀看。

很慶幸的是,就在上週,Nvidia發表了他們的文章來介紹這個工作:
http://arxiv.org/abs/1604.07316

雖然這個工作暫時和Reinforcement Learning沒有關係,但是相信他們會加上增強學習是這個無人車具備自主學習提升的能力。

Abstract

這個工作的思路可以說超級的簡單,就是使用人類的駕駛數據來訓練一個端到端的卷積神經網絡CNN。輸入是車載攝像頭,輸出直接是汽車的控制數據。想來這個事情在以前恐怕是難以想象的,要知道當前最先進的自動駕駛系統依然是採用標誌識別,道路識別,行人車輛識別,路徑規劃。。。各種步驟來實現的。而現在這些通通不用,就給汽車一個圖像,讓汽車根據圖像做判斷。想想這是一個非常神奇的事情,雖然根據CNN的能力我們可以理解這是可以做到的。

那麼這件事大概當前也就Nvidia可以做,因爲他們有最先進的硬件Nvidia DevBox,Nvidia DRIVE PX。

那麼通過訓練,他們在一定程度上取得了成功。結果很重要。訓練出來之後,這意味着在未來,隨着性能的提升,訓練的進一步強化,以及使用增強學習,未來的無人車將具備完全自己思考的能力。

DAVE-2 系統結構

這個系統叫做DAVE-2,DAVE其實是(DARPA Autonomous Vehicle的縮寫,無人車比賽最早就是DARPA搞出來的)。整個硬件系統如下:
這裏寫圖片描述
用三個攝像頭,通過NVIDIA DRIVE PX做輸入輸出。
軟件系統如下:
這裏寫圖片描述

那麼這裏有個trick,就是我們人類只輸入的是正確的樣本,那麼怎麼讓計算機面對錯誤的環境來做調整呢?很簡單的trick,在車上面再安裝兩個攝像頭,不過這兩個攝像頭的位置不在正中間,那麼這兩個攝像頭看到的樣本就是錯誤的。其他的偏移中間及旋轉則可以根據3d變化來模擬出來。那麼對應的偏移及旋轉的控制量也可以計算出來。這樣就有了一一對應的樣本了。

那麼這裏我們也應該看到,輸出是很簡單的,就是汽車駕駛的輪子的角度。並沒有速度控制。這一定程度上大大簡化了訓練的要求。

而對於訓練,那就是簡單的CNN-regression訓練。
訓練好之後,要forward就使用中間的攝像頭

訓練數據

72小時的人類數據。由於上面的多個攝像頭的數據,及科研進行3d變換得到的模擬數據,總的樣本將極其之大。

關於具體的網絡結構還有訓練細節大家還是看原文比較好。基本上沒有大的trick。

小結

這個工作idea其實很簡單,關鍵是實現,完全是一個非常複雜的系統工程,需要一個大的團隊配合才能搞出來,和AlphaGo類似。這纔是真正的智能車啊。明年將舉行的Roborace想必將極大推進這方面的進展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章