宋非洋 吳黎明 鄭耿哲 何欣穎
基于MobileNetV3的結構性剪枝優化
宋非洋1吳黎明2鄭耿哲2何欣穎2
(1.廣東工業大學信息工程學院 2.廣東工業大學機電工程學院)
針對深度神經網絡參數過多以及計算量巨大,使其較難部署在移動設備和APP上的問題,提出采用高效輕量化的MobileNetV3模型與結構性剪枝相融合的方法,對深度神經網絡進行重構和壓縮。最終生成的精簡模型體積比原始模型縮小5.8倍,大幅度減少計算量和內存的消耗。經過微調后的精簡網絡模型相比于稀疏化訓練的網絡,準確度更高、泛化性能更好,能夠直接運行在成熟框架(Pytorch,MXnet或TensorFlow等)或硬件平臺上(GPU,FPGA等),無需特殊算法庫的支持。
深度神經網絡壓縮;MobileNet;結構性剪枝
近年來,深度神經網絡在計算機視覺、語音識別等方面取得較大成就[1-3]。深度神經網絡的發展一方面得益于基礎理論的完善,另一方面也得益于近幾年GPU計算能力的爆發性增長。隨著深度神經網絡的不斷發展,為完成更復雜的任務,深度神經網絡變得越來越深,計算量也越來越大。Hinton和Alex Krizhevsky等人[4]在2012年的國際計算機視覺挑戰賽(ImageNet Large Scale Visual Recognition Competition,ILSVRC)上提出AlexNet,以16.4%的Top 5錯誤率奪得冠軍,其包含6億3000萬個鏈接,6000萬個參數和65萬個神經元。一張圖片從輸入到輸出需要經過15億次的浮點數計算。后來提出的高性能網絡結構,如VGGNet[5],DenseNet[6]和ResNet[7]等,則需要更多的儲存空間和更高的計算能力。
由于嵌入式設備和移動設備的硬件條件受限,無法支撐這種計算密集型和存儲密集型的深度神經網絡。但與此同時,手機、汽車等移動場景對深度學習的需求越來越多。因此,對深度神經網絡進行壓縮、加速,使其能夠部署在移動設備上變得至關重要[8]。針對上述問題,主流的解決方法有模型壓縮和輕量化模型設計2種。
本文采用高效輕量化的MobileNetV3模型與結構性剪枝相融合的方法,進一步壓縮輕量化的深度神經網絡,并測試了壓縮后的模型性能以及深度神經壓縮[9]中結構性剪枝的壓縮方式對網絡模型的影響。
2019年,Google公布了MobileNet系列的最新成果MobileNetV3。MobileNetV3作為新一代輕量級深度卷積神經網絡,既繼承于原有的MobileNetV1和MobileNetV2,又擁有許多新特性。



表1 MobileNetV2的基本網絡單元


由于采用會引入延遲,因此網絡前半部分的激活函數仍采用ReLU,后半部分則采用。另外,針對MobileNetV2網絡末端計算量大的問題,使用Avg-Pooling代替計算量大的部分,在降低計算量的同時不會造成精度損失。MobileNetV3的基本網絡單元如圖1所示。
神經網絡剪枝算法最初用于解決模型過擬合問題,現在主要用于網絡的稀疏化,以降低網絡復雜度。目前主流的剪枝算法可分為非結構性剪枝和結構性剪枝2種。大多數情況下,非結構性剪枝是按照人為制定的標準對權重進行修剪。Han Song[14]等人提出閾值剪枝算法,通過設定閾值對網絡中冗余的權重進行裁剪。由于深度神經網絡中存在大量的冗余連接,閾值剪枝算法可有效減小模型復雜度,并通過稀疏數據格式儲存模型,減小模型的存儲空間。然而,這種稀疏數據計算時,采用傳統的計算方式效率較低,只能通過調用專用的稀疏矩陣運算庫,如CUDA的cuSPARSE庫或專業硬件進行計算。另外,盡管閾值剪枝可以壓縮模型的存儲空間,但由于其僅僅使相應的權重置零,而未將冗余的連接從網絡中徹底剔除,模型運行時產生的中間變量仍會消耗大量的內存。Srinivas[15]等人提出使用額外的門變量,對每一個權重都進行稀疏約束,并通過對門變量為零的連接進行剪枝來實現模型壓縮,該方法擁有更高的壓縮率,但內存消耗仍然較大。
Liu Z[16]等人提出一種有效的結構性剪枝方法,通過利用Batch Normalization(BN)層的尺度因子作為深度神經網絡通道的重要性因子,即由值決定是否對通道進行剪枝。






本文采用典型的迭代過程作為結構化剪枝的基本流程,具體步驟:
1)根據數據集制定相應的網絡模型并初始化;
2)對模型進行稀疏化訓練;
3)找到尺度因子較小的通道并進行剪枝;
4)對剪枝后的網絡模型進行微調;
5)重復步驟1)~步驟4);
6)完成剪枝。
剪枝流程圖如圖2所示,其中虛線為迭代過程。

