Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述

机器之心發表於2025-02-19

本次文章介紹我們發表於由Springer出版的專著《Advancements in Knowledge Distillation: Towards New Horizons of Intelligent Systems 》中的第一章“Categories of Response-Based, Feature-Based, and Relation-Based Knowledge Distillation”。該篇文章的主要內容是整理了面向影像識別的知識蒸餾的相關工作,首先在response-based、feature-based和relation-based三種知識形式來介紹離線知識蒸餾的相關工作,然後整理了線上知識蒸餾自知識蒸餾的相關工作,在其中也對自監督學習蒸餾視覺Transformer(ViT)蒸餾也進行了介紹。最後講解了擴充套件的蒸餾技術領域,包括多教師知識蒸餾、跨模態知識蒸餾、注意力機制知識蒸餾無資料知識蒸餾和對抗知識蒸餾。本解讀主要講解核心內容和見解,具體的參考文獻請見原著作。

論文官方地址:https://link.springer.com/chapter/10.1007/978-3-031-32095-8_1

arXiv地址:https://arxiv.org/pdf/2306.10687.pdf

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述

1. Categories of response-based, feature-based, and relation-based knowledge distillation. (基於響應、特徵、關係的知識蒸餾劃分)

目前的離線知識蒸餾方法通常涉及知識型別和蒸餾策略。前者側重於探索學生模仿的各種資訊型別。後者旨在幫助學生有效地學習老師。在本節中,我們將研究基於響應、基於特徵和基於關係的知識,以及基於預定義資訊的常用型別。基於響應的KD引導教師的最終輸出以指導學生的輸出。直觀上,學生可以直接學習到老師產生的預測。除了最終輸出外,中間特徵還對神經網路的知識提取過程進行編碼。基於特徵的KD可以教學生在整個隱藏層中獲得更有意義的語義資訊。基於響應和基於特徵的KD通常考慮從單個資料樣本中提取知識。相反,基於關係的KD試圖挖掘整個資料集的跨樣本關係。在本節中,我們回顧了每種知識型別的一些代表性方法,並總結了它們的差異。示意圖概述如下圖所示。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖1 基於響應、特徵、關係的教師-學生知識蒸餾整體示意圖

1.1 Response-based Knowledge Distillation(基於響應的知識蒸餾)

基於響應的KD側重於從最後一層學習知識作為響應。它旨在使教師和學生之間的最終預測保持一致。基於響應的KD的特性是結果驅動學習,使其易於擴充套件到各種任務。開創性的KD可以追溯到Hinton等人工作[1]。核心思想是透過軟化的softmax(即“軟標籤”)提取類機率分佈。對於分類任務,軟機率分佈被公式化為:

p(zi;T)=exp⁡(zi/T)∑j=1Nexp⁡(zj/T),

給定來自教師和學生的類別機率分佈 p(zT;T)p(zS;T) ,基於響應的KD嘗試使用距離函式 Ldis 對齊二者。

Lresponse_kd(p(zS;T),p(zT;T))=Ldis(p(zS;T),p(zT;T)),

其中 Ldis 可以是Kullback-Leibler(KL)散度、均平方誤差等。

主要講解三個方面的工作內容:

1.1.1 Interpret response-based KD(解釋基於響應的知識蒸餾)

基於響應的KD的核心思想很容易理解。它引導學生學習教師網路生成的最終結果。基於響應的KD的有效性也可以與標籤平滑正則化聯絡起來。Yuan等人將基於KL散度的KD方程求解為標籤平滑。Muller等人觀察到標籤平滑抑制了KD的有效性。他們認為,標籤平滑會導致不同類別樣本之間相似性的邏輯資訊丟失,這對基於響應的KD很有價值。然而,Shen等人提供了一項實證研究,說明標籤平滑通常不會抑制KD的有效性。他們發現,在兩種情況下,標籤平滑可能會產生負面影響:長尾類分佈和類數量增加。Mobahi等人展示了一種理論觀點,即兩個相同網路架構之間的蒸餾放大了Hilbert空間中的正則化。最新的DKD將原始KD損失解耦為目標類KD和非目標類KD。透過僅引入兩個超引數來靈活平衡兩個項,DKD提高了原始KD的有效性。

1.1.2 Reduce performance gap with auxiliary architecture (透過輔助結構減少教師-學生效能差距)

由於教師和學生之間的能力差距,KD可能存在效能差距,導致效能下降問題。為了緩解這個問題,TAKD引入了一箇中等規模的網路作為教師助理,並執行了一個連續的KD過程。沿著這條脈絡,HKD應用了一個輔助教師網路來傳輸分層資訊流。DGKD提出了一種密集引導模式,並由所有前任教師執行多步KD。SFTN首先訓練一名教師和學生分支,然後將更容易傳授的知識傳授給學生。TOFD和HSAKD在教師和學生之間附加了幾個輔助分支,以促進知識互動。然而,這些方法為訓練圖引入了額外的架構,並增加了訓練成本。

