国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

邊緣計(jì)算下的AI檢測(cè)與識(shí)別算法綜述

2019-08-30 03:31:56孔令軍李華康
無(wú)線電通信技術(shù) 2019年5期
關(guān)鍵詞:剪枝邊緣卷積

孔令軍,王 銳,張 南,李華康

(1.南京郵電大學(xué),江蘇 南京 210003;2.北京中燕信息技術(shù)有限公司,北京 102488;3.中國(guó)航天系統(tǒng)科學(xué)與工程研究院,北京 100048)

0 引言

隨著人工智能(Artificial Intelligence,AI)熱潮的興起,深度學(xué)習(xí)等多種算法相繼被探索出來(lái),并廣泛應(yīng)用在安防、交通、醫(yī)療、教育、零售、家居等領(lǐng)域[1]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN),是深度學(xué)習(xí)的代表算法之一,并被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理等領(lǐng)域[1]。

ImageNet[3]比賽的開(kāi)展,促使圖像領(lǐng)域卷積網(wǎng)絡(luò)快速發(fā)展,深度學(xué)習(xí)方法遠(yuǎn)遠(yuǎn)超過(guò)傳統(tǒng)方法的準(zhǔn)確率,使得CNN獲得了巨大的關(guān)注。隨后的比賽中,CNN逐漸取代了傳統(tǒng)的目標(biāo)檢測(cè)算法。為了進(jìn)一步增加模型的準(zhǔn)確率,卷積網(wǎng)絡(luò)的模型不斷被加深,導(dǎo)致現(xiàn)在的模型需要龐大的計(jì)算能力和內(nèi)存才能勝任某些工作。深度學(xué)習(xí)理論的蓬勃發(fā)展,帶動(dòng)了商業(yè)化的需求,尤其是在智慧城市等相關(guān)領(lǐng)域,如人臉識(shí)別、車輛檢測(cè)及車牌識(shí)別等。傳統(tǒng)的監(jiān)控系統(tǒng)設(shè)計(jì)方式由客戶端和服務(wù)器構(gòu)成:客戶端負(fù)責(zé)收集圖片并上傳服務(wù)器,服務(wù)器負(fù)責(zé)對(duì)圖片運(yùn)用人工智能算法進(jìn)行分析。隨著客戶端的增加,客戶端所產(chǎn)生的數(shù)據(jù)量也將隨之變大。這些數(shù)據(jù)若都交由云端服務(wù)器管理平臺(tái)來(lái)處理,將會(huì)造成網(wǎng)絡(luò)傳輸和服務(wù)器端巨大的壓力。同時(shí),設(shè)備之間的性能不相同使得實(shí)時(shí)協(xié)同工作難以保證,數(shù)據(jù)泄露風(fēng)險(xiǎn)還將增大。IDC表示到2019年,近50%物聯(lián)網(wǎng)創(chuàng)建的數(shù)據(jù)將被存儲(chǔ)、處理、分析,并在網(wǎng)絡(luò)邊緣進(jìn)行操作。麥肯錫估計(jì),到2025年,物聯(lián)網(wǎng)應(yīng)用的經(jīng)濟(jì)影響可能會(huì)從每年3.9萬(wàn)億美元增長(zhǎng)到11.1萬(wàn)億美元。他們舉例說(shuō):“在2025年,通過(guò)遠(yuǎn)程監(jiān)控改善慢性病患者健康狀況的價(jià)值可能高達(dá)每年1.1萬(wàn)億美元。”Markets And Markets的一份新研究報(bào)告預(yù)計(jì),邊緣計(jì)算市場(chǎng)預(yù)計(jì)將從2017年的14.7億美元增長(zhǎng)到2022年的67.2億美元,在預(yù)測(cè)期內(nèi)復(fù)合年增長(zhǎng)率超過(guò)35%。Gartner的分析報(bào)告顯示,目前,大約10%的企業(yè)生成數(shù)據(jù)是在傳統(tǒng)的集中式數(shù)據(jù)中心或云之外創(chuàng)建和處理的,到2022年,Gartner預(yù)測(cè)這一數(shù)字將達(dá)到50%。隨著5G時(shí)代的到來(lái)和AI硬件的發(fā)展,實(shí)時(shí)、智能、安全、隱私等四大趨勢(shì)催生了邊緣計(jì)算與前端智能的崛起。

1 邊緣計(jì)算以及卷積網(wǎng)絡(luò)發(fā)展概況

本節(jié)將主要闡述邊緣計(jì)算發(fā)展歷程以及深度學(xué)習(xí)中CNN的發(fā)展歷程。

1.1 邊緣計(jì)算發(fā)展歷程

