【深度學習】卷積層提速Factorized Convolutional Neural Networks
Wang, Min, Baoyuan Liu, and Hassan Foroosh. “Factorized Convolutional Neural Networks.” arXiv preprint arXiv:1608.04337 (2016).
本文著重對深度網路中的卷積層進行優化,獨特之處有三:
- 可以直接訓練。不需要先訓練原始模型,再使用稀疏化、壓縮位元數等方式進行壓縮。
- 保持了卷積層原有輸入輸出,很容易替換已經設計好的網路。
- 實現簡單,可以由經典卷積層組合得到。
使用該方法設計的分類網路,精度與GoogLeNet1, ResNet-182, VGG-163
標準卷積層
先來複習一下卷積的運算過程。標準卷積將3D卷積核(橙色)放置在輸入資料
卷積核在一個通道上的尺寸為
當下流行的網路中,卷積層的主要作用是提取特徵,往往會保持影象尺寸不變。縮小影象的步驟一般由pooling層實現。為書寫簡潔,這裡認為輸入輸出的尺寸相同,都是
計算一個輸出畫素所需乘法次數為:
總體乘法次數為:
優化的卷積層
本文介紹了三種卷積層的優化變種。
使用基層(bases)
設定核尺寸
在第一個步驟中,輸入的每一通道單獨運算。在同樣尺寸卷積核的作用下,每一通道計算得到
在第二個步驟中,各個通道進行合併,但使用的卷積核尺寸為1。
乘法數量為
與傳統卷積所需的乘法次數比例為:
注意這裡的大頭是
提速示例
n k b rate 128 3 1 11.9% 128 3 5 59.5% 128 3 8 95.1% 128 5 8 38.3%
如果原有卷積核
重疊(stacked)的基層
對於輸入輸出通道數相同的情況(
使用
對於相同的
拓撲連線
依然是
關於“相鄰”,最直觀的想法是,定義一個鄰域大小
更巧妙的方法是,對輸入通道數進行因式分解:
把原來的2+1維輸入資料看做2+n維,在每一維定義一個鄰域大小
例子:30維分解為
d1=5,d2=6 ,第13個輸出通道,在2維空間中座標為[3,3] 。鄰域大小c3=1,c2=1 。和該通道有關的範圍為[2,3,4;3] ,對應的輸入通道為[8,13,18] 。
這個變種同樣適用於
實驗
標準網路
選擇ImageNet分類問題為實驗物件。首先使用標準卷積層設計三個標準網路A,B,A’作為參照。基本結構如下:
白色為卷積,綠色為pooling。第一階段是一個核較大的卷積,最後一階段是average pooling,直接生成1000類分類結果。
中間四大階段由max pooling和三個卷積層構成,其中後兩個卷積層(粗線)輸入/輸出通道數相同,適於本文所述方法優化。
A網路的卷積核尺寸(問號處)為2,每兩個卷積層新增一個Residual結構;B網路卷積核尺寸為3,每個卷積層新增一個Residual結構。
對於不太深的網路,Residual結構對精度提升不大,主要作用是加速訓練過程。
A’網路和A相同,只是輸入為164×164。
優化網路:基層
網路C,E由A演變而來,網路D,F由B演變來,其top-1精度以及計算複雜度如下:
網路 | 優化 | k | b | 精度 | 複雜度 |
---|---|---|---|---|---|
A | 無 | 2 | - | 59% | 1 |
B | 無 | 3 | - | 62.1% | 2.25 |
C | 基層 | 3 | 4 | 61.9% | ~1 |
D | 基層 | 3 | 2 | 60.3% | ~0.5 |
E | 重疊基層 | 3 | 2 | 63.1% | ~0.5 |
F | 重疊基層 | 5 | 2 | 63.15% | ~0.5 |
使用重疊基層的卷積網路F,能夠達到甚至超過原有網路B,計算複雜度不到原來25%。
優化網路:拓撲連結
網路G,H由A’演變而來。首先把A’網路的卷積層數量加倍:
將粗線所示卷積層的輸入/輸出通道進行分解,各層的因數
網路 | stage 1 | stage 2 | stage 3 | 精度 | 複雜度 |
---|---|---|---|---|---|
A’ | - | - | - | 54.2% | 1 |
G | 8*16 - 4*8 | 16*16 - 8*8 | 16*32 - 8*16 | 53.6% | 0.5 |
H | 4*8*4 - 2*5*3 | 8*8*4 - 4*5*3 | 8*8*8 - 4*5*6 | 52.9% | 0.47 |
達到相同效能,拓撲連線計算複雜度約為50%。
優化網路:複合
以A網路為基礎,把兩種優化方法組合,得到網路J,K:
網路 | 優化 | 精度 | 複雜度 |
---|---|---|---|
A | - | 59% | 1 |
J | 卷積層加倍, 2D拓撲 | 58.9% | 0.5 |
K | 卷積層加倍, 2D拓撲,層疊基準 | 60.1% | 0.25 |
只有25%計算複雜度,即超過原先網路。
優化網路:最終結果
綜合前述實驗結果,以網路E為基礎,給出了ImageNet上分類問題的最佳網路L:
採用重疊的基層思想。每一個粗線白色模組的
與其他經典模型的比較結果如下:
- Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov,
Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. Going deeper with convolutions.
arXiv preprint arXiv:1409.4842, 2014. ↩ - Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image
recognition. arXiv preprint arXiv:1512.03385, 2015. ↩ - K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image
recognition. CoRR, abs/1409.1556, 2014. ↩ - Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep
convolutional neural networks. In Advances in neural information processing systems, pages
1097–1105, 2012. ↩