1.1.3 Reduce performance gap with adaptive distillation (透過自適應蒸餾減少教師-學生效能差距)

一些工作試圖研究樣本自適應蒸餾以提高效能。WSL從偏差-方差權衡的角度提出了樣本加權軟標籤。ATKD使用基於標準偏差的自適應溫度來縮小教師和學生之間的銳度差距。MKD利用元學習來搜尋可學習的溫度引數。SCKD從梯度相似性的角度研究了不匹配問題,使學生自適應地學習其有益的知識。PAD提出了一種具有資料不確定性的自適應樣本加權機制,該機制基於困難例項可能對KD難以處理的這一現象。除了探索依賴於樣本的蒸餾外,Song等人和Li等人還提出了一種混合前向傳播方案,使學生透過聯合訓練隱式學習教師的知識。在課程學習的驅使下,RCO引導學生從頭開始模仿老師的訓練軌跡,直至收斂。ESKD提前停止教師訓練,以產生更柔和的邏輯分佈。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表1 基於響應的KD方法實驗結果對比

總結。我們在表1中對各種基於響應的KD方法進行了實驗結果對比。大多數方法都應用於卷積神經網路,而最近的MKD進一步旨在改進視覺Transformer。基於響應的KD的核心思想是結果驅動學習,並且很容易應用於現有的深度學習任務。對於目標檢測,Chen等人建議引導學生模仿老師的目標機率和迴歸邊界框。對於語義分割,結果驅動的知識是逐畫素的類機率分佈。類似地,對於自然語言處理中的Bert壓縮,DistilBERT傳遞掩碼詞彙的類預測。儘管基於響應的KD已成功應用於許多工,但效能差距仍然是一個值得探索的問題。當教師和學生之間的效能差距很大時,學生可能無法吸收有意義的知識,這可能會導致不利的監管效果。此外,基於響應的KD忽略了神經網路隱藏層中編碼的中間資訊,導致效能提升有限。

1.2 Feature-based Knowledge Distillation(基於特徵的知識蒸餾)

正如我們上面討論的,基於響應的KD忽略了中層監督。為了解決這一缺陷,基於特徵的KD側重於探索中間特徵資訊,以提供全面的監督,如特徵圖及其提取的資訊。基於特徵的蒸餾損失可以公式化為:

Lfeature_kd(FS,FT)=Ldis(ϕS(FS),ϕT(FT)),

其中 FSFT 表示來自學生和教師的中間特徵圖,ϕSϕT 是產生蒸餾資訊的轉換函式,如注意力機制、啟用邊界、神經元選擇性和機率分佈等,Ldis 是一個距離函式,用於衡量匹配特徵資訊的相似性,例如,均方誤差損失和KL散度損失。

主要講解三個方面的工作內容:

1.2.1 Knowledge exploration: transform intermediate feature maps to meaningful knowledge (知識探索:轉換中間層特徵圖得到有意義的知識)

開創性的FitNet是第一種基於特徵的KD方法,其核心思想是在教師和學生之間以逐層的方式對齊從隱藏層生成的中層特徵圖。這項簡單直觀的工作可能不需要高階知識。後續的方法試圖探索從原始特徵圖中編碼更有意義的資訊。AT將特徵圖轉換為空間注意力圖,作為有價值的資訊。NST提取啟用熱圖作為神經元轉移的選擇性。Srinivas等人在特徵圖之間應用了雅可比匹配。PKT將特徵圖表示為機率分佈,並由KL散度模擬。FSP引入了Gramian矩陣來測量不同層特徵圖之間的求解過程流。Seung等人使用奇異值分解來解析特徵知識。FT引入了自動編碼器,以無監督的方式將教師的特徵圖解析為“因素”,並引入了翻譯器,將“因素”轉換為易於理解的知識。AB考慮隱藏特徵空間中的啟用邊界,並迫使學生學習與老師一致的邊界。Overhaul重新思考了蒸餾特徵位置,使用新設計的 ReLU和L2距離函式來過濾冗餘資訊。

最近,TOFD和HSAKD將輔助分類器附加到由額外任務監督的中層特徵圖上,以產生資訊豐富的機率分佈。前者利用了原始的監督任務,而後者引入了有意義的自監督增強任務。MGD使用自適應通道分配演算法執行細粒度特徵提取。ICKD從包含特徵空間多樣性和同源性的特徵圖中挖掘通道間相關性。在通道維度之外,TTKD使用自注意力機制進行空間級特徵匹配。總之,以前的方法通常會為KD提取更豐富的特徵資訊,從而獲得比經典FitNet更好的效能。

1.2.2 Knowledge transfer: good mimicry algorithm to let the student learn better (知識遷移:好的模仿演算法讓學生學得更好)