邊緣計(jì)算最早可以追溯至1998年提出的內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network,CDN),它是一種基于互聯(lián)網(wǎng)緩存網(wǎng)絡(luò),通過(guò)中心平臺(tái)的負(fù)載均衡、調(diào)度等將用戶訪問(wèn)指向最近的緩存服務(wù)器上,以此降低網(wǎng)絡(luò)阻塞。2009年提出的Cloudlet概念,高性能、資源豐富的分布式服務(wù)器為移動(dòng)設(shè)備提供計(jì)算或者資源訪問(wèn)服務(wù),此時(shí)邊緣計(jì)算強(qiáng)調(diào)的云服務(wù)器功能下行至邊緣服務(wù)器,以減少帶寬和時(shí)延。隨后,在萬(wàn)物互聯(lián)的背景下,邊緣數(shù)據(jù)迎來(lái)了爆發(fā)性增長(zhǎng),為了解決面向數(shù)據(jù)傳輸、計(jì)算和存儲(chǔ)過(guò)程中的計(jì)算負(fù)載以及數(shù)據(jù)傳輸帶寬等問(wèn)題,研究者開(kāi)始探索在生產(chǎn)者的邊緣增加數(shù)據(jù)處理功能,即萬(wàn)物互聯(lián)服務(wù)的功能上行,具有代表性的是計(jì)算設(shè)備端處理即移動(dòng)邊緣計(jì)算。

邊緣計(jì)算能夠解決網(wǎng)絡(luò)擁塞、服務(wù)器計(jì)算壓力大以及數(shù)據(jù)安全性等問(wèn)題,然而對(duì)于卷積網(wǎng)絡(luò)算法,受限于邊緣計(jì)算硬件設(shè)備性能限制,網(wǎng)絡(luò)模型的大小以及計(jì)算要求也必須做出相應(yīng)的優(yōu)化,以適應(yīng)邊緣計(jì)算設(shè)備使用。于是各種壓縮卷積網(wǎng)絡(luò)模型算法,如剪枝、結(jié)構(gòu)化卷積核等算法被提出,用來(lái)降低模型對(duì)資源的消耗。

在谷歌學(xué)術(shù)上以“邊緣計(jì)算”為關(guān)鍵詞搜索到論文數(shù)量趨勢(shì)如圖1所示。2015年以前,邊緣計(jì)算處于技術(shù)發(fā)展累計(jì)階段;2015—2017年,邊緣計(jì)算開(kāi)始快速發(fā)展,文章數(shù)量增長(zhǎng)了10倍之多。直到2018年,邊緣計(jì)算開(kāi)始穩(wěn)健發(fā)展。

圖1 谷歌學(xué)術(shù)上以“邊緣計(jì)算”為關(guān)鍵詞搜索到論文數(shù)量

1.2 深度學(xué)習(xí)下CNN發(fā)展歷程

第一個(gè)神經(jīng)網(wǎng)絡(luò)是LeNet網(wǎng)絡(luò)[1],它于1998年被提出,用于進(jìn)行手寫(xiě)數(shù)字識(shí)別任務(wù)。它確定了卷積網(wǎng)絡(luò)的構(gòu)成,即由卷積層、池化層以及全連接層組成。由于傳統(tǒng)算法不需要大量的計(jì)算量也能達(dá)到相同的效果或者更好的效果,使得它的出現(xiàn)并沒(méi)引起太多關(guān)注。隨著計(jì)算機(jī)硬件性能不斷提高,2012年AlexNet[5]網(wǎng)絡(luò)以絕對(duì)優(yōu)勢(shì)一舉奪冠,自此CNN引起了廣泛關(guān)注,呈現(xiàn)出越來(lái)越多關(guān)于CNN的研究成果。AlexNet由5個(gè)卷積層以及3個(gè)全連接層組成。其中提出的局部響應(yīng)歸一化層(LRN),用于對(duì)數(shù)據(jù)進(jìn)行歸一化,解決特征圖二維平面內(nèi)點(diǎn)之間的聯(lián)系,以提升訓(xùn)練速度。一年后,VGG網(wǎng)絡(luò)[6]被提出,它提供了一種新的思路,即:隨著網(wǎng)絡(luò)層的深度增加,效果也會(huì)隨之增加。此后的網(wǎng)絡(luò)設(shè)計(jì)中通過(guò)不斷堆疊的卷積層,使得網(wǎng)絡(luò)層的深度也不斷增加,算法效果不斷提高。VGG提出的第2年,GoogleNet[7]獲得了比賽冠軍,其不僅增加了深度,還通過(guò)結(jié)構(gòu)化網(wǎng)絡(luò)設(shè)計(jì)增加數(shù)據(jù)的重利用來(lái)提高效果。GoogleNet提出的如圖2 inception模塊所示結(jié)構(gòu),通過(guò)使用1x1,3x3,5x5卷積核以及3x3最大池化層過(guò)濾特征圖獲得結(jié)果,并合并結(jié)果作為提取到的特征圖。為了降低計(jì)算量,使用了1x1卷積核提前過(guò)濾,獲得通道維度較少的特征圖,然后通過(guò)卷積核進(jìn)行卷積操作, 維度減少的inception模塊如圖3所示。

圖2 inception 模塊

圖3 維度減少的inception 模塊

