楊火祥,梁永生
(1. 深圳大學(xué)電子與信息工程學(xué)院,廣東 深圳 518060;2. 哈爾濱工業(yè)大學(xué)(深圳)電子與信息工程學(xué)院,廣東 深圳 518055)
盡管卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)在許多計(jì)算機(jī)視覺(jué)領(lǐng)域取得了巨大的成功,在其不斷發(fā)展的過(guò)程中,卷積神經(jīng)網(wǎng)絡(luò)模型的計(jì)算量和參數(shù)量也隨之增加,這為網(wǎng)絡(luò)模型在計(jì)算力資源或者存儲(chǔ)資源受限設(shè)備上的部署帶來(lái)了巨大挑戰(zhàn),如手機(jī)、可穿戴式設(shè)備等。近些年來(lái),為解決網(wǎng)絡(luò)模型參數(shù)量和計(jì)算量過(guò)大的問(wèn)題,神經(jīng)網(wǎng)絡(luò)的壓縮與加速吸引了很多學(xué)者的關(guān)注。
神經(jīng)網(wǎng)絡(luò)壓縮主要可以分為以下四類(lèi):權(quán)重低秩分解、網(wǎng)絡(luò)剪枝、參數(shù)量化、知識(shí)蒸餾。其中,網(wǎng)絡(luò)剪枝以其操作簡(jiǎn)單、實(shí)施高效等優(yōu)勢(shì)獲得了廣泛的應(yīng)用。在網(wǎng)絡(luò)剪枝中,又主要分為基于權(quán)重的剪枝和基于特征圖的剪枝兩大類(lèi)方法?;跈?quán)重的剪枝方法是一類(lèi)數(shù)據(jù)獨(dú)立的方法,這類(lèi)方法不依賴于數(shù)據(jù)集的分布,在不同網(wǎng)絡(luò)上擁有較好的泛化能獻(xiàn)[5]將權(quán)重梯度的范數(shù)看成連接敏感度的考查指小的濾波器越不重要,應(yīng)該首先被裁剪。文獻(xiàn)[2]通過(guò)計(jì)算所有濾波器的幾何中值,根據(jù)幾何中值的特點(diǎn),靠近幾何中值的濾波器的信息可以用剩下的濾波器表示,即濾波器是冗余的,可以被裁剪掉。文獻(xiàn)[3]對(duì)批歸一化(Batch Normalization, BN)層參數(shù)稀疏化處理,由于BN層與濾波器權(quán)重一一對(duì)應(yīng),對(duì)BN層的稀疏化處理就能選擇濾波器了。文獻(xiàn)[4]對(duì)濾波器進(jìn)行譜聚類(lèi),聚成k組,然后根據(jù)濾波器的貢獻(xiàn)進(jìn)行排序,貢獻(xiàn)小的濾波器會(huì)被剪枝。文標(biāo),定義了濾波器的敏感度。文獻(xiàn)[6]通過(guò)對(duì)模型稀疏化得到稀疏的網(wǎng)絡(luò),通過(guò)BN層和卷積層的稀疏性聯(lián)合剪枝。雖然基于權(quán)重的濾波器剪枝方法能夠適用于大部分網(wǎng)絡(luò),但由于缺乏數(shù)據(jù)先驗(yàn)信息與數(shù)據(jù)標(biāo)簽的指導(dǎo),基于權(quán)重的剪枝方法往往表現(xiàn)出次優(yōu)的剪枝性能并且難以在所有數(shù)據(jù)集上都實(shí)施高效的網(wǎng)絡(luò)壓縮。相反,基于特征圖的方法充分挖掘數(shù)據(jù)的信息分布,根據(jù)數(shù)據(jù)的分布情況來(lái)調(diào)整實(shí)際的剪枝策略,避免了由于數(shù)據(jù)集的變換而導(dǎo)致的剪枝策略失效問(wèn)題。
剪枝方法的目的是剪掉網(wǎng)絡(luò)中不重要的濾波器,基于特征圖的剪枝方法不是直接評(píng)估濾波器的重要性,而是設(shè)計(jì)一個(gè)特征圖重要性的評(píng)估函數(shù)。特征圖是由對(duì)應(yīng)的濾波器經(jīng)過(guò)矩陣運(yùn)算生成,因此特征圖的重要性與生成該特征圖的濾波器的重要性具有正相關(guān)性,刪除不重要的特征圖等效于剪枝冗余的濾波器。
這類(lèi)方法利用訓(xùn)練的數(shù)據(jù)集來(lái)決定需要剪枝的濾波器。文獻(xiàn)[7]通過(guò)下層的特征圖的統(tǒng)計(jì)信息指導(dǎo)當(dāng)前層的濾波器選擇。文獻(xiàn)[8]采樣不同樣本的特征圖,通過(guò)最小化重構(gòu)誤差的方式,同時(shí)利用濾波器空間和特征圖空間中的冗余來(lái)進(jìn)行壓縮。文獻(xiàn)[9]采樣特征圖上的點(diǎn),利用采樣到的點(diǎn)通過(guò)最小化重構(gòu)誤差的方法找到合適的濾波器,并且利用采樣的點(diǎn)來(lái)調(diào)整保留的濾波器的權(quán)重。文獻(xiàn)[10]利用主成分分析(PCA)確定特征圖應(yīng)保留的能量比例并剪枝次要的濾波器。文獻(xiàn)[11]將子空間聚類(lèi)應(yīng)用于特征圖,發(fā)掘特征圖之間的相關(guān)信息,刪除冗余的特征圖從而剪枝對(duì)應(yīng)的濾波器。在現(xiàn)有的基于特征圖的剪枝方法中,特征的所有信息被用來(lái)評(píng)估特征圖的重要性。然而,當(dāng)特征圖中背景或噪聲占主導(dǎo)地位時(shí),用現(xiàn)有方法分析這些特征圖時(shí)會(huì)影響特征圖重要性的判斷,進(jìn)而影響網(wǎng)絡(luò)剪枝的效率。
針對(duì)以上問(wèn)題,提出一種基于特征圖自注意力機(jī)制的剪枝算法。利用同層特征圖之間的相互關(guān)系,將自注意力機(jī)制引入到特征圖中,得到該層的注意區(qū)域。在特征圖上計(jì)算注意區(qū)域的激活能量,有效避免背景及噪聲的干擾。
在認(rèn)知神經(jīng)學(xué)中,注意力機(jī)制是人類(lèi)不可或缺的復(fù)雜認(rèn)知功能。在注意力機(jī)制的支配下人們可以分配更多的注意力在感興趣的信息上,忽視不重要的信息。注意力機(jī)制可以快速提取稀疏數(shù)據(jù)的重要特征,因而被廣泛用于自然語(yǔ)言處理任務(wù)和圖像識(shí)別等任務(wù)上。自注意力機(jī)制是注意力機(jī)制的改進(jìn),其減少了對(duì)外部信息的依賴,更擅長(zhǎng)捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性。
本研究將自注意力機(jī)制應(yīng)用在特征圖上發(fā)掘同層特征圖的注意區(qū)域。思路的動(dòng)機(jī)源于以下實(shí)驗(yàn)發(fā)現(xiàn)。圖1顯示了一張圖像經(jīng)過(guò)ResNet-50的第5個(gè)卷積層并經(jīng)過(guò)相應(yīng)的BN層和激活層之后的生成特征圖。
圖1 給定圖像及其在網(wǎng)絡(luò)同一網(wǎng)絡(luò)層下的特征圖
顯然,注意力集中在物體上,將物體所在區(qū)域稱為注意區(qū)域。由圖1可以看出:
(1)針對(duì)同層的所有特征圖,特征圖中注意區(qū)域雖然相對(duì)原圖有一定的偏移,但不同特征圖上注意區(qū)域位置類(lèi)似(所有特征圖上氣球的位置大致相同);
(2)不同特征圖注意區(qū)域的激活值(像素值)有很大差異,整體而言,注意區(qū)域激活值較大;
(3)紅色矩形里的特征圖信息主要集中在背景區(qū)域,直接分析這些特征圖會(huì)影響網(wǎng)絡(luò)的預(yù)測(cè)精度。
注意區(qū)域的信息包含了特征圖的有用信息,無(wú)論是采用重構(gòu)最小化誤差還是對(duì)信息建模分析,僅研究注意區(qū)域的信息分布可以避免大量無(wú)用背景信息的干擾,有利于獲得更高效神經(jīng)網(wǎng)絡(luò)壓縮。
如文獻(xiàn)[12]中報(bào)道,基于權(quán)重的剪枝算法忽略了數(shù)據(jù)和標(biāo)簽的分布,可能導(dǎo)致剪枝效率低下,剪枝后的模型精度較差。特征圖是輸入圖像在網(wǎng)絡(luò)傳播中,經(jīng)過(guò)權(quán)重的矩陣運(yùn)算的產(chǎn)物,特征圖的重要性可以表示為一種濾波器屬性,且濾波器重要程度與其生成的特征圖重要程度正相關(guān)??紤]到數(shù)據(jù)的分布,基于特征圖的剪枝方法對(duì)特征圖進(jìn)行評(píng)估,能充分挖掘數(shù)據(jù)的先驗(yàn)信息。因此,基于特征圖的重要性評(píng)估,公式(3)可以轉(zhuǎn)變?yōu)槿缦拢?/p>
采用基于特征圖的剪枝方案,為了避免噪聲和背景的影響,評(píng)估特征圖重要性時(shí)候只對(duì)特征圖注意區(qū)域進(jìn)行分析。通過(guò)比較每個(gè)特征圖在注意區(qū)域的激活能量,對(duì)特征圖重要性排序,刪除激活能量較小的特征圖。具體可以表示成公式:
公式(5)表示的是一幅圖像生成特征圖的激活能量。將注意區(qū)域激活能量作為評(píng)判尺度,來(lái)判斷整個(gè)數(shù)據(jù)集上特征圖通道是否重要,前提是激活能量分布在整個(gè)數(shù)據(jù)集上是魯棒的。幸運(yùn)地,通過(guò)大量的實(shí)驗(yàn)與觀察,發(fā)現(xiàn)激活能量分布滿足以上要求。如圖2所示的每個(gè)子圖表示VGG16網(wǎng)絡(luò)某一層的特征圖激活能量分布,x軸表示特征圖所在的通道,y軸表示采樣圖像的數(shù)量。圖像中顏色對(duì)應(yīng)特征圖平均激活能量的大小,顏色差異越小意味著特征圖平均激活能量越接近。
圖2 不同樣本數(shù)特征圖的平均激活能量分布
由圖2可以看出,由少量樣本生成的特征圖在同一通道上的平均激活能量與更多樣本對(duì)應(yīng)的平均激活能量幾乎保持不變(圖片中每列的顏色幾乎不變)。只需要少量樣本就能有效估計(jì)出整個(gè)數(shù)據(jù)集在每層特征圖通道上的平均激活能量。在此基礎(chǔ)上,定義每個(gè)特征圖上的激活能量期望為:
g從數(shù)據(jù)集中采樣樣本的數(shù)量,因此公式(4)可以重新描述為:
根據(jù)以上分析,提出的剪枝算法的工作框架圖如圖3。
圖3 基于特征圖自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)剪枝框架圖
工作流程如下:對(duì)某一層卷積,每一個(gè)特征圖由對(duì)應(yīng)的濾波器經(jīng)過(guò)運(yùn)算生成?;谔卣鲌D自注意力機(jī)制的濾波器選擇模塊,通過(guò)公式(5)計(jì)算每個(gè)特征圖的激活能量,對(duì)多個(gè)樣本,通過(guò)公式(6)計(jì)算每個(gè)通道上特征圖的激活能量期望。對(duì)這些激活能量期望值排序,刪除較小的個(gè)值對(duì)應(yīng)的特征圖通道,同時(shí)剪枝對(duì)應(yīng)的濾波器。在剪枝濾波器后,為了使模型恢復(fù)原有的精度,需要對(duì)模型微調(diào)。
評(píng)價(jià)尺度和數(shù)據(jù)集:為評(píng)估本算法的性能,我們采用廣泛使用的壓縮評(píng)估尺度,即參數(shù)量(Parameters)和浮點(diǎn)運(yùn)算量(Float Points Operations, FLOPS),并且在圖像分類(lèi)任務(wù)上與現(xiàn)有流行的方法進(jìn)行比較。實(shí)驗(yàn)中使用的基準(zhǔn)數(shù)據(jù)集為CIFAR-10和ImageNet。在CIFAR-10數(shù)據(jù)集上,對(duì)比Top-1準(zhǔn)確率以及剪枝率(Pruning ratio, PR),在ImageNet數(shù)據(jù)集上,出Top-1和PR外,還需要比較Top-5準(zhǔn)確率。
基準(zhǔn)網(wǎng)絡(luò):為了驗(yàn)證算法在不同網(wǎng)絡(luò)上減少模型復(fù)雜度的有效性。我們?cè)诓煌木W(wǎng)絡(luò)結(jié)構(gòu)上對(duì)算法進(jìn)行評(píng)測(cè),包括單分支結(jié)構(gòu)(VGGNet[13]),多分支結(jié)構(gòu)(ResNet[14]和DenseNet[15])。使用不同類(lèi)型的基準(zhǔn)網(wǎng)絡(luò)測(cè)試算法,使算法評(píng)估更系統(tǒng)、更準(zhǔn)確。
實(shí)驗(yàn)環(huán)境及參數(shù)配置:本文所有的實(shí)驗(yàn)都是在Pytorch框架下,使用SGD優(yōu)化策略對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化。數(shù)據(jù)增廣采用和Pytorch官方例子一致的策略。在CIFAR-10數(shù)據(jù)集上,剪枝后微調(diào)網(wǎng)絡(luò)設(shè)置動(dòng)量為0.9,Batch設(shè)置為256,學(xué)習(xí)率初始設(shè)置為0.1,每50代降為原學(xué)習(xí)率的0.1倍,總共微調(diào)150代。在ImageNet數(shù)據(jù)集上,剪枝后微調(diào)90代,初始學(xué)習(xí)率也設(shè)為0.1,每30代下降一次學(xué)習(xí)率,調(diào)整為原來(lái)的0.1倍,SGD中的權(quán)重衰減參數(shù)設(shè)置為1e-4。
在CIFAR-10數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果:為了驗(yàn)證本文算法的通用性和有效性,對(duì)三種流行的網(wǎng)絡(luò)結(jié)構(gòu)剪枝分析,包括單枝結(jié)構(gòu)的VGG-16網(wǎng)絡(luò),多枝結(jié)構(gòu)的ResNet-56/110和DenseNet-40網(wǎng)絡(luò)。與現(xiàn)有方法進(jìn)行公平的對(duì)比,從理論和經(jīng)驗(yàn)上證明了算法的有效性。
單枝結(jié)構(gòu):為驗(yàn)證算法在單枝結(jié)構(gòu)網(wǎng)絡(luò)上的剪枝效率,對(duì)VGG-16網(wǎng)絡(luò)進(jìn)行剪枝實(shí)驗(yàn)分析,實(shí)驗(yàn)結(jié)果如表1所示。
表1 VGG-16在CIFAR-10上的剪枝結(jié)果
實(shí)驗(yàn)對(duì)比了一些不同的剪枝方法,包括基于權(quán)重的剪枝方法:L1和FPGM。這兩種方法在剪枝率較低時(shí)有不錯(cuò)的剪枝性能,分類(lèi)準(zhǔn)確率下降0.5%左右。但是由于缺少數(shù)據(jù)集的先驗(yàn)信息指導(dǎo),剪枝性能不如本文提出的剪枝方法。我們的方法在更高的剪枝率下準(zhǔn)確率不僅沒(méi)有下降,甚至有所上升。同時(shí)實(shí)驗(yàn)也對(duì)比了一些基于特征圖的剪枝方法,如Hrank。由于Hrank利用了數(shù)據(jù)的先驗(yàn)信息以及特征圖的分布信息,在較高的壓縮率下依然保有較好的分類(lèi)準(zhǔn)確率。但由于會(huì)受到圖像中背景和噪聲的干擾,剪枝性能仍然不如該方法。該方法剪枝后的模型計(jì)算量?jī)H為Hrank剪枝模型計(jì)算量的70%,卻達(dá)到了更高的分類(lèi)準(zhǔn)確率。同時(shí),對(duì)比了一些自適應(yīng)判斷濾波器重要性的方法,我們的方法在更多的計(jì)算量和參數(shù)量縮減下,達(dá)到了更高的分類(lèi)準(zhǔn)確率。
多枝結(jié)構(gòu):選取了三種流行的多枝結(jié)構(gòu)網(wǎng)絡(luò)作為基準(zhǔn)網(wǎng)絡(luò):ResNet-56、ResNet-110和DenseNet-40。對(duì)于ResNet-56/110,在多枝連接處,特征圖通過(guò)多個(gè)分支累加獲得,因此采用聯(lián)合剪枝多個(gè)分支的方式,每個(gè)分支裁剪掉相同的特征圖通道。對(duì)于DenseNet-40,在多枝連接處,通過(guò)級(jí)聯(lián)拼接的方式獲得特征圖,為了簡(jiǎn)便起見(jiàn),當(dāng)卷積層生成的特征圖具有相同的分辨率時(shí),實(shí)驗(yàn)設(shè)置成相同的剪枝率。經(jīng)過(guò)上述處理后,可以像剪枝單枝結(jié)構(gòu)一樣處理多枝網(wǎng)絡(luò),并保持多枝之間的信息平衡。具體實(shí)驗(yàn)結(jié)果如表2所示。
在以ResNet-56/110作為基準(zhǔn)網(wǎng)絡(luò)的實(shí)驗(yàn)中,該算法在剪枝后的模型在準(zhǔn)確度上甚至超過(guò)了原模型,如ResNet-56在減少28%FLOPs的情況下準(zhǔn)確率提升了0.89%,ResNet-110在減少44%FLOPs的情況下準(zhǔn)確率提升了0.92%。而其他基于權(quán)重或者基于特征圖的剪枝方法剪枝后的模型準(zhǔn)確度有所下降。不僅如此,在三種基準(zhǔn)網(wǎng)絡(luò)的剪枝結(jié)果上,該方法都能實(shí)現(xiàn)在更多的剪枝率下實(shí)現(xiàn)更好的分類(lèi)準(zhǔn)確率。說(shuō)明了該算法同樣適用于多枝結(jié)構(gòu),也能獲得較好的壓縮效率。
表2 多枝結(jié)構(gòu)網(wǎng)絡(luò)在CIFAR-10上的剪枝結(jié)果
?
在ImageNet數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果:為了驗(yàn)證本算法在不同數(shù)據(jù)集上的普適性,在更富有挑戰(zhàn)的ImageNet數(shù)據(jù)集上,以ResNet-50為基準(zhǔn)網(wǎng)絡(luò)進(jìn)行剪枝實(shí)驗(yàn),同時(shí)對(duì)比大量的現(xiàn)有剪枝方法。實(shí)驗(yàn)結(jié)果如表3所示。整體而言,方法剪枝效率優(yōu)于所有其他對(duì)比的方法。我們測(cè)試了三種剪枝率,在低剪枝率下,在FLOPs和參數(shù)量分別減少44.0%和43.8%的情況下,該方法獲得了75.60%的Top-1準(zhǔn)確率和92.60%的Top-5準(zhǔn)確率。所提方法在FLOPs和參數(shù)量縮減方面顯示出更多的優(yōu)勢(shì),并且性能顯著優(yōu)于SSS、CP、SFP和HRank。在高剪枝率下,與ThiNet、GAL-1Joint和HRank相比,在更大的剪枝率下(76.7%的Flops和68.6%的參數(shù)縮減),該方法壓縮更有效(72.19%的Top-1準(zhǔn)確率和90.68%的Top-5準(zhǔn)確率),在Top-1分類(lèi)準(zhǔn)確率上至少優(yōu)于對(duì)比方法2%。此外,F(xiàn)PGM方法的剪枝性能與該方法接近,而在CIFAR-10上,我們的方法顯著優(yōu)于FPGM。這說(shuō)明FPGM更加適用于ImageNet數(shù)據(jù)集,同時(shí)也再次驗(yàn)證了基于權(quán)重的剪枝方法不能有效地利用數(shù)據(jù)的先驗(yàn)信息,很難獲得在所有數(shù)據(jù)集上的高效性。綜上所述,該方法同樣適用于復(fù)雜的數(shù)據(jù)集,且相較于其他方法有較為明顯的優(yōu)勢(shì)。
表3 ResNet-50在ImageNet上的剪枝結(jié)果
本文提出了一種基于特征圖自注意力機(jī)制的濾波器剪枝方法,該方法通過(guò)特征圖的自注意力機(jī)制確定每層特征圖的注意區(qū)域,計(jì)算特征圖在注意區(qū)域的激活能量來(lái)確定對(duì)應(yīng)濾波器的重要性。通過(guò)實(shí)驗(yàn)觀察,證明了少量數(shù)據(jù)在網(wǎng)絡(luò)傳播中生成的特征圖的激活能量分布能代表整個(gè)數(shù)據(jù)集相應(yīng)的激活能量分布。激活能量小的特征圖重要性低,應(yīng)該先被刪除,同時(shí)剪枝生成這些特征圖的濾波器,保留激活能量大的特征圖。最后,在各種流行的網(wǎng)絡(luò)結(jié)構(gòu)中證明了算法的有效性。例如,對(duì)于VGG-16在CIFAR-10上的分類(lèi)任務(wù),在降低58.1%網(wǎng)絡(luò)計(jì)算量的情況下,分類(lèi)準(zhǔn)確率甚至從93.96%上升到94.02%。對(duì)于ResNet-50在ImageNet的分類(lèi)任務(wù),在減少45%網(wǎng)絡(luò)計(jì)算量時(shí)只有0.55%的精度損失。在顯著減少網(wǎng)絡(luò)參數(shù)量和計(jì)算量的情況下,模型依然維持較高的分類(lèi)準(zhǔn)確率。未來(lái)希望可以進(jìn)一步挖掘注意力機(jī)制與網(wǎng)絡(luò)剪枝之間的關(guān)系。