除了知識探索,另一個有價值的問題是如何有效地遷移知識。大多數基於特徵的KD方法使用簡單的均方誤差損失進行知識對齊。除此之外,VID還引用了資訊理論框架,認為KD是教師和學生之間互資訊的最大化。Wang等人將學生視為生成器,並應用了一個額外的鑑別器來區分學生或老師產生的特徵,這種對抗過程引導學生學習與教師相似的特徵分佈。Xu等人提出對倒數第二層的特徵嵌入進行歸一化,以抑制噪聲的負面影響。除了研究模仿度量損失外,在教師和學生之間使用共享分類器還可以幫助學生隱式地對齊教師的特徵。

1.2.3 Distillation for vision transformer (視覺Transformer方面的蒸餾工作)

Vision Transformer(ViT)在影像識別方面表現出了卓越的效能。然而,基於ViT的網路需要很高的計算成本。KD為訓練具有理想效能的小型ViT提供了出色的解決方案。在關係層次上,流形蒸餾將逐塊關係作為ViT蒸餾的知識型別進行探索。在特徵級別上,AttnDistill將注意力圖從教師轉移到學生。ViTKD為ViT特徵蒸餾提供了實用指南。除了同質ViT之間的特徵模仿外,一些工作還試圖從CNN中提取到的歸納偏置蒸餾到ViT。一些有前景的知識型別仍值得進一步挖掘,如中間特徵、注意力關係和蒸餾位置。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表2 基於特徵的KD方法實驗結果對比

總結。我們在表2中對各種基於特徵的KD方法進行了實驗結果對比。一般來說,基於特徵的KD是對基於響應的KD的全面補充,它提供了封裝學習過程的中間特徵。然而,簡單地在教師和學生之間對齊相同的階段性特徵資訊可能會導致負面監督,特別是在效能差距或架構差異較大的情況下。一個更有價值的方向可能是基於學生友好的特徵KD,它提供了語義一致的監督。

1.3 Relation-based Knowledge Distillation(基於關係的知識蒸餾)

基於響應和基於特徵的KD通常考慮從單個樣本中提取知識。相反,基於關係的KD將跨樣本或跨層關係視為有意義的知識。

主要講解兩個方面的工作內容:

1.3.1 Relation-based Cross-Sample Knowledge Distillation (跨樣本的知識蒸餾)

基於關係的跨樣本蒸餾損失公式一般為:

Lrelation_kd(FS,FT)=∑i,jLdis(ψS(viS,vjS),ψT(viT,vjT)),

其中 FSFT 分別表示教師和學生的特徵集, vivj 是第 i 個和第 j 個樣本的特徵嵌入, (viS,vjS)∈FS(viT,vjT)∈FTψSψT(viS,vjS)(viT,vjT) 的相似度度量函式。 Ldis 是一個距離函式,用於衡量例項圖的相似性,例如,均方誤差損失和Kullback-Leibler散度損失。

1.3.1.1 Constructing relational graph with various edge weights (利用不同的邊權重構建關係圖)

基於關係的KD知識可以看作是一個例項圖,其中節點表示樣本的特徵嵌入。大多數基於關係的KD研究各種相似性度量函式來計算邊權重。DarkRank是第一種基於深度度量學習嵌入的歐幾里德距離來建模交叉樣本相似性的方法。MHGD使用多頭注意力網路處理基於圖的表示。RKD使用相互關係的距離和角度相似性作為結構化知識。CCKD使用基於核的高斯RBF捕獲例項之間的相關性。SP在給定一個批資料的情況下構建成對相似性矩陣。IRG透過頂點和邊變換對例項關係圖進行建模。REFILLED引導老師重新加權對於學生困難的三元組樣本權重,以進行關係匹配。所有方法都側重於在樣本級特徵嵌入上對關係圖進行建模,但在各種邊權重生成策略上有所不同。

1.3.1.2 Constructing relational graph with meaningful transformation(利用有意義的轉換構建關係圖)

使用簡單的度量函式直接對邊權重進行建模可能無法有意義地捕捉相關性或高階依賴性。CRD引入了有監督對比學習,基於InfoNCE的誤差形式,使得老師和學生的表徵對齊。在CRD上,CRCD根據特徵及其梯度提出了互補關係對比蒸餾。為了在原始監督學習的基礎上提取更豐富的知識,SSKD遵循SimCLR框架,並利用影像旋轉的自監督對比蒸餾。為了利用標籤中的類別資訊,CSKD構建了類內和類間的結構化關係。以前的方法通常關注例項級特徵及其關係,但忽略了區域性特徵和細節。因此,LKD利用類感知注意力模組來捕獲重要區域,然後使用區域性補丁對區域性關係矩陣進行建模。GLD構造了一個關係圖,其中包含由區域性空間池化層提取的區域性特徵。

1.3.2 Relation-based Cross-Layer Knowledge Distillation (跨層的知識蒸餾)

除了在資料樣本上建立關係外,模型內的跨層互動資訊編碼也是一種有價值的知識形式。基於關係的跨層蒸餾損失公式為:

Lrelation_kd(fS,fT)=Ldis(gS(fiS,fjS),gT(fiT,fjT)),

