知識蒸餾綜述:蒸餾機制

【GiantPandaCV導語】Knowledge Distillation A Suvery的第二部分,上一篇介紹了知識蒸餾中知識的種類,這一篇介紹各個算法的蒸餾機制,根據教師網絡是否和學生網絡一起更新,可以分爲離線蒸餾,在線蒸餾和自蒸餾。

感性上理解三種蒸餾方式:

  • 離線蒸餾可以理解爲知識淵博的老師給學生傳授知識。
  • 在線蒸餾可以理解爲教師和學生一起學習。
  • 自蒸餾意味着學生自己學習知識。

1. 離線蒸餾 Offline Distillation

上圖中,紅色表示pre-trained, 黃色代表To be trained。

早期的KD方法都屬於離線蒸餾,將一個預訓練好的教師模型的知識遷移到學生網絡,所以通常包括兩個階段:

  • 在蒸餾前,教師網絡在訓練集上進行訓練。
  • 教師網絡通過logits層信息或者中間層信息提取知識,引導學生網絡的訓練。

第一個階段通常不被認爲屬於知識蒸餾的一部分,因爲默認教師網絡本身就是已經預訓練好的。一般離線蒸餾算法關注與提升知識遷移的不同部分,包括:知識的形式,損失函數的設計,分佈的匹配。

Offline Distillation優點是實現起來比較簡單,形式上通常是單向的知識遷移(即從教師網絡到學生網絡),同時需要兩個階段的訓練(訓練教師網絡和知識蒸餾)。

Offline Distillation缺點是教師網絡通常容量大,模型複雜,需要大量訓練時間,還需要注意教師網絡和學生網絡之間的容量差異,當容量差異過大的時候,學生網絡可能很難學習好這些知識。

2. 在線蒸餾 Online Distillation

上圖中,教師模型和學生模型都是to be trained的狀態,即教師模型並沒有預訓練。

在大容量教師網絡沒有現成模型的時候,可以考慮使用online distillation。使用在線蒸餾的時候,教師網絡和學生網絡的參數會同時更新,整個知識蒸餾框架是端到端訓練的。

  • Deep Mutual Learning(dml)提出讓多個網絡以合作的方式進行學習,任何一個網絡可以作爲學生網絡,其他的網絡可以作爲教師網絡。
  • Online Knowledge Distillation via Collaborative Learning提出使用soft logits繼承的方式來提升dml的泛化性能。
  • Oneline Knowledge distillation with diverse peers進一步引入了輔助peers和一個group leader來引導互學習過程。
  • 爲了降低計算代價,Knowledge Distillation by on-the-fly native ensemble通過提出一個多分支的架構,每個分支可以作爲一個學生網絡,不同的分支共享相同的的backbone。
  • Feature fusion for online mutual knowledge distillation提出了一種特徵融合模塊來構建教師分類器。
  • Training convolutional neural networks with cheap convolutions and online distillation提出使用cheap convolutioin來取代原先的conv層構建學生網絡。
  • Large scale distributed neural network training throgh online distillation採用在線蒸餾訓練大規模分佈式網絡模型,提出了一種在線蒸餾的變體-co-distillation。co-distillation同時訓練多個相同架構的模型,每一個模型都是經由其他模型訓練得到的。
  • Feature-map-level online adversarial knowledge distillation提出了一種在線對抗知識蒸餾方法,利用類別概率和特徵圖的知識,由判別器同時訓練多個網絡

在線蒸餾法是一種具有高效並行計算的單階段端到端訓練方案。然而,現有的在線方法(如相互學習)通常不能解決在線設置中的大容量教師,因此,進一步探索在線設置中教師和學生模型之間的關係是一個有趣的話題。

3. 自蒸餾 Self-Distillation

