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

?

基于統(tǒng)計分析的卷積神經(jīng)網(wǎng)絡(luò)模型壓縮方法①

2018-08-17 12:06藍(lán)章禮
關(guān)鍵詞:范數(shù)標(biāo)準(zhǔn)差準(zhǔn)確率

楊 揚(yáng),藍(lán)章禮,陳 巍

(重慶交通大學(xué) 信息科學(xué)與工程學(xué)院,重慶 400074)

2012年Hiton[1]構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet才在圖像分類領(lǐng)域取得了驚人的成績,卷積神經(jīng)網(wǎng)絡(luò)(CNN)在計算機(jī)視覺領(lǐng)域包括圖像分類[1],目標(biāo)檢測[2]、圖像語義分割[3]、視頻分類[4]得到了廣泛的應(yīng)用[5].之后,層數(shù)更多、更加精細(xì)設(shè)計的深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相繼被提出,比如VggNet[6]、GoogLenet[7]、ResNet[8]在ImageNet[9]上取得了更好的成績.除此之外,卷積神經(jīng)網(wǎng)絡(luò)在人工智能[10],自然語言處理[11],故障診斷[12]有著廣闊的應(yīng)用前景.這些深度卷積神經(jīng)網(wǎng)絡(luò)模型參數(shù)越來越多,運算量越來越大,對運算設(shè)備的內(nèi)存、CPU、GPU的配置要求越來越高.當(dāng)需要在運算和存儲資源有限的微型設(shè)備上[13],比如手機(jī)、嵌入式設(shè)備上使用卷積神經(jīng)網(wǎng)絡(luò)時,除了準(zhǔn)確率,計算效率和模型的大小也是至關(guān)重要的.

模型壓縮最早的研究為OBD[14](Optimal Brain Surgeon)和OBS[15](Optimal Brain Surgeon),通過泰勒展開,分析參數(shù)的擾動對損失函數(shù)的影響,以此確定參數(shù)的重要性,決定參數(shù)保留或者裁剪.Han等人[16]通過裁剪、量化、壓縮卷積神經(jīng)網(wǎng)絡(luò)模型參數(shù),大幅度減少模型的大小,并且沒有降低模型的準(zhǔn)確率.文獻(xiàn)[17]指出非結(jié)構(gòu)的稀疏無法利用現(xiàn)有的硬件進(jìn)行加速,提出了一種在目標(biāo)函數(shù)上增加group lasso進(jìn)行結(jié)構(gòu)化稀疏的學(xué)習(xí)方式.文獻(xiàn)[18]通過一個訓(xùn)練好的較大的模型來訓(xùn)練一個較小的模型,將較大的模型學(xué)到的知識遷移到較小的模型中.Network in Network[19]除了對卷積層進(jìn)行了改進(jìn),還提出了全局平均化的方法,解決了全連接層參數(shù)數(shù)量多的問題,并被GoogleNet和ResNet等采用.目前卷積層的卷積核大小、卷積核數(shù)量對于不同的數(shù)據(jù)集參數(shù)設(shè)置不同,需要大量實驗,有一定經(jīng)驗成分,卷積層用一般包含了足夠多數(shù)目的卷積核,存在冗余,已有相關(guān)文獻(xiàn)通過實驗證明在裁剪部分不重要的卷積核后,再訓(xùn)練整個卷積神經(jīng)網(wǎng)絡(luò)(或者逐層裁剪、逐層訓(xùn)練)可以在盡量不損失準(zhǔn)的條件下對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮[20–22].Wen[20]等人通過定義APoZ(Average Percentage of Zeros)來統(tǒng)計每一個卷積核中激活為0的比例,以為評估一個卷積核是否重要,主要是用在最后一層卷積層,以此減少全連接層的參數(shù)數(shù)量.文獻(xiàn)[21]通過將一定樣本輸入卷積神經(jīng)網(wǎng)絡(luò),計算特征圖的各類參數(shù),對活性低的特征圖通道裁剪.文獻(xiàn)[22]通過將卷積核參數(shù)的L1范數(shù)作為評價一個卷積核重要性的依據(jù),將不重要的卷積核裁剪.

