新聞中心

EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > CNN模型壓縮與加速算法綜述

CNN模型壓縮與加速算法綜述

作者: 時間:2018-07-25 來源:網(wǎng)絡(luò) 收藏

XNOR-Net中一個典型的卷積單元如圖6所示,與傳統(tǒng)單元不同,各模塊的順序有了調(diào)整。為了減少二值化帶來的精度損失,對輸入數(shù)據(jù)首先進行BN歸一化處理,BinActiv層用于對輸入做二值化,接著進行二值化的卷積操作,最后進行pooling。

本文引用地址:http://butianyuan.cn/article/201807/383798.htm

圖5 BWN訓(xùn)練過程

圖6 傳統(tǒng)卷積單元與XNOR-Net卷積單元對比

3.3 實驗結(jié)果

表5 ImageNet上二值網(wǎng)絡(luò)與AlexNet結(jié)果對比

與ALexNet相比,BWN網(wǎng)絡(luò)能夠達到精度基本不變甚至略好,XNOR-Net由于對輸入也做了二值化,性能稍降。

四、Distilling

Distilling算法是Hinton等人在論文Distilling the Knowledge in a Neural Network中提出的一種類似網(wǎng)絡(luò)遷移的學(xué)習(xí)算法。

4.1 基本思想

Distilling直譯過來即蒸餾,其基本思想是通過一個性能好的大網(wǎng)絡(luò)來教小網(wǎng)絡(luò)學(xué)習(xí),從而使得小網(wǎng)絡(luò)能夠具備跟大網(wǎng)絡(luò)一樣的性能,但蒸餾后的小網(wǎng)絡(luò)參數(shù)規(guī)模遠遠小于原始大網(wǎng)絡(luò),從而達到壓縮網(wǎng)絡(luò)的目的。

其中,訓(xùn)練小模型(distilled model)的目標函數(shù)由兩部分組成

1) 與大模型(cumbersome model)的softmax輸出的交叉熵(cross entropy),稱為軟目標(soft target)。其中,softmax的計算加入了超參數(shù)溫度T,用以控制輸出,計算公式變?yōu)?/p>

溫度T越大,輸出的分布越緩和,概率zi/T越小,熵越大,但若T過大,會導(dǎo)致較大熵引起的不確定性增加,增加了不可區(qū)分性。

至于為何要以soft target來計算損失,作者認為,在分類問題中,真值(groundtruth)是一個確定性的,即one-hot vector。以手寫數(shù)字分類來說,對于一個數(shù)字3,它的label是3的概率是1,而是其他數(shù)值的概率是0,而對于soft target,它能表征label是3的概率,假如這個數(shù)字寫的像5,還可以給出label是5的一定概率,從而提供更多信息,如

數(shù)字0123456789
真值0001000000
軟目標0000.9500.0480.002000

2)與真值(groundtruth)的交叉熵(T=1)

訓(xùn)練的損失為上述兩項損失的加權(quán)和,通常第二項要小很多。

4.2 實驗結(jié)果

作者給出了在語音識別上的實驗結(jié)果對比,如下表

表6 蒸餾模型與原始模型精度對比[8]

上表顯示,蒸餾后的模型的精確度和單字錯誤率和用于產(chǎn)生軟目標的10個模型的性能相當,小模型成功地學(xué)到了大模型的識別能力。

4.3 速度考量

Distilling的提出原先并非針對網(wǎng)絡(luò)加速,而最終計算的效率仍然取決于蒸餾模型的計算規(guī)模,但理論上蒸餾后的小模型相對原始大模型的計算速度在一定程度上會有提升,但速度提升的比例和性能維持的權(quán)衡是一個值得研究的方向。

五、MobileNet

MobileNet是由Google提出的針對移動端部署的輕量級網(wǎng)絡(luò)架構(gòu)??紤]到移動端計算資源受限以及速度要求嚴苛,MobileNet引入了傳統(tǒng)網(wǎng)絡(luò)中原先采用的group思想,即限制濾波器的卷積計算只針對特定的group中的輸入,從而大大降低了卷積計算量,提升了移動端前向計算的速度。

5.1 卷積分解

MobileNet借鑒factorized convolution的思想,將普通卷積操作分成兩部分:

Depthwise Convolution

每個卷積核濾波器只針對特定的輸入通道進行卷積操作,如下圖所示,其中M是輸入通道數(shù),DK是卷積核尺寸:

圖7 Depthwise Convolution

Depthwise convolution的計算復(fù)雜度為 DKDKMDFDF,其中DF是卷積層輸出的特征圖的大小。

Pointwise Convolution

采用1x1大小的卷積核將depthwise convolution層的多通道輸出進行結(jié)合,如下圖,其中N是輸出通道數(shù):