inception這種方式提高了參數(shù)的利用率,使得網(wǎng)絡(luò)能夠提取各種不同維度形狀特征來(lái)提高識(shí)別效果。隨后的網(wǎng)絡(luò)設(shè)計(jì)也越來(lái)越深,由于每次卷積后都會(huì)通過(guò)激活函數(shù)進(jìn)行激活,對(duì)數(shù)據(jù)進(jìn)行篩選,這種做法能夠強(qiáng)化卷積網(wǎng)絡(luò)的線性表達(dá)能力。但隨著卷積網(wǎng)路的深度增加,被過(guò)濾掉的特征也隨之增加,網(wǎng)絡(luò)也將退化,梯度也隨之消失,不容易訓(xùn)練。為解決這個(gè)問(wèn)題,ResNet[8]引入殘差網(wǎng)絡(luò)單元,如圖4所示。將未被卷積的特征屬性與經(jīng)過(guò)卷積后的特征屬性進(jìn)行特征融合,并重新加以利用,使得識(shí)別效果顯著增加。隨著殘差單元的提出,借鑒了參數(shù)重利用的網(wǎng)絡(luò)算法不斷被提出,網(wǎng)絡(luò)性能得到一定提升,識(shí)別效果也進(jìn)一步增強(qiáng)。一種全新的結(jié)構(gòu)DenseNet[9]網(wǎng)絡(luò)借鑒了殘差單元思路,設(shè)計(jì)了一個(gè)結(jié)構(gòu)簡(jiǎn)單全新的網(wǎng)絡(luò),性能及效果突破了Resnet的各種指標(biāo)。Densenet相對(duì)于Resnet更加強(qiáng)調(diào)特征的復(fù)用,幾乎將所有的淺層特征圖作為輸入進(jìn)行卷積操作,極大減少了參數(shù)量,通過(guò)密集的連接緩解了梯度消失的問(wèn)題。它頻繁將不同深度特征通過(guò)通道合并,當(dāng)前特征圖融合了幾乎所有前層的特征圖,幾乎所有層相當(dāng)于直接連接輸入和損失函數(shù),這樣就能夠減輕梯度消失問(wèn)題。

圖4 殘差網(wǎng)絡(luò)單元

對(duì)上述卷積網(wǎng)絡(luò)進(jìn)行特征提取后,便可以將提取到的特征圖應(yīng)用到各種圖像算法中,比如目標(biāo)檢測(cè)、目標(biāo)跟蹤、關(guān)鍵點(diǎn)定位、生成對(duì)抗網(wǎng)絡(luò)等。

2 目標(biāo)檢測(cè)識(shí)別算法

2.1 MTCNN算法

MTCNN算法[9]既可以用于人臉檢測(cè),也可以用于其他目標(biāo)檢測(cè)算法中。圖5 為MTCNN人臉檢測(cè)算法,它首先通過(guò)圖像金字塔將輸入圖像變?yōu)椴煌叨鹊膱D片,然后送入P-Net網(wǎng)絡(luò)獲取人臉預(yù)測(cè)框預(yù)測(cè),再將P-Net預(yù)測(cè)得到的人臉框送入R-Net及O-Net進(jìn)行多次判斷預(yù)測(cè),之后再通過(guò)極大值抑制算法刪減多余的預(yù)測(cè)框。訓(xùn)練時(shí)通過(guò)預(yù)測(cè)交叉熵?fù)p失函數(shù)訓(xùn)練人臉/非人臉:

(1)

人臉框回歸以及關(guān)鍵點(diǎn)定位損失函數(shù)都使用L2范式:

(2)

圖5 MTCNN人臉檢測(cè)

2.2 Faster R-CNN目標(biāo)檢測(cè)算法

Faster R-CNN算法[10]由目標(biāo)檢測(cè)算法R-CNN[11]發(fā)展而來(lái)。在ImageNet目標(biāo)檢測(cè)比賽中,R-CNN最先將卷積網(wǎng)絡(luò)運(yùn)用于目標(biāo)識(shí)別,以壓倒性優(yōu)勢(shì)戰(zhàn)勝了傳統(tǒng)目標(biāo)檢測(cè)算法。R-CNN具體做法是:通過(guò)提取圖像ROI區(qū)域生成ROI區(qū)域組,再將區(qū)域分別送入CNN進(jìn)行特征提取,并將提取到的特征送入SVM分類器判別是否屬于該類別,并使用回歸預(yù)測(cè)修正候選框的位置。

R-CNN經(jīng)過(guò)一系列發(fā)展,演化出了性能和效果雙優(yōu)的Faster R-CNN目標(biāo)檢測(cè)算法。Faster R-CNN檢測(cè)過(guò)程如圖6所示[10]。

圖6 Faster R-CNN檢測(cè)過(guò)程

通過(guò)卷積網(wǎng)絡(luò)進(jìn)行圖片的特征提取,獲取圖片的特征屬性圖,并通過(guò)Proposal層類似于區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network,RPN)獲取候選anchor。Faster R-CNN anchor提取如圖7[10]所示。Faster R-CNN通過(guò)特征屬性圖滑動(dòng)窗口上的anchor獲取不同形狀候選框,每個(gè)候選框?qū)?yīng)特征圖上一點(diǎn),然后通過(guò)分類損失函數(shù)和回歸損失函數(shù)進(jìn)行聯(lián)合訓(xùn)練。

圖7 Faster R-CNN anchor提取

聯(lián)合訓(xùn)練損失函數(shù)如下:

(3)

(4)

(5)

(6)

(7)

Faster R-CNN的提出使得目標(biāo)檢測(cè)算法性能以及效果能夠基本用于實(shí)際環(huán)境,檢測(cè)的速度達(dá)到17 fps。

2.3 YOLO目標(biāo)檢測(cè)算法

