選自kdnuggets
作者:Savaram Ravindra等
參與:Lj Linjing、蔣思源
機(jī)器學(xué)習(xí)算法可以融合來(lái)自車體內(nèi)外不同傳感器的數(shù)據(jù),從而評(píng)估駕駛員狀況或者對(duì)駕駛場(chǎng)景進(jìn)行分類。本文將粗略講解一下各類用于自動(dòng)駕駛技術(shù)的算法。
如今,機(jī)器學(xué)習(xí)算法正大規(guī)模地用于解決自動(dòng)駕駛汽車產(chǎn)業(yè)日益增多的問題。結(jié)合 ECU (電子控制單元)傳感器數(shù)據(jù),我們須加強(qiáng)對(duì)機(jī)器學(xué)習(xí)方法的利用以迎接新的挑戰(zhàn)。潛在的應(yīng)用包括利用分布在車體內(nèi)外的傳感器,比如激光探測(cè)、雷達(dá)、攝像頭或者物聯(lián)網(wǎng)(IoT),融合各類數(shù)據(jù)進(jìn)行駕駛員狀況評(píng)估或者駕駛場(chǎng)景分類。
運(yùn)行車載輔助系統(tǒng)的相關(guān)程序可從數(shù)據(jù)融合傳感系統(tǒng)接收相關(guān)信息進(jìn)行判斷。比如,如果系統(tǒng)注意到駕駛員有不適的情況出現(xiàn),其可以令汽車改道去往醫(yī)院。這項(xiàng)技術(shù)基于機(jī)器學(xué)習(xí),且能對(duì)駕駛員的語(yǔ)音及動(dòng)作進(jìn)行識(shí)別,同時(shí)還有語(yǔ)言翻譯。算法總的來(lái)說(shuō)可以分為監(jiān)督式學(xué)習(xí)和非監(jiān)督式學(xué)習(xí)兩大類。二者的區(qū)別在于學(xué)習(xí)方式不同。
監(jiān)督式學(xué)習(xí)通過(guò)給定的訓(xùn)練集來(lái)學(xué)習(xí),該學(xué)習(xí)過(guò)程一直持續(xù)到模型達(dá)到預(yù)設(shè)的期望值(即錯(cuò)誤率達(dá)到最?。?。監(jiān)督式學(xué)習(xí)算法可以分為回歸、分類以及異常數(shù)據(jù)檢測(cè)或降維算法等幾大類。
非監(jiān)督式學(xué)習(xí)試圖從可用數(shù)據(jù)集中學(xué)習(xí)到其內(nèi)部結(jié)構(gòu)與模式。這意味著,基于提供的數(shù)據(jù),算法旨在推導(dǎo)出一種關(guān)系,以便根據(jù)各個(gè)數(shù)據(jù)之間的相似度來(lái)檢測(cè)模式或者將數(shù)據(jù)集內(nèi)部數(shù)據(jù)自動(dòng)分類。無(wú)監(jiān)督算法很大一部分可以進(jìn)一步分類為關(guān)聯(lián)規(guī)則學(xué)習(xí)和聚類算法等。
強(qiáng)化學(xué)習(xí)算法是介于非監(jiān)督式學(xué)習(xí)和監(jiān)督式學(xué)習(xí)的另外一類機(jī)器學(xué)習(xí)算法。對(duì)于每個(gè)訓(xùn)練樣本來(lái)說(shuō),監(jiān)督式學(xué)習(xí)有對(duì)應(yīng)的類別標(biāo)簽而非監(jiān)督式學(xué)習(xí)沒有。強(qiáng)化學(xué)習(xí)則是將時(shí)間延遲和稀疏標(biāo)簽作為獎(jiǎng)勵(lì)機(jī)制的一部分。在環(huán)境中學(xué)習(xí)的行為方式取決于獎(jiǎng)勵(lì)機(jī)制的設(shè)置。強(qiáng)化學(xué)習(xí)的目的在于了解算法的優(yōu)劣勢(shì)并對(duì)算法進(jìn)行改進(jìn)。該算法有望用于解決實(shí)際應(yīng)用當(dāng)中產(chǎn)生的大量問題,涵蓋從人工智能到工程控制或操作研究的方方面面,而這些都關(guān)乎自動(dòng)駕駛汽車的發(fā)展走向。強(qiáng)化學(xué)習(xí)可分為間接學(xué)習(xí)和直接學(xué)習(xí)兩大類。
在自動(dòng)駕駛技術(shù)中,機(jī)器學(xué)習(xí)算法的主要任務(wù)之一就是持續(xù)渲染周圍環(huán)境并預(yù)測(cè)周圍環(huán)境可能產(chǎn)生的變化。這些可以分解為以下三個(gè)子類:
目標(biāo)檢測(cè)
目標(biāo)辨認(rèn)或者目標(biāo)識(shí)別分類
目標(biāo)定位和運(yùn)動(dòng)預(yù)判
機(jī)器學(xué)習(xí)算法可大致分為四種:決策矩陣、聚類算法、模式識(shí)別和回歸算法。每種可以用于兩個(gè)或多個(gè)子任務(wù)。比如,回歸算法可以用于目標(biāo)定位以及目標(biāo)預(yù)測(cè)或者行為預(yù)判。
決策矩陣算法
決策矩陣算法系統(tǒng)地分析、識(shí)別及評(píng)估信息本身和值之間的關(guān)系,這類算法主要用于作出決策。汽車是否需要制動(dòng)或左轉(zhuǎn)是基于算法對(duì)物體的下一次運(yùn)動(dòng)的識(shí)別、分類和預(yù)測(cè)給定的置信度。決策矩陣算法是由從各種角度獨(dú)立訓(xùn)練,并由各決策模型組成的模型矩陣。其優(yōu)點(diǎn)是將這些預(yù)測(cè)結(jié)合起來(lái)進(jìn)行總體預(yù)測(cè),同時(shí)降低決策中錯(cuò)誤的可能性。AdaBoosting 是其中最常用的一種算法。
AdaBoosting(Adaptive Boosting 的簡(jiǎn)稱)
AdaBoosting 是將多種學(xué)習(xí)算法組合起來(lái),可用于回歸或者分類。與其他機(jī)器學(xué)習(xí)算法相比,該算法克服了過(guò)擬合問題,但對(duì)異常值和噪音數(shù)據(jù)通常比較敏感。為了構(gòu)建出強(qiáng)學(xué)習(xí)方法,AdaBoost 通常會(huì)進(jìn)行多次迭代,這也是其被稱為『適應(yīng)性』增強(qiáng)算法的原因。AdaBoosting 如同其他提升方法一樣通過(guò)集成一些弱學(xué)習(xí)器的學(xué)習(xí)能力從而進(jìn)階成一個(gè)強(qiáng)學(xué)習(xí)器。具體到算法,AdaBoost 在之前學(xué)習(xí)器的基礎(chǔ)上改變樣本的權(quán)重,增加那些之前被分類錯(cuò)誤的樣本的比重,降低分類正確樣本的比重。之后,學(xué)習(xí)器將重點(diǎn)關(guān)注那些被分類錯(cuò)誤的樣本。這樣的結(jié)果就是我們將得到一個(gè)比弱學(xué)習(xí)器的分類器精度更高的分類器。
AdaBoost 有助于將弱閾值分類器提升為強(qiáng)分類器。上圖具體展示了 AdaBoost 的實(shí)現(xiàn)的場(chǎng)景。弱分類器嘗試在數(shù)據(jù)維度中取得一個(gè)理想閾值,使得數(shù)據(jù)能分為兩類。分類器在迭代以及每個(gè)分類步驟之后得到調(diào)用,改變錯(cuò)誤分類樣本的權(quán)重,從而創(chuàng)建了一個(gè)類似強(qiáng)分類器的級(jí)聯(lián)弱分類器。
聚類算法
遇到某些情況(比如系統(tǒng)采集的圖像不清晰,難以用于定位和檢測(cè);或者使用分類算法有可能跟丟檢測(cè)對(duì)象),系統(tǒng)無(wú)法對(duì)目標(biāo)進(jìn)行分類并匯總報(bào)告。其原因也許包括數(shù)據(jù)不連貫,數(shù)據(jù)樣本太少或圖像分辨率低等。聚類算法能夠?qū)iT從數(shù)據(jù)中發(fā)現(xiàn)結(jié)構(gòu),通過(guò)分層和設(shè)置質(zhì)心點(diǎn)的方法來(lái)建模。所有方法都旨在利用數(shù)據(jù)的內(nèi)在結(jié)構(gòu)將數(shù)據(jù)分門別類,且保證每類的數(shù)據(jù)擁有最高的相似性。K-均值聚類、層次聚類和多類神經(jīng)網(wǎng)絡(luò)是其中最具代表性的算法。
K-均值聚類
K-均值聚類是一種十分出名的聚類算法。該算法將樣本聚類成 k 個(gè)集群(cluster),k 用于定義各集群的 k 個(gè)質(zhì)心點(diǎn)。如果一個(gè)點(diǎn)比其他任何質(zhì)心點(diǎn)更接近該簇初始的質(zhì)心點(diǎn),那么這個(gè)點(diǎn)就存在于該簇類中。質(zhì)心點(diǎn)的更新則根據(jù)計(jì)算當(dāng)前分配的數(shù)據(jù)點(diǎn)到簇類的歐氏距離來(lái)進(jìn)行。將數(shù)據(jù)點(diǎn)歸于某個(gè)集群則取決于當(dāng)前的質(zhì)心點(diǎn)是哪些。
K-means 算法示意圖。叉表示各集群質(zhì)心點(diǎn),點(diǎn)表示訓(xùn)練數(shù)據(jù)(a)原始數(shù)據(jù)集(b) 隨機(jī)設(shè)定的初始質(zhì)心點(diǎn)(c-f) 兩輪迭代之后的數(shù)據(jù)分布。每個(gè)訓(xùn)練數(shù)據(jù)在每次迭代中分配給最接近的聚類質(zhì)心點(diǎn),將該類數(shù)據(jù)的均值作為聚類質(zhì)心,更新聚類質(zhì)心點(diǎn)。
模式識(shí)別算法(分類)
高級(jí)駕駛輔助系統(tǒng)(ADAS)的傳感器獲得的圖像由各種環(huán)境數(shù)據(jù)組成,但確定對(duì)象類別須濾掉圖像。所以我們需要濾除無(wú)關(guān)數(shù)據(jù)來(lái)實(shí)現(xiàn)。在分類對(duì)象之前,模式識(shí)別在數(shù)據(jù)集中是很重要的一步。這種算法被稱為數(shù)據(jù)簡(jiǎn)化算法。
數(shù)據(jù)簡(jiǎn)化算法有助于減少對(duì)象的邊和聚合線(擬合為線段和圓?。?。直到在某個(gè)結(jié)點(diǎn),聚合線與邊連成一條直線,此后出現(xiàn)一條新的聚合線。圓弧和形似圓弧的線也類似。各種圖像的特征(圓弧和線段)組合起來(lái),用于確定某一物體的特征。
相較于 PCA(主成分分析法)和 HOG(定向梯度直方圖),支持向量機(jī)(Support Vector Machines)是高級(jí)駕駛輔助系統(tǒng)(ADAS)中常用的識(shí)別算法。與此同時(shí),K 近鄰(KNN)和貝葉斯決策法則也同樣經(jīng)常用到。
支持向量機(jī)(SVM)
支持向量機(jī)(SVM)主要在于如何定義決策邊界或分離超平面。SVM 的超平面會(huì)在保留最大間隔的情況下把不同類別的數(shù)據(jù)分隔開。在如下示意圖中,數(shù)據(jù)分屬紅綠兩類。一個(gè)超平面將紅綠數(shù)據(jù)分開。任何落在左側(cè)的新對(duì)象都將標(biāo)記為紅色,落在右側(cè)的都將標(biāo)記為綠色。
回歸算法
該算法非常適用于對(duì)事件的預(yù)測(cè)?;貧w分析對(duì)兩個(gè)或者兩個(gè)以上變量之間的關(guān)系進(jìn)行評(píng)估,并核對(duì)出變量在不同程度上產(chǎn)生的影響。通常有以下三種指標(biāo):
回歸曲線的樣式
因變量的類型
自變量的數(shù)量
圖像信號(hào)(攝像機(jī)或雷達(dá))的啟動(dòng)和定位在高級(jí)輔助駕駛系統(tǒng)中起著重要的作用。對(duì)于任何算法而言,最大的挑戰(zhàn)在于開發(fā)基于圖像特征選擇及預(yù)測(cè)的模型。
給定物體在圖像中的位置與該圖像,回歸算法可以利用環(huán)境的重復(fù)性創(chuàng)建出一個(gè)關(guān)系統(tǒng)計(jì)模型。該模型允許圖像采樣,并提供快速在線檢測(cè)和離線學(xué)習(xí)模式。它還可以進(jìn)一步擴(kuò)展到其他物體而無(wú)需大量人工建模。作為在線實(shí)時(shí)輸出以及對(duì)物體存在的反饋,算法將自動(dòng)返回該物體的位置。
回歸算法亦可用于短期預(yù)測(cè)和長(zhǎng)期學(xué)習(xí)??梢杂糜谧詣?dòng)駕駛的回歸算法包括決策森林回歸,神經(jīng)網(wǎng)絡(luò)回歸和貝葉斯回歸等。
神經(jīng)網(wǎng)絡(luò)回歸
神經(jīng)網(wǎng)絡(luò)可以用于回歸、分類或者非監(jiān)督式學(xué)習(xí)。這類算法可以基于無(wú)監(jiān)督將未經(jīng)標(biāo)注的數(shù)據(jù)進(jìn)行分類,或者在監(jiān)督訓(xùn)練之后用來(lái)預(yù)測(cè)后續(xù)的數(shù)值。神經(jīng)網(wǎng)絡(luò)通常使用 logistic 回歸作為網(wǎng)絡(luò)的最后一層將連續(xù)性的據(jù)轉(zhuǎn)換成 1 或 0 這樣的離散型變量。
上圖中可以看到,『x』 是輸入數(shù)據(jù),特征從網(wǎng)絡(luò)結(jié)構(gòu)的輸入層開始傳遞。在向后傳遞沒經(jīng)過(guò)一條邊時(shí),每一個(gè)特征值『x』會(huì)被乘以一個(gè)相應(yīng)的權(quán)重『w』。所有乘積之和將通過(guò)一個(gè)激活函數(shù) ReLU 使結(jié)果可用于非線性分類。ReLU 十分常用,它不像 sigmoid 函數(shù)那樣在淺層梯度情況下易趨于飽和(當(dāng)輸入非常大或者非常小的時(shí)候,神經(jīng)元的梯度是接近于 0 的。如果這樣,大部分神經(jīng)元可能都會(huì)處在飽和狀態(tài)而令梯度消失,這會(huì)導(dǎo)致網(wǎng)絡(luò)變的很難學(xué)習(xí))。ReLU 為每個(gè)隱藏神經(jīng)元提供一個(gè)激活輸出并傳遞到下一個(gè)輸出神經(jīng)元中。這意味著執(zhí)行回歸的神經(jīng)網(wǎng)絡(luò)包含單個(gè)輸出節(jié)點(diǎn),且該節(jié)點(diǎn)將先前層的激活數(shù)值總和乘以 1。圖中的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)『y_hat』便是結(jié)果?!簓_hat』是所有 x 映射的因變量。我們以這種方式使用神經(jīng)網(wǎng)絡(luò),從而通過(guò)與 y(單個(gè)因變量)相關(guān)的 x(多個(gè)自變量)而預(yù)測(cè)連續(xù)值結(jié)果。
聯(lián)系客服