由于文獻(xiàn)[19]提出的全局平均池化在一定會程度上解決了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)參數(shù)多的問題.本文的主要解決的是卷積層的壓縮,在調(diào)研了卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的規(guī)律的基礎(chǔ)上,提出了基于卷積核的標(biāo)準(zhǔn)差作為卷積核重要性指標(biāo)進(jìn)行卷積核裁剪的方法,并和文獻(xiàn)[22]相結(jié)合的方法,通過實驗,本文提出的方法能和文獻(xiàn)[22]互補(bǔ),綜合兩種評價指標(biāo)綜合進(jìn)行卷積核裁剪能保留對分類更有作用的卷積核.

1 卷積神經(jīng)網(wǎng)絡(luò)的原理

1958年,Hubel和Wiesel等人[23]發(fā)現(xiàn)了生物視覺系統(tǒng)的信息處理方式,視覺信息從視網(wǎng)膜傳遞到大腦是通過多層的感受野激活完成的.1998年,Lecun等人[24]提出的LeNet-5,如圖1所示,LeNet-5由兩層卷積層和兩層池化層交替將輸入圖像轉(zhuǎn)換成一系列特征圖,再連接三層全連接層對提取的特征分類.卷積層的卷積核實現(xiàn)了局部感受野和特征提取的功能,將局部區(qū)域信息通過卷積核的卷積運算,再經(jīng)過激活函數(shù)、池化,將低層的激活信息傳遞到高層.以往的人工設(shè)計的特征有良好的特征表達(dá)能力,例如HOG[25],SIFT[26],但這些人工設(shè)計的特征缺乏良好的泛化能力.池化層也稱下采樣層,能在一定程度上保持特征的尺度不變性并對特征圖降維.Lenet提出后,在圖像分類領(lǐng)域沒有取得實質(zhì)的進(jìn)展和突破,直到2012年Hiton及其學(xué)生Alex構(gòu)建的深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet在ImageNet上取得了顯著的成績,主要原因是訓(xùn)練的改進(jìn),在網(wǎng)絡(luò)的訓(xùn)練中加入了權(quán)重衰減、Droupout[27]、Batch Normalization[28]等技術(shù),更關(guān)鍵的是計算機(jī)計算能力的提升,GPU加速技術(shù)的發(fā)展,使得在計算機(jī)可以高效地實現(xiàn)卷積的運算.之后,更復(fù)雜,準(zhǔn)確率更高的深度卷積神經(jīng)網(wǎng)絡(luò)被提出.

圖1 LeNet-5結(jié)構(gòu)圖

如圖2所示,為一個5×5×3的卷積核作用在一個32×32×3的圖像(也可能為32×32×3的特征圖)上,5×5×3的卷積核與圖像的5×5×3區(qū)域點乘再加上偏置(bias)經(jīng)過激活函數(shù),產(chǎn)生一個運算結(jié)果,即圖中的小圓球.卷積核在圖像的所有局部區(qū)域以步長為1滑動并卷積,得到一個28×28×1的特征圖(feature map).

圖2 一個卷積核作用在圖像或者特征圖上

同理,如圖3所示,32×32×3的圖像經(jīng)過一個有6個5×5×3的卷積核的卷積層,產(chǎn)生了28×28×6的特征圖.在實際中,滑動的步長不一定為1,有時為了保持卷積后特征圖大小不變或者取整,會對特征圖的邊界進(jìn)行填充(padding),特征圖通過卷積層后,會接著通過池化層(pooling layer),將得到的特征圖輸入到下一層卷積層.

圖3 6個卷積核作用在圖像或者特征圖上

2 卷積核的裁剪

近年來,為了讓卷積神經(jīng)網(wǎng)絡(luò)達(dá)到更好的效果,卷積神經(jīng)網(wǎng)絡(luò)朝著更深更復(fù)雜的方向發(fā)展.而另一方面,增強(qiáng)深度神經(jīng)網(wǎng)絡(luò)的運算效率,在不損失精度的情況下,對深度學(xué)習(xí)訓(xùn)練得到的模型進(jìn)行優(yōu)化壓縮也有著大量的研究.本文參照文獻(xiàn)[21,22]提出的卷積核裁剪方式,針對已經(jīng)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型,對卷積層中數(shù)個不重要的卷積核裁剪,同時裁剪對應(yīng)的特征圖,最后對裁剪后的模型進(jìn)行再訓(xùn)練,恢復(fù)模型的性能.