YOLO[12]來(lái)源論文中的”You Only Look Once”,不同于R-CNN一系列網(wǎng)絡(luò)將目標(biāo)檢測(cè)分為兩類任務(wù):通過(guò)RPN獲取候選框完成候選框回歸任務(wù)和分類任務(wù)。YOLO則是將兩類任務(wù)合并成單任務(wù)進(jìn)行。其基本過(guò)程為:① 將圖片分為S*S個(gè)網(wǎng)格,對(duì)于物體中心點(diǎn)出現(xiàn)在某網(wǎng)格內(nèi)部,則此網(wǎng)格負(fù)責(zé)檢測(cè)該物體;② 每個(gè)網(wǎng)格生成B個(gè)檢測(cè)框,若檢測(cè)框包含物體,則認(rèn)為此檢測(cè)框需要預(yù)測(cè)出此物體,并且還需負(fù)責(zé)框的回歸任務(wù)。訓(xùn)練損失函數(shù)同F(xiàn)aster R-CNN類似。相對(duì)于Faster R-CNN,YOLO算法性能高,但缺陷也比較明顯,例如每當(dāng)一個(gè)格子最多預(yù)測(cè)一個(gè)物體目標(biāo),且當(dāng)出現(xiàn)不常見(jiàn)的長(zhǎng)寬比時(shí),YOLO網(wǎng)絡(luò)的泛化能力就會(huì)降低。

2.4 SSD目標(biāo)檢測(cè)算法

SSD[13]算法作為三大目標(biāo)檢測(cè)算法之一,擁有Faster R-CNN的高精確度以及YOLO的高性能。

SSD算法和YOLO算法架構(gòu)如圖8所示,同F(xiàn)aster R-CNN和YOLO相比,它增加了多尺度特征屬性圖,而且用淺層網(wǎng)絡(luò)檢測(cè)小目標(biāo)、用深層網(wǎng)絡(luò)檢測(cè)大目標(biāo),同時(shí)利用Faster R-CNN的anchor思想選取不同大小形狀的anchor框,增加對(duì)不同大小形狀物體的魯棒性??蚧貧w損失函數(shù)以及分類損失函數(shù)與Faster R-CNN一樣。

圖8 SSD算法以及YOLO算法架構(gòu)

2.5 其他目標(biāo)檢測(cè)算法

其他使用卷積網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè)的算法都是依據(jù)上述3種算法改進(jìn)而來(lái),例如以Faster R-CNN為代表的two stage和以SSD為代表的one stage方法。相比較而言,two stage有更高的精確度,one stage有更快的速度。取得階段性進(jìn)展的有R-FCN,F(xiàn)PN,RetinaNet[14],Mask R-CNN,YOLO v3,RefineDet[15],M2Det[16]。主要介紹其中典型的3個(gè)算法:RetinaNet,RefineDet,M2Det。

造成one stage 和two stage效果區(qū)別的因素是什么呢?主要原因便是對(duì)anchor的處理方式。Two stage對(duì)anchor進(jìn)行了篩選及微調(diào),然后送進(jìn)分類與回歸器中,而one stage直接將anchor送入分類器與回歸器中訓(xùn)練,這種方式導(dǎo)致了anchor類別中的負(fù)樣本過(guò)多,使得訓(xùn)練樣本不均衡。為解決這個(gè)問(wèn)題,RetinaNet將原來(lái)的Focal Loss替換了原來(lái)的交叉熵誤差。Focal Loss的公式為:

FL(pt)=-αt(1-pt)γlg (pt),

(8)

可以看出,當(dāng)某類別的數(shù)量越大,貢獻(xiàn)的Loss平均下來(lái)越小,反之則平均貢獻(xiàn)的Loss越大,這種做法降低了樣本數(shù)量對(duì)訓(xùn)練損失的影響,使得量少類別對(duì)訓(xùn)練的貢獻(xiàn)值提高。

RefineDet由2個(gè)內(nèi)部連接模塊組成,分別為:ARM(Anchor Refinement Module)和ODM(Object Detection Module)。ARM網(wǎng)絡(luò)和Faster R-CNN中的RPN網(wǎng)絡(luò)類似,進(jìn)行預(yù)預(yù)測(cè),ODM如SSD中的anchor處理,使其具有二者的共同優(yōu)點(diǎn)。

M2Det使用了主干網(wǎng)絡(luò)+MLFPN來(lái)提取圖像特征,采用類似SSD的方式獲取預(yù)測(cè)框以及類別,最后通過(guò)NMS得到最后的檢測(cè)結(jié)果。

其中,最關(guān)鍵的是進(jìn)行圖像特征提取的結(jié)構(gòu)MLFPN,其主要由3個(gè)部分組成:

① 特征融合模塊FFM;

② 細(xì)化U型模塊TUM;

③ 尺度特征聚合模塊SFAM。

由圖9 的M2Det網(wǎng)絡(luò)可以看出,F(xiàn)FMPv1對(duì)主干網(wǎng)絡(luò)提取到的淺層特征和深層特征進(jìn)行融合,F(xiàn)FMv2通過(guò)融合不同深度特征圖,最終的SFAM通過(guò)拼接聚合不同類型的屬性圖,最終將包含廣泛信息的特征圖送入類似于SSD網(wǎng)絡(luò)中進(jìn)行目標(biāo)檢測(cè)以及分類。