在自蒸餾中,教師和學生模型使用相同的網絡。自蒸餾可以看作是在線蒸餾的一種特殊情況,因爲教師網絡和學生網絡使用的是相同的模型。

  • Be your own teacher: Improve the performance of convolutional neural networks via self distillation 提出了一種新的自蒸餾方法,將網絡較深部分的知識蒸餾到網絡較淺部分。
  • Snapshot distillation: Teacher-student optimization in one generation 是自蒸餾的一種特殊變體,它將網絡早期階段(教師)的知識轉移到後期階段(學生),以支持同一網絡內有監督的培訓過程。
  • 爲了進一步減少推斷的時間,Distillation based training for multi-exit architectures提出了基於蒸餾的訓練方案,即淺層exit layer在訓練過程中試圖模擬深層 exit layer的輸出。
  • 最近,自蒸餾已經在Self-distillation amplifies regularization in hilbert space進行了理論分析,並在Self-Distillation as Instance-Specific Label Smoothing中通過實驗證明了其改進的性能。
  • Revisit knowledge distillation: a teacher-free framework 提出了一種基於標籤平滑化的無教師知識蒸餾方法。
  • Regularizing Class-wise Predictions via Self-knowledge Distillation提出了一種基於類間(class-wise)的自我知識蒸餾,以與相同的模型在同一源中,在同一源內的訓練模型的輸出分佈相匹配。
  • Rethinking data augmentation: Self-supervision and self-distillation提出的自蒸餾是爲數據增強所採用的,並對知識進行增強,以此提升模型本身的性能。

4. 教師學生架構

在知識提煉中,師生架構是形成知識傳遞的通用載體。換句話說,從教師到學生的知識獲取和提煉的質量是由設計教師和學生網絡的方式 決定的。

就人類的學習習慣而言,我們希望學生能找到一個合適的老師。因此,要很好地完成知識提煉中的知識捕捉和提煉,如何選擇或設計合適的教師和學生的結構 是非常重要而困難的問題。

最近,在蒸餾過程中,教師和學生的模型設置幾乎是預先固定的,其尺寸和結構都不盡相同,這樣就容易造成模型容量差距。然而,如何對教師和學生的體系結構進行特殊的設計,以及爲什麼他們的體系結構是由這些模型設置決定的,這些問題幾乎沒有得到解答。

這部分將探討的教師模型和學生模型的結構之間的關係,如上圖所示。

在Hinton提出的KD中,知識蒸餾先前被設計用來壓縮深度神經網絡,深度神經網絡的複雜度主要來自於網絡的深度和寬度。通常需要將知識從更深更寬的神經網絡轉移到更淺更窄的神經網絡。學生網絡被選擇爲:

  • 教師網絡的簡化版:通道數和層數減少。

  • 教師網絡的量化版:網絡結構被保留下來。

  • 具有高效基本操作的小型網絡。

  • 具有優化全局網絡結構的小型網絡。

  • 與教師相同的網絡。

大型深度神經網絡和小型學生網絡之間的模型容量差距會降低知識轉移的性能 。爲了有效地將知識轉移到學生網絡中,已經提出了多種方法來控制降低模型的複雜性。比如:

  • Improved knowledge distillation via teacher assistant引入教師助理,緩解教師模式和學生模式之間的訓練gap。
  • Residual Error Based Knowledge Distillation提出使用殘差學習來降低訓練gap,輔助的結構主要用於學習殘差錯誤。

還有一些工作將關注點放在:最小化學生模型和教師模型結構上差異

  • Model compression via distillation and quantization將網絡量化與知識蒸餾相結合,即學生模型是教師模型的量化版本。
  • Deep net triage: Analyzing the importance of network layers via structural compression.提出了一種結構壓縮方法,將多個層學到的知識轉移到單個層。
  • Progressive blockwise knowledge distillation for neural network acceleration在保留感受野的同時,從教師網絡向學生網絡逐步進行block-wise的知識轉移。

以往的研究大多集中在設計教師與學生模型的結構 或教師與學生之間的知識遷移機制 。爲了使一個小的學生模型與一個大的教師模型相匹配,以提高知識提煉的績效,需要具有適應性的師生學習架構。近年來,知識提煉中的神經結構搜索,即在教師模型的指導下,對學生結構和知識轉移進行聯合搜索,將是未來研究的一個有趣課題。

  • Search to distill: Pearls are everywhere but not the eyes
  • Self-training with Noisy Student improves ImageNet classification
  • Search for Better Students to Learn Distilled Knowledge

以上的幾個工作都是在給定教師網絡的情況下,搜索合適的學生網絡結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章