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