圖9 M2Det網(wǎng)絡(luò)

2.6 識(shí)別算法介紹

如圖10所示,利用卷積網(wǎng)絡(luò)進(jìn)行識(shí)別可分為2個(gè)步驟:利用卷積網(wǎng)絡(luò)進(jìn)行圖像特征提取,然后利用softmax進(jìn)行分類。

圖10 識(shí)別過(guò)程

常見(jiàn)的識(shí)別算法主要是特定場(chǎng)景下的識(shí)別,例如車牌識(shí)別和人臉識(shí)別。效果比較好的開(kāi)源車牌識(shí)別算法,例如Openvino框架下的LPRNet[17]通過(guò)卷積網(wǎng)絡(luò)進(jìn)行特征提取,并使用CTC LOSS損失函數(shù)訓(xùn)練,算法正確率能夠達(dá)到95%左右。人臉識(shí)別一般通過(guò)卷積網(wǎng)絡(luò)進(jìn)行特征提取,再通過(guò)比較歐氏距離或者矩陣余弦距離進(jìn)行人臉識(shí)別,有名的例如以mxnet框架寫(xiě)的開(kāi)源的insightface。

3 算法優(yōu)化

邊緣計(jì)算中首先需要對(duì)卷積網(wǎng)絡(luò)模型進(jìn)行優(yōu)化,以滿足卷積網(wǎng)絡(luò)運(yùn)行于特定設(shè)備上具有的實(shí)時(shí)性。卷積網(wǎng)絡(luò)模型優(yōu)化主要有5種方式:① 卷積核優(yōu)化;② 參數(shù)修剪和共享;③ 知識(shí)蒸餾算法;④ 低秩因子分解;⑤ 輕量級(jí)網(wǎng)絡(luò)模型設(shè)計(jì)。

3.1 卷積核計(jì)算性能優(yōu)化

卷積核優(yōu)化算法中較新也較好的方式是shuffleNet[14]網(wǎng)絡(luò)中卷積核所使用的方式。為減少計(jì)算量,最直觀的方式是直接減少卷積層的計(jì)算量。常規(guī)卷積的卷積核通道數(shù)和輸入特征圖的通道數(shù)一致。如圖11所示,MobileNets深度可分離卷積操作為最經(jīng)典MobileNets[19]的核優(yōu)化方式,具體做法是將卷積分為深度卷積和逐點(diǎn)卷積,通過(guò)基于深度可分離卷積,將典型的卷積操作圖11(a)分解成深度卷積圖11 (b)和逐點(diǎn)卷積圖11 (c)。假設(shè)經(jīng)典的卷積維度Dk*Dk*M,Dk為卷積核平面維度,M為輸入特征屬性通道數(shù),N為輸出特征維度通道數(shù)。深度可分離卷積首先通過(guò)卷積核為Dk*Dk*1對(duì)特征圖平面特征方向過(guò)濾,如圖11(b)所示。再通過(guò)卷積核1*1*M對(duì)特征圖的通道方向進(jìn)行過(guò)濾,如圖11(b)所示。二者可以認(rèn)為是分別對(duì)平面維度和通道維度進(jìn)行降維。

圖11 移動(dòng)網(wǎng)絡(luò)深度可分離卷積操作

由于通道間信息不連通,這種方式會(huì)使通道間充滿約束。為了解決這種問(wèn)題,F(xiàn)ace++團(tuán)隊(duì)提出了shuffleNet網(wǎng)絡(luò)。與MobileNet一樣,shuffle利用群卷積和深度可分卷積思想,優(yōu)化了核卷積用以解決通道之間的約束。如圖12(a)組卷積所示,Shufflenet的方法將特征圖通道分組進(jìn)行卷積,增強(qiáng)了通道內(nèi)部的信息聯(lián)通。然而分組卷積僅解決了特征圖組內(nèi)信息的流通,組外信息并不能流通,降低了信息的表達(dá)能力。當(dāng)然可以將卷積后的特征圖在組內(nèi)部切割,然后將切割后的部分按順序排序,如圖12(b)所示。而shuffle通過(guò)通道混洗操作使得數(shù)據(jù)的通道維度上進(jìn)行無(wú)序打亂,用以增加信息的表達(dá)能力,提升識(shí)別效果,如圖12(c)所示。 組卷積通道混洗如圖13所示,在Shufflenet經(jīng)典模塊圖13(b)中,特征圖首先通過(guò)組點(diǎn)卷積核操作,分組進(jìn)行混洗操作,然后利用一般標(biāo)準(zhǔn)的組深度可分離卷積核進(jìn)行過(guò)濾,將過(guò)濾后特征圖再通過(guò)組點(diǎn)卷積過(guò)濾。一般而言這種方式雖然能夠過(guò)濾掉沒(méi)用的信息,但同時(shí)也會(huì)過(guò)濾掉有用的信息。通過(guò)與輸入數(shù)據(jù)加和,以防止有用信息被過(guò)濾掉。

圖12 shuffle通道維度上的組卷積操作

圖13 混洗模塊