圖2 剪枝流程圖
剪枝后的網絡模型以python通用的pth格式保存,其內部包含優化器(optimizer)參數、迭代數(epochs)以及網絡參數(state_dict)等信息。
一般來說,深度神經網絡層與層之間以串聯的方式相連接,連接處的通道數相對固定,只有在需要調整或修改模型網絡結構時才進行通道數變更。本文使用的結構化剪枝將冗余通道的輸入輸出連接以及相關的權重全部進行裁剪,導致模型各層的通道數發生改變,且MobileNetV3結構復雜特殊,既包含膨脹層和反向殘差層,又加入了注意力模型。若此時對模型進行測試,由于各層通道數不匹配,會產生模型無法運行的錯誤。因此在完成模型的稀疏化訓練之后,本文提出一種模型重構引導方法。該方法能根據此前訓練好的結構化稀疏模型重新構建一個更緊湊的網絡結構,并載入剪枝后的模型參數,使重構后的模型在網絡大小、卷積計算和運行內存消耗等方面更加輕量化。
本文在pytorch中創建1個_guide類,作為模型重構引導方法的基類;定義guide方法和rebuild方法,將完成訓練的模型保存為稀疏格式并引導模型進行重構。在模型重構引導方法中,主要采用掩膜(mask)方式對模型進行處理,thre表示全局閾值;cfg表示重構引導參數。mask由BN層的權重參數矩陣和torch的內部類方法gt(thre)聯立給出,并以四維tensor形式儲存;每個通道對應的mask值由0或1組成,其中0表示需要進行剪枝的通道,1表示保留的通道。cfg以一維數組的形式儲存,其內部包含每一層網絡需要保留的通道數,即mask非零項的和。此時mask已包含所有的剪枝信息,與重構引導參數cfg相結合即可完成模型重構。
超參數的選擇與調整對模型效果有著顯著的影響,如何找出一個對模型貢獻度最高的超參數,是一項十分重要的工作。本文使用剪枝算法對模型進行稀疏化訓練時,引入了新的損失函數以及超參數。為找出對模型稀疏化效果最優的超參數,本文利用Cifar-10數據集對MobileNetV3進行結構性稀疏化訓練,并同時設定多個超參數,評估不同的超參數對模型稀疏化的影響,結果如圖3所示。

圖3 不同的值下γ重要性因子的分布
為了保證實驗的準確性和客觀性,本文采用經典的Cifar-10作為實驗數據集。Cifar-10是一個10分類數據集,圖片尺寸為32像素×32像素,每一類包含6000張圖片,共有60000張圖片,其中50000張為訓練集,10000張為測試集。
本文的實驗環境為搭載有NVDIA Tesla T4顯卡的高性能工作站,采用Pytorch深度學習框架對模型進行搭建、訓練和測試。訓練周期為30個epoch;mini-batch為100;優化器為Adam;初始學習率為0.002,采用可變學習率方法,學習策略為

其中為測試集準確率。當<80時,保持學習率為0.002;當8≤87時,學習率為0.001;當87≤學習率為0.0002;當90時,學習率為0.00002。
3.2.1 剪枝率
為更好地了解結構化剪枝中不同剪枝率對MobileNetV3的影響,本文設定9個不同剪枝率對模型進行實驗測試,結果如圖4所示。

圖4 剪枝率對模型的影響
由圖4可知:模型稀疏化訓練下的準確率比原始模型高3%,且模型在剪枝率為40%時效果最好;說明結構性稀疏化訓練能有效增加模型的泛化性能,減少神經元之間錯綜復雜的依賴關系,提高模型的魯棒性。
3.2.2 模型壓縮率
每經過一個訓練周期后,對相應的模型數據進行保存。在完成全部的訓練周期后,從中篩選出表現最優的結構性稀疏化模型,采用40%的剪枝率進行剪枝微調處理,結果如表2所示。

