徐鵬濤 曹健 孫文宇 李普 王源 張興
基于可融合殘差卷積塊的深度神經(jīng)網(wǎng)絡(luò)模型層剪枝方法
徐鵬濤 曹健?孫文宇 李普 王源 張興?
北京大學(xué)軟件與微電子學(xué)院, 北京 102600; ?通信作者, E-mail: caojian@ss.pku.edu.cn (曹健), zhx@pku.edu.cn (張興)
針對當(dāng)前主流的剪枝方法所獲得的壓縮模型推理時間較長和效果較差的問題, 提出一種易用且性能優(yōu)異的層剪枝方法。該方法將原始卷積層轉(zhuǎn)化為可融合殘差卷積塊, 然后通過稀疏化訓(xùn)練的方法實現(xiàn)層剪枝, 得到一種具有工程易用性的層剪枝方法, 兼具推理時間短和剪枝效果好的優(yōu)點。實驗結(jié)果表明, 在圖像分類任務(wù)和目標(biāo)檢測任務(wù)中, 該方法可使模型在精度損失較小的情況下獲得極高的壓縮率, 優(yōu)于先進(jìn)的卷積核剪枝方法。
卷積神經(jīng)網(wǎng)絡(luò); 層剪枝; 可融合殘差卷積塊; 稀疏化訓(xùn)練; 圖像分類
卷積神經(jīng)網(wǎng)絡(luò)在圖像分類、目標(biāo)檢測和實例分割等計算機(jī)視覺任務(wù)中都表現(xiàn)出優(yōu)異的性能。由于工業(yè)界對精度的需求越來越高, 網(wǎng)絡(luò)規(guī)模愈發(fā)龐大, 但在資源受限的端側(cè), 硬件平臺無法部署過大的模型。為解決這種矛盾, 研究者提出各種各樣的模型壓縮方法, 如模型剪枝[1–5]、權(quán)重量化[6–9]和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索[10–12]等。其中, 模型剪枝由于其優(yōu)異的壓縮性能而成為模型壓縮的主流方法, 可分為非結(jié)構(gòu)化剪枝與結(jié)構(gòu)化剪枝。
非結(jié)構(gòu)化剪枝方法由 Han 等[13]2015 年提出, 認(rèn)為卷積神經(jīng)網(wǎng)絡(luò)中越小的權(quán)重對網(wǎng)絡(luò)越不重要, 因此可將其減掉。此類方法的模型壓縮效果較好, 但需要特殊的硬件結(jié)構(gòu)或軟件加速庫才能實現(xiàn)提速,實用性較差。
結(jié)構(gòu)化剪枝的主流方法是對整個卷積核進(jìn)行剪枝, 因此易于部署。Li 等[14]2016 年提出基于 L1范數(shù)對卷積核進(jìn)行剪枝的方法, 認(rèn)為 L1 范數(shù)小的卷積核可以被剪裁。He 等[15]將靠近每層卷積核幾何中心點的卷積核裁減掉, 實現(xiàn)模型壓縮。Liu 等[16]提出基于批歸一化層的剪枝方法, 通過稀疏化批歸一化層的縮放因子篩選不重要的卷積核。
可以將層剪枝方法視為一種結(jié)構(gòu)化剪枝方法, 它將整個卷積層視為一個整體進(jìn)行剪枝, 剪枝粒度更大。通常, 粒度越大的剪枝方法越不容易得到優(yōu)異的剪枝性能, 因此很少有人研究層剪枝方法。然而, 網(wǎng)絡(luò)在硬件中推理時, 層數(shù)越多意味著耗時越多, 而耗時問題實際上是工程應(yīng)用中最應(yīng)該關(guān)注的, 因此對層剪枝的研究極具工程意義。Chen 等[17]2018 年提出一種基于特征表示的層剪枝方法, 對每個卷積層訓(xùn)練一個線性分類器, 然后基于分類器對卷積層進(jìn)行排名和剪裁, 但這種方法極其復(fù)雜且耗時。本文使用特殊的可融合殘差卷積塊及簡單的稀疏化訓(xùn)練, 實現(xiàn)一種簡單易用的層剪枝方法, 其壓縮性能不僅可以超過之前的層剪枝方法, 甚至超越目前先進(jìn)的卷積核剪枝方法。
本文層剪枝方法的基本框架如圖 1 所示, 分為4 個步驟: 第一步, 將初始網(wǎng)絡(luò)中的卷積、批歸一化和激活結(jié)構(gòu)轉(zhuǎn)化為包含層重要性因子m的可融合殘差卷積塊; 第二步, 通過稀疏化訓(xùn)練, 使重要性因子更趨于零; 第三步, 將訓(xùn)練好的稀疏網(wǎng)絡(luò)中不重要的層剪裁掉; 第四步, 將未減掉的可融合殘差卷積塊融合為原本的普通卷積結(jié)構(gòu), 最終得到壓縮后的模型。
如圖 2 所示, 本文使用的可融合殘差卷積塊由ResNet[18]中普通殘差塊變形而成。圖 2(a)為ResNet中的殘差塊, 圖 2(b)為普通可融合殘差卷積塊, 二者最大的不同在于可融合殘差卷積塊僅包含一組卷積結(jié)構(gòu), 使其可以通過融合去除捷徑分支, 變?yōu)槠胀ň矸e層。此外, 在可融合殘差卷積塊中添加了重要性因子m來表示該層的重要性程度, 添加可訓(xùn)練參數(shù)g來自適應(yīng)地控制捷徑分支信息的流動。當(dāng)可融合殘差卷積塊的輸入輸出特征圖通道數(shù)或尺寸不一致時, 不能直接使用捷徑分支進(jìn)行連接。本文采用添加 1×1 卷積和平均卷積的方式分別處理這兩種情況, 如圖 2(c)和(d)所示。
在訓(xùn)練結(jié)束后, 批歸一化層和重要性參數(shù)m可簡單地通過線性關(guān)系融合到其前面的卷積層中。因此, 可融合殘差卷積塊可以由下式表示:
式中, 表示卷積操作, X和Y分別表示輸入和輸出的特征圖, W和b表示卷積的權(quán)重和偏置, ?表示線性乘法。離散卷積具有分配律, 因此, 式(1)可以被融合成一個卷積操作:
圖2 ResNet殘差塊和3種可融合殘差卷積塊
圖3 可融合殘差卷積塊融合過程
式中,f和f是融合卷積的權(quán)重和偏置。無論是無操作、卷積或平均池化, 式(1)中(?)都可由一個權(quán)重為s和偏置為s的卷積表示。因此, 可以通過下面的運算求得f和f:
在訓(xùn)練中, 需要對重要性因子進(jìn)行稀疏化, 使其值更趨于零, 從而獲得更大的剪枝率。本文采用經(jīng)典的 L1 正則化進(jìn)行稀疏化訓(xùn)練, 并定義為稀疏因子, 稀疏因子越大, 稀疏程度越高。
稀疏化訓(xùn)練后, 便可將模型中重要性因子較小的層減掉。圖 4 展示剪枝的過程, 首先將重要性因子前的卷積層和批歸一化層裁減掉, 然后將可訓(xùn)練參數(shù)g線性地疊加到前層或后層的卷積層中。多數(shù)情況下, 捷徑分支上無操作, 因此整個可融合殘差卷積塊被裁減掉; 對于捷徑分支上有卷積或平均池化的情況, 該操作將保留, 但 1×1 卷積和平均池化的計算量和耗時可忽略。
將本文層剪枝方法在不同數(shù)據(jù)集和不同網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行實驗, 并與目前先進(jìn)的卷積核剪枝方法和層剪枝方法進(jìn)行對比。
本文采用規(guī)模不同的圖像分類數(shù)據(jù)集 CIFAR-10 和 ImageNet 在不同網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實驗, 驗證本文方法的有效性。此外, 在牛津大學(xué)視覺團(tuán)隊整理的 Oxford Hand 數(shù)據(jù)集上對本文方法在目標(biāo)檢測上的有效性進(jìn)行測試, 性能評價指標(biāo)使用非極大值抑制(NMS)閾值為 0.5 情況下的平均精度均值(mAP)。所用數(shù)據(jù)集概況如表 1 所示。
首先, 在 CIFAR-10 上對 VGG-16 網(wǎng)絡(luò)進(jìn)行實驗。表 2 中實驗結(jié)果表明, 與當(dāng)前先進(jìn)的剪枝方法相比, 本文提出的層剪枝方法在保證精度損失更低的情況下, 計算量和參數(shù)量的裁減比例更高。
VGG-16 屬于不包含殘差結(jié)構(gòu)的網(wǎng)絡(luò), 為體現(xiàn)方法的普適性, 本研究還在包含殘差結(jié)構(gòu)的網(wǎng)絡(luò)ResNet-56 上進(jìn)行實驗。表 3 中實驗結(jié)果表明, 本文的層剪枝方法依然適用于包含殘差結(jié)構(gòu)的網(wǎng)絡(luò)。
由于輕量級網(wǎng)絡(luò)冗余度較低, 剪枝難度較大, 研究者通常不在輕量級網(wǎng)絡(luò)上進(jìn)行實驗。為展示所提方法的優(yōu)異性, 本文在 MobileNet 上進(jìn)行實驗。表 4 中實驗結(jié)果表明, 本文方法在輕量級網(wǎng)絡(luò)上依然可以有效地剪枝。
本研究在 ImageNet 上對 ResNet-50 網(wǎng)絡(luò)進(jìn)行實驗, 來證明本文方法在大型數(shù)據(jù)集上的適用性。表 5 中實驗結(jié)果表明, 本文方法在大型數(shù)據(jù)集上依然具有優(yōu)勢。
目標(biāo)檢測是比圖像識別難度更高的一種基礎(chǔ)性計算機(jī)視覺任務(wù)。為展示本文方法在目標(biāo)檢測上的有效性, 本研究以 SSD 模型為例進(jìn)行實驗。表 6 中實驗結(jié)果表明, 本文方法對目標(biāo)檢測依然有效。
圖4 可融合殘差卷積塊剪枝過程
表1 本文所用數(shù)據(jù)集概況
表2 CIFAR-10數(shù)據(jù)集上VGG-16模型應(yīng)用各剪枝方法的效果
說明: 括號中數(shù)據(jù)為裁減比例, 下同。
表3 CIFAR-10數(shù)據(jù)集上ResNet-56模型應(yīng)用各剪枝方法的效果
表4 CIFAR-10數(shù)據(jù)集上MobileNet模型應(yīng)用層剪枝方法的效果
表5 ImageNet數(shù)據(jù)集上ResNet-50模型應(yīng)用各剪枝方法的效果
從表 2~6 中實驗結(jié)果可以看到, 稀疏因子與模型的性能及剪枝比例有強(qiáng)相關(guān)性。稀疏因子越大, 模型性能越差, 但剪枝比例越高。原因是, 稀疏因子的增加會導(dǎo)致模型的參數(shù)分布更趨于零, 致使模型的表達(dá)能力降低, 同時參數(shù)的趨零化導(dǎo)致可以剪裁更多的層。為了直觀地看到稀疏因子對模型參數(shù)分布和模型性能的影響, 本研究在 CIFAR-10數(shù)據(jù)集上對 ResNet-110 進(jìn)行稀疏化實驗。從圖 5 展示的實驗結(jié)果可以看到, 大稀疏因子值對應(yīng)了更趨零的參數(shù)分布和更低的準(zhǔn)確率。
表6 Oxford Hand數(shù)據(jù)集上SSD模型應(yīng)用各剪枝方法的效果
圖5 稀疏因子實驗
推理耗時是展示模型剪枝方法優(yōu)劣性的重要工程標(biāo)準(zhǔn)。本文設(shè)置一個簡單的補(bǔ)充實驗, 證明層剪枝在減少推理耗時方面比卷積核剪枝更有優(yōu)勢。實驗中針對 VGG-16 網(wǎng)絡(luò), 隨機(jī)生成參數(shù)量和運算量均相同的層剪枝網(wǎng)絡(luò)和卷積核剪枝網(wǎng)絡(luò), 在CIFAR-10 數(shù)據(jù)集上統(tǒng)計二者在 GPU 上推理測試集中所有圖片的耗時。表 7 展示 100 次實驗的平均結(jié)果, 可以看到層剪枝方法耗時更少。
表7 層剪枝和卷積核剪枝推理耗時對比
本文針對現(xiàn)有卷積核剪枝方法在減少推理耗時不足和現(xiàn)有層剪枝方法復(fù)雜且性能差的問題, 提出基于可融合殘差卷積塊的層剪枝方法, 并利用可融合殘差卷積塊和稀疏化訓(xùn)練的方式實現(xiàn)。實驗結(jié)果表明, 該方法在保證精度損失較低的前提下, 有優(yōu)異的壓縮性能。
在未來的工作中, 我們將探索如何將層剪枝方法和卷積核剪枝方法共同使用, 以求更高的壓縮率, 便于在端側(cè)智能設(shè)備上部署和加速。
[1]Wen W, Wu C, Wang Y, et al. Learning structured sparsity in deep neural networks // Proceedings of the 30th International Conference on Neural Information Processing Systems. Barcelno, 2016: 2082–2090
[2]Zhou H, Alvarez J M, Porikli F. Less is more: towards compact CNNS // European Conference on Computer Vision. Cham: Springer, 2016: 662–677
[3]Han S, Mao H, Dally W J. Deep compression: compres-sing deep neural network with pruning, trained quantize-ation and Huffman coding [EB/OL]. (2015–11–20)[2021–05–20]. https://arxiv.org/abs/1510.00149v3
[4]Liu Z, Sun M, Zhou T, et al. Rethinking the value of network pruning [EB/OL]. (2019–03–05)[2021–05–20]. https://arxiv.org/abs/1810.05270
[5]Changpinyo S, Sandler M, Zhmoginov A. The power of sparsity in convolutional neural networks [EB/OL]. (2017 –02–21)[2021–05–20]. https://arxiv.org/abs/1702.06257
[6]Rastegari M, Ordonez V, Redmon J, et al. XNORNet: imagenet classification using binary convolutional neural networks // European Conference on Computer Vision. Cham: Springer, 2016: 525–542
[7]Zhou Shuchang, Wu Yuxin, Ni Zekun, et al. DoReFaNet: training low bitwidth convolutional neural networks with low bitwidth gradients [EB/OL].(2018–02–02)[2021–05–20]. https://arxiv.org/abs/1606.06160
[8]Jacob B, Kligys S, Chen B, et al. Quantization and training of neural networks for efficient integer-arithmetic-only inference [EB/OL]. (2017–12–15) [2021–05–20]. https://arxiv.org/abs/1712.05877
[9]Courbariaux M, Bengio Y. Binarynet: training deep neural networks with weights and activations constra-ined to +1 or –1 [EB/OL]. (2016–04–18)[2021–05–20]. https://arxiv.org/abs/1511.00363
[10]Jin J, Yan Z, Fu K, et al. Neural network architecture optimization through submodularity and supermodu-larity [EB/OL].(2018–02–21)[2021–05–20]. https://ar xiv.org/abs/1609.00074
[11]Baker B, Gupta O, Naik N, et al. Designing neural network architectures using reinforcement learning [EB/OL]. (2016–11–07)[2021–05–20]. https://arxiv.o rg/abs/1611.02167v1
[12]Zhang L L, Yang Y, Jiang Y, et al. Fast hardware-aware neural architecture search [EB/OL]. (2020–04– 20)[2021–05–20]. https://arxiv.org/abs/1910.11609
[13]Han S, Pool J, Tran J, et al. Learning both weights and connections for efficient neural network // Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal, 2015: 1135–1143
[14]Li H, Kadav A, Durdanovic I, et al. Pruning filters for efficient convnets [EB/OL]. (2017–03–10)[2021–05–20]. https://arxiv.org/abs/1608.08710
[15]He Y, Liu P, Wang Z, et al. Pruning filter via geometric median for deep convolutional neural networks accelera-tion // IEEE Conference on Computer Vision and Pattern Recognition. Long Beach, 2019: 4340–4349
[16]Liu Zhuang, Li Jianguo, Shen Zhiqiang, et al. Lear-ning efficient convolutional networks through network slimming // IEEE International Conference on Com-puter Vision. Venice, 2017: 2736–2744
[17]Chen S, Zhao Q. Shallowing deep networks: layer-wise pruning based on feature representations. IEEE Transactions on Pattern Analysis and Machine Intelli-gence. 2018, 41(12): 3048–3056
[18]He K, Zhang X, Ren S, et al. Deep residual learning for image recognition // IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, 2016: 770–778
[19]Huang Z, Wang N. Data-driven sparse structure selection for deep neural networks // Proceedings of the European Conference on Computer Vision (ECCV). Munich, 2018: 304–320
[20]Zhao C, Ni B, Zhang J, et al. Variational convolutional neural network pruning // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Long Beach, 2019: 2780–2789
[21]Lin S, Ji R, Yan C, et al. Towards optimal structured cnn pruning via generative adversarial learning // Pro-ceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Long Beach, 2019: 2790–2799
[22]Lin M, Ji R, Wang Y, et al. HRank: filter pruning using high-rank feature map // Proceedings of the IEEE/CVF Conference on Computer Vision and Pat-tern Recognition. Seattle, 2020: 1529–1538
[23]Yu R, Li A, Chen C F, et al. NISP: pruning networks using neuron importance score propagation // Procee-dings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, 2018: 9194–9203
Layer Pruning via Fusible Residual Convolutional Block for Deep Neural Networks
XU Pengtao, CAO Jian?, SUN Wenyu, LI Pu, WANG Yuan, ZHANG Xing?
School of Software and Microelectronics, Peking University, Beijing 102600; ? Corresponding author, E-mail: caojian@ss.pku.edu.cn (CAO Jian), zhx@pku.edu.cn (ZHANG Xing)
Aiming at the problems of long inference time and poor effect of the compression model obtained by the current mainstream pruning methods, an easy-to-use and excellent layer pruning method is proposed. The original convolution layers in the model are transformed into fusible residual convolutional blocks, and then layer pruning is realized by sparse training, therefore a layer pruning method with engineering ease is obtained, which has the advantages of short inference time and good pruning effect. The experimental results show that the proposed layer pruning method can achieve a very high compression rate with less accuracy loss in image classification tasks and object detection tasks, and the compression performance is better than the advanced convolutional kernel pruning methods.
convolutional neural network; layer pruning; fusible residual convolutional block; sparse training; image classification
10.13209/j.0479-8023.2022.081
2021–09–30;
2021–12–04
國家重點研發(fā)計劃(2018YFE0203801)資助