1. 程式人生 > >無人駕駛技術課——感知(2)

無人駕駛技術課——感知(2)

在感知部分的課程中,我們將首先介紹計算機視覺的基本應用領域;再進一步瞭解機器學習、神經網路和卷積神經網路的基礎知識;隨後我們將討論感知模組在無人車中的具體任務;最後瞭解 Apollo 感知模組的體系結構和感測器融合的相關內容。

 

上節課,我們學習了計算機視覺的基本應用領域,這節課我們將重點了解機器學習、神經網路和卷積神經網路的基礎知識。

 

 

機器學習

 

機器學習是使用特殊演算法來訓練計算機並從資料中學習的電腦科學領域。通常情況下,這種學習結果存放在一種被稱為“模型”的資料結構中。事實上,“模型”只是一種可用於理解和預測世界的資料結構。

 

機器學習誕生於20世紀60年代,但隨著計算機硬體的不斷改進,在過去的20年中才越來越受歡迎。例如,金融公司現在正通過機器學習來對匯率和證券交易進行預測,零售企業使用機器學習來預測需求,醫生甚至使用機器學習來輔助醫療診斷。

 

機器學習應用:金融公司、零售企業、醫生

 

機器學習涉及使用資料和相關的真值標記來進行模型訓練。例如,可能會顯示車輛和行人的計算機影象,以及告訴計算機影象的對應標籤,我們會讓計算機學習如何更好地區分兩類影象,這類機器學習也被稱為監督式學習,因為模型利用了人類創造的真值標記。

 

監督式學習

 

設想一個類似的學習過程,但該過程使用了沒有真值標記的車輛與行人影象。在這種方法中,我們會讓計算機自行決定哪些影象相似、哪些影象不同,這被稱為無監督學習。

 

無監督學習

 

這裡我們不提供真值標記,而是通過分析輸入的資料(在這種情況下為攝像頭影象),計算機憑藉自行學習找到區別。

 

另一種方法被稱為“半監督式”學習,它將監督學習和無監督學習的特點結合在一起,該方法使用少量的標記資料和大量的未標記資料來訓練模型。

 

強化學習是另一種機器學習。強化學習涉及允許模型通過嘗試許多不同的方法來解決問題,然後衡量哪種方法最為成功,計算機將嘗試許多不同的解決方案,最終使其方法與環境相適應。

 

例如,在模擬器中強化學習智慧體可訓練汽車進行右轉,智慧體將在初始位置發動車輛,然後進行實驗性駕駛,以多種不同的方向和行駛速度,如果汽車實際完成了右轉,智慧體會提高獎勵(即得分),這是針對導致成功結果的初始操作。

 

 

起初,汽車可能無法找到執行轉彎的方法,然而就像人類那樣汽車最終會從一些成功的右轉經驗中學習,最後學會如何完成任務。

 

 

 

神經網路

 

人工神經網路用於無人駕駛車受到構成人類神經系統的生物神經元啟發,生物神經元通過相互連線,構成了神經元網路或神經網路,通過類似的方式我們可以將人工神經元層連線起來以建立用於機器學習的人工神經網路。

 

 

人工神經網路是通過資料來學習複雜模式的工具。神經網路由大量的神經元組成,正如人體神經系統的神經元那樣,人工神經元負責傳遞和處理資訊,也可以對這些神經元進行訓練,你可以將這些影象識別為車輛,無論它們是黑是白,或大或小,你甚至可能不知道自己如何知道它們是車輛,也許是某些特徵觸發了你的反應,如車輪、車燈和車窗。

 

人工神經網路具有相似的運作方式,通過密集訓練,計算機可以辨別汽車、行人、交通訊號燈和電線杆。

 

 

我們不是總能理解計算機如何做出這樣的辨別,但它們學習了用於執行任務的模型,只是我們可能很直觀地理解該數學模型。當看到該影象時,你的大腦如何工作?大腦可能會將影象分為幾部分,然後識別特徵,如車輪、車窗和顏色,然後大腦將使用這些特徵對影象進行檢測和分類。

 

 

