首頁 > 成語

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

作者:由 雷峰網leiphone 發表于 成語日期:2022-08-14

怎樣讓小車行駛更快

MIT 緊跟時代步伐,,旨在教學生們為自動駕駛搭建一個深度學習系統,授課者為 Lex Fridman。課程要求學生擁有基本的程式設計知識(最好是 Python)。開設的 6。S094 課程名為《為自動駕駛構建深度學習》的課程

全課只有九節一小時的課程,於 1 月 9 日開課,今天就結課啦。而且!據雷鋒網從議程表上了解到,從開課一直到 1 月 16 日,官網表示會陸續放出 PPT 及影片檔案,雷鋒網會持續關注。

DeepTesla 與 DeepTraffic 就是 MIT 這門課程裡面的兩個重點培訓內容,

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

那麼首先我們得先補補課,為什麼要採用迴圈神經網路呢?主要鑑於它能夠將輸出重新做為輸入再次進入神經網路中進行訓練,也就是擁有所謂的「記憶」。

強化學習的一個典型例子就是 DeepMind 訓練機器玩 Atari,雖然機器並不知道遊戲規則,但每一次遊戲都能讓機器得到一次分數的反饋,而目標就是讓得分最大化。

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

DeepTesla:特斯拉自動駕駛,我也行

DeepTesla 透過一個簡單的演示呈現卷積神經網路的端到端轉向。頂端呈現的四個指標呈現的是前向傳遞及後向傳遞所需的時間,以及目前網路已經訓練的示例,還有網路的當前狀態(是處於訓練資料?還是在提取資料?)。

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

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

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

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

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

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

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

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

ConvNetJS為我們提供了幾種訓練演算法,。具體能夠在這裡找到

DeepTraffic:讓小車跑得更快

整個 DeepTraffic 遊戲實際上是在網格上執行,但你也可以透過選擇不同的模式,讓網格呈現出來。

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

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

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

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

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

程式碼區的這幾個變數可以控制網路的輸入大小,更多的輸入也就意味著更復雜的交通環境,也意味著需要更長的學習時間及更大的學習難度。

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

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

整個代理由一個名為「learn」的函式所控制,該函式能夠接受當前的狀態(以一個扁平陣列呈現),而所得到的反饋為行車速度,也就是以 mph 為單位的平均速度。

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

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

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

在初始程式碼中,已經提供了上述內容。當然,你可以自行對資料進行預處理,並將這些狀態輸入網路,但不需要在這上面花太多時間。

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

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

在 Q-Learning 裡還提供了一些其它選擇,。可以在 Github 上找到

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

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

如果點選了 run training,那麼可以訓練神經網路,並以 30 倍於實時的速度實現單執行緒執行,隨後訓練網路的結果會以視覺化的形式呈現在電腦上,學生們也可以做一些即時反饋和改進。

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

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

Fridman 還在主頁上公佈了一個,目前有三位同學取得了很不錯的成績,甚至還有比老師訓練得好的,太厲害了。神經網路訓練排名榜

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

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

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