2.1 裁剪方式

為了便于說明裁剪卷積核的方式,如圖4所示,Xk∈RHK×WK×NK代表第k層的特征圖,Hk、Wk、Nk分別是其高、寬、維度,Convk∈Rs×s×NK×NK+1為第k層卷積層,Fi,j∈Rsk×sk為其中一個2D的單層卷積核,i=1,2,…,Nk,j=1,2,…,Nk+1,sk為第k層卷積層卷積核的高和寬,Nk、Nk+1分別為上一層的特征圖的維度和下一層特征圖的維度.Xk層特征圖通過第k層卷積層Conv k得到了k+1層特征圖Xk+1,假設(shè)在卷積層中刪除第j個卷積核,即圖中Convk的j列(灰色),同時也裁剪了Xk+1層特征圖的第j個特征圖.減少的參數(shù),減少的計算量為,在k+2層特征圖Xk+2的計算過程中額外將少的乘法運算量為Nk+2×s2k+1×Hk+2×Wk+2.當(dāng)在第k層卷積層中裁剪m(0≦m<nk+1)個卷積核時,減少的參數(shù)為,減少的乘法運算量為Hk+1.

2.2 卷積核的評價指標(biāo)

為了決定一個卷積層中某個卷積核的重要程度,文獻(xiàn)[20]通過定義APoZ(Average Percentage of Zeros),即一個卷積核中來統(tǒng)計每一個卷積核中激活為0的比例,以為評估一個卷積核是否重要,主要是用在最后一層卷積層,以此減少全連接層的參數(shù)數(shù)量.文獻(xiàn)[21]通過輸入樣本,通過計算特征圖的相關(guān)參數(shù)確定卷積核的重要程度,認(rèn)為對不同樣本得到類似特征圖的卷積核為冗余的卷積核.通過文獻(xiàn)[22]在提出以卷積核的L1作為卷積核重要程度的評價指標(biāo),認(rèn)為裁剪L1范數(shù)較小的卷積核對整個模型影響較小.

圖4 卷積核的裁剪方式

卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,卷積層中參數(shù)的標(biāo)準(zhǔn)差(或方差)逐漸增大,分布范圍逐漸擴(kuò)大,參數(shù)之間的差異性逐漸明顯,如圖5、圖6所示.

圖5 Conv 2參數(shù)在訓(xùn)練過程中的分布

本文認(rèn)為,卷積神經(jīng)網(wǎng)絡(luò)通過訓(xùn)練,標(biāo)準(zhǔn)差或者方差更大的卷積核學(xué)習(xí)到了更明顯的局部特征,因此提出了基于標(biāo)準(zhǔn)差的卷積核裁剪方法,克服了文獻(xiàn)[20,21]需要輸入樣本,統(tǒng)計特征圖各類參數(shù)需要額外大量計算量的缺點,同時也避免了文獻(xiàn)[22]只保留L1范數(shù)較大的卷積核,而沒有考慮到卷積核提取特征的能力與參數(shù)的分布有關(guān).本文了還將以卷積核標(biāo)準(zhǔn)差作為卷積核重要性指標(biāo)與文獻(xiàn)[22]提出的以卷積核L1范數(shù)作為卷積核重要性指標(biāo)相結(jié)合,即將卷積核的L1范數(shù)和標(biāo)準(zhǔn)差結(jié)合作為卷積核重要性的評價指標(biāo),對卷積核進(jìn)行裁剪.

圖6 Conv 2參數(shù)在訓(xùn)練過程中的統(tǒng)計直方圖

式(1)為一個卷積層中第j個卷積核的標(biāo)準(zhǔn)差計算公式,代表對Fi,j中s×s個元素進(jìn)行求和.式(2)為卷積層第j個卷積核的L1范數(shù)計算公式,代表對Fi,j中s×s個元素的絕對值進(jìn)行求和,即Fi,j的L1范數(shù),nk個單層卷積核Fi,j的L1范數(shù)和即為卷積核Fj的L1范數(shù).式(3)同時考慮了卷積核的L1范數(shù)和標(biāo)準(zhǔn)差,為了防止L1范數(shù)和標(biāo)準(zhǔn)差計算結(jié)果相差過大,對卷積核L1范數(shù)和標(biāo)準(zhǔn)差進(jìn)行了歸一化處理,參數(shù)λ調(diào)節(jié)卷積核L1范數(shù)和標(biāo)準(zhǔn)差的相對重要程度.當(dāng)λ=1時,表示卷積核L1范數(shù)和標(biāo)準(zhǔn)差同等重要,當(dāng)λ<1時,表示卷積核標(biāo)準(zhǔn)差比L1范數(shù)更重要,當(dāng)λ>1時,表示卷積核L1范數(shù)比標(biāo)準(zhǔn)差更重要.