為減少計(jì)算量,通過(guò)將組深度可分離卷積的滑動(dòng)間隔stride由1修改成圖13(b)中的2,再利用平均赤化層下采樣輸入特征屬性,最終通過(guò)將得到的特征圖進(jìn)行通道級(jí)聯(lián),取代圖13(a)混洗模塊的特征圖求和。雖然通道級(jí)聯(lián)增加了通道的維度,但由于下采樣減少了平面維度,導(dǎo)致計(jì)算成本并未增加很多。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),此方式能夠顯著降低網(wǎng)絡(luò)所需的計(jì)算性能,而網(wǎng)絡(luò)的效果并沒(méi)有顯著降低。第二代ShuffleNet v2[20]網(wǎng)絡(luò)指出了以往架構(gòu)過(guò)于注重FLOPs的不足,提出了2個(gè)基本原則和4項(xiàng)準(zhǔn)則指導(dǎo)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì),無(wú)論在速度還是精確度上,都超過(guò)以往通過(guò)壓縮卷積核計(jì)算要求的算法。

3.2 剪枝和參數(shù)共享

參數(shù)共享在卷積網(wǎng)絡(luò)上用于降低計(jì)算量和減少參數(shù),最開(kāi)始的剪枝應(yīng)用便是dropout,它通過(guò)隨機(jī)剪枝防止過(guò)擬合并加速訓(xùn)練,當(dāng)然也可以用來(lái)降低參數(shù)量。

早期的剪枝方式通過(guò)權(quán)重的重要性剪枝方法進(jìn)行分結(jié)構(gòu)化剪枝[21],刪除不重要的權(quán)重參數(shù)重新進(jìn)行訓(xùn)練,直到達(dá)到滿意的模型大小,并且模型效果沒(méi)發(fā)生顯著改變。隨后提出的基于偏差權(quán)重衰減的最優(yōu)腦損傷和最優(yōu)腦手術(shù)方法,是通過(guò)減少損失函數(shù)的海森矩陣來(lái)減少連接數(shù)量。研究表明剪枝方式的精確度比重要性剪枝方式好。然而此方式的剪枝并不能應(yīng)用于實(shí)際卷積網(wǎng)絡(luò)層上,因?yàn)榇祟惙椒▽?dǎo)致剪枝后的權(quán)值矩陣是無(wú)規(guī)則稀疏的,其僅僅將剪枝后的權(quán)重設(shè)置成0,輸入和0相乘消耗計(jì)算量,因此實(shí)際加速效果較低。只有剪掉的枝葉從搭建的網(wǎng)絡(luò)中消失,才算完成剪枝。通過(guò)結(jié)構(gòu)化剪枝可以使剪枝后的模型運(yùn)行于實(shí)際場(chǎng)景中。與非結(jié)構(gòu)化剪枝不同的是,結(jié)構(gòu)化剪枝設(shè)置了一系列的剪枝約束條件。根據(jù)細(xì)粒度的程度,結(jié)構(gòu)化剪枝可以分為向量機(jī)剪枝、核級(jí)剪枝、組級(jí)剪枝和通道級(jí)剪枝4種類型。結(jié)構(gòu)化剪枝能夠直接降低模型的計(jì)算FLOPS。

3.3 知識(shí)蒸餾

正如Hinto提出來(lái)的一個(gè)例子[22],幼小的昆蟲(chóng)擅長(zhǎng)從環(huán)境中汲取能量,而成年后則擅長(zhǎng)遷徙繁殖等方面。與這個(gè)例子相同的是,在訓(xùn)練階段,神經(jīng)網(wǎng)絡(luò)能夠從大量數(shù)據(jù)中訓(xùn)練模型網(wǎng)絡(luò);使用階段,則能夠應(yīng)用于更加嚴(yán)格的包括計(jì)算資源及計(jì)算速度的限制。一般首先在大數(shù)據(jù)集上訓(xùn)練一個(gè)復(fù)雜網(wǎng)絡(luò)模型,一旦網(wǎng)絡(luò)模型訓(xùn)練完成,便可以通過(guò)“蒸餾”方式,從大型模型中將所需要的應(yīng)用模型提取出來(lái)。知識(shí)蒸餾中,軟目標(biāo)是通過(guò)復(fù)雜模型預(yù)測(cè)得到的概率分布,硬目標(biāo)則是真實(shí)樣本的概率。參考復(fù)雜模型的結(jié)構(gòu)、深度等信息重新設(shè)計(jì)一個(gè)小模型,再將小模型的預(yù)測(cè)值分別與軟目標(biāo)和硬目標(biāo)做交叉熵的損失,并將兩部分損失進(jìn)行聯(lián)合訓(xùn)練。軟目標(biāo)與硬目標(biāo)的綜合訓(xùn)練損失所占的比重不斷地由9:1通過(guò)迭代訓(xùn)練慢慢變成1:0。對(duì)于卷積網(wǎng)絡(luò),一般通過(guò)類別的shot-hot碼進(jìn)行訓(xùn)練,相當(dāng)于使用硬目標(biāo)進(jìn)行訓(xùn)練??偠灾?,將復(fù)雜模型預(yù)測(cè)得到的數(shù)據(jù)作為小模型的樣本標(biāo)簽,對(duì)網(wǎng)絡(luò)加以訓(xùn)練,以增加網(wǎng)絡(luò)的泛化能力。

