search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

從集成方法到神經網路:自動駕駛技術中的機器學習演算法有哪些?

物聯網智庫 原創

------ 【導讀】 ------

機器學習演算法可以融合來自車體內外不同感測器的數據,從而評估駕駛員狀況或者對駕駛場景進行分類。本文將粗略講解一下各類用於自動駕駛技術的演算法。

如今,機器學習演算法正大規模地用於解決自動駕駛汽車產業日益增多的問題。結合 ECU (電子控制單元)感測器數據,我們須加強對機器學習方法的利用以迎接新的挑戰。潛在的應用包括利用分佈在車體內外的感測器,比如激光探測、雷達、攝像頭或者物聯網(IoT),融合各類數據進行駕駛員狀況評估或者駕駛場景分類。

運行車載輔助系統的相關程序可從數據融合感測系統接收相關信息進行判斷。比如,如果系統注意到駕駛員有不適的情況出現,其可以令汽車改道去往醫院。這項技術基於機器學習,且能對駕駛員的語音及動作進行識別,同時還有語言翻譯。演算法總的來說可以分為監督式學習和非監督式學習兩大類。二者的區別在於學習方式不同。

監督式學習通過給定的訓練集來學習,該學習過程一直持續到模型達到預設的期望值(即錯誤率達到最小)。監督式學習演算法可以分為回歸、分類以及異常數據檢測或降維演算法等幾大類。

非監督式學習試圖從可用數據集中學習到其內部結構與模式。這意味著,基於提供的數據,演算法旨在推導出一種關係,以便根據各個數據之間的相似度來檢測模式或者將數據集內部數據自動分類。無監督演算法很大一部分可以進一步分類為關聯規則學習和聚類演算法等。

強化學習演算法是介於非監督式學習和監督式學習的另外一類機器學習演算法。對於每個訓練樣本來說,監督式學習有對應的類別標籤而非監督式學習沒有。強化學習則是將時間延遲和稀疏標籤作為獎勵機制的一部分。在環境中學習的行為方式取決於獎勵機制的設置。強化學習的目的在於了解演算法的優劣勢並對演算法進行改進。該演算法有望用於解決實際應用當中產生的大量問題,涵蓋從人工智慧到工程式控制制或操作研究的方方面面,而這些都關乎自動駕駛汽車的發展走向。強化學習可分為間接學習和直接學習兩大類。

在自動駕駛技術中,機器學習演算法的主要任務之一就是持續渲染周圍環境並預測周圍環境可能產生的變化。這些可以分解為以下三個子類:

  • 目標檢測

  • 目標辨認或者目標識別分類

  • 目標定位和運動預判

機器學習演算法可大致分為四種:決策矩陣、聚類演算法、模式識別和回歸演算法。每種可以用於兩個或多個子任務。比如,回歸演算法可以用於目標定位以及目標預測或者行為預判。

決策矩陣演算法

決策矩陣演算法系統地分析、識別及評估信息本身和值之間的關係,這類演算法主要用於作出決策。汽車是否需要制動或左轉是基於演算法對物體的下一次運動的識別、分類和預測給定的置信度。決策矩陣演算法是由從各種角度獨立訓練,並由各決策模型組成的模型矩陣。其優點是將這些預測結合起來進行總體預測,同時降低決策中錯誤的可能性。AdaBoosting 是其中最常用的一種演算法。

AdaBoosting(Adaptive Boosting 的簡稱)

AdaBoosting 是將多種學習演算法組合起來,可用於回歸或者分類。與其他機器學習演算法相比,該演算法克服了過擬合問題,但對異常值和噪音數據通常比較敏感。為了構建出強學習方法,AdaBoost 通常會進行多次迭代,這也是其被稱為『適應性』增強演算法的原因。AdaBoosting 如同其他提升方法一樣通過集成一些弱學習器的學習能力從而進階成一個強學習器。具體到演算法,AdaBoost 在之前學習器的基礎上改變樣本的權重,增加那些之前被分類錯誤的樣本的比重,降低分類正確樣本的比重。之後,學習器將重點關注那些被分類錯誤的樣本。這樣的結果就是我們將得到一個比弱學習器的分類器精度更高的分類器。

AdaBoost 有助於將弱閾值分類器提升為強分類器。上圖具體展示了 AdaBoost 的實現的場景。弱分類器嘗試在數據維度中取得一個理想閾值,使得數據能分為兩類。分類器在迭代以及每個分類步驟之後得到調用,改變錯誤分類樣本的權重,從而創建了一個類似強分類器的級聯弱分類器。

聚類演算法

