徐鵬濤 曹健 孫文宇 李普 王源 張興
基于可融合殘差卷積塊的深度神經(jīng)網(wǎng)絡(luò)模型層剪枝方法
徐鵬濤 曹健?孫文宇 李普 王源 張興?
北京大學(xué)軟件與微電子學(xué)院, 北京 102600; ?通信作者, E-mail: caojian@ss.pku.edu.cn (曹健), zhx@pku.edu.cn (張興)
針對(duì)當(dāng)前主流的剪枝方法所獲得的壓縮模型推理時(shí)間較長(zhǎng)和效果較差的問(wèn)題, 提出一種易用且性能優(yōu)異的層剪枝方法。該方法將原始卷積層轉(zhuǎn)化為可融合殘差卷積塊, 然后通過(guò)稀疏化訓(xùn)練的方法實(shí)現(xiàn)層剪枝, 得到一種具有工程易用性的層剪枝方法, 兼具推理時(shí)間短和剪枝效果好的優(yōu)點(diǎn)。實(shí)驗(yàn)結(jié)果表明, 在圖像分類任務(wù)和目標(biāo)檢測(cè)任務(wù)中, 該方法可使模型在精度損失較小的情況下獲得極高的壓縮率, 優(yōu)于先進(jìn)的卷積核剪枝方法。
卷積神經(jīng)網(wǎng)絡(luò); 層剪枝; 可融合殘差卷積塊; 稀疏化訓(xùn)練; 圖像分類
卷積神經(jīng)網(wǎng)絡(luò)在圖像分類、目標(biāo)檢測(cè)和實(shí)例分割等計(jì)算機(jī)視覺(jué)任務(wù)中都表現(xiàn)出優(yōu)異的性能。由于工業(yè)界對(duì)精度的需求越來(lái)越高, 網(wǎng)絡(luò)規(guī)模愈發(fā)龐大, 但在資源受限的端側(cè), 硬件平臺(tái)無(wú)法部署過(guò)大的模型。為解決這種矛盾, 研究者提出各種各樣的模型壓縮方法, 如模型剪枝[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)重對(duì)網(wǎng)絡(luò)越不重要, 因此可將其減掉。此類方法的模型壓縮效果較好, 但需要特殊的硬件結(jié)構(gòu)或軟件加速庫(kù)才能實(shí)現(xiàn)提速,實(shí)用性較差。
結(jié)構(gòu)化剪枝的主流方法是對(duì)整個(gè)卷積核進(jìn)行剪枝, 因此易于部署。Li 等[14]2016 年提出基于 L1范數(shù)對(duì)卷積核進(jìn)行剪枝的方法, 認(rèn)為 L1 范數(shù)小的卷積核可以被剪裁。He 等[15]將靠近每層卷積核幾何中心點(diǎn)的卷積核裁減掉, 實(shí)現(xiàn)模型壓縮。Liu 等[16]提出基于批歸一化層的剪枝方法, 通過(guò)稀疏化批歸一化層的縮放因子篩選不重要的卷積核。
可以將層剪枝方法視為一種結(jié)構(gòu)化剪枝方法, 它將整個(gè)卷積層視為一個(gè)整體進(jìn)行剪枝, 剪枝粒度更大。通常, 粒度越大的剪枝方法越不容易得到優(yōu)異的剪枝性能, 因此很少有人研究層剪枝方法。然而, 網(wǎng)絡(luò)在硬件中推理時(shí), 層數(shù)越多意味著耗時(shí)越多, 而耗時(shí)問(wèn)題實(shí)際上是工程應(yīng)用中最應(yīng)該關(guān)注的, 因此對(duì)層剪枝的研究極具工程意義。Chen 等[17]2018 年提出一種基于特征表示的層剪枝方法, 對(duì)每個(gè)卷積層訓(xùn)練一個(gè)線性分類器, 然后基于分類器對(duì)卷積層進(jìn)行排名和剪裁, 但這種方法極其復(fù)雜且耗時(shí)。本文使用特殊的可融合殘差卷積塊及簡(jiǎn)單的稀疏化訓(xùn)練, 實(shí)現(xiàn)一種簡(jiǎn)單易用的層剪枝方法, 其壓縮性能不僅可以超過(guò)之前的層剪枝方法, 甚至超越目前先進(jìn)的卷積核剪枝方法。
本文層剪枝方法的基本框架如圖 1 所示, 分為4 個(gè)步驟: 第一步, 將初始網(wǎng)絡(luò)中的卷積、批歸一化和激活結(jié)構(gòu)轉(zhuǎn)化為包含層重要性因子m的可融合殘差卷積塊; 第二步, 通過(guò)稀疏化訓(xùn)練, 使重要性因子更趨于零; 第三步, 將訓(xùn)練好的稀疏網(wǎng)絡(luò)中不重要的層剪裁掉; 第四步, 將未減掉的可融合殘差卷積塊融合為原本的普通卷積結(jié)構(gòu), 最終得到壓縮后的模型。
如圖 2 所示, 本文使用的可融合殘差卷積塊由ResNet[18]中普通殘差塊變形而成。圖 2(a)為ResNet中的殘差塊, 圖 2(b)為普通可融合殘差卷積塊, 二者最大的不同在于可融合殘差卷積塊僅包含一組卷積結(jié)構(gòu), 使其可以通過(guò)融合去除捷徑分支, 變?yōu)槠胀ň矸e層。此外, 在可融合殘差卷積塊中添加了重要性因子m來(lái)表示該層的重要性程度, 添加可訓(xùn)練參數(shù)g來(lái)自適應(yīng)地控制捷徑分支信息的流動(dòng)。當(dāng)可融合殘差卷積塊的輸入輸出特征圖通道數(shù)或尺寸不一致時(shí), 不能直接使用捷徑分支進(jìn)行連接。本文采用添加 1×1 卷積和平均卷積的方式分別處理這兩種情況, 如圖 2(c)和(d)所示。
在訓(xùn)練結(jié)束后, 批歸一化層和重要性參數(shù)m可簡(jiǎn)單地通過(guò)線性關(guān)系融合到其前面的卷積層中。因此, 可融合殘差卷積塊可以由下式表示:
式中, 表示卷積操作, X和Y分別表示輸入和輸出的特征圖, W和b表示卷積的權(quán)重和偏置, ?表示線性乘法。離散卷積具有分配律, 因此, 式(1)可以被融合成一個(gè)卷積操作:
圖2 ResNet殘差塊和3種可融合殘差卷積塊
圖3 可融合殘差卷積塊融合過(guò)程
式中,f和f是融合卷積的權(quán)重和偏置。無(wú)論是無(wú)操作、卷積或平均池化, 式(1)中(?)都可由一個(gè)權(quán)重為s和偏置為s的卷積表示。因此, 可以通過(guò)下面的運(yùn)算求得f和f:
在訓(xùn)練中, 需要對(duì)重要性因子進(jìn)行稀疏化, 使其值更趨于零, 從而獲得更大的剪枝率。本文采用經(jīng)典的 L1 正則化進(jìn)行稀疏化訓(xùn)練, 并定義為稀疏因子, 稀疏因子越大, 稀疏程度越高。
稀疏化訓(xùn)練后, 便可將模型中重要性因子較小的層減掉。圖 4 展示剪枝的過(guò)程, 首先將重要性因子前的卷積層和批歸一化層裁減掉, 然后將可訓(xùn)練參數(shù)g線性地疊加到前層或后層的卷積層中。多數(shù)情況下, 捷徑分支上無(wú)操作, 因此整個(gè)可融合殘差卷積塊被裁減掉; 對(duì)于捷徑分支上有卷積或平均池化的情況, 該操作將保留, 但 1×1 卷積和平均池化的計(jì)算量和耗時(shí)可忽略。
將本文層剪枝方法在不同數(shù)據(jù)集和不同網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行實(shí)驗(yàn), 并與目前先進(jìn)的卷積核剪枝方法和層剪枝方法進(jìn)行對(duì)比。
本文采用規(guī)模不同的圖像分類數(shù)據(jù)集 CIFAR-10 和 ImageNet 在不同網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實(shí)驗(yàn), 驗(yàn)證本文方法的有效性。此外, 在牛津大學(xué)視覺(jué)團(tuán)隊(duì)整理的 Oxford Hand 數(shù)據(jù)集上對(duì)本文方法在目標(biāo)檢測(cè)上的有效性進(jìn)行測(cè)試, 性能評(píng)價(jià)指標(biāo)使用非極大值抑制(NMS)閾值為 0.5 情況下的平均精度均值(mAP)。所用數(shù)據(jù)集概況如表 1 所示。
首先, 在 CIFAR-10 上對(duì) VGG-16 網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)。表 2 中實(shí)驗(yàn)結(jié)果表明, 與當(dāng)前先進(jìn)的剪枝方法相比, 本文提出的層剪枝方法在保證精度損失更低的情況下, 計(jì)算量和參數(shù)量的裁減比例更高。
VGG-16 屬于不包含殘差結(jié)構(gòu)的網(wǎng)絡(luò), 為體現(xiàn)方法的普適性, 本研究還在包含殘差結(jié)構(gòu)的網(wǎng)絡(luò)ResNet-56 上進(jìn)行實(shí)驗(yàn)。表 3 中實(shí)驗(yàn)結(jié)果表明, 本文的層剪枝方法依然適用于包含殘差結(jié)構(gòu)的網(wǎng)絡(luò)。
由于輕量級(jí)網(wǎng)絡(luò)冗余度較低, 剪枝難度較大, 研究者通常不在輕量級(jí)網(wǎng)絡(luò)上進(jìn)行實(shí)驗(yàn)。為展示所提方法的優(yōu)異性, 本文在 MobileNet 上進(jìn)行實(shí)驗(yàn)。表 4 中實(shí)驗(yàn)結(jié)果表明, 本文方法在輕量級(jí)網(wǎng)絡(luò)上依然可以有效地剪枝。
本研究在 ImageNet 上對(duì) ResNet-50 網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn), 來(lái)證明本文方法在大型數(shù)據(jù)集上的適用性。表 5 中實(shí)驗(yàn)結(jié)果表明, 本文方法在大型數(shù)據(jù)集上依然具有優(yōu)勢(shì)。
目標(biāo)檢測(cè)是比圖像識(shí)別難度更高的一種基礎(chǔ)性計(jì)算機(jī)視覺(jué)任務(wù)。為展示本文方法在目標(biāo)檢測(cè)上的有效性, 本研究以 SSD 模型為例進(jìn)行實(shí)驗(yàn)。表 6 中實(shí)驗(yàn)結(jié)果表明, 本文方法對(duì)目標(biāo)檢測(cè)依然有效。
圖4 可融合殘差卷積塊剪枝過(guò)程
表1 本文所用數(shù)據(jù)集概況
表2 CIFAR-10數(shù)據(jù)集上VGG-16模型應(yīng)用各剪枝方法的效果
說(shuō)明: 括號(hào)中數(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 中實(shí)驗(yàn)結(jié)果可以看到, 稀疏因子與模型的性能及剪枝比例有強(qiáng)相關(guān)性。稀疏因子越大, 模型性能越差, 但剪枝比例越高。原因是, 稀疏因子的增加會(huì)導(dǎo)致模型的參數(shù)分布更趨于零, 致使模型的表達(dá)能力降低, 同時(shí)參數(shù)的趨零化導(dǎo)致可以剪裁更多的層。為了直觀地看到稀疏因子對(duì)模型參數(shù)分布和模型性能的影響, 本研究在 CIFAR-10數(shù)據(jù)集上對(duì) ResNet-110 進(jìn)行稀疏化實(shí)驗(yàn)。從圖 5 展示的實(shí)驗(yàn)結(jié)果可以看到, 大稀疏因子值對(duì)應(yīng)了更趨零的參數(shù)分布和更低的準(zhǔn)確率。
表6 Oxford Hand數(shù)據(jù)集上SSD模型應(yīng)用各剪枝方法的效果
圖5 稀疏因子實(shí)驗(yàn)
推理耗時(shí)是展示模型剪枝方法優(yōu)劣性的重要工程標(biāo)準(zhǔn)。本文設(shè)置一個(gè)簡(jiǎn)單的補(bǔ)充實(shí)驗(yàn), 證明層剪枝在減少推理耗時(shí)方面比卷積核剪枝更有優(yōu)勢(shì)。實(shí)驗(yàn)中針對(duì) VGG-16 網(wǎng)絡(luò), 隨機(jī)生成參數(shù)量和運(yùn)算量均相同的層剪枝網(wǎng)絡(luò)和卷積核剪枝網(wǎng)絡(luò), 在CIFAR-10 數(shù)據(jù)集上統(tǒng)計(jì)二者在 GPU 上推理測(cè)試集中所有圖片的耗時(shí)。表 7 展示 100 次實(shí)驗(yàn)的平均結(jié)果, 可以看到層剪枝方法耗時(shí)更少。
表7 層剪枝和卷積核剪枝推理耗時(shí)對(duì)比
本文針對(duì)現(xiàn)有卷積核剪枝方法在減少推理耗時(shí)不足和現(xiàn)有層剪枝方法復(fù)雜且性能差的問(wèn)題, 提出基于可融合殘差卷積塊的層剪枝方法, 并利用可融合殘差卷積塊和稀疏化訓(xùn)練的方式實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明, 該方法在保證精度損失較低的前提下, 有優(yōu)異的壓縮性能。
在未來(lái)的工作中, 我們將探索如何將層剪枝方法和卷積核剪枝方法共同使用, 以求更高的壓縮率, 便于在端側(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
國(guó)家重點(diǎn)研發(fā)計(jì)劃(2018YFE0203801)資助