3.4 權(quán)值張量低秩分解

卷積網(wǎng)絡(luò)核的參數(shù)權(quán)重W可以看作一個(gè)四維張量,他們分別對(duì)應(yīng)卷積核的長(zhǎng)、寬、通道數(shù)以及輸出通道數(shù)。通過(guò)合并某些維度,四維張量能夠轉(zhuǎn)變成更小維度的張量?;跈?quán)值張量低秩分解方法,其實(shí)質(zhì)是找到與張量W近似、但計(jì)算量更小的張量。現(xiàn)階段已經(jīng)有很多低秩分解算法被提出,例如優(yōu)必選悉尼AI研究院入選CVPR的基于低秩稀疏分解的深度壓縮模型。

3.5 輕量級(jí)網(wǎng)絡(luò)模型設(shè)計(jì)

在卷積網(wǎng)絡(luò)模型中,合并網(wǎng)絡(luò)層不改變網(wǎng)絡(luò)輸出是重要模型的優(yōu)化方式。例如,BatchNorm層(簡(jiǎn)稱BN層)在深度學(xué)習(xí)中歸一化網(wǎng)絡(luò)模型加速訓(xùn)練,放置于卷積層或全連接層之后。測(cè)試時(shí),通過(guò)將BN層合并到卷積層或全連接層中以減少計(jì)算量。

假設(shè)BN層輸入數(shù)據(jù)為X,則BN層處理數(shù)據(jù)獲得輸出為:

(9)

卷積操作的權(quán)重為w,偏置為b,假設(shè)卷積網(wǎng)絡(luò)輸入為X,卷積網(wǎng)絡(luò)的輸出為Yconv,則卷積網(wǎng)絡(luò)操作為:

Yconv=WX+b。

(10)

由式(9)和式(10)可知,通過(guò)卷積、池化操作后結(jié)果為:

(11)

因此卷積層更新后的權(quán)重W*以及偏置b*可以得出:

(12)

(13)

4 邊緣計(jì)算硬件發(fā)展歷程

對(duì)于邊緣計(jì)算,成本及性能是重要的考量因素。一直以來(lái),并行計(jì)算兩大廠商之一的英偉達(dá)非常重視并行計(jì)算在數(shù)學(xué)上的應(yīng)用,不但開(kāi)發(fā)出了CUDA庫(kù)用于并行計(jì)算,還開(kāi)發(fā)出了CUDNN庫(kù)等各種矩陣運(yùn)算庫(kù)用以優(yōu)化運(yùn)算性能,僅需要學(xué)會(huì)簡(jiǎn)單的C++便能方便地調(diào)用顯卡加速運(yùn)算。各種深度學(xué)習(xí)框架如Caffe,Tensorflow等對(duì)nvidia的cuda支持,使其移植到嵌入式設(shè)備的成本極低,這些因素都使得英偉達(dá)旗下顯卡占有重要的市場(chǎng)Nvidia硬件對(duì)比如表1所示,給出了嵌入式產(chǎn)品端的主要參數(shù)。理論上核心越多,并行計(jì)算能力越強(qiáng),從表1中可以看出,Tx1的并行計(jì)算能力是Nano的2倍,而使用新架構(gòu)Pascal的Tx2性能是Tx1的2倍,另一款產(chǎn)品Jetson Xavier則能夠提供超過(guò)Jetson Tx2的20倍以上性能,但昂貴的價(jià)格使不能被大規(guī)模部署。

表1 Nvidia硬件對(duì)比

硬件GPUCPU視頻處理內(nèi)存價(jià)格Nvidia Jeson Tx1NVIDIA MaxwellTM,256 CUDA核心Quad ARMA57/2 MB L24K x 2K 69 Hz編碼,4K x 2K 60 Hz解碼4GB 64 位LPDDR42 350$左右Nvidia Jeson Tx2NVIDIA PascalTM,256 CUDA核心HMP Dual Denver 2/2 MB L2 + Quad ARMA57/2 MB L24K x 2K 30 Hz編碼,4Kx2K 60 Hz解碼8GB 128 位LPDDR43 423$左右Nvidia Jeson NanoNVIDIA MaxwellTM,128 CUDA核心ARMCortex-A57MPCore4K 30 Hz編碼,4K 60 Hz解碼4 GB 64位LPDDR4780$ 左右

英特爾也于2016年收購(gòu)了一家硅谷公司Movdius,該公司主要為各種消費(fèi)設(shè)備設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)加速芯片,其開(kāi)發(fā)產(chǎn)品中的神經(jīng)網(wǎng)絡(luò)計(jì)算棒使用的是Movidius芯片,可以通過(guò)openvino調(diào)用Movidius芯片進(jìn)行加速計(jì)算,但其安裝包目前為止支持樹(shù)莓派的armv7架構(gòu)以及x86架構(gòu)。在收購(gòu)另一家公司Nervana后,英特爾將很快推出專為人工智能打造的系列處理器—英特爾神經(jīng)網(wǎng)絡(luò)處理器(以前稱為“Lake Crest”)。

