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