圖8 Pointwise Convolution[

Pointwise Convolution的計算復(fù)雜度為 MNDFDF

上面兩步合稱depthwise separable convolution

標準卷積操作的計算復(fù)雜度為DKDKMNDFDF

因此,通過將標準卷積分解成兩層卷積操作,可以計算出理論上的計算效率提升比例:

對于3x3尺寸的卷積核來說,depthwise separable convolution在理論上能帶來約8~9倍的效率提升。

5.2 模型架構(gòu)

圖9 普通卷積單元與MobileNet 卷積單元對比

MobileNet的卷積單元如上圖所示,每個卷積操作后都接著一個BN操作和ReLU操作。在MobileNet中,由于3x3卷積核只應(yīng)用在depthwise convolution中,因此95%的計算量都集中在pointwise convolution 中的1x1卷積中。而對于caffe等采用矩陣運算GEMM實現(xiàn)卷積的深度學(xué)習(xí)框架,1x1卷積無需進行im2col操作,因此可以直接利用矩陣運算加速庫進行快速計算,從而提升了計算效率。

5.3 實驗結(jié)果

表7 MobileNet與主流大模型在ImageNet上精度對比

上表顯示,MobileNet在保證精度不變的同時,能夠有效地減少計算操作次數(shù)和參數(shù)量,使得在移動端實時前向計算成為可能。

六、ShuffleNet

ShuffleNet是Face++今年提出了一篇用于移動端前向部署的網(wǎng)絡(luò)架構(gòu)。ShuffleNet基于MobileNet的group思想,將卷積操作限制到特定的輸入通道。而與之不同的是,ShuffleNet將輸入的group進行打散,從而保證每個卷積核的感受野能夠分散到不同group的輸入中,增加了模型的學(xué)習(xí)能力。

6.1 設(shè)計思想

我們知道,卷積中的group操作能夠大大減少卷積操作的計算次數(shù),而這一改動帶來了速度增益和性能維持在MobileNet等文章中也得到了驗證。然而group操作所帶來的另一個問題是:特定的濾波器僅對特定通道的輸入進行作用,這就阻礙了通道之間的信息流傳遞,group數(shù)量越多,可以編碼的信息就越豐富,但每個group的輸入通道數(shù)量減少,因此可能造成單個卷積濾波器的退化,在一定程度上削弱了網(wǎng)絡(luò)了表達能力。

6.2 網(wǎng)絡(luò)架構(gòu)

在此篇工作中,網(wǎng)絡(luò)架構(gòu)的設(shè)計主要有以下幾個創(chuàng)新點:

提出了一個類似于ResNet的BottleNeck單元

借鑒ResNet的旁路分支思想,ShuffleNet也引入了類似的網(wǎng)絡(luò)單元。不同的是,在stride=2的單元中,用concat操作代替了add操作,用average pooling代替了1x1stride=2的卷積操作,有效地減少了計算量和參數(shù)。單元結(jié)構(gòu)如圖10所示。

提出將1x1卷積采用group操作會得到更好的分類性能

在MobileNet中提過,1x1卷積的操作占據(jù)了約95%的計算量,所以作者將1x1也更改為group卷積,使得相比MobileNet的計算量大大減少。

提出了核心的shuffle操作將不同group中的通道進行打散,從而保證不同輸入通道之間的信息傳遞。

ShuffleNet的shuffle操作如圖11所示。

圖10 ShuffleNet網(wǎng)絡(luò)單元

圖11 不同group間的shuffle操作

6.3 實驗結(jié)果

表8 ShuffleNet與MobileNet在ImageNet上精度對比

上表顯示,相對于MobileNet,ShuffleNet的前向計算量不僅有效地得到了減少,而且分類錯誤率也有明顯提升,驗證了網(wǎng)絡(luò)的可行性。

6.4 速度考量

作者在ARM平臺上對網(wǎng)絡(luò)效率進行了驗證,鑒于內(nèi)存讀取和線程調(diào)度等因素,作者發(fā)現(xiàn)理論上4x的速度提升對應(yīng)實際部署中約2.6x。作者給出了與原始AlexNet的速度對比,如下表。

表9 ShuffleNet與AlexNet在ARM平臺上速度對比 [10]

結(jié)束語

近幾年來,除了學(xué)術(shù)界涌現(xiàn)的諸多CNN模型加速工作,工業(yè)界各大公司也推出了自己的移動端前向計算框架,如Google的Tensorflow、Facebook的caffe2以及蘋果今年剛推出的CoreML。相信結(jié)合不斷迭代優(yōu)化的網(wǎng)絡(luò)架構(gòu)和不斷發(fā)展的硬件計算加速技術(shù),未來深度學(xué)習(xí)在移動端的部署將不會是一個難題。


上一頁 1 2 下一頁

關(guān)鍵詞: 計算機

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