其中 fSfT 分別代表從教師和學生不同層中提取的特徵集合, fifj 是來自第 i 層和第 j 層的特徵嵌入, (fiS,fjS)∈fS,(fiT,fjT)∈fTgSgT(fiS,fjS)(fiT,fjT) 的層聚合函式。 Ldis 是距離函式來衡量跨層特徵的相似度。

FSP是捕獲KD跨層特徵圖之間關係的開創性方法,它引入了Gramian矩陣,將求解過程的流程表示為知識。Passalis等人指出,具有不同效能的教師和學生網路之間的同一層可能會出現語義抽象差距。以前的方法通常依賴於手工製作的一對一的層分配策略,然而,這種簡單的對齊可能會導致成對師生層之間的語義不匹配問題。許多後續工作考慮在多個特徵層上建模有意義的知識。Jang等人引入了用於加權層級特徵匹配的元網路。在自注意力機制的啟發下,一些工作利用基於注意力的權重進行自適應層分配。除了研究層匹配問題外,一些工作還試圖聚合所有階段特徵圖,以構建更具資訊量的特徵作為監督訊號。ReviewKD利用教師的多層次特徵,根據各種特徵融合模組指導學生的每一層。LONDON總結了多層次特徵圖,以模擬Lipschitz連續性。除了手工策略外,DFA還應用了搜尋方法來自動找到合適的特徵聚合。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表3 基於關係的KD方法實驗結果對比

總結。我們在表3中對各種基於關係的KD方法進行了實驗結果對比。不同於基於特徵和基於響應的KD,基於關係的方法旨在捕捉各種樣本或不同層之間的高階關係。關係圖捕獲了整個資料集的結構化依賴關係。跨層特徵關係對語義過程的資訊進行編碼。如何使用更有意義的節點轉換和度量函式或聚合適當的層資訊來建模更好的關係仍然是需要進一步研究的核心問題。

2. Distillation Schemes (蒸餾機制)

蒸餾機制通常分為離線知識蒸餾、線上知識蒸餾和自知識蒸餾,如圖2所示:

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖2 離線知識蒸餾、線上知識蒸餾和自知識蒸餾機制示意圖

2.1 Offline Knowledge Distillation(離線知識蒸餾)

離線KD是所謂的基於教師和學生的學習,之前的研究已經對其進行了廣泛的研究。離線KD的核心思想是將知識從一個高效能的大型預訓練教師網路轉移到一個小型快速的學生網路。在實踐中,離線KD通常會進行兩階段的訓練:(1)教師網路在任務上進行預訓練,以實現卓越的效能;以及(2)在訓練階段引導學生模仿老師的資訊。當離線KD使用公開的預訓練模型來訓練學生網路時,離線KD也可以被視為一個單階段的訓練流程。由於教師網路是預先訓練和凍結的,我們將基於教師-學生的學習稱為離線KD。

離線知識蒸餾的工作主要在第一章節”Categories of response-based, feature-based, and relation-based knowledge distillation(基於響應、特徵、關係的知識蒸餾劃分)“進行講解。因此在這裡僅展示了不同蒸餾方法對於蒸餾效能和蒸餾時間的權衡,如表4所示。我們全面比較了代表性的離線KD方法在準確性和蒸餾時間方面的表現。我們可以觀察到,各種KD方法具有不同的性質。傳統的KD蒸餾時間最短,但僅能獲得適度的增益。相比之下,HSAKD實現了最佳的蒸餾效能,甚至與教師的準確率相匹配,但時間比傳統KD高出3倍。DKD是傳統KD的改進版本,在精度和蒸餾時間之間達到了理想的平衡。從模型壓縮的角度來看,最佳蒸餾的ResNet-20的引數和FLOP減少了3倍,但與教師ResNet-56相比,效能僅下降了0.1%。在實踐中,我們可以根據實際需求和計算資源選擇合適的KD演算法。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表4 不同離線知識蒸餾方法在CIFAR-100資料集上效能和訓練時間的權衡

2.2 Online Knowledge Distillation(線上知識蒸餾)

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖3 兩個學生網路基於響應、特徵、關係的線上知識蒸餾整體示意圖

線上KD旨在從零開始同時訓練一組學生網路,並在訓練階段相互傳遞知識。與離線KD不同,線上KD是一個端到端的最佳化過程,不需要事先明確的預訓練教師網路。根據知識型別,當前的線上KD主要分為基於響應、基於特徵和基於關係的方法,如圖3所示。我們在表5中提供了各種線上KD方法的實驗結果。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表5 不同線上知識蒸餾方法在CIFAR-100上的準確率對比

線上知識蒸餾按照遷移的知識型別分為基於響應、特徵和關係的線上知識蒸餾:

2.2.1 Response-based Online KD(基於響應的線上知識蒸餾)

