智能座艙算法基礎(chǔ)之深度學(xué)習(xí)篇
智能座艙這一概念在當(dāng)下已經(jīng)傳播開來,那么,你是否了解智能座艙背后隱藏的技術(shù)或算法基礎(chǔ)?這篇文章里,作者圍繞深度學(xué)習(xí)算法及卷積神經(jīng)網(wǎng)絡(luò)、損失函數(shù)等內(nèi)容做了分析解讀,不妨來看一下。
智能座艙,實在傳統(tǒng)的車載座艙系統(tǒng)的基礎(chǔ)上增加了智能化的屬性,通過感知(語音、視覺)、認知、決策、服務(wù)的過程使車輛能夠主動地服務(wù)于駕駛員和乘客,從而提升座艙的用戶體驗,帶來更好的安全、便捷、趣味性體驗。
隨著2016年谷歌的AlphaGo以4:1戰(zhàn)勝韓國的圍棋高手李世石,深度學(xué)習(xí)這一未來人工智能領(lǐng)域最重要,最核心的科技立即成為人們關(guān)注的焦點。
一、傳統(tǒng)機器學(xué)習(xí)與深度學(xué)習(xí)
兩者都需要對數(shù)據(jù)進行預(yù)處理,傳統(tǒng)的機器學(xué)習(xí)算法通過人工設(shè)計特征提取器,在復(fù)雜任務(wù)下,人工設(shè)計的特征提取器效果不佳,講提取的特征傳輸?shù)接?xùn)練好的分類器中進行預(yù)測;深度學(xué)習(xí)的算法則是在數(shù)據(jù)預(yù)處理后,根據(jù)任務(wù)的復(fù)雜性設(shè)計模型,然后對模型進行訓(xùn)練。
雖然深度學(xué)習(xí)算法在復(fù)雜任務(wù)重仍然擁有較好的效果,但該類算法也擁有模型可解釋性差等缺點,比如說無法解釋模型中的各個模塊分別提取什么樣的具體特征。
傳統(tǒng)機器學(xué)習(xí)與深度學(xué)習(xí)的流程對比
隨著算法突破,深度神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的一類實例化結(jié)構(gòu)逐漸被廣泛應(yīng)用。其中在視覺感知場景,針對圖像數(shù)量較大的特點,通常采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)這一結(jié)構(gòu)對圖像數(shù)據(jù)進行處理。
深度學(xué)習(xí)算法通常由三部分組成,包括神經(jīng)網(wǎng)絡(luò)模型、損失函數(shù)和優(yōu)化方式。深度神經(jīng)網(wǎng)絡(luò)模型實際上可以理解成就是一個復(fù)雜的函數(shù),這個函數(shù)將輸入映射到輸出值,該函數(shù)是有許多個簡單函數(shù)復(fù)合而成。
卷積神經(jīng)網(wǎng)絡(luò)就是一個擁有大量可訓(xùn)練參數(shù)的復(fù)雜函數(shù),其中參數(shù)可訓(xùn)練意味著通過參數(shù)的更改,模型的預(yù)測能力越來越強,預(yù)測值與真實值之間的差異越來越小。而衡量模型輸出值與預(yù)測值之間差距的方式就是通過設(shè)計的損失函數(shù)實現(xiàn)。優(yōu)化方式的選擇意味著模型通過怎樣的方式進行參數(shù)優(yōu)化,從而實現(xiàn)損失函數(shù)的最小化,一般的優(yōu)化方式為反向傳播算法加上梯度下降。
二、卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)在計算機視覺中應(yīng)用廣泛,常見的圖像分類識別、目標(biāo)檢測追蹤、圖像分割等。自從2012年,AlexNet在ImageNet數(shù)據(jù)集上取得不錯的效果后,大量的CNN模型被提出,廣泛被使用的CNN模型有VGG、ResNet、DenseNet、MobileNet、ResNeXt等。
根據(jù)“端到端”的設(shè)計思路,網(wǎng)絡(luò)結(jié)構(gòu)大致分為輸入層、隱藏層和輸出層,其中隱藏層主要完成對輸入數(shù)據(jù)進行特征提取和對提取到的特征進行信息整合,用于預(yù)測。結(jié)構(gòu)中用于特征提取的層包括卷積層、池化層、激活函數(shù)等,用于分類識別的包括全連接層等。
其中,用于特征提取的模塊,一般被稱為backbone,其基本結(jié)構(gòu)與模塊如下圖所示:
神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)與模塊
輸入圖像傳入網(wǎng)絡(luò)后,通常由卷積層對輸入進行卷積,實現(xiàn)特征提?。慌繗w一化層對卷積后的操作進行處理,統(tǒng)一數(shù)據(jù)分布;激活層通過激活函數(shù)實現(xiàn)數(shù)據(jù)的非線性轉(zhuǎn)換,增加網(wǎng)絡(luò)表達能力,從功能上模擬生物神經(jīng)元的激活和抑制狀態(tài);池化層降低特征圖尺寸,使得圖像特征凸顯。由多個基本模塊搭建而成的backbone對輸入圖像進行特征提取,在提取過程中,數(shù)據(jù)以定數(shù)量的特征圖進行傳輸。
三、損失函數(shù)
在網(wǎng)絡(luò)訓(xùn)練過程中,需要通過損失函數(shù)來評估模型對輸入數(shù)據(jù)的最終預(yù)測和真實標(biāo)簽之間的誤差,深度學(xué)習(xí)中的損失函數(shù)需要根據(jù)當(dāng)前的應(yīng)用場景進行相應(yīng)設(shè)計,但不管是哪張損失函數(shù),都可以總結(jié)出以下特點:
- 恒非負。損失函數(shù)計算的是模型預(yù)測值與真實值之間的差距,模型根據(jù)損失函數(shù)進行優(yōu)化后,最好的情況是損失函數(shù)的值為0,即模型的預(yù)測輸出完美擬合真實值,只要有一點擬合的偏差那就會讓損失增加。
- 模型預(yù)測值與真實值之間誤差越小,函數(shù)值越小。
- 損失函數(shù)收斂快。收斂快的意思就是指在迭代優(yōu)化這個損失函數(shù)的過程中,需要讓它比較快地逼近函數(shù)極小值,逼近函數(shù)值低點。
四、模型訓(xùn)練及測試
卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程即為模型通過對訓(xùn)練數(shù)據(jù)的迭代學(xué)習(xí),不斷對網(wǎng)絡(luò)中可訓(xùn)練參數(shù)進行優(yōu)化直到損失函數(shù)最小化的過程。訓(xùn)練即是模型的多次迭代,每次迭代涉及兩個過程,即前向傳播和反向傳播。而模型測試即是在模型沒有學(xué)習(xí)過的測試數(shù)據(jù)集上進行前向傳播。前向傳播中,數(shù)據(jù)根據(jù)網(wǎng)絡(luò)中的計算圖從輸入層到輸出層進行計算。
具體來說,當(dāng)圖像輸入后,經(jīng)過網(wǎng)絡(luò)中的卷積層和池化層的運算,抽象出圖像中的高級特征,然后將特征圖展平后傳輸?shù)饺B接層等方向,完成模型的預(yù)測。反向傳播中,根據(jù)鏈?zhǔn)椒▌t,推理誤差對于網(wǎng)絡(luò)中所有可訓(xùn)練參數(shù)的偏導(dǎo)數(shù)依次從輸出層向輸入層被求解,存儲下來的梯度被用來優(yōu)化參數(shù)。
與許多其他機器學(xué)習(xí)模型相同,卷積神經(jīng)網(wǎng)絡(luò)同樣是通過梯度下降來優(yōu)化模型的參數(shù)。根據(jù)凸優(yōu)化理論可知,由于神經(jīng)網(wǎng)絡(luò)模型復(fù)雜度較高,同時其損失函數(shù)一般為非凸(non-convex)函數(shù),最小化損失函數(shù)時存在著局部最優(yōu)解,使得非凸優(yōu)化實現(xiàn)全局最優(yōu)的難度增加。因此,在深度神經(jīng)網(wǎng)絡(luò)模型的反向傳播中,一般采用小批量隨機梯度下降。
五、模型壓縮
卷積神經(jīng)網(wǎng)絡(luò)中的模塊根據(jù)是否含有可訓(xùn)練參數(shù)可以大致分為兩類:一類是含有權(quán)重和閾值的卷積層、全連接層等,且權(quán)重和閾值的數(shù)量在具體任務(wù)下有優(yōu)化的空間;另一類是非線性激活層、池化層等,這類模塊不含有任何可訓(xùn)練參數(shù)。
在一定程度上,模型參數(shù)量決定著模型對設(shè)備的存儲消耗,該模型的計算量決定著模型運行時的實時性。模型壓縮和加速則是針對具體任務(wù),在保持模型性能的同時,降低模型的復(fù)雜度和計算量的一種方法。
本文由 @ALICS 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!