例如,在確定影象是否為汽車時,大腦可能不會認為顏色是關鍵特徵,因為汽車有多種顏色,所以大腦會將更多權重放在其他特徵上,並降低顏色的重要性。

 

 

同樣的,神經網路也會從影象中提取許多特徵,但這些特徵可能是我們人類無法描述或甚至無法理解的特徵。

 

 

 

但我們最終不需要理解,計算機將調整這些特徵的權重以完成神經網路的最終任務,這就是深層神經網路的思維方式。

 

反向傳播演算法

 

前面我們已經討論過神經網路如何從資料中“學習”,那麼你可能想知道這種學習如何發生。學習有時稱為訓練,它由三部迴圈組成:前饋、誤差測定和反向傳播。

 

首先隨機分配初始權重,即人工神經元的值,通過神經網路來饋送每個影象,產生輸出值,這被稱為前饋。

 

 

下一步為誤差測定。誤差是真值標記與前饋過程所產生輸出之間的偏差。

 

 

最後一步是反向傳播,通過神經網路反向傳送誤差,此過程類似前饋過程,只是以相反方向進行。每個人工神經元都對其值進行微調,這是基於通過神經網路後向傳播的誤差。

 

 

所有這些獨立調整的結果,可生成更準確的網路。

 

一個訓練週期包括前饋、誤差測定和反向傳播還遠遠不夠。為了訓練網路,通常需要數千個這樣的週期,但最終結果應該是模型能夠通過新資料做出準確預測。

 

 

 

卷積神經網路

 

卷積神經網路(CNN)是一種人工神經網路,它對感知問題特別有效。CNN 接受多維輸入,包括定義大多數感測器資料的二維和三維形狀。如果使用標準神經網路對影象進行分類,則需要通過一種方法將影象連線到網路的第一層,這屬於一維。標準做法是通過將影象矩陣重塑為一個向量,並在一個大行中連線所有列,將影象“展開”為一維的畫素陣列。

 

 

然而,這種方法打破了影象中所嵌入的空間資訊。如果影象中有車輪,則車輪中的所有畫素將散佈在整個畫素陣列中。這些畫素以二維碼方式連線形成車輪,如果我們將其散佈在一個維度上,神經網路很難從影象中提取車輪。

 

 

CNN 通過維持輸入畫素之間的空間關係來解決這個問題。具體來說,CNN 通過將過濾器連續滑過影象來收集資訊,每次收集資訊時,只對影象的一小部分割槽域進行分析,這個過程被稱為“卷積”。當我們在整個輸入影象上對一個過濾器進行“卷積”時,我們將該資訊與下一個卷積層相關聯。

 

例如,CNN 可以識別第一個卷積層中的基本邊緣和顏色資訊,然後通過在第一層上卷積新過濾器,CNN 可以使用邊緣和顏色資訊來歸納更復雜的結構,如車輪、車門和擋風玻璃;而另一個卷積可使用車輪、車門和擋風玻璃識別整個車輛;最後,神經網路可使用這一高階資訊對車輛進行分類。

 

 

人們通常不太清楚 CNN 如何解讀影象,CNN 有時會側重於影象中令人驚訝的部分,但這也是深度學習的神奇之處,CNN 根據其任務查詢真正需要的特徵,任務可能是影象檢測、分類、分割或其他型別的目標。

 

掌握了以上有關於機器學習、神經網路、反向傳播演算法以及卷積神經網路的基礎知識,大家有什麼學習心得呢?歡迎在下方留言區熱烈討論~

 

下節課我們將深入瞭解感知模組在無人車中的具體任務。

【轉自Apollo阿波羅智慧駕駛】

 

【推薦閱讀】

無人駕駛技術課——感知(1)

新增極客助手微信,加入技術交流群

長按,掃碼,關注公眾號