天天看點

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

全課隻有九節一小時的課程,于 1 月 9 日開課,今天就結課啦。而且!據雷鋒網從議程表上了解到,從開課一直到 1 月 16 日,官網表示會陸續放出 ppt 及視訊檔案,雷鋒網(公衆号:雷鋒網)會持續關注。

deeptesla 與 deeptraffic 就是 mit 這門課程裡面的兩個重點教育訓練内容,

前者直接以端到端模型訓練一個自動駕駛的起動模型; 後者以遊戲化的方式模拟汽車在高速公路上行駛,而我們的目标就是(沒有蛀牙)訓練一個神經網絡,利用強化學習控制紅車,并讓它的速度盡可能提升到最快(也就是超車啦!速度與激情)。

那麼首先我們得先補補課,為什麼要采用循環神經網絡呢?主要鑒于它能夠将輸出重新做為輸入再次進入神經網絡中進行訓練,也就是擁有所謂的「記憶」。

強化學習的一個典型例子就是 deepmind 訓練機器玩 atari,雖然機器并不知道遊戲規則,但每一次遊戲都能讓機器得到一次分數的回報,而目标就是讓得分最大化。

美國人每年要浪費 80 億小時在堵車上,是以如果能采用自動駕駛系統,讓老司機們解放雙手,想必真真是極好的。

deeptesla 通過一個簡單的示範呈現卷積神經網絡的端到端轉向。頂端呈現的四個名額呈現的是前向傳遞及後向傳遞所需的時間,以及目前網絡已經訓練的示例,還有網絡的目前狀态(是處于訓練資料?還是在提取資料?)。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

下方的圖表呈現的是損失函數,我們都知道,正常狀态下随着時間的推移,損失函數的值應該會越來越小。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

而在編輯器下方還有一個可視化圖層的功能,使用者可以在網絡中看到每個圖層的處理情況。如果加載了特斯拉視訊,随着視訊内容的增加,神經網絡的訓練效果也會變得更好。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

下方兩個小的方向盤及旁邊的數值指的是實際值(藍色)與系統預測值(白色)的對比。是不是非常智能?

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

以第一次加載 deeptesla 為例:我們整個網絡大小為(200,66,3)的輸入層,表示寬度為200,高度66,涵蓋三個通道(紅綠藍)。緊接着有一個卷積層、一個合并層與一個輸出神經元。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

整個 deeptraffic 遊戲實際上是在網格上運作,但你也可以通過選擇不同的模式,讓網格呈現出來。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

每輛車周圍的方格表示的是它自身的速度,而橙色區域指的是該車輛可能的行駛方位。

比如在安全系統中,車輛周圍會出現一個

h

型的區域,橙色表示相對安全,而紅色表示周圍已經有車在附近車道,此時紅色小車不能越到紅色區域。如果你提升了小車的速度,那麼這個區域也會随之變化,畢竟如果有車擋在你的面前,為了保證安全,你一定會減緩速度(這與我們這個小遊戲的目标相反)。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

程式設計頁面主要分為三塊,一是實時的道路模拟情況,還能調整自己車輛的行駛速度,以提升測試速度;二是程式設計頁面,在這裡可以修改神經網絡的具體代碼;第三部分會顯示目前神經網絡的狀态,還能将代碼儲存、重置或下載下傳。

代碼區的這幾個變量可以控制網絡的輸入大小,更多的輸入也就意味着更複雜的交通環境,也意味着需要更長的學習時間及更大的學習難度。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛
MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

整個代理由一個名為「learn」的函數所控制,該函數能夠接受目前的狀态(以一個扁平陣列呈現),而所得到的回報為行車速度,也就是以 mph 為機關的平均速度。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

函數最基本的形式(告訴代理,讓車輛維持現狀,不需要變道或減速)大概長這樣:

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

而既然這是一個追求速度的「比賽」,那麼你需要通過神經網絡控制車輛,比如:

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

在初始代碼中,已經提供了上述内容。當然,你可以自行對資料進行預處理,并将這些狀态輸入網絡,但不需要在這上面花太多時間。

這個地方就是你施展「才華」的地方——這是一個隐藏層裡的一個神經元示例。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

下圖呈現的是最終的回歸層,它決定了最終的執行環節将會呈現怎樣的結果。

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛
MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

最後一步就是建立“大腦”。

如果點選了 run training,那麼可以訓練神經網絡,并以 30 倍于實時的速度實作單線程運作,随後訓練網絡的結果會以可視化的形式呈現在電腦上,學生們也可以做一些即時回報和改進。

該網站上的評估鍵可以直接運作同樣的任務,也就相當于小測驗。通過每次 30 分鐘的 10 次運作,最後将計算出每次車輛的平均速度,并取中值做為結果。而且,本地測試的評估會受到其它車輛出現的情況的影響,是以本地的測試隻能做為參考。

值得一提的是,fridman 老師表示這些車都有着安全系統,是以不需要擔心車的反應速度不夠快,它們不會因為你突然操控加速減速而出車禍的。(老師入戲好深……)

MIT 開了一門隻有九小時的課,教你用深度學習建構自動駕駛

老師說了,如果速度不能提上 60km/h,那你明天就不要來上課了(誤)。不過排行榜今天就截止統計啦,是以大家如果測試了比排行榜更高的分數,歡迎告訴雷鋒網小編呀,我們會找你做硬創公開課的。

以上隻是對 mit 課程的簡單介紹,雷鋒網會做後續關注。

本文作者:奕欣

繼續閱讀