線上KD可以追溯到深度相互學習(Deep Mutual Learning, DML)。DML表明,在傳統學習方案中,將每個學生的類別後驗與其他學生的類別後驗對齊比單獨訓練更好。Song等人將這一想法進一步擴充套件到具有共享淺層和分離的高層分支的分層架構。Anil等人將相互蒸餾應用於大規模分散式神經網路。DCML透過在隱藏層中新增精心設計的輔助分類器來增強相互學習。MutualNet使用不同輸入解析度對應的不同寬度的子網路進行相互學習,以探索多尺度特徵。MMT和PCL為每個對等體引入了一個時間均值教師,為相互學習生成更好的偽標籤。除了同伴教學方式,ONE還組裝了整合機率分佈,構建了一個虛擬教師角色,以提供軟標籤。OKDDip利用自注意力機制來提高同伴多樣性,然後將輔助同伴的集合知識傳遞給組長。KDCL研究了從兩個資料增強檢視中使用各種聚合策略生成軟整合目標。一些工作考慮使用特徵融合和額外的分類器來輸出有意義的標籤。

2.2.2 Feature-based Online KD(基於特徵的線上知識蒸餾)

以前的線上KD方法通常側重於學習類機率,主要在各種策略或架構上有所不同,但忽略了線上學習的特徵級資訊。Walawalkar等人對模型壓縮的中間特徵圖進行了線上蒸餾。Zhang等人表明,直接對齊特徵圖可能會減小群體多樣性並損害線上KD。許多方法都提出了線上對抗特徵提取來相互學習特徵分佈。對抗性線上KD的想法是為每個網路新增一個鑑別器,該鑑別器可以將自身的特徵圖分類為偽造,或將另一個網路的特徵圖分類為真實。

2.2.3 Relation-based Online KD(基於關係的線上知識蒸餾)

相互對比學習(Mutual Contrastive Learning, MCL)將每個網路視為一個單獨的檢視,並從對比表徵學習的角度引入了基於相互關係的蒸餾。與之前的工作相比,MCL幫助每個網路學習更好的視覺特徵表示。先前線上知識蒸餾方法的一個共同點是從單個原始任務中提取知識。HSSAKD在特徵對映後附加分類器,以學習額外的自監督增強任務,並引導網路相互蒸餾自監督分佈。

2.3 Self-Knowledge Distillation(自知識蒸餾)

Self-KD旨在從網路中提取知識並自學。與離線和線上KD不同,Self-KD沒有額外的教師或同伴網路進行知識交流。因此,現有的Self-KD方法通常利用輔助架構,資料增強或序列快照蒸餾來探索外部知識以實現自我提升。此外,透過手動設計正則化分佈來代替教師,Self-KD也可以與標籤平滑聯絡起來。我們在表6中提供了各種Self-KD方法的實驗結果對比。除了將Self-KD應用於傳統的監督學習之外,最近的研究還試圖借鑑Self-KD的思想進行自監督學習。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表6 不同自知識蒸餾方法在CIFAR-100上的準確率對比

2.3.1 Self-KD with auxiliary architecture(基於輔助結構的自知識蒸餾)

這種方法的想法是附加輔助架構來捕獲額外的知識,以補充主網路。DKS插入幾個輔助分支,並在這些分支和主骨幹之間進行成對的知識轉移。BYOT將機率和特徵資訊從網路的較深部分轉移到較淺部分。SAD使用來自深層的注意力圖,以逐層的方式監督淺層的注意力圖。除了點對點傳輸,MetaDistiller還透過自上而下的方式融合特徵圖來構建標籤生成器,並使用元學習對其進行最佳化。FRSKD以類似BiFPN的方式聚合特徵圖,以構建一個自學網路,提供高質量的特徵圖和軟標籤。一個問題是,基於輔助架構的方法高度依賴於人工設計的網路,其可擴充套件性較差。

2.3.2 Self-KD with data augmentation(基於資料增強的自知識蒸餾)

基於資料增強的方法通常會強制從兩個不同的增強檢視生成類似的預測。沿著這一思路,DDGSD對同一影像應用了兩種不同的增強運算元。CS-KD從同一類別中隨機抽取兩個不同的例項。MixSKD將Mixup影像視為特徵和機率空間中的一個檢視,將線性插值影像視為另一個檢視。為了挖掘跨影像知識,BAKE試圖透過加權聚合其他樣本的知識,形成一個軟目標。一般來說,與基線相比,基於資料增強的Self-KD需要多個正向過程,因此提高了訓練成本。

2.3.3 Self-KD with sequential snapshot distillation(基於序列快照的自知識蒸餾)

這一思路考慮利用訓練軌跡上的網路快照來提供監督訊號。BAN在先前受過訓練的網路快照監督下,以連續的方式逐步改進網路。SD從早期時代獲取網路快照,以教導其後期時代。PS-KD建議透過總結真實標籤和過去的預測來逐步完善軟目標。DLB在上一個和當前的小批次資料之間執行一致性正則化。一般來說,基於快照的Self-KD需要儲存訓練模型的多個副本,因此增加了記憶體成本。

2.3.4 Self-supervised learning with Self-KD(自監督學習和自知識蒸餾)