3 實驗分析

為了驗證本文所提出的卷積核裁剪方法的正確性和有效性,本文在MNIST和Cifar-10數(shù)據(jù)集上分別設(shè)計了有兩層卷積層和三層卷積層的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了實驗.實驗環(huán)境:Ubuntu 16.04,Python3.6,Tensorflow 1.2,計算機(jī)CPU為6700 hq,GPU為GTX 960 m(4 G顯存),內(nèi)存為8 G.

對MNIST數(shù)據(jù)集和Cifar-10數(shù)據(jù)集分別設(shè)計了兩層卷積層和三層全連接、三層卷積層和三層全連接層結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò),如表1所示,Conv k代表第k層卷積層,(3,3,1,32)代表該層有32個3×3×1的卷積核.FC k代表第k層全連接層,(3136,200)代表輸入一個3136維的數(shù)組,輸出一個200維的數(shù)組.由于cifar-10數(shù)據(jù)集更復(fù)雜,所以在訓(xùn)練過程中采用了數(shù)據(jù)增強(qiáng)和權(quán)重衰減.兩個卷積神經(jīng)網(wǎng)絡(luò)都采用了交叉熵?fù)p失函數(shù)計算代價函數(shù).在訓(xùn)練完成后,在MNIST數(shù)據(jù)集上的正確率達(dá)到了99.02%,在Cifar-10上的正確率達(dá)到了86.56%.

表1 所設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

3.1 據(jù)方差裁剪卷積核對比

從圖7和圖8可以看出,在用MNIST數(shù)據(jù)集訓(xùn)練得到的帶有兩層卷積層的神經(jīng)網(wǎng)絡(luò)中,裁剪標(biāo)準(zhǔn)差較小的卷積核能比裁剪標(biāo)準(zhǔn)較大的卷積核保留的準(zhǔn)確率更高,即標(biāo)準(zhǔn)差較大的卷積核比方差較小的卷積核更重要,證實了本文的設(shè)想,即標(biāo)準(zhǔn)差較大的卷積核在訓(xùn)練的過程中學(xué)到了更為重要的局部特征.

圖7 裁剪針對MNIST訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)第一層卷積層中的卷積核

圖8 裁剪針對MNIST訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)第二層卷積層中的卷積核

如圖9-圖11可以得出,在Cifar-10上也有著類似的結(jié)果,在針對MNIST數(shù)據(jù)集設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)中,在裁剪甚至50%的卷積核時,準(zhǔn)確率沒有明顯降低.而針對Cifar-10數(shù)據(jù)集設(shè)計的卷積神經(jīng)網(wǎng)絡(luò),裁剪少數(shù)卷積核準(zhǔn)確率也會明顯降低.一方面是因為MNIST數(shù)據(jù)集較為簡單,Cifar-10數(shù)據(jù)集較為復(fù)雜,其次是因為針對MNIST數(shù)據(jù)集設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)卷積核設(shè)置得較多,這也說明了,在訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型中,如果在一個卷積層中裁剪一定的卷積核而準(zhǔn)確率沒有明顯降低,說明這一層的卷積核設(shè)置的過多,可以對卷積核進(jìn)行裁剪.

圖9 裁剪針對Cifar-10訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)第一層卷積層中的卷積核

3.2 對比實驗

為了驗證本文提出的方法的有效性,本文在分別針對MNIST和Cifar-10訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型與其他的裁剪方式進(jìn)行了對比,式(3)中λ取值為1.卷積神經(jīng)網(wǎng)絡(luò)在裁剪后,性能會有一定的下降,為了恢復(fù)性能,一般會在對裁剪后的模型進(jìn)行再訓(xùn)練,再訓(xùn)練的迭代次數(shù)一般沒有從初始狀態(tài)訓(xùn)練多.24-48代表經(jīng)過裁剪,第一層卷積層的卷積核保留的個數(shù)為24,第二層保留的個數(shù)為48,其余情況以類似的方式表示.

