雷鋒網按:本文原載于 kdnuggets,由林立宏、吳楚編譯。
將汽車內外傳感器的數據進行融合,借此評估駕駛員情況、進行駕駛場景分類,都要用到機器學習。本文中,我們講解了不同的自動駕駛算法。
自動駕駛汽車的設計制造面臨著諸多挑戰,如今,各大公司已經廣泛采用機器學習尋找相應的解決方案。汽車中的ECU(電子控制單元)已經整合了傳感器數據處理,如何充分利用機器學習完成新的任務,變得至關重要。潛在的應用包括將汽車內外傳感器的數據進行融合,借此評估駕駛員情況、進行駕駛場景分類。這些傳感器包括像激光雷達,雷達,攝像頭或者是物聯網。
車載信息娛樂系統所運行的應用,能從傳感器數據融合系統中獲取數據。舉個例子,如果系統察覺駕駛員發生狀況,有能力把車開到醫院。基于機器學習的應用,還包括對駕駛員的語言和手勢識別以及語言翻譯。相關的算法被分類為非監督和監督算法。它們兩者的區別在于學習的方式。
監督學習算法使用訓練數據集學習,并且能夠持續學習直到達到設定的置信水平(最小化出錯概率)。監督學習算法分為回歸、分類和異常檢測以及數據降維。
無監督學習算法,則嘗試挖掘有限數據的價值。這意味著,算法會在可用數據內建立關系,以檢測模式或者將數據集分成子類(取決于之間的相似度)。從廣義上,無監督算法可以可分為關聯規則學習和聚類。
增強學習算法是另外一種機器學習算法,介于非監督學習和監督學習之間。對于所有訓練的例子,監督學習中有目標標簽,無監督學習中卻完全沒有標簽。強化學習有延遲的、稀疏的標簽——未來的獎勵。
根據這些獎勵,智能體學習做出恰當行為。去理解算法的局限性和優點,開發更加高效的學習算法,是增強學習的目標。增強學習可以解決大量實際應用,從AI的問題到控制工程或操作研究——所有這些都與開發自動駕駛汽車相關。這可以被分為間接學習和直接學習。
在獨自動駕駛汽車上,機器學習算法的一個主要任務是持續渲染周圍的環境,以及預測可能發生的變化。這些任務可以分為四個子任務:
目標檢測
目標識別或分類
目標定位
運動預測
機器學習算法可以簡單地分為4類:決策矩陣算法、聚類算法、模式識別算法和回歸算法。可以利用一類機器學習算法來完成兩個以上的子任務。例如,回歸算法能夠用于物體定位和目標識別或者是運動預測。
決策矩陣算法
決策矩陣算法系統地分析、識別和評估信息集和值之間關系的表現。這些算法主要用于決策。車是否需要剎車或者左轉都是基于算法根據識別、分類和預測對象的下一個動作給出的置信水平。矩陣決策算法由各種獨立訓練的決策模型組合而成。用某種方式,這些預測整合起來進行總體預測,同時降低決策錯誤的可能性。AdaBoosting 是最常用的算法。
AdaBoosting
Adaptive Boosting或稱為AdaBoost,是一種多種學習算法的融合。它可用于回歸或者分類算法。相比其他機器學習算法,它克服了過擬合,并通常對異常值和噪聲數據敏感。為了創建一個強大的復合學習器,AdaBoost使用了多次迭代。因此,它又被稱為 “Adaptive Boosting”。通過迭代添加弱學習器,AdaBoost創建了一個強學習器。一個新的弱學習器加到實體上,并且調整加權向量,作為對前一輪中錯誤分類的樣例的回應。得到的結果,是一個比弱學習者分類器有更高準確性的分類器。
AdaBoost有助于將弱閾值的分類器提升為強分類器。上面的圖像描述了AdaBoost的執行,只用了簡單易于理解的代碼在一個文件中就實現了。這個函數包含一個弱分類器和boosting組件。弱分類器在一維的數據中嘗試去尋找最理想的閾值來將數據分離為兩類。boosting組件迭代調用分類器,經過每一步分類,它改變了錯誤分類示例的權重。因此,創建了一個級聯的弱分類器,它的行為就像一個強分類器。
聚類算法
有時,系統獲取的圖片不是很清晰,使得物體難以定位檢測。有時,分類算法有丟失檢測物體的可能,這樣就不能分類和報告給系統。這些可能是不連續的數據造成的,數據點太少了,或者圖片分辨率太低了。聚類算法的特點在于從數據點中發現模式。像回歸分析一樣,聚類算法是指一類方法和問題。典型的聚類算法有層次聚類,基于質心的聚類算法。這些算法都關注數據的內在模式,完美地把數據分解成擁有最大相似性的簇。K-均值,多分類神經網絡(Multi-class Neural Network)是最常用的算法。
K-均值算法
K-均值是著名聚類算法,它找出代表聚類結構的k個質心。如果有一個點到某一質心的距離比到其他質心都近,這個點則指派到這個最近的質心所代表的簇。依次,利用當前已聚類的數據點找出一個新質心,再利用質心給新的數據指派一個簇。
K-均值算法——在上圖中用“x"表示 聚類質心,用點表示訓練樣本。(a) 原始數據集。(b) 隨機初始化聚類質心。(c-f) k-均值迭代2次的示意圖。在每次迭代中每個訓練樣例都指派到一個最近的聚類質心,每個聚類質心被移動到分配給它的點的平均值。
模式識別算法(分類模型)
在高級駕駛助理系統中(ADAS)中,利用感應器獲取的圖像包含各種各樣的環境數據。對圖像進行過濾變得十分必要,以剔除一些不相關的樣本得到用于分類的實例數據。在分類前,關鍵步驟是在一個數據集上的模式識別。這類算法稱為數據約簡算法。
數據約簡算法有助于降低數據集的邊緣、對象的直線(擬合出來的線段)和圓弧的邊緣。線段與邊緣匹配,到直角后,該匹配會產生一段線段。和弧線一樣,圓弧與一串直線段匹配。用不同的方式,圖像特征(圓弧和線段)組合起來形成特征,用來判斷對象。
利用PCA(主成分分析)和HOG(方向梯度直方圖),SVM(支持向量機)通常在ADAS中用做識別算法。也會用K-鄰近(KNN)和貝葉斯決策規則。
支持向量機(SVM)
SVM依賴于決策平面概念,后者定義了決策邊界。決策平面可以把明顯有類關系的對象分隔開. 如下圖示。這張圖片中,對象分為紅色和綠色兩類。分離的邊界線把紅色和綠色的對象分離了。落在線左邊的新對象標記為紅色類,落在右邊標為綠色。
回歸算法
這類算法善于做事件預測。回歸分析評估兩個或兩個以上變量的關系,以及變量在不同尺度上的貢獻,主要受三個指標影響:
1、 回歸線的形狀
2、非獨立變量的類型
3、獨立變量的數量
(攝像頭或者雷達收集到的)圖像在ADAS的驅動和定位上起了重要作用。對于任一算法,最大的挑戰是利用基于圖像的模型來做特征選擇和預測。
環境的可重復性,對回歸算法為圖像和該圖像中某物體位置之間的關系,構建統計模型起了杠桿作用。利用采樣圖像的統計模型,可以快速在線識別和離線學習。這個模型可以進一步延伸到不需要大量人類建模的其他對象。算法返回的對象位置,作為在線階段的輸出和對象出現的概率。
回歸算法能夠用來短程預測和長程訓練。這類回歸算法中用到自動駕駛上,有決策森林回歸、神經網絡回歸、貝葉斯回歸等等。
神經網絡回歸模型
神經網絡可以用到回歸、分類或者其他無監督學習上,來匯總沒有標記的數據,分類這些數據,或者在監督學習后預測一個連續值。神經網絡常在最后一層用邏輯斯特回歸把連續值轉換成形如1或0的變量(二值變量)。
在上圖中,“x”是輸入,特征從前一層神經元傳播而來。到最后隱藏層的每個神經元,有很多’x'會喂進來,每個'x',乘以相應的權重w。對于偏置,乘積求和后加上偏置,然后輸入到激活函數。激活函數常用的是ReLU(修正線性單元),因為它不會像sigmoid激活函數在淺層梯度膨脹。ReLU在隱藏層輸出的激活值a,經過求和后成為輸出層的輸出。這暗示:一個神經網絡用做回歸時只有一個輸出節點。這個節點把激活值求和后乘以1向量。網絡的估計值,‘y帕’作為結果。‘Y帕’是所有'x'映射出來的獨立變量。你可以這樣用神經網絡得到與‘x’(多個非獨立向量)相關的函數,可以求出你要預測的'y'(獨立變量)。
(審核編輯: 林靜)
分享