編譯/陳亮
機器學習算法在無人駕駛中的應用
編譯/陳亮
無人駕駛被認為是未來人工智能技術應用的最大市場規(guī)模和影響力的落腳點。近年來,為了使汽車能夠安全可靠地“自主”上路,研究人員可沒少花心思。本文編譯自kdnuggets,該文全面概述了無人駕駛現(xiàn)階段使用的機器學習技術。我們一起來看看,哪些技術將影響未來下一代出行?
今天,機器學習算法被廣泛應用,以解決制造無人駕駛汽車行業(yè)中出現(xiàn)的各種挑戰(zhàn)。隨著傳感器數(shù)據(jù)處理在汽車ECU(電子控制單元)中被引入,我們必須越來越多地使用機器學習來完成新的任務。潛在的應用涉及通過來自不同外部和內部傳感器(如激光雷達、雷達、照相機或物聯(lián)網(wǎng))的數(shù)據(jù)融合來評估駕駛員狀況或駕駛場景分類。
運行汽車信息娛樂系統(tǒng)的應用程序可以從傳感器數(shù)據(jù)融合系統(tǒng)接收信息。例如,如果車輛注意到駕駛員狀態(tài)不對勁,則可以將汽車指引到醫(yī)院。這種基于機器學習的應用程序還包括駕駛員的語言、手勢識別和語言翻譯。算法被分類為無監(jiān)督學習和監(jiān)督學習。兩者之間的區(qū)別在于他們學習的方式。
監(jiān)督學習算法利用訓練數(shù)據(jù)集學習,并持續(xù)學習直到達到他們所期望的信息(最小化錯誤概率)的程度。監(jiān)督算法可以分為回歸、分類和異常檢測或降維。
無監(jiān)督學習算法嘗試從可用數(shù)據(jù)中獲取價值。這意味著,在可用數(shù)據(jù)內,算法產生關系,以便檢測模式或根據(jù)它們之間的相似程度將數(shù)據(jù)集劃分為子組。無監(jiān)督學習算法通常被分類為關聯(lián)規(guī)則學習和聚類。
強化學習算法是另一組機器學習算法,這種學習算法介于在無監(jiān)督和監(jiān)督學習之間。對于每個訓練示例,在監(jiān)督學習中有一個目標標簽;在無監(jiān)督學習中完全沒有標簽;強化學習包括時間延遲和稀疏標簽——也就是“激勵”。
每個agent會根據(jù)環(huán)境獎勵學習自身行為。了解算法的優(yōu)點和局限性,并開發(fā)高效的學習算法是強化學習的目標。強化學習可以解決大量實際應用,從人工智能的問題到控制工程或運籌學,這些都是與自動駕駛汽車開發(fā)相關的。它可以分為間接學習和直接學習。
在自動駕駛汽車上,機器學習算法的主要任務之一是持續(xù)感應周圍環(huán)境,并預測可能出現(xiàn)的變化。這些任務分成四個子任務:
圖1 回歸算法
·物體識別及分類
·物體定位
·運動預測
機器學習算法被分為4類:
·決策矩陣算法
·聚類算法
·模式識別算法
·回歸算法
我們可以利用其中一類機器學習算法來完成2個以上的子任務。例如,回歸算法既可以用于物體定位,也可以用于對象檢測和運動預測。
決策矩陣算法能系統(tǒng)地分析、識別和評估信息集和值之間關系的表現(xiàn)。這些算法主要用于決策。汽車是否需要制動或左轉基于這些算法對物體的下一次運動的識別、分類和預測的置信度。決策矩陣算法是由獨立訓練的各種決策模型組合起來的模型,在某些方面,將這些預測結合起來進行總體預測,同時降低決策中錯誤的可能性。Adaptive Boosting就是其中最常用的算法。
圖2 Adaptive Boosting算法
Adaptive Boosting算法也可以簡稱為AdaBoost,它是可以用于回歸或分類的多種學習算法的組合。與任何其他機器學習算法相比,它克服了過度擬合問題,并且通常對異常值和噪聲數(shù)據(jù)非常敏感。為了創(chuàng)建一個復合強大的學習器,AdaBoost需要經過多次迭代,因此,它具有適應性。學習器將重點關注被分類錯誤的樣本,最后再通過加權將弱學習器組合成強學習器。
圖3 K-means算法
AdaBoost有助于將弱閾值分類器提升為強分類器。圖2中的圖像描繪了如何在一個可以理解性代碼的單個文件中實現(xiàn)AdaBoost算法。該函數(shù)包含一個弱分類器和boosting組件。弱分類器嘗試在數(shù)據(jù)維度之一中定位理想閾值,將數(shù)據(jù)分為2類。分類器通過迭代部分調用,并且在每個分類步驟之后,改變了錯誤分類樣本的權重。因此,它實際創(chuàng)建了級聯(lián)的弱分類器,但性能像強分類器一樣好。
有時,由系統(tǒng)獲取的圖像不清楚,并且難以定位和檢測物體。有時,分類算法有可能丟失對象,在這種情況下,它們無法對系統(tǒng)進行分類并報告。原因可能是不連續(xù)的數(shù)據(jù)、非常少的數(shù)據(jù)點或低分辨率圖像。聚類算法專門用于從數(shù)據(jù)點發(fā)現(xiàn)結構。它描述了分類的方法和分類的問題,如回歸。聚類方法通常通過對分層和基于質心的方法進行建模來組織。所有方法都利用數(shù)據(jù)中的固有結構將數(shù)據(jù)完美地組織成最大共性的組。K-means是一種常見的聚類算法。
K-means是一個著名的聚類算法。K-means存儲它用于定義集群的k個質心。如果一個點比任何其他質心更接近該集群的質心,那么這個點被說成是在一個特定的集群中。通過根據(jù)當前分配數(shù)據(jù)點到集群和根據(jù)當前質心將數(shù)據(jù)點分配給集群,在選擇質心之間進行交替。
K-means算法——聚類質心被描繪為十字,訓練樣本被描繪為點。 其中(a)表示原始數(shù)據(jù)集;(b)表示隨機初始聚類中心。(c-f)表示運行2次k-means迭代的演示。每個訓練樣本在每個迭代中分配給最接近的聚類中心,然后將每個聚類中心移動到分配給它的點的平均值。
通過高級駕駛輔助系統(tǒng)(ADAS)中的傳感器獲得的圖像由各種環(huán)境數(shù)據(jù)組成,需要過濾圖像以通過排除不相關的數(shù)據(jù)點來確定物體類別的樣例。在對物體分類之前,模式的識別是數(shù)據(jù)集中的重要一步。這種算法被定義為數(shù)據(jù)簡化算法。
圖4
數(shù)據(jù)簡化算法有助于減少對象的數(shù)據(jù)集邊緣和折線(擬合線段)以及圓弧到邊緣。直到一個角落、線段與邊緣對齊,并在此之后開始一個新的線段。圓弧與類似于弧的線段的序列對齊。以各種方式,將圖像的特征(圓弧和線段)組合以形成用于確定物體的特征。
通過PCA(原理分量分析)和HOG(定向梯度直方圖),支持向量機(SVM)是ADAS中常用的識別算法。我們也經常用到KNN分類算法和貝葉斯決策規(guī)則。
SVM依賴于定義決策界限的決策平面概念。決策平面分離由不同的類成員組成的對象集。圖4是一個示意圖。在這里,物體屬于RED或GREEN類,分離邊界線將紅色和綠色物體分開。任何落在左側的新對象都標記為RED,如果它落在右邊,則將其標記為GREEN。
這種算法有利于預測事件。回歸分析會評估2個或更多個變量之間的關系,并將變量的影響整理到不同的量表上,主要由3個指標驅動:
·回歸線的形狀
·因變量的類型
·自變量的數(shù)量
圖像(攝像機或雷達)在啟動和定位中在ADAS中起著重要作用,而對于任何算法來說,最大的挑戰(zhàn)是如何開發(fā)一種用于進行特征選取和預測的、基于圖像的模型。
回歸算法利用環(huán)境的重復性,以創(chuàng)建給定物體在圖像中的位置與該圖像之間的關系的統(tǒng)計模型。這個模型通過圖像采樣,提供快速在線檢測,同時可以離線學習。它可以進一步擴展到其他物體上,而不需要大量人類建模。算法會將某一物體的位置以一種在線狀態(tài)下的輸出和一種對物體存在的信任作為反饋。
圖5
回歸算法也可以用于短期預測和長期學習中。在自動駕駛汽車上,回歸算法可以是決策林回歸、神經網(wǎng)絡回歸和貝葉斯回歸等。
神經網(wǎng)絡用于回歸、分類或無監(jiān)督學習。他們對未標記的數(shù)據(jù)進行分組,對數(shù)據(jù)進行分類或在監(jiān)督訓練后對連續(xù)值進行預測。神經網(wǎng)絡通常在網(wǎng)絡的最后一層使用邏輯回歸的形式,將連續(xù)數(shù)據(jù)變?yōu)樽兞?或變量0。在上圖中,“x”是輸入,從網(wǎng)絡上一層傳出的特征。進入最后一層隱藏層的每一個節(jié)點,將傳遞給許多x,并將每個x乘以w,相應的權重。對于偏移,乘積之和將被移動到一個激活函數(shù)中。激活函數(shù)是ReLU(整流線性單元),它不像Sigmoid函數(shù)那樣在處理淺層梯度問題時容易飽和。ReLU為每個隱藏節(jié)點提供一個輸出,激活a,并且激活被添加到通過激活和輸出節(jié)點中。這意味著,執(zhí)行回歸的神經網(wǎng)絡包含單個輸出節(jié)點,并且該節(jié)點將先前層的激活總和乘以1,該網(wǎng)絡的估值“y hat”將是結果?!皔”是所有x映射到的因變量。您可以以這種方式使用神經網(wǎng)絡來獲取與您嘗試預測的y(一個因變量)相關的x(自變量)。
陳亮 本刊編輯