高文曉
北方民族大學(xué)電氣信息工程學(xué)院 寧夏 銀川 750021
正確進(jìn)行垃圾分類和分類處理可以促進(jìn)資源再利用,避免垃圾處理造成二次危害。傳統(tǒng)的垃圾分類主要依靠人工分揀,需要耗費(fèi)大量人力物力,而且不利于人們的身體健康。隨著深度學(xué)習(xí)技術(shù)的不斷進(jìn)步與發(fā)展,借助計(jì)算機(jī)視覺進(jìn)行垃圾分類的研究得到了廣泛研究與應(yīng)用。但是由于神經(jīng)網(wǎng)絡(luò)復(fù)雜的結(jié)構(gòu)和龐大的參數(shù)量,使模型在邊緣設(shè)備上的部署和應(yīng)用變得十分困難。研究表明,神經(jīng)網(wǎng)絡(luò)的內(nèi)部存在大量的冗余參數(shù),去除這些參數(shù)可以對網(wǎng)絡(luò)進(jìn)行精簡,在保證識別精度的基礎(chǔ)上降低模型的參數(shù)和計(jì)算量,從而實(shí)現(xiàn)在嵌入式設(shè)備上的部署[1],對網(wǎng)絡(luò)進(jìn)行壓縮成為研究熱點(diǎn)。
模型剪枝具有原理簡單、易實(shí)現(xiàn)、壓縮效果顯著的特點(diǎn),被廣泛應(yīng)用于模型壓縮。剪枝主要分為非結(jié)構(gòu)化剪枝和結(jié)構(gòu)化剪枝,其中非結(jié)構(gòu)化剪枝的模型需要專門的算法或硬件結(jié)構(gòu)才能實(shí)現(xiàn)加速[2];結(jié)構(gòu)化剪枝是對通道、卷積核等結(jié)構(gòu)進(jìn)行剪枝,不依靠特定的軟硬件平臺,更有利于嵌入式設(shè)備的部署,目前得到了廣泛應(yīng)用。
如何準(zhǔn)確評價網(wǎng)絡(luò)結(jié)構(gòu)的重要程度是結(jié)構(gòu)化剪枝過程中的主要問題。Li等人提出將濾波器的L1范數(shù)作為衡量標(biāo)準(zhǔn)[3];Hassibi等人利用誤差函數(shù)的二階導(dǎo)數(shù)去對權(quán)重的重要性進(jìn)行衡量[4];Wen等人將不同粒度的剪枝作為正項(xiàng)添加進(jìn)損失函數(shù)中進(jìn)行學(xué)習(xí)[5];Hu等人提出利用激活函數(shù)的輸出值對神經(jīng)元重要性進(jìn)行評價[6];Molchanov等人提一種基于泰勒展開式的通道評價標(biāo)準(zhǔn)[7];He等人提出了一種基于Lasso回歸和最小重構(gòu)誤差的方法衡量濾波器的重要性程度[8]。
本文受注意力機(jī)制對數(shù)據(jù)的重要部分進(jìn)行增強(qiáng),不重要部分進(jìn)行減弱的啟發(fā),提出一種基于注意力機(jī)制的剪枝算法??梢詮目臻g和通道兩個維度對特征圖進(jìn)行標(biāo)定,同時生成每個通道的權(quán)值,該值代表著通道在分類任務(wù)中的重要性程度,進(jìn)而根據(jù)該值指導(dǎo)模型剪枝。
本文提出的混合注意力模塊包含空間注意力模塊和通道注意力模塊兩部分。
圖1 改進(jìn)的空間注意力模塊結(jié)構(gòu)圖
將與分別與輸入特征圖F逐元素相乘實(shí)現(xiàn)對特征圖行和列方向的重構(gòu)得到和。然后如(3)所示將和逐元素相加得到包含兩個方向注意力的特征圖。
圖2是改進(jìn)的通道注意力模塊結(jié)構(gòu)圖,使用全局平均池化和全局最大池化得到兩個一維向量和,同時使用這兩種池化方式可以有效提高通道注意力的評價能力。使用1×k的一維卷積對每個通道的k個近鄰進(jìn)行交互得到兩個通道注意力特征向量和,然后將這兩個向量進(jìn)行逐元素相加和sigmoid運(yùn)算得到通道注意力向量。改進(jìn)的通道注意力部分計(jì)算過程如(4)所示。
圖2 改進(jìn)的通道注意力模塊結(jié)構(gòu)圖
經(jīng)過混合注意力模塊不僅能夠增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)的性能,同時也能生成同一卷積層中不同通道的重要性評價向量。考慮到不同輸入經(jīng)過混合注意力模塊生成的通道描述向量不同,為了避免個別樣本造成的偏差這里對不同輸入圖像產(chǎn)生的通道描述向量進(jìn)行逐元素求均值,得到一個匯集不同輸入特征信息的通道評價向量,從而得到更準(zhǔn)確的各個通道的權(quán)重值。具體每一層的通道重要性得分計(jì)算算法如表1所示。對所有卷積層i層包含的全部j個通道基于第d張圖像生成的注意力權(quán)重進(jìn)行累加,然后除以D得到平均值,計(jì)算過程如(5)所示。即通過注意力機(jī)制生成的每一個通道的重要性評價得分,根據(jù)該值可以對通道進(jìn)行重要性排序和去除。
其中,i∈{1,2,…,l}, j∈{1,2,…,C}, d∈{1,2,…,D}, C代表通道數(shù)量,D代表數(shù)據(jù)集的圖像數(shù)量。
考慮到不同的卷積層所提取的信息特征不同,如果設(shè)置統(tǒng)一的閾值,可能會使某一層通道剪枝過度造成較大的精度損失,所以本文對每一層設(shè)置相同的剪枝比例p。根據(jù)剪枝比例p、每層通道數(shù)目和通道重要性排序結(jié)果得到各層的閾值,然后根據(jù)該閾值進(jìn)行剪枝。
首先將混合注意力模塊插入預(yù)剪枝的網(wǎng)絡(luò)中需要剪枝卷積層的后面,對網(wǎng)絡(luò)進(jìn)行微調(diào)及推理得到每層各個通道的重要性排序;其次,根據(jù)預(yù)設(shè)剪枝率p對網(wǎng)絡(luò)逐層剪枝,并移除對應(yīng)層插入的混合注意力模塊,每完成一層剪枝對網(wǎng)絡(luò)進(jìn)行一次微調(diào);最后,完成全部剪枝后對網(wǎng)絡(luò)進(jìn)行整體微調(diào)提高精度。
本文模型訓(xùn)練和剪枝實(shí)驗(yàn)在Ubuntu 18.04系統(tǒng)下進(jìn)行,CPU為Intel(R) Xeon(R) E-2236 ,GPU為NVIDIA Tesla P100。
本文實(shí)驗(yàn)數(shù)據(jù)集為TrashNet和自行構(gòu)建的生活垃圾數(shù)據(jù)集。
TrashNet數(shù)據(jù)集包含6類,共計(jì)2507張圖片。本文對公開數(shù)據(jù)集TrashNet和garbage_classify進(jìn)行篩選和補(bǔ)充,如表1所示選取了30種常見垃圾構(gòu)建了生活垃圾數(shù)據(jù)集。本文構(gòu)建的生活垃圾數(shù)據(jù)集總計(jì)38000張圖片,將數(shù)據(jù)集進(jìn)行劃分得到訓(xùn)練集樣本26600張,驗(yàn)證集樣本7600張,測試集樣本3800張。
表1 生活垃圾數(shù)據(jù)集構(gòu)成
3.2.1 在TrashNet數(shù)據(jù)集上的實(shí)驗(yàn)。在公開垃圾數(shù)據(jù)集TrashNet上對ResNet50和VGG16網(wǎng)絡(luò)進(jìn)行不同剪枝率及不同剪枝方法的對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如圖3所示,圖案面積大小和標(biāo)注分別代表剪枝后模型的FLOPs(M)和參數(shù)量(M)。隨著剪枝率增加,模型FLOPs和參數(shù)量減小的同時準(zhǔn)確率緩慢降,整體來說基于混合注意力機(jī)制指導(dǎo)下的剪枝方法帶來的準(zhǔn)確率損失較小。本文方法與基于通道L1范數(shù)剪枝算法(L1nrom) ,網(wǎng)絡(luò)瘦身剪枝算法(slimming pruning)進(jìn)行實(shí)驗(yàn)對比。對于ResNet50,壓縮率為0.3時,本文方法準(zhǔn)確率要比基于通道L1范數(shù)剪枝算法和網(wǎng)絡(luò)瘦身剪枝算法分別高0.72%和0.03%;當(dāng)壓縮率為0.5時,本文方法準(zhǔn)確率要比基于通道L1范數(shù)剪枝算法和網(wǎng)絡(luò)瘦身剪枝算法分別高1.18%和1.03%。本文方法整體表現(xiàn)要優(yōu)于其他兩種方法。
圖3 ResNet50和VGG16在TrashNet數(shù)據(jù)集上的剪枝實(shí)驗(yàn)結(jié)果
3.2.2 在自建垃圾數(shù)據(jù)集上的剪枝實(shí)驗(yàn)。在本文構(gòu)建的垃圾數(shù)據(jù)集上對ResNet50和VGG16網(wǎng)絡(luò)進(jìn)行訓(xùn)練和剪枝實(shí)驗(yàn)。如圖4所示ResNet50和VGG16基準(zhǔn)模型準(zhǔn)確率分別為93.75%和91.98%。壓縮率為0.3時,ResNet50和VGG16的準(zhǔn)確率分別為93.31%和91.73%,參數(shù)量非別為14.92M和96.2M。壓縮率為0.5時,ResNet50和VGG16的準(zhǔn)確率分別為92.35%和91.12%,參數(shù)量分別為9.98M和71.97M。結(jié)果顯示本文方法對ResNet50和VGG16模型可以進(jìn)行有效的壓縮同時僅損失較少的準(zhǔn)確率。
圖4 VGG16與ResNet50在本文生活垃圾數(shù)據(jù)集上的剪枝實(shí)驗(yàn)結(jié)果對比
為使神經(jīng)網(wǎng)絡(luò)模型更便于在邊緣設(shè)備上部署和應(yīng)用,本文提出了一種基于改進(jìn)注意力機(jī)制的剪枝算法?;谠摶旌献⒁饬δK的剪枝算法能夠在較少準(zhǔn)確率損失的前提下對網(wǎng)絡(luò)進(jìn)行有效壓縮。本文剪枝方法可以進(jìn)一步與量化等方法結(jié)合進(jìn)一步壓縮模型。