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