AI視覺(jué)套件角蜂鳥(niǎo)是基于英特爾神經(jīng)網(wǎng)絡(luò)的Movidiu芯片開(kāi)發(fā)的,它多提供一個(gè)攝像頭。研揚(yáng)科技開(kāi)發(fā)的UP系列單板,可以看作是一個(gè)能夠運(yùn)行x86架構(gòu)桌面平臺(tái)的嵌入式產(chǎn)品,它只有信用卡大小,能夠支持神經(jīng)網(wǎng)絡(luò)計(jì)算棒以及研揚(yáng)和英特爾聯(lián)合推出的AI Core作為并行加速計(jì)算擴(kuò)展,雖然UP單板有x86平臺(tái)的高性能優(yōu)點(diǎn),但其價(jià)格也比較昂貴。

谷歌作為深度學(xué)習(xí)領(lǐng)域一個(gè)重要的公司,不僅維護(hù)深度學(xué)習(xí)開(kāi)源框架(Tensorow),還推出了硬件加速平臺(tái) Edge TPU,其設(shè)計(jì)目標(biāo)就是簡(jiǎn)單流暢運(yùn)行TensorFlow Lite。處理器使用的 Cortex-A53/Cortex M4F,GPU為GC7000Lite,內(nèi)置了Google Edge TPU加速Tensorow運(yùn)算。另一款專為樹(shù)莓派設(shè)計(jì)的AIY Edge TPU Accelerator 則僅需利用USB-C/USB-B與Linux系統(tǒng)連接,即可加速tensorflow-lite運(yùn)算。此外,華為的HiKey 970,可提供強(qiáng)大AI算力,支持硬件加速,性能強(qiáng)勁。寒武紀(jì)的Cambricon-1A,Cambricon-1H8,Cambricon-1H16系列可廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別及自然語(yǔ)言處理等智能處理關(guān)鍵領(lǐng)域。

其他推出的比較小眾的產(chǎn)品,例如LightspeeurTM光矛系列是全球首款可同時(shí)支持圖像和視頻、語(yǔ)音與自然語(yǔ)言處理的智能神經(jīng)網(wǎng)絡(luò)專用處理器芯片方案,相比邊緣計(jì)算硬件市場(chǎng)上其他解決方案,能夠高出幾個(gè)數(shù)量級(jí)。例如其產(chǎn)品LaceliTM人工智能計(jì)算棒可以在1 W功率下提供超過(guò)9.3萬(wàn)億次/s的浮點(diǎn)運(yùn)算性能,而Movidius每瓦功率范圍運(yùn)算能力則是0.1萬(wàn)億次。恩智浦BlueBox是一款開(kāi)發(fā)平臺(tái),可為開(kāi)發(fā)自動(dòng)駕駛汽車的工程師提供必要性能、功能安全和可靠性平臺(tái),并且配備雷達(dá)、激光探測(cè)與檢測(cè)(LIDAR)等自動(dòng)駕駛必須的模塊。中星微的“星光智能一號(hào)”是中國(guó)首款嵌入式神經(jīng)網(wǎng)絡(luò)處理器(NPU)芯片。Deepwave公司推出的AIR-T(Artificial Intelligence Radio Transceiver)具有嵌入式高性能計(jì)算功能。深鑒科技于2018年上市的“聽(tīng)濤系列列SoC”,只需1.1 W功耗,卻能達(dá)到4.1TOPs峰值性能。性價(jià)比是小眾平臺(tái)產(chǎn)品的最佳優(yōu)勢(shì)。

5 結(jié)束語(yǔ)

Faster R-CNN,SSD,YOLO等目標(biāo)檢測(cè)算法優(yōu)缺點(diǎn)分明,通過(guò)研究其原理,發(fā)現(xiàn)設(shè)計(jì)網(wǎng)絡(luò)模型及損失函數(shù)是提升AI性能和效果的重要方式。然而,高昂的計(jì)算代價(jià)會(huì)阻礙AI算法在邊緣計(jì)算硬件上的部署,因此模型優(yōu)化精簡(jiǎn)和移植將是AI商業(yè)化的必經(jīng)之路。隨著硅芯片的發(fā)展使得AI算法部署成為可能,邊緣計(jì)算將解決人工智能的最后一公里,構(gòu)建萬(wàn)物感知、萬(wàn)物互聯(lián)、萬(wàn)物智能的嶄新世界。

猜你喜歡
剪枝邊緣卷積
人到晚年宜“剪枝”
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
基于YOLOv4-Tiny模型剪枝算法
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
剪枝
一張圖看懂邊緣計(jì)算
一種基于卷積神經(jīng)網(wǎng)絡(luò)的性別識(shí)別方法
一種面向不平衡數(shù)據(jù)分類的組合剪枝方法
在邊緣尋找自我
雕塑(1999年2期)1999-06-28 05:01:42
象山县| 朝阳县| 靖远县| 武邑县| 吉林市| 库伦旗| 和田县| 鄢陵县| 新疆| 手机| 泾阳县| 大冶市| 大兴区| 合江县| 邯郸市| 丁青县| 海原县| 永和县| 普宁市| 合江县| 鹤壁市| 洛宁县| 十堰市| 文登市| 松滋市| 随州市| 峡江县| 海盐县| 台安县| 灵寿县| 五指山市| 肇州县| 察隅县| 克东县| 马尔康县| 淮南市| 德阳市| 留坝县| 白朗县| 浏阳市| 马关县|