遇到某些情況(比如系統採集的圖像不清晰,難以用於定位和檢測;或者使用分類演算法有可能跟丟檢測對象),系統無法對目標進行分類並匯總報告。其原因也許包括數據不連貫,數據樣本太少或圖像解析度低等。聚類演算法能夠專門從數據中發現結構,通過分層和設置質心點的方法來建模。所有方法都旨在利用數據的內在結構將數據分門別類,且保證每類的數據擁有最高的相似性。K-均值聚類、層次聚類和多類神經網路是其中最具代表性的演算法。

K-均值聚類

K-均值聚類是一種十分出名的聚類演算法。該演算法將樣本聚類成 k 個集群(cluster),k 用於定義各集群的 k 個質心點。如果一個點比其他任何質心點更接近該簇初始的質心點,那麼這個點就存在於該簇類中。質心點的更新則根據計算當前分配的數據點到簇類的歐氏距離來進行。將數據點歸於某個集群則取決於當前的質心點是哪些。

K-means 演算法示意圖。叉表示各集群質心點,點表示訓練數據(a)原始數據集(b) 隨機設定的初始質心點(c-f) 兩輪迭代之後的數據分佈。每個訓練數據在每次迭代中分配給最接近的聚類質心點,將該類數據的均值作為聚類質心,更新聚類質心點。

模式識別演算法(分類)

高級駕駛輔助系統(ADAS)的感測器獲得的圖像由各種環境數據組成,但確定對象類別須濾掉圖像。所以我們需要濾除無關數據來實現。在分類對象之前,模式識別在數據集中是很重要的一步。這種演算法被稱為數據簡化演算法。

數據簡化演算法有助於減少對象的邊和聚合線(擬合為線段和圓弧)。直到在某個結點,聚合線與邊連成一條直線,此後出現一條新的聚合線。圓弧和形似圓弧的線也類似。各種圖像的特徵(圓弧和線段)組合起來,用於確定某一物體的特徵。

相較於 PCA(主成分分析法)和 HOG(定向梯度直方圖),支持向量機(Support Vector Machines)是高級駕駛輔助系統(ADAS)中常用的識別演算法。與此同時,K 近鄰(KNN)和貝葉斯決策法則也同樣經常用到。

支持向量機(SVM)

支持向量機(SVM)主要在於如何定義決策邊界或分離超平面。SVM 的超平面會在保留最大間隔的情況下把不同類別的數據分隔開。在如下示意圖中,數據分屬紅綠兩類。一個超平面將紅綠數據分開。任何落在左側的新對象都將標記為紅色,落在右側的都將標記為綠色。

回歸演算法

該演算法非常適用於對事件的預測。回歸分析對兩個或者兩個以上變數之間的關係進行評估,並核對出變數在不同程度上產生的影響。通常有以下三種指標:

  • 回歸曲線的樣式

  • 因變數的類型

  • 自變數的數量

圖像信號(攝像機或雷達)的啟動和定位在高級輔助駕駛系統中起著重要的作用。對於任何演算法而言,最大的挑戰在於開發基於圖像特徵選擇及預測的模型。

給定物體在圖像中的位置與該圖像,回歸演算法可以利用環境的重複性創建出一個關係統計模型。該模型允許圖像採樣,並提供快速在線檢測和離線學習模式。它還可以進一步擴展到其他物體而無需大量人工建模。作為在線實時輸出以及對物體存在的反饋,演算法將自動返回該物體的位置。

回歸演算法亦可用於短期預測和長期學習。可以用於自動駕駛的回歸演算法包括決策森林回歸,神經網路回歸和貝葉斯回歸等。

神經網路回歸

神經網路可以用於回歸、分類或者非監督式學習。這類演算法可以基於無監督將未經標註的數據進行分類,或者在監督訓練之後用來預測後續的數值。神經網路通常使用 logistic 回歸作為網路的最後一層將連續性的據轉換成 1 或 0 這樣的離散型變數。

上圖中可以看到,『x』 是輸入數據,特徵從網路結構的輸入層開始傳遞。在向後傳遞沒經過一條邊時,每一個特徵值『x』會被乘以一個相應的權重『w』。所有乘積之和將通過一個激活函數 ReLU 使結果可用於非線性分類。ReLU 十分常用,它不像 sigmoid 函數那樣在淺層梯度情況下易趨於飽和(當輸入非常大或者非常小的時候,神經元的梯度是接近於 0 的。如果這樣,大部分神經元可能都會處在飽和狀態而令梯度消失,這會導致網路變的很難學習)。ReLU 為每個隱藏神經元提供一個激活輸出並傳遞到下一個輸出神經元中。這意味著執行回歸的神經網路包含單個輸出節點,且該節點將先前層的激活數值總和乘以 1。圖中的神經網路預測『y_hat』便是結果。『y_hat』是所有 x 映射的因變數。我們以這種方式使用神經網路,從而通過與 y(單個因變數)相關的 x(多個自變數)而預測連續值結果。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