自監督學習側重於給定未標註資料學習到好的特徵表示。Self-KD和自監督學習之間有一些有趣的聯絡。在自監督的場景中,該框架通常構建兩個角色:線上和目標網路。前者是訓練網路,後者是平均教師,具有來自線上網路的移動平均權重。目標網路與線上網路具有相同的架構,但權重不同。目標網路通常用於提供監督訊號來訓練線上網路。MoCo利用目標網路生成一致的正負對比樣本。一些自監督方法將目標網路視為一個自教師來提供迴歸目標,如BYOL、DINO和SimSiam。受BYOT的啟發,SDSSL引導中間特徵嵌入,以對比最終層的特徵。儘管之前的方法在自監督表示學習方面取得了理想的效能,但可能仍存在兩個值得探索的方向。首先,目標網路是以移動平均的方式從線上網路中構建的。我們是否有更有意義的方法來構建目標網路?其次,損失通常是為了對齊最終的特徵嵌入,未來可以進一步挖掘線上網路和目標網路之間的一些中間特徵或對比關係。

2.4 三種知識蒸餾綜合比較

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
表7 三種知識蒸餾方法在不同方面的比較,其中*代表預訓練的教師是現成的

如表7所示,本文展示三種知識蒸餾方法在不同方面的比較。離線蒸餾需要一個額外的教師模型來訓練學生,而線上蒸餾或自蒸餾透過端到端最佳化訓練一組模型或單個模型。當公開可用的預訓練教師模型不可用時,離線蒸餾需要預先訓練一個高效能的教師網路,因此訓練代價較高。自蒸餾利用單一模型實現自我提升,通常具有較低的計算複雜度。值得注意的是,離線蒸餾在預訓練教師模型為公開模型時也具有較低的訓練複雜性,因為訓練過程中教師網路是不需要梯度傳播訓練的。

3. Distillation Algorithms (蒸餾演算法)

3.1 Multi-Teacher Distillation(多教師知識蒸餾)

在傳統的KD中,知識從一個高效能的老師轉移到一個輕量的學生身上,但在這種情況下,知識的多樣性和有效性是有限的。不同的老師可以為學生提供他們獨特而有價值的知識。透過這種方式,學生可以從多個教師網路中學習各種知識表示。遵循傳統的KD,邏輯分佈或中層特徵形式的知識可以用作監督訊號。多教師KD的示意圖如下圖4所示。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖4 多教師知識蒸餾基本思想示意圖

3.1.1 KD from ensemble logits(從整合的邏輯分佈中蒸餾)

模型整合的邏輯分佈是多教師知識蒸餾的直接方法之一。基於這一理念,引導學生學習教師整合邏輯的軟輸出。然而,對多教師的預測進行簡單平均可能會忽視教師群體多樣性。因此,一些工作提出了透過自適應地模仿教師的輸出並使用各種聚合權重來學習學生模型。

3.1.2 KD from ensemble feature representations(從整合的特徵表達中蒸餾)

除了從邏輯分佈中提取外,中間層特徵的整合可以為學生提供更多的語義資訊。然而,從特徵表示中提取更具挑戰性,因為教師池中的每個成員在特定層中都有不同的特徵表示。為了解決這個問題,Park等人在特徵圖級別對多個教師網路應用了非線性變換。Wu等人提出透過最小化教師和學生的相似性矩陣之間的距離來提取知識。劉等人提出讓學生網路學習教師模型的可學習轉換矩陣。為了利用邏輯和中間特徵,Chen等人引入了雙教師網路,分別提供響應級和特徵級知識。

3.1.3 Computation-efficient multi-teacher KD from sub-networks(從子網路得到計算高效的蒸餾)

使用多教師引入了額外的訓練計算成本,因此一些方法從單個教師網路中建立了一些子教師。Nguyen等人利用隨機塊和跳過教師網路上的連線來生成多個教師角色。一些方法設計了多頭架構,以產生多個教師角色。

3.1.4 Multi-task multi-teacher KD(多工多教師蒸餾)

在大多數情況下,多教師KD是基於同一任務的。知識融合旨在透過從所有接受過不同任務訓練的教師那裡學習知識,來培養一個多才多藝的學生。Luoemph等人旨在學習一個能夠從異質教師那裡吸收全面知識的多人才學生網路。Ye 等人將目標網路集中用於定製任務,由從不同任務中預先訓練的多名教師指導。學生從異質教師那裡繼承了理想的能力,因此可以同時執行多項任務。Rusu等人引入了一種多教師策略蒸餾方法,將代理的多種策略轉移到單個學生網路。

總結。總之,由於不同的教師提供不同的知識,因此可以透過多教師蒸餾來培養多才多藝的學生。然而,仍有幾個問題需要解決。一方面,教師數量是訓練成本和效能提高之間的權衡問題。另一方面,有效整合多教師的各種知識仍然是一個值得探索的問題。

3.2 Cross-Modal Distillation(跨模態知識蒸餾)