圖10 裁剪針對Cifar-10訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)第二層卷積層中的卷積核

圖11 裁剪針對Cifar-10訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)第三層卷積層中的卷積核

通過表2可以看出,對MNIST數(shù)據(jù)集設(shè)計的兩層卷積神經(jīng)網(wǎng)絡(luò)分別裁剪后,通過方差作為評價卷積核的裁剪能保留更多的準(zhǔn)確率,同時通過再訓(xùn)練后得到的準(zhǔn)確率也比文獻(xiàn)[22]的方式高.通過表3可以看出,針對Cifar-10設(shè)計的三層卷積神經(jīng)網(wǎng)絡(luò)中,在48-64-64這種方式裁剪時,文獻(xiàn)[22]提出的L1范數(shù)作為卷積核的評價指標(biāo)保留了較大的準(zhǔn)確率,而在32-48-48這種裁剪方式時,本文提出的方法保留了較高的準(zhǔn)確率,而通過再訓(xùn)練準(zhǔn)確率會有所損失.選取L1+std作為卷積核的評價指標(biāo)進(jìn)行裁剪時,裁剪后的準(zhǔn)確率在L1和std之間.因此,式(3)中的參數(shù)λ可以通過卷積核裁剪的比例動態(tài)動態(tài)調(diào)整,在裁剪卷積核數(shù)量過多時,適當(dāng)增大λ,可以保留更高的準(zhǔn)確率.

表2 裁剪針對MNIST數(shù)據(jù)集訓(xùn)練的兩層卷積層神經(jīng)網(wǎng)絡(luò)

表3 裁剪針對Cifar-10數(shù)據(jù)集訓(xùn)練的三層卷積層神經(jīng)網(wǎng)絡(luò)

4 結(jié)論與展望

本文從卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中參數(shù)的統(tǒng)計特征出發(fā),提出了一種基統(tǒng)計分析裁剪卷積核的卷積神經(jīng)網(wǎng)絡(luò)模型壓縮方法.通過在針對MNIST和Cifar-10所設(shè)計的兩個卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行裁剪實驗,本文提出的標(biāo)準(zhǔn)差較大的卷積學(xué)習(xí)到了更顯著的局部特征的設(shè)想是正確的,在與類似的裁剪方式的對比中,本文提出的方法在裁剪較多的卷積核時保留更高的準(zhǔn)確率,根據(jù)裁剪的比例動態(tài)調(diào)整卷積核L1范數(shù)和標(biāo)準(zhǔn)差的相對重要程度,可以使得裁剪的結(jié)果更穩(wěn)定.在后續(xù)的研究中,將進(jìn)一步研究卷積核通道間的裁剪和利用特征圖使得裁剪結(jié)果最優(yōu).

猜你喜歡
范數(shù)標(biāo)準(zhǔn)差準(zhǔn)確率
基于同倫l0范數(shù)最小化重建的三維動態(tài)磁共振成像
乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
2015—2017 年寧夏各天氣預(yù)報參考產(chǎn)品質(zhì)量檢驗分析
頸椎病患者使用X線平片和CT影像診斷的臨床準(zhǔn)確率比照觀察
訂正
基于加權(quán)核范數(shù)與范數(shù)的魯棒主成分分析
基于非凸[lp]范數(shù)和G?范數(shù)的圖像去模糊模型
方差中亟待澄清的兩個錯誤觀點
醫(yī)學(xué)科技論文中有效數(shù)字的確定
涿鹿县| 无棣县| 贵定县| 万盛区| 弋阳县| 阿巴嘎旗| 平安县| 舞阳县| 广西| 天长市| 仁布县| 龙里县| 河津市| 阿拉善左旗| 平利县| 阿勒泰市| 阜平县| 南京市| 石门县| 舞阳县| 万山特区| 宜宾市| 平远县| 普兰店市| 乌兰县| 蒲江县| 漠河县| 合山市| 丹东市| 榆林市| 治县。| 中宁县| 抚远县| 海南省| 中超| 常州市| 屏山县| 江城| 佛学| 镇巴县| 旬阳县|