1
雷鋒網(wǎng)按:雷鋒字幕組獲MIT課程團隊授權翻譯自動駕駛課程,視頻鏈接:http://www.mooc.ai/course/483/info
我們?yōu)槟阏砹嗣恳粋€ Lecture 的課程筆記,提煉出每一講的要點精華,推薦結合課程筆記觀看視頻內(nèi)容,學習效果更佳。
原標題 MIT 6.S094:Deep Learning for Self-Driving Cars 2018 Lecture 1 Notes
作者 | Sanyam Bhutani
翻譯 | 李瀚 劉徽 整理 | 凡江
*以下所有圖片均來截取自該課程幻燈片。
深度學習:為多項人工智能技術服務的成套技術,近年來伴隨著研究的不斷深入和GPU能力的不斷拓展,它也變得更加強大,SDC就是能夠利用這些技術的系統(tǒng)。
講師致力于研發(fā)能夠理解車內(nèi)和車外環(huán)境的汽車。
主要競賽項目:
DeepTraffic:深度增強學習(Deep Reinfocement Learning)競賽項目,相關的代碼可在瀏覽器上運行。最新的2.0版本允許Multi-Agent培訓。
SegFuse:Dynamic Driving Scene Segmentation競賽項目。提供原始視頻,汽車根據(jù)實際動力學原理進行運動。培訓集能夠為我們提供路面實況標簽、像素級別標簽、場景分割和光流。目標:比現(xiàn)有的Image Based Segmentation技術水平更好地反應真實路況。所需:機器人需要解釋、理解和追蹤場景中的諸多細節(jié)。
Deep Crash:目標:使用Deep RL來規(guī)避High Speed Crash Avoidance(高速防撞系統(tǒng))。培訓:運行1000次, 使用單目視頻作為輸入源,培訓一輛汽車模型在30mph以上速度行駛。
DeepTesla: 使用大規(guī)模網(wǎng)來培訓端到端駕駛操作,使用單目視頻作為輸入源進行培訓汽車。
為什么要自動駕駛?
目標:為自動駕駛汽車部署以數(shù)據(jù)驅(qū)動的學習方式。
這是多個個人機器人的最復雜最龐大整合。
普遍意義: 路上有大量汽車在行駛。
深度意義: 人類和汽車之間建立更緊密的聯(lián)系。彼此的信任將人類將自己的性命交付給機器人,將"控制權"交給汽車。如果深入剖析,確保生命安全是系統(tǒng)運行的天然屬性,而且在未來真的需要測試系統(tǒng)的極限。
自動駕駛汽車: 與其說是感知控制終端(Perception-Control)更不如說是個人機器人(Personal Robot)。面對各種路況,這些系統(tǒng)還需要通過交接控制權來獲得人類的幫助。而真正意義上,能夠像人類一樣具備動態(tài)天然屬性的感知系統(tǒng),至少還要發(fā)展數(shù)十年時間。
認知負載: 完整連接的卷積神經(jīng)網(wǎng)絡(CNN)在處理RAW 3D輸入源,分析駕駛員的認知負載,身體姿勢和疲勞程度。
實參: 要實現(xiàn)完全自動駕駛,智力需要在某些領域接近人類。
以人類為中心的人工智能方法
建議:在每個算法設計過程中將人的因素考慮進來。
感知控制可以處理90%以上的情況
人類控制:在10%的場景中占據(jù)主導地位
為何要深度學習?
深度學習平臺能夠非常出色地處理大數(shù)據(jù)。屆時人類的性命直接交付到這些設備上,因此這項技術必然需要通過現(xiàn)實生活的數(shù)據(jù)進行學習。
感知/控制端
基于人類的交互和協(xié)作
什么是深度學習?
人工智能:能夠?qū)崿F(xiàn)多個復雜目標
理解/推理:能夠?qū)碗s信息轉(zhuǎn)換成簡單和實用的信息。
深度學習(表示學習或者特征學習)能夠在沒有任何解釋的情況下提取源信息,并且構建分層表示允許生成各種洞察報告。
表征學習
表征學習是非常重要的。例如: Earth Centered Vs Sun Centred。
笛卡爾坐標系VS極坐標系來區(qū)分圓形和三角形。
例如: 使用1層隱藏神經(jīng)網(wǎng)絡來區(qū)分藍色和紅色曲線。要實現(xiàn)這項學習(使用源輸入來生成輸出)效果就是通過深度學習來完成的。
深度學習能夠改善更多的數(shù)據(jù)。
邊緣情境的歸納是深度學習目前的主要挑戰(zhàn)。
神經(jīng)網(wǎng)絡
受到人類生物神經(jīng)的松散網(wǎng)絡的啟發(fā)而來。
人類神經(jīng)網(wǎng)絡: 1000億個神經(jīng)元, 1000 萬億個突觸
目前最頂尖技術ResNet-52:6000萬個突觸
兩者相差7個數(shù)量級
區(qū)別:
人類神經(jīng)網(wǎng)絡不需要堆棧,而人工神經(jīng)網(wǎng)絡需要;
人類神經(jīng)網(wǎng)絡沒有順序之分,而人工神經(jīng)網(wǎng)絡存在;
同步學習和異步學習;
未知學習和Backprop算法;
處理較慢 Vs 處理較快;
低功耗VS低效率;
相似性:兩者都是大規(guī)模的分布式計算。
基礎神經(jīng)元是非常簡單的,但是相互連接的多個單元能夠應用在非常復雜的案例中。
神經(jīng)元
神經(jīng)元包含了一組具有權重鄰域的輸入源。
權重是相乘得來的。
再添加偏置( bias)。
非線性函數(shù)來確認神經(jīng)網(wǎng)絡是否被激活。
神經(jīng)網(wǎng)絡的組合:
前向神經(jīng)網(wǎng)絡(Feed-forward NN): 已經(jīng)成功應用于計算機圖形中。
遞歸神經(jīng)網(wǎng)絡(recursive NN): 能夠自我回溯,且具備記憶。目前已經(jīng)成功應用于關于數(shù)據(jù)的Time Series,這非常接近于人類(因此很難進行培訓)。
普遍性:多元神經(jīng)網(wǎng)絡可以在給定足夠優(yōu)秀算法的前提下只通過1個隱層來逼近任意函數(shù)。
提供了非常好的算法。
缺陷: 這并不是神經(jīng)網(wǎng)絡的功勞,而是算法的功勞。
深度學習的種類
監(jiān)督學習:全部使用人工標注的數(shù)據(jù);
擴展監(jiān)督學習:所需人工標注數(shù)據(jù)和未標注數(shù)據(jù)持平;
半監(jiān)督學習:少量人工標注數(shù)據(jù)以及大量未標注數(shù)據(jù);
強化學習:極少量人工標注數(shù)據(jù)以及大量未標注數(shù)據(jù);
無監(jiān)督學習:全部使用未標注數(shù)據(jù);
現(xiàn)階段經(jīng)常使用的是1和2。
未來趨向的和更好的是3、4和5。
深度學習影響的領域:
定義和解決一個具體的問題。比如:預估波士頓的房價。
通用目的的人工智能(或者幾乎全部):使用強化學習和無監(jiān)督學習。
有監(jiān)督的學習
訓練階段:1. 輸入數(shù)據(jù)集; 2. 貼標簽; 3. 在訓練數(shù)據(jù)集上訓練。
測試階段:1. 使用新的數(shù)據(jù)集測試; 2. 輸入學習模型; 3. 結果輸出。
學習
前向運算:輸入數(shù)據(jù)集被輸入進神經(jīng)網(wǎng)絡中,并且形成預測結果。
反向傳播:測量預測結果和期望輸出結果的偏差,并且計算結果誤差。調(diào)參(超參數(shù))以根據(jù)誤差量級調(diào)整數(shù)值。
我們可以用深度學習做什么?
一對一映射。
一對多映射。
多對多映射。
異步多對多映射。
術語解釋:
DL=NN (深度學習=神經(jīng)網(wǎng)絡)。
DL是ML(機器學習)的一個子集。
MLP:多層神經(jīng)網(wǎng)絡。
DNN:深度神經(jīng)網(wǎng)絡。
RNN:循環(huán)神經(jīng)網(wǎng)絡。
LSTM:長短期記憶網(wǎng)絡。
CNN:卷積神經(jīng)網(wǎng)絡。
DBN:深度置信網(wǎng)絡。
神經(jīng)網(wǎng)絡的結構:
卷積層
池化層
激勵層
反向傳播
激活函數(shù)
Sigmoid.函數(shù):存在梯度消失,不以原點為中心。
Tanh.函數(shù): 存在梯度消失。
ReLu.函數(shù): 不以原點為中心。
梯度消失:輸出或者梯度值很小并且學習速率很慢。
反向傳播
關于神經(jīng)網(wǎng)絡的學習過程,其主要目的:為了更新權重和偏差值來降低損失函數(shù)。
基本任務:
通過前向傳播,計算網(wǎng)絡的輸出值和殘差。
反向傳播計算梯度。
把一部分權重的梯度從權重中去除。
由于這個過程是模塊化的,所以它是并行運行的。
訓練
訓練是一個最優(yōu)化的過程。
目標是通過更新權重和殘差使損失函數(shù)最小化。
需要使用技巧的地方:最小單元的梯度下降和隨機梯度下降。
訓練中存在的挑戰(zhàn)
損失函數(shù)是高度非線性的。
梯度消失。
ReLU存在死亡節(jié)點:當輸入為0的時候輸出也會為0。
存在鞍點。
過擬合:神經(jīng)網(wǎng)絡學習訓練數(shù)據(jù)但是和實際輸入數(shù)據(jù)擬合失敗。出現(xiàn)的原因是訓練殘差較低但是測試殘差較高。
正則化
有一些通用性的技巧。
設置驗證集:訓練數(shù)據(jù)集的子集。
提前結束訓練:為了保存檢查節(jié)點并且評估神經(jīng)網(wǎng)絡在測試集上的運行狀況。
Dropout:隨機丟棄其中一些節(jié)點(和輸入和輸出的節(jié)點一起)
用保持節(jié)點(p)的概率表示。
輸入的節(jié)點p需要更高。
目的:幫助網(wǎng)絡更好地歸納。
正則化范數(shù)約束項
L2 約束項:權重平方約束項:
在偏差沒有增加的情況下,一直保持較小的權重值。
避免樣本的擬合錯誤。
更平滑的模型。
對于兩個類似的輸入,權重需要進行分配。
L1 約束項:權重絕對值的約束項:
允許保持較大權重。
神經(jīng)網(wǎng)絡游樂場:運用技巧和試驗來實踐。
深度學習引起的突破
改變了什么?
計算能力的提升。
可實現(xiàn)大型有規(guī)律的數(shù)據(jù)集。
對于GPU的利用領域的算法和研究。
軟件和基礎設施。
經(jīng)濟支持。
深度學習是困難的
人體的復雜性:
人的視覺:形成了5,4000,0000年的歷史數(shù)據(jù)。
直立行走: 2,3000,0000年的歷史數(shù)據(jù)。
抽象思考:10,0000年的歷史數(shù)據(jù)。
神經(jīng)網(wǎng)絡:
會增強對于像素級樣本的失真,導致預測不準確。
圖像本身的問題:光照、姿態(tài)、遮擋和內(nèi)部類別的不同等情況。
物體識別或分類
目標:輸入一幅圖像并預測輸出。
ImageNet: 1400萬種以上的輸入和2。18萬種以上的輸出。
ILSVRC比賽:
AlexNet(2012):在準確性上有了顯著的提高。
Resnet(2015):在識別的準確率上擊敗了人類。
巧妙的例子:深度學習和"人類普適性的能力"還有差距許多相同的架構的應用:我們可以根據(jù)需求種類的數(shù)量改變輸出層。
圖像分類。
圖像捕捉。
物體定位。
圖像分割。
FCNN
每個像素點都被分為一類,然后它輸入一幅圖像,產(chǎn)生另外一幅圖像作為輸出。
目標:圖像和圖像間的對應。
使用場景:
像素級的全場景分割。
染色法對應。
物體識別。
消除背景。
Pix2PixHD:從語義標簽中產(chǎn)生高分辨率的寫實照片。
RNN:用于系列的數(shù)據(jù)集。
使用場景:
手寫體識別。
圖像捕捉。
視頻描述。
轉(zhuǎn)移的注意力模型。
用可選擇的注意力模型。
主要的突破點
Pong to Pong (2012):更接近通用人工智能。
AlphaGo (2016):可以從人類的專家級別游戲中學習AlphaGo Zero (2017):打敗了AlphaGo和Co,它不需要任何外部數(shù)據(jù)輸入(它通過和自身對抗訓練進行學習)。
DeepStack (2017):第一次擊敗了專業(yè)的撲克選手(在Heads up Poker中)。
現(xiàn)階段的缺點
很難確定適合的激勵函數(shù)(以Coast Runner為例), 結果可能是出乎意料的。
缺乏魯棒性: 在像素中增加噪聲會導致錯誤的預測結果。
現(xiàn)階段的挑戰(zhàn):
遷移學習:運行的表現(xiàn)和工作范圍相關。挑戰(zhàn):跨領域的遷移學習困難。原因:對于推理過程的理解或者提取理解的能力。
需要大量的數(shù)據(jù)。
需要經(jīng)過標注的數(shù)據(jù)。
不是完全自動的:需要調(diào)節(jié)超參數(shù)。
激勵函數(shù):很難確定一個合適的激勵函數(shù)。
透明程度: 神經(jīng)網(wǎng)絡的性質(zhì)接近黑盒子 (在我們可視化了隱藏的過程之后仍然是這樣)。
邊緣處理的情況:深度學習不擅長處理邊緣數(shù)據(jù)的情況(特別是當它用于自動駕駛)。
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。