在常見的KD方法中,教師和學生往往具有相同的模態。然而,另一種模態的訓練資料或標籤可能是不可用的。在不同模態之間轉移知識是一個有價值的實踐領域。跨模態KD的核心思想是將知識從受過資料模態訓練的教師轉移到另一種資料模態的學生網路。跨模態KD的示意圖如圖5所示。



Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖5 跨模態知識蒸餾基本思想示意圖

給定一個在具有良好標記樣本的一種模態上預先訓練的教師模型,Gupta等人利用無監督配對樣本在帶註釋的RGB影像和未帶註釋的光流影像之間傳遞資訊。透過標籤引導的成對樣本正規化已被廣泛應用於跨模態KD。Thoker等人使用配對樣本將RGB影片中的知識轉移到3D人體動作識別模型中。Roheda等人提出了使用GANs從可用模態到缺失模態的跨模態蒸餾。Do等人探索了一種基於KD的視覺問答方法,並依靠監督學習使用真實標籤進行跨模態遷移。Passalis等人提出了機率KD,將知識從文字模態轉移到視覺模態。

總結。一般來說,KD在跨模式場景中表現良好。然而,當存在顯著的模態缺失時,跨模態KD很難對知識互動進行建模。

3.3 Attention-based Distillation(基於注意力的知識蒸餾)

基於注意力的蒸餾利用注意力資訊進行有效的知識轉移。目前的工作遵循兩條主線:(1)提取從特徵圖中提煉出的注意力圖,以及(2)基於自注意力機制的加權提取,如下圖6所示。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖6 基於注意力機制的知識蒸餾基本思想示意圖

3.3.1 Distilling attention maps(蒸餾注意力圖)

注意力圖通常反映有價值的語義資訊,並抑制不重要的部分。開創性的AT透過計算通道維度上特徵圖的統計資料來構建空間注意力圖,並在教師和學生網路之間對注意力圖進行對齊。空間注意力圖包含類別感知語義區域,幫助學生捕捉辨別特徵。CD採用壓縮和啟用模組生成通道注意力圖,讓學生學習老師的通道注意力權重。CWD為每個通道提取一個空間注意力圖,表示密集預測的語義掩碼。TinyBert轉移Transformer層蒸餾的自注意力矩陣。LKD引入了一個類別感知注意力模組,用於捕獲類相關區域以構建區域性相關矩陣。

3.3.2 Self-attention-based weighted distillation(自注意力機制加權蒸餾)

自注意力技術是一種捕獲特徵之間相似關係的機制。一些方法應用基於注意力的權重進行自適應層間語義匹配。SemCKD自動為每個學生層分配從合適的教師層聚合的目標,這些目標具有基於注意力的相似性。AFD提出了一種基於注意力的元網路來模擬教師和學生特徵之間的相對相似性。ALP-KD將教師端的資訊與基於注意力的層投影融合,用於Bert蒸餾。與特徵層分配正交,TTKD應用自注意力機制進行空間級特徵匹配。

總結。基於注意力圖捕捉顯著區域並過濾冗餘資訊,幫助學生學習最關鍵的特徵。然而,注意力圖壓縮了特徵圖的維度,可能會丟失有意義的知識。此外,注意力圖有時可能不會聚焦在正確的區域,從而導致負面的監督影響。

3.4 Data-free Distillation(無需資料的知識蒸餾)

傳統的KD方法通常需要大量的訓練樣本。然而,出於隱私或安全考慮,訓練資料集有時可能是不可得到的。現有工作已經提出了一些方法來處理這個問題,主要分為無資料KD和資料集KD。無資料KD的示意圖如下圖7所示。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖7 無需資料的知識蒸餾基本思想示意圖

3.4.1 Data-free KD (無需資料的蒸餾)

訓練樣本通常是使用生成對抗網路(GAN)合成的。教師網路以生成的樣本作為輸入來監督學生網路。Lopes 等人使用不同型別的啟用記錄來重建原始資料。DeepInversion探索儲存在批歸一化層中的資訊,以生成無資料KD的樣本。Nayak等人透過將softmax空間建模為教師引數的狄利克雷分佈,從而引入了一種樣本提取機制。除了最終輸出之外,還可以使用教師特徵表示的資訊生成目標資料。Paul等人最佳化了一個對抗生成器來搜尋困難的影像,然後使用這些影像來訓練學生。CMI引入了對比學習,使合成例項與已經合成的例項區分開來。FastDFKD最佳化了元合成器,以重用共享的通用功能,實現更快的無資料KD。

3.4.2 Dataset KD(資料集知識蒸餾)

除了無資料KD之外,資料集蒸餾是合成小資料集以表示原始完整資料集而不會降低精度的重要方向。為了利用全監督設定,Radosavovic等人透過單個模型從未標記資料的多次轉換中組裝預測,以產生新的訓練註釋。DDFlow提出學習光流估計,並從教師模型中提取預測,以監督學生網路進行光流學習。未標記的資料可能會阻礙圖卷積網路(GCN)學習基於圖的資料。一般來說,未標記資料的偽標籤可以為訓練GCN提供額外的監督。RDD提出了一種可靠的資料驅動的半監督GCN訓練方法,它可以更好地使用高質量的資料,並透過定義節點和邊的可靠性來改進圖表示學習。Cazenavette等人沿著提取的合成資料和真實資料之間的訓練軌跡進行了長距離引數匹配。

