戴朝霞,曹堉棟,朱光明,3,沈沛意,3,徐 旭,4,梅 林,4,張 亮,3*
(1.中國電子科技集團公司第三十研究所,成都 610041;2.西安電子科技大學計算機科學與技術學院,西安 710071;3.西安市智能軟件工程重點實驗室,西安 710071;4.公安部第三研究所,上海 200031)
(?通信作者電子郵箱liangzhang@xidian.edu.cn)
不論是現實生活還是工業(yè)現場,嵌入式設備隨處可見,為使深度卷積神經網絡運行在這些資源緊缺設備上,模型壓縮應運而生。目前主流的模型壓縮方法主要分為四類:低秩分解、參數量化、模型剪枝和知識蒸餾。
一般情況下,網絡模型訓練完成后,卷積核存在低秩特性,因此需要去除冗余參數。常用低秩分解[1-5]方法多使用奇異值分解(Singular Value Decomposition,SVD)來對卷積核進行分解,從而達到模型壓縮效果。低秩分解一定程度壓縮了網絡模型,但其實現復雜,難以大規(guī)模推廣。參數量化方法通過減少模型參數的存儲位數達到模型壓縮的效果,以減少多余的存儲資源的消耗。Vanhoucke 等[6]和Gupta 等[7]分別采用8 bit 和16 bit 大小存儲模型參數,且保證準確率基本不受影響。參數量化方法多適用于小型網絡的壓縮,對于大型網絡會導致準確率大幅下降。
研究表明,訓練好的神經網絡中存在著大量的冗余結構,這些結構會導致網絡模型過擬合問題,降低泛化能力,對網絡性能造成影響。模型剪枝[8-12]算法就是通過裁剪這些冗余結構來壓縮模型大小且適當地提升網絡性能。模型剪枝算法分為非結構化剪枝和結構化剪枝兩大類,非結構化剪枝直接對參數權重作置零操作,而結構化剪枝對網絡結構整體作裁剪操作。知識蒸餾是模型壓縮中最具特色的一種壓縮方式,它首先訓練好分類性能強大的大型網絡,稱之為教師網絡;再通過蒸餾過程指導訓練小型網絡,稱之為學生網絡。該方法得到的學生網絡能夠代替教師網絡部署到工業(yè)現場,最終達到模型壓縮的效果。
傳統知識蒸餾算法中教師網絡和學生網絡執(zhí)行的任務一致,本文側重于學生網絡在特定類別分類領域的分類效果,最終目的是得到網絡規(guī)模小但特定類分類性能等于甚至超過教師網絡的分類網絡。
本文的主要工作包括:
1)基于知識蒸餾提出新的特定知識學習概念,并結合注意力特征遷移蒸餾算法,提出僅使用特定數據訓練的特定知識學習基礎算法;
2)在特定知識學習基礎算法上引入抑制背景類知識的蒸餾策略;調整網絡抑制位置,僅在高層作抑制操作,得到蒸餾過程中特定知識含量更高的學生網絡;
3)使用常規(guī)數據集CIFAR-100,設置多組對照實驗,結合有先驗信息的評估方式,驗證本文所提特定知識學習算法在特定類別分類領域的優(yōu)越性。
知識蒸餾的概念自Hinton 等[13]提出后,各種新的蒸餾算法層出不窮。縱覽所有知識蒸餾算法,幾乎都圍繞著知識的定義以及傳遞知識的方式來提出研究的創(chuàng)新點。針對這兩個研究重點,本文將概述已有的表現不俗的知識蒸餾算法。
Hinton 等最早提出知識蒸餾的概念,并確立了蒸餾過程中教師-學生的框架。該方法不僅利用原始的標簽信息,同時也結合了教師網絡產生的預測概率,而預測概率就是該方法傳遞的知識。在此基礎上,Romero 等[14]不僅僅使用教師網絡的預測概率,同時還利用了教師網絡的中間層特征圖。該方法強制讓學生網絡模仿教師網絡中間層特征圖信息,一定程度上增加了知識傳遞的含量但是卻導致了過正則化問題,使得網絡難以收斂。為解決蒸餾過程中的強約束問題,Zagoruyko 等[15]引入注意力機制,該方法僅讓學生網絡模仿教師網絡中間層的注意力特征圖,有效地提升了學生網絡的分類性能。
除了直接利用教師網絡的輸出信息或者中間層信息外,其他蒸餾算法對傳遞的知識作了全新的定義。Yim 等[16]提出學生網絡學習教師網絡模型層與層之間的映射關系,這種映射關系可以解釋為解決問題的思路,即授人以魚不如授人以漁的哲學思想。Heo 等[17]提出學習教師網絡的邊界分布更有利于提升學生網絡的分類性能,通過最大化邊界誤差,使得學生網絡分類效果明顯提升。Zhang 等[18]提出了互相學習蒸餾算法,該方法脫離了教師-學生模式的約束,通過兩網絡互相并行訓練學習共同提升網絡的分類能力。
傳統知識蒸餾中教師網絡將所有的知識傳遞給學生網絡,一定程度上提升了網絡的全分類性能,但在特定類別分類任務上提升效果并不明顯。本文提出的特定知識學習算法,將有效地提升學生網絡在特定類別分類領域的分類準確率,使其成為該領域的專家網絡,且保證網絡規(guī)模足夠小,便于工業(yè)現場的部署。該算法訓練得到的學生網絡完全契合工業(yè)現場場景單一、分類數目少的特點,對未來網絡模型在工業(yè)領域的部署有一定的啟發(fā)作用,具有非常重要的實用價值和意義。
本章將詳細介紹傳統知識蒸餾和特定知識學習之間的聯系和區(qū)別,并且指明特定知識學習最顯著的三個特點。
傳統知識蒸餾的初衷是讓學生網絡替代教師網絡,以達到模型壓縮的效果。為了追求較大的壓縮比,學生網絡規(guī)模通常遠小于教師網絡。當執(zhí)行簡單分類任務時,學生網絡通常表現不錯,但對于復雜的分類任務,由于參數規(guī)模的差異,學生網絡的性能終究不會超過教師網絡。根本原因是層數少的學生網絡卷積層對圖像特征的提取和理解能力不強,無法全部消化掉教師網絡指導的知識特征。
針對此種情況,減小學生網絡的分類任務復雜度,即只執(zhí)行特定類別的任務分類,使其能專注特定類別領域的分類。在知識蒸餾框架中,只允許學生網絡學習一些特定知識,并使其完全消化這部分知識,目的是使學生網絡執(zhí)行特定類別的分類任務時,效果將優(yōu)于普通學生網絡甚至教師網絡。綜上所述,本文提出特定知識學習,將教師網絡的部分或者特定種類的圖像特征知識傳遞給學生網絡,使學生成為該特定知識領域的專家網絡。
相對于傳統知識蒸餾算法,特定知識學習著重強調特定二字。首先學生網絡執(zhí)行特定的分類任務,其必須是教師網絡分類任務的子集。通常認為教師網絡是一個功能強大的大型網絡,其功能泛而不專;特定知識學習后的學生網絡功能更加專一,不考慮學生網絡對其他類別的分類性能,只驗證學生網絡對特定類別的分類能力,這便是任務上的特定。
其次在蒸餾過程中,為避免其他無關類別知識干擾,特意讓學生網絡只接受教師網絡特定類別的知識。這樣做的目的有:1)學生網絡規(guī)模小而精,只學習特定知識使得學生網絡能夠使用更多神經元參與特定類的分類,不必為其他無關知識分擔精力;2)教師網絡是一個復雜綜合的網絡,其學習到的知識是豐富的,在訓練教師網絡的過程中,訓練數據集包含了豐富種類的圖片,在網絡底層能夠學習到種類和數量更多的基礎特征,因此教師網絡在網絡中間層能夠學習到更豐富的內容,且該部分知識具有泛化性,這是一個學生網絡單獨訓練不可能獲得的知識。
最后實現特定知識學習的方式是讓學生網絡只使用特定類別數據訓練網絡。
如圖1 所示,為特定知識學習簡圖,正如上文中所述,特定知識學習與傳統知識蒸餾之間存在著明顯的不同,即特定知識學習有著特定的數據集、執(zhí)行特定任務并且在蒸餾過程中傳遞特定知識。
圖1 特定知識學習示意圖Fig.1 Schematic diagram of specific knowledge learning
在介紹特定知識學習算法之前,本章首先介紹注意力特征遷移蒸餾算法,本文所提算法皆基于該蒸餾算法,理解該算法便于閱讀后文內容。
研究表明,人類在圖像認知時,會選擇性地關注到完整信息的某一部分,忽略其他不重要的信息,這種信息處理方式大大提高了人類認知圖片的效率。受此啟發(fā),Zagoruyko 等將此種機制引入到知識蒸餾中,并將注意力特征圖當作學生網絡需要學習的知識。他提出讓學生網絡中間層對應地學習教師網絡中間層生成的注意力特征圖,以保證學生網絡中間層特征圖和教師網絡相似。實驗結果表明,這種方式是科學、正確的,在大多數情況下,注意力特征遷移算法的蒸餾效果要優(yōu)于其他蒸餾算法。注意力特征遷移蒸餾算法架構如圖2 所示,其中AM 表示注意力特征圖(Attention Map)。由圖2 可知,學生網絡架構和教師網絡結構需要類似,圖中網絡結構有三處的注意力特征圖是一一對應的。
圖2 注意力特征遷移結構Fig.2 Attention feature transfer structure
注意力特征遷移蒸餾算法損失函數由兩部分組成:類概率損失和蒸餾損失,如式(1)、(2)所示:
其中:L代表損失函數,L(WS,x)代表學生網絡的類概率損失,LKD代表蒸餾損失;X為教師網絡和學生網絡中間層對應的集合,分別代表X集合中第j對學生網絡和教師網絡的注意力特征圖;β是蒸餾損失權重,用來約束蒸餾損失對整個損失的影響。
為了獲得更好的知識傳遞效果,注意力特征圖的定義并不唯一,不同定義適用于不同的場景,供實驗人員根據實驗結果選擇特征圖定義。特征圖定義公式如式(3)~(5)所示,A代表網絡中間層的激活響應圖,其大小通常為W×H×C,其中W和H分別代表圖像的寬和高,C代表通道數量。本文實驗中選用是第2個公式,此時p=2。
前兩章介紹了特定知識學習的概念和傳統注意力特征遷移蒸餾算法,本章將重點介紹基于注意力特征遷移的三種特定知識學習算法,并表述其網絡架構和損失函數。
為提升學生網絡在特定類別任務的分類性能,僅使用特定類別數據集去指導訓練學生網絡。為敘述方便,本文將該算法稱為AT_Specific,其整體網絡架構如圖3所示。如圖3中左側所示,將訓練學生網絡的數據集作預處理,將全部數據集中無關類別的數據剔除,只留下特定類別的圖像數據。通過此方式,大大減弱了其他無關類別對特定類別分類任務的影響。當只使用特定類別數據訓練學生網絡時,蒸餾過程中也僅傳遞特定類別的相關知識,網絡中間層模仿到的注意力特征圖也是教師網絡中特定類別樣本的注意力特征圖,所以通過知識蒸餾學生網絡學習到了教師網絡中傳遞的特定知識。觀察圖3 右側,教師網絡是一個全分類的分類網絡,學生網絡僅僅分類特定類別,這是特定知識學習算法中教師網絡和學生網絡之間的一個重要區(qū)別。
圖3 特定知識學習基礎算法結構Fig.3 AT_Specific structure
在特定知識學習框架中,教師網絡是一個全分類網絡,訓練教師網絡時,使用的數據集是全體數據集,并未經過特定類別的分組處理。因此教師網絡中不僅僅包含了特定類別的知識信息,還包含了其他非特定類別的圖像特征。教師網絡中豐富的圖像特征有利有弊,好處是指導的學生網絡有著不錯泛化能力,在分類全部類別時有不錯的分類性能;壞處是僅針對分類特定類別的任務時,其他無關類別的特征信息會造成干擾,影響分類效果?;谝陨戏治?,本文認為在特定知識學習中,削弱甚至剔除蒸餾過程中的其他無關類別的特征知識很有必要。
將背景類的概念引申到特定知識學習中來,如果將全部類別數據當成一張圖像,特定類別當成前置物體,而其他類別當成一種背景類,對于特定類別的提純可能會有幫助?;谏鲜霾孪?,本文將全體數據集做預處理,全體數據將分為兩大類:特定類數據集和背景類數據集。特定類數據集為本文要檢測的特定類別數據集合,而背景類數據集為所有其他的非特定類數據。本文將該算法稱為AT_Background,整體算法框架如圖4 所示。圖4 左側顯示全體數據集經預處理后生成了特定類數據和背景類數據。同時,在圖4 右側只有一個背景類標簽,將所有原先的無關類別全部分類為背景類。這樣改進的好處有兩點:其一是通過整合所有無關類別,并將這些類別統稱為背景類的操作,避免了人為選取不同非特定類導致性能差距較大的結果;其二是在蒸餾過程中,由于網絡的中間特征圖被抑制后,對網絡輸出影響較大,因此將其他無關類別統一為同一背景類標簽是有必要且合理的。
圖4 背景類知識抑制算法結構Fig.4 AT_Background structure
中間傳遞過程中既包含學習特定類知識,又包含抑制非特定類知識,具體內部細節(jié)如圖5 所示。圖5 蒸餾模塊中顯示,當學生網絡獲取到特定類樣本時,直接去模仿教師網絡對應層的注意力特征圖;當學生網絡獲取到背景類樣本時,將教師網絡的注意力特征圖置零,通過學習零特征圖達到抑制背景類知識的目的,其損失函數表達式如式(6)。
圖5 背景類知識抑制算法內部蒸餾細節(jié)Fig.5 Internal distillation details of AT_Background
其中:L代表損失函數,Lspecific(WS,x)代表學生網絡的特定類類概率損失;X為教師網絡和學生網絡中間層對應的集合,和分別代表X集合中第j對學生網絡和教師網絡的注意力特征圖;a和b參數分別代表特定類損失和非特定類損失占總損失的權重。對于特定類,學生網絡注意力特征圖和教師網絡注意力特征圖越相似,其損失越低;對于非特定類,直接抑制學生網絡的注意力特征圖,使其激活值趨向0。最終結果使得學生網絡更好地學習到教師網絡特定類知識且對于非特定類敏感程度降低,減少非特定類圖像特征的干擾,提升分類性能。
根據神經網絡可視化研究,網絡底層通常是線條、曲線等基礎的圖像特征,高層才慢慢細分成與任務種類相關的圖像特征。AT_Background 算法中在網絡低層和中層作抑制操作多有不妥。因此,本文提出僅在網絡高層作抑制操作的AT_Background_High 算法,該算法網絡整體架構和損失函數和之前類似,在此不再贅述。
本章將使用本文提出的特定知識學習算法在CIFAR-100數據集上執(zhí)行特定類別分類任務,并分別與教師網絡、無知識蒸餾、有知識蒸餾學生網絡比較20 個特定任務的分類準確率Acc(Accuracy)均值、精確率Pre(Precision)均值、召回率Re(Recall)均值以及F1(F1-Measure)均值。
評判網絡模型分類性能的常用指標Accuracy、Precision、Recall 和F1-Measure 多用于二分類任務中,計算公式如式(7)~(10)。依據數據集特性,本文實驗中每一個特定分類任務為多分類,須將多分類轉化為二分類。
其中:all表示分類的總體樣本數;N表示多分類任務中的分類數;TPi表示分類網絡將圖像正確地預測成第i類的樣本數;FPi表示分類網絡將圖像錯誤地預測成第i類的樣本數;FNi表示分類網絡將圖像錯誤地預測成非第i類的樣本數。
為更好地評估分類網絡的特定類別分類性能,依據數據集構成,每次都會評估20 個特定類別任務,并求其均值來體現分類網絡的特定類別分類性能。
由前文可知,學生網絡執(zhí)行的任務通常是教師網絡執(zhí)行分類任務的子集,由于存在分類數目不一致,最終預測結果時教師網絡由于不知道樣本粗標簽信息導致評分下降。例如一個5分類的分類網絡隨機分類正確的概率為20%,而一個100分類的分類網絡隨機分類正確的概率為1%,如果直接進行不同分類數目的分類網絡結果對比,顯然是不正確的。為公平起見,在評估全分類網絡的特定類別分類性能時,提前告知預測標簽范圍,以保證全分類網絡和特定分類網絡之間的信息對等。本文實驗評估都是在有先驗信息的評估方式下進行。
本文選用CIFAR-100 作實驗數據集。CIFAR-100 數據集是極其常用的分類數據集,包含60 000 萬張訓練和測試集數據。該數據集中包含100 類圖像,類別與類別之間不存在交叉,完全互斥。
CIFAR-100 數據集有個獨特特點:對于每一張圖像,有粗粒度和細粒度兩個標簽,例如對于一張蜜蜂圖片,其細粒度標簽為bee,粗粒度標簽為insects。通過兩種標簽,使CIFAR-100 數據更具有結構層次性。其中,CIFAR-100 數據集有20種粗粒度標簽,每個粗粒度對應5種細粒度標簽。
結合本文研究內容,利用CIFAR-100的結構特性,將分類一個粗粒度標簽中的5 個細粒度標簽作為一個特定類別分類任務。本文的主要目的就是提升學生網絡在特定類別分類任務的分類性能,因此最終將對比20 個特定類別分類指標的均值。
進行了多組對照實驗來驗證本文所提出的特定知識學習算法在特定類別分類領域的有效性和優(yōu)越性。
首先選取編號為1 的特定分類任務結果來觀察,并列出了教師網絡、無知識蒸餾學生網絡100 分類(StudentFS-100)、無知識蒸餾學生網絡5 分類(StudentFS-5)以及結合了傳統注意力特征遷移蒸餾算法(AT)學生網絡的4 個指標,如表1 前四行所示。對比發(fā)現教師網絡由于存在參數規(guī)模大的優(yōu)勢,在特定分類領域依舊表現良好,高于StudentFS-100、StudentFS-5 和AT 學生網絡。對比結合傳統的AT 蒸餾算法后,分類性能上確實比無知識蒸餾學生網絡要高,對于StudentFS-5 準確率提升了2.20 個百分點(84.60% vs 82.40%),而對于StudentFS-100 甚至性能降低了0.60 個百分點(84.60% vs 85.20%),可見傳統知識蒸餾算法在分類特定任務時的局限性。
表1 后三行代表本文提出的三種特定知識學習算法,AT_Specific 算法對比StudentFS-5 有2.8 個百分點(85.20%vs 82.40%)的性能提升,比AT 算法提升明顯,驗證了特定知識學習算法的有效性。為提升蒸餾過程中特定知識含量,本文又加入了抑制背景類知識的策略,實驗結果顯示效果提升明顯,AT_Background_High 算法達到了最優(yōu),準確率均值超過StudentFS-100 網絡分類性能3.6 個百分點(88.80% vs 85.20%);比傳統知識蒸餾AT 算法提升了4.2 個百分點(88.80%vs 84.60%);甚至超過了規(guī)模比其大超過6 倍(7.4×106vs 1.2×106)的教師網絡的分類性能,提升了0.8 個百分點(88.80%vs 88.00%)。
表1 CIFAR-100上特定分類任務1的實驗結果Tab.1 Experimental results of specific category task 1 on CIFAR-100
在特定任務1 中,實驗結果表明特定知識學習在特定任務分類上的優(yōu)越性,為了更直觀地表現本文所提算法在不同特定任務上的性能表現,本文繪制準確率柱狀圖,如圖6 所示。圖中分別對比了無知識蒸餾StudentFS-100、無知識蒸餾StudentFS-5、有知識蒸餾AT、三種特定知識學習算法以及教師網絡的20個特定類別分類準確率。由圖6可以看到絕大部分特定任務中特定知識學習算法都有著不錯的提升,尤其對于任務編號14 的特定分類任務這種準確率低、分類難度大的任務,準確率提升較為明顯。這說明特定知識學習更適用于分類難度相對較大的特定類任務,讓學生網絡集中精力學習該特定類抽象特征的策略是有效的。觀察圖中算法結果對比,特定知識學習算法中,絕大多數情況下AT_Background_High算法表現更好。最終的結果也驗證了通過抑制其他無關類別即背景類知識以及僅在網絡高層作抑制操作的正確性。
圖6 七種網絡在20個特定類別任務的準確率柱狀圖Fig.6 Histogram of accuracy of 7 networks in 20 specific category tasks
本文結合知識蒸餾,首次提出特定知識學習,旨在提升分類網絡特定類別分類性能。在此基礎上,提出三種特定知識學習算法,并結合抑制背景類知識蒸餾策略以及僅高層作抑制的調整,有效地提升了分類網絡在特定類別領域的分類性能。大量對照實驗的結果表明,本文提出的特定知識學習算法對于網絡在特定類別分類領域的分類效果有著明顯提升,最優(yōu)結果甚至超越了規(guī)模超其6 倍的教師網絡性能。特定知識學習非常契合工業(yè)場景,本文所提算法具有一定的實用性和重要意義。