自動駕駛中常用的四類機器學習演算法

dicksonjyl560101發表於2018-11-02

自動駕駛中常用的四類機器學習演算法

 

https://www.jianshu.com/p/07619a77f9a9

 

 

來源:智車科技

 

機器學習演算法已經被廣泛應用於自動駕駛各種解決方案,電控單元中的感測器資料處理大大提高了機器學習的利用率,也有一些潛在的應用,比如利用不同外部和內部的感測器的資料融合(如鐳射雷達、雷達、攝像頭或物聯網),評估駕駛員狀況或為駕駛場景分類等。在KDnuggets網站發表的一篇文章中,作者Savaram Ravindra將自動駕駛中機器學習演算法主要分為四類,即決策矩陣演算法、聚類演算法、模式識別演算法和迴歸演算法。我們跟他一起看看,這些演算法都是怎樣應用的。

 

演算法概覽

 

我們先設想這樣一個自動駕駛場景——汽車的資訊娛樂系統接收感測器資料融合系統的資訊,如果系統發現司機身體有恙,會指導無人車開往附近的醫院。

 

這項應用以機器學習為基礎,能識別司機的語音、行為,進行語言翻譯等。 所有這些演算法可以分為兩類:監督學習和無監督學習,二者的區別在它們學習的方法。

 

監督學習演算法利用訓練資料集學習,並會堅持學到達到所要求的置信度(誤差的最小概率)。 監督學習演算法可分為迴歸、分類和異常檢測或維度縮減問題。

 

無監督學習演算法會在可用資料中獲取價值。 這意味著演算法能找到資料的內部聯絡、找到模式,或者根據資料間的相似程度將資料集劃分出子集。無監督演算法可以被粗略分類為關聯規則學習和聚類。

 

強化學習演算法是另一類機器學習演算法,這種學習方法介於監督學習和無監督學習之間。 監督學習會給每個訓練樣例目標標籤,無監督學習從來不會設立標籤——而強化學習就是它們的平衡點,它有時間延遲的稀疏標籤——也就是未來的獎勵。每個agent會根據環境獎勵學習自身行為。瞭解演算法的優點和侷限性,並開發高效的學習演算法是強化學習的目標。

 

在自動駕駛汽車上,機器學習演算法的主要任務之一是持續感應周圍環境,並預測可能出現的變化。

 