總結。在大多數無資料KD方法中,合成資料通常是從預訓練的教師網路的特徵表示中生成的。儘管當前的無資料KD工作在處理資料不可用問題方面表現出了顯著的效能,但生成更高質量和多樣化的訓練樣本仍然是一個有待研究的挑戰。

3.5 Adversarial Distillation (對抗蒸餾)

對抗蒸餾是利用生成對抗網路的基本思想來改進KD,主要分為三條主線:(1)使用GAN生成額外的資料樣本,(2)對抗機制來輔助KD演算法,(3)壓縮GAN以高效生成影像。對抗性KD的示意圖如下圖8所示。

Springer知識蒸餾專著解讀 | 面向影像識別的知識蒸餾綜述
圖8 對抗知識蒸餾基本思想示意圖

3.5.1 Using GAN to generate extra data samples(使用對抗生成網路產生額外的資料樣本)

幾乎現有的KD演算法都是資料驅動的,即依賴於原始或替代資料,這在現實世界中可能是不可用的。生成對抗網路可以應用於學習真實的資料分佈並解決這個問題。DFAD讓教師和學生網路共同發揮鑑別器的作用,以減少差異。同時,它新增了一個額外的生成器來產生困難樣本,以對抗性地放大它。一些方法引入了條件GAN(CGAN)來生成資料。Roheda等人使用CGAN在給定其他可用模態的前提下從缺失模態中蒸餾知識。終身GAN將以前網路中學習到的知識轉移到新網路中,以持續生成有條件的影像。

3.5.2 Adversarial mechanism to assist general KD(對抗機制來輔助知識蒸餾)

傳統的KD通常透過調整知識分佈來縮小教師和學生之間的差距。對抗機制可以作為提高模仿難度的輔助方法。一般來說,核心思想是引入一個額外的鑑別器來對教師或學生網路中的特徵表示進行分類。Wang等人利用鑑別器作為教學助手,使學生與教師學習相似的特徵分佈,以進行影像分類。Wang等人採用對抗性KD進行單階段目標檢測。Liu等人將逐畫素的類機率以對抗的方式應用於語義分割蒸餾中。除了基於師生的對抗學習外,一些方法還應用了線上對抗KD在多個學生網路之間相互提取特徵圖。

3.5.3 Compressing GAN for efficient image generation(壓縮對抗生成網路來進行高效的影像生成)

Aguinaldo等人引導一個較小的“學生”GAN對齊更大的“教師”GAN。Chen等人讓學生生成器從相應的老師那裡學習低階和高階知識。此外,學生鑑別器由教師網路透過triplet損失進行監督。Li等人透過從中間表示中轉移知識並透過神經架構搜尋探索高效架構,提出了一種用於條件GAN的通用壓縮框架。Zhang等人指出,小型GAN通常難以生成所需的高頻資訊。小波KD透過離散小波變換將影像分解為不同的頻帶,然後只傳輸有價值的高頻帶。

總結。儘管基於對抗的KD有助於知識模仿,但在實踐中可能很難確保GAN網路的收斂性。對於GAN壓縮,從特徵中提取哪些資訊適合蒸餾GAN仍然是一個值得探索的問題。

4.總結

本篇綜述首先按照基於響應、特徵和關係三種層面的知識型別總結了離線知識蒸餾的工作。透過剖析離線知識蒸餾需要預訓練教師的問題,引出了線上知識蒸餾和自知識蒸餾。面向實際場景中,本文又引入了跨模態知識蒸餾和無資料的知識蒸餾。此外,本文展示了一些用於提升知識蒸餾效果的擴充套件機制,例如多教師知識蒸餾、注意力機制知識蒸餾和對抗知識蒸餾。

本文對以上領域的代表性相關工作進行調研,並總結核心思想與貢獻,對未來知識蒸餾的挑戰進行展望。相比於先前釋出的知識蒸餾綜述[2,3],本文包含了更多發表於2022年以後的工作,以及介紹了一些先進的知識蒸餾方向,例如自監督蒸餾和ViT蒸餾。本文希望可以透過總結過去工作讓讀者更快地學習領域的現狀,從而提出更先進的知識蒸餾方法,推動領域的發展。

參考文獻

[1] Hinton G. Distilling the Knowledge in a Neural Network[J]. arXiv preprint arXiv:1503.02531, 2015.

[2] Gou J, Yu B, Maybank S J, et al. Knowledge distillation: A survey[J]. International Journal of Computer Vision, 2021, 129: 1789-1819.

[3] Wang L, Yoon K J. Knowledge distillation and student-teacher learning for visual intelligence: A review and new outlooks[J]. IEEE transactions on pattern analysis and machine intelligence, 2021, 44(6): 3048-3068.

相關文章