表2 剪枝微調處理結果
由表2可知:剪枝后模型的體積為16 M,相比原始模型體積減少了77 M;top-1準確率提高了1.6%;模型整體體積壓縮了5.8倍,壓縮率達到17.21%;這表明經過結構化剪枝的模型能夠在保證準確率的情況下,減少模型載入時的內存消耗,提高模型載入的速度。
本文基于深度神經網絡壓縮理論,通過結構化剪枝算法簡化網絡結構,提出MobileNetV3模型的改進方案。鑒于原始網絡結構復雜特殊,為了最大程度保留網絡的強連接,本文采取稀疏化訓練和模型重構引導方法,對網絡進行訓練、剪枝、重建和調優等操作,以達到壓縮但不影響性能的效果。Cifar-10數據集的研究結果表明:對MobileNetV3進行不同程度的結構化剪枝,經過微調后的網絡模型相比于稀疏化訓練的網絡,準確度更高、泛化性能更好;同時大幅度減少計算量和內存的消耗。下一步應研究分析模型中各單元模塊對整個MobileNetV3的影響,對各單元模塊分別進行剪枝處理,以理解各模塊層級之間的共適應和依賴關系。
[1] Szegedy Christian, Liu Wei, Jia Yangqing, et al. Going deeper with convolutions[C]//IEEE Conference on Computer Vision and Pattern Recognition. Boston, 2015:1-9.
[2] Hinton G, Deng L, Yu D, et al. Deep neural networks for acoustic modeling in speech recognition: the shared views of four research groups[J]. IEEE Signal Processing Magazine, 2012,29(6):82-97.
[3] Huang Zhen, Siniscalchi Sabato Marco, Lee Chin-Hui. A unified approach to transfer learning of deep neural networks with applications to speaker adaptation in automatic speech recognition[J]. Neurocomputing, 2016,218:448-459.
[4] Krizhevsky Alex, Sutskever Ilya, Hinton Geoffrey E. ImageNet Classification with Deep Convolutional Neural Networks[J]. Communications of the ACM,2017,60(6):84-90.
[5] Ioffe Sergey, Szegedy Christian. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[C]//InternationalConference on Machine Learning.Lille, 2015:448-456.
[6] Huang Gao, Liu Zhuang, Weinberger Kilian Q. Densely Connected Convolutional Networks[C]//IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, 2017:4700-4708.
[7] He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, 2016:770-778.
[8] 紀榮嶸,林紹輝,晁飛, 等.深度神經網絡壓縮與加速綜述[J].計算機研究與發展,2018,55(9):1871-1888.
[9] Han S, Mao H, Dally W J. Deep Compression:Compressing Deep Neural Networks with Pruning,Trained Quantization and Huffman Coding[EB/OL].http//arxiv.org/abs/1510.00149,(2016-02-15).
[10] Howard A G , Zhu M , Chen B , et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[EB/OL].http//arxiv.org/abs/1409.1556,(2017-04-17).
[11] Sandler M , Howard A , Zhu M , et al. Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation[C]//IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, 2018:4510-4520.
[12] Tan M , Chen B , Pang R , et al. MnasNet:Platform-Aware Neural Architecture Search for Mobile[C]//IEEE Conference on Computer Vision and Pattern Recognition. Long Beach, 2019: 2820-2828.
[13] Jie H, Li S, Albanie S, et al. Squeeze-and-Excitation Networks[C]//IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, 2018:7132-7141.
[14] Han S , Pool J , Tran J , et al. Learning both Weights and Connections for Efficient Neural Networks[C]//Neural Information Processing Systems Conference. Barcelona, 2016:1135-1143.
[15] Srinivas S, Subramanya A, Babu R V. Training Sparse Neural Networks[C]//IEEE Conference on Computer Vision and Pattern Recognition Workshops. Honolulu, 2017:138-145.
[16] Liu Z , Li J , Shen Z , et al. Learning Efficient Convolutional Networks through Network Slimming[C]//IEEE International Conference on Computer Vision. Venice, 2017: 2736-2744.
Optimization of Structural Pruning Based on MobileNetV3
Song Feiyang1Wu Liming2Zheng Gengzhe2He Xinying2
(1.College of Information Engineering , Guangdong University of Technology 2.College of Mechanical and Electrical Engineering , Guangdong University of Technology)
With the continuous development and landing of artificial intelligence, deep neural networks have made great achievements in target detection and image recognition, but the excessive parameters and huge calculations of deep neural networks make it difficult to deploy on mobile devices and apps. In order to solve this problem, a high efficiency and light weight MobileNetV3 model combined with structural pruning is proposed to reconstruct and compress the deep neural network. The resulting streamlined model is 3.2 times smaller than the original model, which greatly reduces the amount of computation and memory consumption. The fine-tuned streamlined network model has higher accuracy and better generalization performance than the sparse training network and can run directly on mature frameworks (Pytorch, MXnet or TensorFlow, etc.) or hardware platforms(GPU, FPGA, etc.). No support for special algorithms is required.
Deep Neural Network Compression; MobileNet; Structural Pruning
宋非洋,男,1995年生,碩士研究生,主要研究方向:計算機視覺與深度學習。E-mail:458852863@qq.com
吳黎明,男,1962年生,教授,主要研究方向:人工智能與深度學習。E-mail:jkyjs@gdut.edu.cn
鄭耿哲,男,1996年生,碩士研究生,主要研究方向:計算機視覺與深度學習。E-mail:zhenggengzhe@mail2.gdut.edu.cn
何欣穎,女,1996年生,碩士研究生,主要研究方向:機器視覺、深度學習。E-mail:756594764@qq.com