我們不妨分成四個子任務:

  • 檢測物件

  • 物體識別及分類

  • 物體定位

  • 運動預測

     

    機器學習演算法也可以被寬鬆地分為四類:

  • 決策矩陣演算法

  • 聚類演算法

  • 模式識別演算法

  • 迴歸演算法

     

    機器學習演算法和任務分類並不是一一對應的, 比如說,迴歸演算法既可以用於物體定位,也可以用於物件檢測和運動預測。

     

     

    決策矩陣演算法

     

    決策矩陣演算法能系統分析、識別和評估一組資訊集和值之間關係的表現,這些演算法主要使用者決策。 車輛的制動或轉向是有依據的,它依賴演算法對下一個運動的物體的識別、分類、預測的置信水平。決策矩陣演算法是由獨立訓練的各種決策模型組合起來的模型,某種程度上說,這些預測組合在一起構成整體的預測,同時降低決策的錯誤率。AdaBoosting是最常用的演算法。

     

    AdaBoost

     

    Adaptive Boosting 演算法也可以簡稱為AdaBoost,它是多種學習演算法的結合, 可應用於迴歸和分類問題。 與其他機器學習演算法相比,它克服了過擬合問題,並且對異常值和噪聲資料非常敏感。AdaBoost需要經過多次迭代才能創造出強學習器,它具有自適應性。學習器將重點關注被分類錯誤的樣本,最後再通過加權將弱學習器組合成強學習器。

     

     

    AdaBoost 幫助弱閾值分類器提升為強分類器。 上面的影像描繪瞭如何在一個可以理解性程式碼的單個檔案中實現AdaBoost演算法。該函式包含一個弱分類器和boosting元件。

     

    弱分類器嘗試在資料維數中找到理想閾值,並將資料分為2類。 分類器迭代時呼叫資料,並在每個分類步驟後,改變分類樣本的權重。

     

    因此,它實際建立了級聯的弱分類器,但效能像強分類器一樣好。

     

    聚類演算法

     

    有時,系統獲取的影像不清楚,難以定位和檢測物件,分類演算法有可能丟失物件。在這種情況下,它們無法對問題分類並將其報告給系統。造成這種現象可能的原因包括不連續資料、極少的資料點或低解析度影像。K-means是一種常見的聚類演算法。

     

    K-means

     

    K-means 是著名的聚類演算法,它從資料物件中選擇任意k個物件作為初始聚類中心,再根據每個聚類物件的均值(中心物件)計算出每個物件與中心物件的距離,然後根據最小距離重新劃分物件。最後重新計算調整後的聚類的均值。

     

    下圖形象描述了K-means演算法。其中,(a)表示原始資料集,(b)表示隨機初始聚類中心,(c-f)表示執行2次k-means迭代演示。

     

     

    模式識別演算法(分類)

     

    通過高階駕駛輔助系統(ADAS)中的感測器獲得的影像由各種環境資料組成,影像過濾可以用來決定物體分類樣例,排除無關的資料點。 在對物體分類前,模式識別是一項重要步驟,這種演算法被定義為資料簡化演算法。資料簡化演算法可以減少資料集的邊緣和折線(擬合線段)。

     

    PCA (原理分量分析)和HOG(定向梯度直方圖),支援向量機(Support Vector Machines,SVM)是ADAS中常用的識別演算法 。我們也經常用到K最近鄰(KNN,K-NearestNeighbor)分類演算法和貝葉斯決策規則。

     

    支援向量機(SVM)

     

    SVM 依賴於定義決策邊界的決策層概念。決策平面分隔由不同的類成員組成的物件集。下面是一個示意圖。在這裡,物體要麼屬於紅色類要麼綠色類,分隔線將彼此分隔開。落在左邊的新物體會被標記為紅色,落在右邊就被標記為綠色。

     

     

    迴歸演算法

     

    這種演算法的專長是預測事件。迴歸分析會對兩個或更多變數之間的關聯性進行評估,並對不同規模上的變數效果進行對照。迴歸演算法通常由三種度量標準驅動:

     

    迴歸線的形狀

    因變數的型別

    因變數的數量

     

    在無人車的驅動和定位方面,影像在ADAS系統中扮演著關鍵角色。對於任何演算法來說,最大的挑戰都是如何開發一種用於進行特徵選取和預測的、基於影像的模型。

     

    迴歸演算法利用環境的可重複性來創造一個概率模型,這個模型揭示了影像中給定物體位置與該影像本身間的關係。 通過圖形取樣,此概率模型能夠提供迅速的線上檢測,同時也可以線上下進行學習。模型還可以在不需要大量人類建模的前提下被進一步擴充套件到其他物體上。演算法會將某一物體的位置以一種線上狀態下的輸出和一種對物體存在的信任而返回。

     

    迴歸演算法同樣可以被應用到短期預測和長期學習中,在自動駕駛上,則尤其多用於決策森林迴歸、神經網路迴歸以及貝葉斯迴歸。

     

    迴歸神經網路

     

    神經網路可以被用在迴歸、分類或非監督學習上。它們將未標記的資料分組並歸類,或者監督訓練後預測連續值。 神經網路的最後一層通常通過邏輯迴歸將連續值變為變數0或1。

     

     

    在上面的圖表中,x代表輸入,特徵從網路中的前一層傳遞到下一層。許多x將輸入到最後一個隱藏層的每個節點,並且每一個x將乘以相關權重w。乘積之和將被移動到一個啟用函式中,在實際應用中我們經常用到ReLu啟用函式。它不像Sigmoid函式那樣在處理淺層梯度問題時容易飽和。

     

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2218508/,如需轉載,請註明出處,否則將追究法律責任。

相關文章