摘要:針對(duì)YOLO系列算法參數(shù)量大、算法復(fù)雜度咼提出一種基于BN(batchnormalization)層■枝方法。該方法先通過對(duì)BN層的縮放系數(shù)7以及平移系數(shù)0添加正則化約束訓(xùn)練,根據(jù)BN層參數(shù)以及卷積層各通道對(duì)網(wǎng)絡(luò)貢獻(xiàn)度等指標(biāo)設(shè)定合適閾值進(jìn)行剪枝。該方法在基本沒有精度損失的前提下對(duì)YOLOv4Tiny模型壓縮11倍,計(jì)算量減少72%,在CPU和GPU處理器下推理速度分別增快44%和29%。實(shí)驗(yàn)結(jié)果表明,該剪枝方法能保持模型良好性能的前提下壓縮模型,減少參數(shù),降低算法復(fù)雜度。
關(guān)鍵詞:深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);YOLOv4Tiny;YOLOv3Tiny;模型剪枝;稀疏訓(xùn)練
曹遠(yuǎn)杰;高瑜翔;劉海波;吳美霖;涂雅培;夏朝禹成都信息工程大學(xué)學(xué)報(bào)2021-12-13
0引言
隨著計(jì)算機(jī)視覺的發(fā)展,對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)性能要求提高,出現(xiàn)許多優(yōu)秀的深層神經(jīng)網(wǎng)絡(luò)模型[13],如VGGNet、GoogleNet、ResNet、DenseNet等。伴隨性能提高的同時(shí),網(wǎng)絡(luò)層數(shù)也在不斷增加。這些網(wǎng)絡(luò)都因?yàn)樗惴◤?fù)雜度太高難以在嵌人式平臺(tái)等資源較少的設(shè)備應(yīng)用。針對(duì)網(wǎng)絡(luò)模型太大、參數(shù)量太多、算法計(jì)算量(FLOPs)大等問題,出現(xiàn)許多解決方案。如SqueezeNet網(wǎng)絡(luò),網(wǎng)絡(luò)米用squeeze和expand兩部分,squeeze部分由1x1的卷積組成,expand部分是將1x1和3x3兩種層的輸出特征圖進(jìn)行合并(<:on<:at);Mo-bileNets網(wǎng)絡(luò),網(wǎng)絡(luò)主要采用深度可分離卷積[45]替代傳統(tǒng)卷積。深度可分離卷積由通道卷積和點(diǎn)卷積組成,相較于傳統(tǒng)卷積在卷積核越大的情況下能降低更多的參數(shù)量和計(jì)算量。輕量化模型在不同的處理器上展示性能也不同,由于采用深度可分離網(wǎng)絡(luò)會(huì)增加模型訪存量,也會(huì)降低模型性能。
深度學(xué)習(xí)網(wǎng)絡(luò)模型有很大一部分參數(shù)對(duì)結(jié)果沒有影響W,為壓縮深度學(xué)習(xí)模型,除設(shè)計(jì)輕量級(jí)結(jié)構(gòu)以外還可以對(duì)模型進(jìn)行剪枝[7],通過對(duì)每個(gè)卷積層進(jìn)行結(jié)果貢獻(xiàn)度排序,減去冗余的通道,可以有效地壓縮模型,降低計(jì)算量。文獻(xiàn)[8]提出對(duì)網(wǎng)絡(luò)迭代剪枝,獲得一個(gè)精簡(jiǎn)模型,最終在沒有精度損失前提下AlexNet參數(shù)量減少9倍。有研究者提出不需要稀疏卷積庫(kù)的支持,直接對(duì)權(quán)重大小排序進(jìn)行剪枝。模型中加人稀疏約束項(xiàng)可以使卷積中的部分參數(shù)趨近于0,獲得稀疏權(quán)值m。姚巍巍等[1°]提出針對(duì)BN層7參數(shù)添加L1正則化稀疏約束,大部分的神經(jīng)元輸出為0,通過對(duì)這些不重要神經(jīng)元進(jìn)行修剪來迭代優(yōu)化網(wǎng)絡(luò)。
基于以上方法,針對(duì)Y0L0v4-Tiny模型提出一種更精確的剪枝方法完成輕量化模型設(shè)計(jì)。該方法在BN層參數(shù)7和0添加L1正則化約束,然后對(duì)每個(gè)通道權(quán)值的絕對(duì)值均值大小排序,根據(jù)每個(gè)通道權(quán)重絕對(duì)值的均值、y/Ja^+e和jB-iJbpj/Jal+e這3個(gè)值判斷是否滿足剪枝條件。該方法無疑比單純判斷7系數(shù)或者卷積層大小更可靠。模型剪掉大量參數(shù)后精度會(huì)下降,微調(diào)后即可恢復(fù)精度。
1YOLOv4-Tiny
YOLO(youonlylookonce)算法[ll]是典型的目標(biāo)檢測(cè)onestage方法,將預(yù)測(cè)和分類通過一個(gè)網(wǎng)絡(luò)直接得出結(jié)果,特點(diǎn)就是推理速度很快,檢測(cè)效率高。2020年提出了YOLOv4[l2]和Y0L0v4-Tiny兩種目標(biāo)檢測(cè)算法。Y0L0v4-Tiny相較于Y0L0v3-Tiny算法結(jié)構(gòu)更復(fù)雜,但精度有小提升,并用參數(shù)更少。與Y0L0v3-Tiny類似,輸出兩種尺度大小的特征圖[13]。Y0L0v4-Tiny在結(jié)構(gòu)上采用CSP結(jié)構(gòu)作為主干網(wǎng)絡(luò),該結(jié)構(gòu)將第一個(gè)卷積的一半特征圖用于結(jié)構(gòu)內(nèi)卷積使用,最終再進(jìn)行合并(concat)操作。Y0L0v4-Tiny網(wǎng)絡(luò)結(jié)構(gòu)圖1所刀、
2YOLOv4-Tiny的稀疏化剪枝
針對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)模型余參數(shù)過多導(dǎo)致算法復(fù)雜度就推理速度慢等何氣先闡述模型的稀疏訓(xùn)練原理,苒對(duì)稀疏后的權(quán)重和—層進(jìn)行大小排序,通過設(shè)定的閾值進(jìn)行剪枝完成YOLCM-Tiny賺量化模型冊(cè)a
2.1稀疏化訓(xùn)練
主要通過對(duì)BN層添加L1正則化約料麗■參數(shù)稀疏化。lommlizationW—GTOgte提出的一種訓(xùn)練技巧,在模型訓(xùn)練時(shí)將BN層加人每個(gè)卷積后,可解決釧練收斂慢等問題,還在一定程度上控制梯度爆炸。假設(shè)卷積層輸出為尤,則經(jīng)過麗層后輸出為4其片,為BN層輸出,y為BN層縮放系數(shù),/S為乎移系數(shù)?和4為均值和方差,為常數(shù),Y0LO4-Tiny算法中一般取值為0.001。Leskyilelu層的輸出為=LeakyRelu?X+/3-^其中3Wu為瀲活層輸出,為激活函數(shù)。(2)當(dāng)激潔函數(shù)內(nèi)的值趨近于0時(shí)可以看作輸出為0,對(duì)后面的卷積沒有甩。基于UakyRdu激活函數(shù),根據(jù)式(2),當(dāng)蠢數(shù)b=y/Jcr^+s和b=P-i^y/njcr^+s較小時(shí),通過澈活函數(shù)后輸出對(duì)網(wǎng)絡(luò)貢獻(xiàn)非常小,可以將其剪掉。由于均值,方差?和6都為定值,所以只霉襄判斷7和召兩個(gè)參數(shù)足夠小即可。為方便判斷,對(duì)BN層y和召參數(shù)都進(jìn)行L1疋則化約束uL1范數(shù)公式為/2(0)=i0,,(3)L1范數(shù)是求各元素絕對(duì)值之和,假設(shè)目標(biāo)函數(shù)為其中,J為原目標(biāo)函數(shù)為添加L1疋則化約東后的目標(biāo)函數(shù),0秀參數(shù),2■為輸人,J?為標(biāo)靈,a為正測(cè)化系數(shù),隹制約束力度。由式(4)可知,比較大時(shí),粟使/盡可能小向〇趨近,_此L1正則化約束可以將參數(shù)稀疏化。對(duì)BN層添加U正則化約束宕,參數(shù)a=y/V〇>5和參數(shù)厶=/3-/^y/Vcr|+及稀疏度如圖2所示。
圖2是采用a為0.0001時(shí)稀疏訓(xùn)練后的第15個(gè)BN?參數(shù)頻數(shù)直方圖,由于15層參數(shù)較多,比較直觀,更具普麗性a由圖2可知,添加L1正則化約束后的參數(shù)有大部分參數(shù)都趨近f〇,可以將大部分的冗余通道剪去。嚭過實(shí)驗(yàn)驗(yàn)證,由于采用a=0.001訓(xùn)練后精度下降比較大,故采用a=0.0001進(jìn)行稀疏訓(xùn)練,訓(xùn)練后精度還提升了0.1個(gè)百分點(diǎn)。
2.2剪枝和優(yōu)化
模型的BN層通過稀疏化后對(duì)參數(shù)n和6進(jìn)行大小排序,假設(shè)其中參數(shù)“的集合為4=U,,a2,,…,%i,愈數(shù)6的集合為iH…Ah將卷積層的每層通道的權(quán)值助絕對(duì)值求和取平均后得到集;合Fiw,,?2,a>s…|Q第一層,的頻數(shù)分_直方'鷹如圖3所示,第一層參數(shù)較少。
由囿3可知,稀疏訓(xùn)練、后各通道均值差別較大。F集合中可以.剪掉的通道比普通逋道均值小了約1〇7倍:a假設(shè)輸入A為1,權(quán)值、a和fr參數(shù)郁為3E:|,(%XM,X£+6,)可以粗略地看作第;:層BNs的輸出特征圖,此處五為和輸出特征B太小一#的全1矩陣。r集合各元素取均值為必,涵由于通道均值差別太的原因向0趨近,當(dāng)a,<品且6,小于一個(gè)很小的數(shù)時(shí),可以判別為第(層輸出對(duì)結(jié)果貢獻(xiàn)小。判另拭為(Ia-1<(Tp+sB的參數(shù)jf|層,為第的意思上與為&&的倒數(shù)遣大小各通,此處設(shè)的數(shù)小很設(shè)為一個(gè)率枝剪節(jié)調(diào)以用常數(shù)F均值再取均值;A-和,也就是各通道均值的f有權(quán)值該層卷積層Iffi^crl+y丨層參數(shù)f:層為-第,I,akf)<(bkx>
如式【2)所示,BN層周是在做線性運(yùn)算,剪枝后即可將BN層融入到卷積層當(dāng)中以減少箅法訪存暈,加快推理速度。假設(shè)第i層權(quán)重為
3實(shí)驗(yàn)結(jié)果及分析
為驗(yàn)證該剪枝算法,實(shí)驗(yàn)在YOL〇v4-Tiny和YOLOd-Tiny以及采用GhostNet_構(gòu)所構(gòu)造__量馨網(wǎng)絡(luò)(YOLO-Ghoglet)1115]3種鏡虐進(jìn)行自ft靡滅^
3.1實(shí)驗(yàn)平臺(tái)和數(shù)據(jù)
由于硬件設(shè)備有限,虞驗(yàn)均采用10097張飲料數(shù)據(jù):氣數(shù)據(jù)集包含4個(gè)種類,分別為可樂、綠茶、雪_、王老吉,每個(gè)種類太約2500張。其中測(cè)試集908張,訓(xùn)練集8281張9實(shí)驗(yàn)軟件平臺(tái)為PyGliami,訓(xùn)練與驗(yàn)證框架為KerasTemwrfbwl.13-GPU?CPU處理器下進(jìn)行。硬件乎臺(tái)為CPU(AMDR_en53500X),GPU(這DQ0606〇,16(J_(3600MHz):。訓(xùn)練均采用B_h§fce=4。
3.2實(shí)驗(yàn)結(jié)果及分析
根據(jù)式(5),當(dāng)A=1時(shí),Y0L0v4-Tiny剪枝前后各卷積層對(duì)比如表1所示。
比較大,不同慕拫據(jù)冗余通道的多少剪枝率也不相同,整體剪枝率達(dá)到91%。其中舉3、7、11層卷積為如圍4所示的CSP塊中黃色部分的第一個(gè)卷積層,該層分為了兩步第一歩是將卷積層的后半部分通道進(jìn)行下^步卷積,如圖4黃色解析部分的上_一條卷積路線。第二杳是將所有通道進(jìn)行卷積,如圖4黃色解析部分的下面一條卷積路線。最終將兩條路線輸出的特征圖進(jìn)行合并
CSP結(jié)構(gòu)中的黃色部分解析如圖4中下商黃色部分所葙。對(duì)該層剪枝后分布會(huì)變椿不均勻,所以剪枝后不能再將第一個(gè)卷積的一半遒道進(jìn)行后面卷積了。根據(jù)每層剪枝通道的不同,分出的通道也不一樣。如第三個(gè)卷積震.剪枝爵試有42個(gè)輸出通道,如果分一半通道進(jìn)行國(guó)4所示的第一步卷積,那將會(huì)破壞之前訓(xùn)練的結(jié)構(gòu)。根據(jù)剪枝通道編醫(yī)可知,第三個(gè)卷積層的前半部分剪15個(gè)通道,后半部分剪7個(gè)通道。因此,第三個(gè)卷積暴只分出后調(diào)的25個(gè)通道迸行第一步卷積。
Y_v3-Ti坤和YOL〇v4-Tiiiy及以講0義t春積模_所構(gòu)建的植量攀(YQLO-Ghostlet)模型:通過稀疏訓(xùn)練和稀疏訓(xùn)練后通過該剪枝方法后在飲料數(shù)據(jù)集下各項(xiàng)數(shù)據(jù)對(duì)比如表2所示。
泰2中以Lle4開頭暈代表以a=0.0001的正則化系數(shù)進(jìn)行稀疏訓(xùn)練的模型,以-P結(jié)尾為剪枝后的模型。BNtnefget代表該震靡將麗層進(jìn)行合并qY0L0v3-Tinj?是采用YQL〇v4-Tiny的損失.函數(shù)所訓(xùn)練,所以精度有提升。據(jù)表2,輸人圮寸均采用416X416,可以看到f0L0\?4 ̄Tiiif菌枝唇在精度方面相對(duì)于Lle4_Y0LCH4-tiny模型值降低了0.01個(gè)百分點(diǎn),剪枝率達(dá)91%,計(jì)算量只翁原乘的28#LCPU推理速度加快44資,在GPU環(huán)機(jī)下推理速度加快29%。Y0L0v3-TiHf和YQLO-Gh?StNet兩種模型體?^別較大,這也與模型冗余通道的多少有衾。在稀疏訓(xùn)編后通過讀剪枝算法剪枝率分別為96%和36%,精度損失都在0.05%.以內(nèi)。3種模型在稀疏訓(xùn)練后通過該剪枝算法都能維持.原有性能的基礎(chǔ)上降低算法復(fù)雜度和參數(shù)優(yōu),加快模型推理速度&
4結(jié)束語(yǔ)
所提出剪梭蠶法在不同模灘翦枝效果和剪枝率拫據(jù)模型冗余通道.的多少也會(huì)不同.,通過對(duì)爾層參數(shù)添加正則化約束訓(xùn)練后再迸行剪枝可減去大童參數(shù)的同時(shí)保持精度&該剪校算法可以配合設(shè)計(jì)輕量輟結(jié)構(gòu)的模型進(jìn)行使甩,在保持精度不降低的前提下可以,吏大程度地輕量化模型?在以Gh〇sNet所設(shè)計(jì)的YOLCM-Tiny的籜量級(jí)模fl進(jìn)行剪枝后模型尺f哥降低至1.43Mb,推理速度在不苘處理器下可提高29%-57%,,可更好完成輕養(yǎng)化模型設(shè)計(jì)s
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >