【知识蒸馏】知识蒸馏(Knowledge Distillation)技术详解
參考論文:Knowledge Distillation: A Survey
1.前言
???????? 近年來,深度學習在學術界和工業界取得了巨大的成功,根本原因在于其可拓展性和編碼大規模數據的能力。但是,深度學習的主要挑戰在于,受限制于資源容量,深度神經模型很難部署在資源受限制的設備上。如嵌入式設備和移動設備。因此,涌現出了大量的模型壓縮和加速技術,知識蒸餾是其中的代表,可以有效的從大型的教師模型中學習到小型的學生模型。本文從知識類別、訓練模式、師生架構、蒸餾算法、性能比較和應用等方面對知識蒸餾進行了綜述。
???????? 提到了近年來深度學習在計算機視覺、強化學習和自然語言處理上的一些進展,指出主要挑戰在于大模型在實際應用中的部署。為了開發高效的深度模型,近年來的研究主要集中在深度模型的開發上:(1)深度神經網絡高效快的構建;(2)模型壓縮和加速技術,主要包含以下:
- 參數剪枝和共享:該方法專注于去除模型中的不必要參數 低秩分解:
- 該方法利用矩陣分解和張量分解來識別深度神經網絡的冗余參數;
- 轉移緊湊型卷積濾波器:該方法通過轉移或壓縮卷積濾波器來去除不必要的參數;
- 知識蒸餾(KD):該方法將知識從一個較大的深度神經網絡中提取到一個較小的網絡中
???????? 為了解決大模型的線上部署問題,Bucilua et al. (2006)首先提出了模型壓縮,在不顯著降低精度的情況下,將大模型或模型集合中的信息轉換為訓練小模型。在半監督學習中,引入了完全監督的教師模型和使用無標記數據的學生模型之間的知識轉移。從小模型到大模型的學習后來被正式命名為為知識蒸餾(Hinton )。知識蒸餾主要思想是:學生模型模仿教師模型,二者相互競爭,是的學生模型可以與教師模型持平甚至卓越的表現。關鍵問題是如何將知識從大的教師模型轉移到小的學生模型。知識蒸餾系統由知識、蒸餾算法和師生架構三個關鍵部分組成。如上圖所示。
???????? 雖然在實踐中取得了巨大的成功,但無論是理論還是經驗上對知識蒸餾的理解都不多。關于知識蒸餾的原理,Urner等利用無標記數據證明了從教師模型到學生模型的知識轉移是PAC可學習的;Phuong & Lampert通過在深度線性分類器場景下學習蒸餾學生網絡的快速收斂獲得了知識蒸餾的理證明,這個論證回答了學生學習的內容和速度,并揭示了決定蒸餾成功的因素,成功的蒸餾依賴于數據的分布、蒸餾目標的優化偏差和學生分類器的強單調性;Cheng等人量化了從深度神經網絡的中間層中提取視覺概念,以解釋知識蒸餾;Ji和Zhu分別從風險界、數據效率和不完善教師三個方面對廣義神經網絡知識蒸餾進行了理論解釋;Cho和Hariharan對知識蒸餾的功效進行了詳細的實證分析;Mirzadeh et al.的實證結果表明,由于模型能力差距的存在,模型越大的教師未必就越優秀;Cho and Hariharan (2019)的實驗也表明,蒸餾對學生的學習有不利影響。知識蒸餾的不同形式對知識、蒸餾和師生互動的經驗評價不包括在內;知識蒸餾也被用于標簽平滑、評估教師的準確性和獲得最佳輸出層參數分布先驗。
???????? 知識蒸餾與人的學習過程類似,基于此,近年來的一些研究拓展了教師—學生模型,發展為mutual learning、lifelong learning和self-learning。同時受到知識蒸餾在模型壓縮中的影響,知識遷移已經被用在了壓縮數據上,如dataset distillation。
文章結構圖
2.知識(Knowledge)
???????? 在知識蒸餾中,知識類型、蒸餾策略和師生架構對學生模型的學習起著至關重要的作用。原始知識蒸餾使用大深度模型的對數作為教師知識(Hinton 2015),中間層的激活、神經元或特征也可以作為指導學生模型學習的知識,不同的激活、神經元或成對樣本之間的關系包含了教師模型所學習到的豐富信息.此外,教師模型的參數(或層與層之間的聯系)也包含了另一種知識,本節主要討論以下幾種類型的知識:基于響應的知識(response-based knowledge),基于特征的知識( feature-based knowledge), 基于關系的知識(relation-based knowledge),下圖為教師模型中不同知識類別的直觀示例。
2.1. 基于響應的知識(Response-Based Knowledge)
???????? Response-Based Knowledge通常是指教師模型的最后一輸出層的神經反應。其主要思想是讓學生模型直接模仿教師模式的最終預測(logits),假定對數向量Z為全連接層的最后輸出,response-based knowledge蒸餾形式可以被描述為:
???????? LR(.) 表示散度損失(這里也可以是用交叉熵損失),如下圖所示為Response-Based 知識蒸餾模型圖。
???????? 基于響應的知識可以用于不同類型的模型預測。例如,在目標檢測任務中的響應可能包含bounding box的偏移量的logits;在人類姿態估計任務中,教師模型的響應可能包括每個地標的熱力圖。最流行的基于響應的圖像分類知識被稱為軟目標(soft target)。軟目標是輸入的類別的概率,可以通過softmax函數估計為:
???????? Zi是第i個類別的logit,T是溫度因子,控制每個軟目標的重要性。軟目標包含來自教師模型的暗信息知識(informative dark knowledge)。因此,軟logits的蒸餾loss可以重寫為:
????????? 通常,LR(.)使用KL散度loss(Kullback-Leibler divergence,衡量兩個概率分布的相似性的度量指標)。優化該等式可以使學習的logits與教師的logits相匹配。下圖為基準知識蒸餾的具體架構。
?????????? 然而,基于響應的知識通常需要依賴最后一層的輸出,無法解決來自教師模型的中間層面的監督,而這對于使用非常深的神經網絡進行表示學習非常重要。由于logits實際上是類別概率分布,因此基于響應的知識蒸餾限制在監督學習。
2.2. 基于特征的知識(Feature-Based Knowledge)
?????????? 深度神經網絡善于學習到不同層級的表征,因此中間層和輸出層的都可以被用作知識來訓練學生模型,對于最后一層的輸出和中間層的輸出(特征圖,feature map),都可以作為監督學生模型訓練的知識,中間層的Feature-Based Knowledge對于 Response-Based Knowledge是一個很好的補充,其主要思想是將教師和學生的特征激活直接匹配起來。一般情況下,Feature-Based Knowledge知識轉移的蒸餾損失可表示為:
?????????? 其中ft(x)、fs(x)分別是教師模型和學生模型的中間層的特征圖。變換函數當教師和學生模型的特征圖大小不同時應用。LF(.)衡量兩個特征圖的相似性,常用的有L1 norm、L2 norm、交叉熵等。下圖為基于特征的知識蒸餾模型的通常架構。
?????????? 雖然基于特征的知識遷移為學生模型的學習提供了良好的信息,但如何有效地從教師模型中選擇提示層,從學生模型中選擇引導層,仍有待進一步研究。由于提示層和引導層的大小存在顯著差異,如何正確匹配教師和學生的特征表示也需要探討。
2.3. 基于關系的知識(Response-Based Knowledge)
?????????? 基于響應和基于特征的知識都使用了教師模型中特定層的輸出,基于關系的知識進一步探索了不同層或數據樣本的關系。一般,將基于特征圖關系的關系知識蒸餾loss表述如下:
其中,ft和fs分別表示教師模型和學生模型的特征圖,ft^、ft 和 fs^、fs~分別是教師模型和學生模型的特征圖組(pairs)。函數表示特征組的相似性函數,
?????????? 傳統的知識遷移方法往往涉及到單個知識蒸餾,教師的軟目標被直接蒸餾給學生。實際上,蒸餾的知識不僅包含特征信息,還包含數據樣本之間的相互關系。這一節的關系涉及許多方面,作者的設計很靈活,建議看原論文更清楚。
3. 蒸餾機制(Distillation Schemes)
?????????? 根據教師模型是否與學生模型同時更新,知識蒸餾的學習方案可分為離線(offline distillation)蒸餾、在線(online distillation)蒸餾、自蒸餾(self-distillation)。
3.1.離線蒸餾(offline distillation)
??????????? 大多數之前的知識蒸餾方法都是離線的。最初的知識蒸餾中,知識從預訓練的教師模型轉移到學生模型中,整個訓練過程包括兩個階段:1)大型教師模型蒸餾前在訓練樣本訓練;2)教師模型以logits或中間特征的形式提取知識,將其在蒸餾過程中指導學生模型的訓練。教師的結構是預定義的,很少關注教師模型的結構及其與學生模型的關系。因此,離線方法主要關注知識遷移的不同部分,包括知識設計、特征匹配或分布匹配的loss函數。離線方法的優點是簡單、易于實現。
??????????? 離線蒸餾方法通常采用單向的知識遷移和兩階段的訓練程序。然而,訓練時間長的、復雜的、高容量教師模型卻無法避免,而在教師模型的指導下,離線蒸餾中的學生模型的訓練通常是有效的。此外,教師與學生之間的能力差距始終存在,而且學生往往對教師有極大依賴。
3.2.在線蒸餾(online distillation)
??????????? 為了克服離線蒸餾的局限性,提出了在線蒸餾來進一步提高學生模型的性能,特別是在沒有大容量高性能教師模型的情況下。在線蒸餾時,教師模型和學生模型同步更新,而整個知識蒸餾框架都是端到端可訓練的。
? ??????????? 在線蒸餾是一種具有高效并行計算的單階段端到端訓練方案。然而,現有的在線方法(如相互學習)通常無法解決在線環境中的高容量教師,這使進一步探索在線環境中教師和學生模式之間的關系成為一個有趣的話題。
3.3.自蒸餾(self-distillation)
???????? 在自蒸餾中,教師和學生模型使用相同的網絡,這可以看作是在線蒸餾的一個特例。例如論文(Zhang, L., Song, J., Gao, A., Chen, J., Bao, C. & Ma, K. (2019b).Be your own teacher: Improve the performance of convolutional eural networks via self distillation. In ICCV.)將網絡深層的知識蒸餾到淺層部分。
????????? 從人類師生學習的角度也可以直觀地理解離線、在線和自蒸餾。離線蒸餾是指知識淵博的教師教授學生知識;在線蒸餾是指教師和學生一起學習;自我蒸餾是指學生自己學習知識。而且,就像人類學習的方式一樣,這三種蒸餾由于其自身的優點,可以相互補充。
4.教師-學生結構(Teacher-Student Architecture)
???????在知識蒸餾中,師生架構是形成知識轉移的一般載體。換句話說,師生結構決定了學生模型提取教師模型中知識的質量,用人類學習過程來描述,就是我們希望學生獲得一個不錯的老師來獲取知識。因此,在知識的提煉過程中,如何選擇或設計合適的師生結構,是一個重要而又困難的問題。最近,在蒸餾過程中,教師和學生的模型設置幾乎是固定不變的大小和結構,從而容易造成模型容量缺口。然而,如何特別設計教師和學生的體系結構,以及為什么他們的體系結構由這些模型設置決定,幾乎是缺失的。兩者之間模型的設置主要有以下關系:
???????知識蒸餾早期被用來壓縮模型,Hinton等人(Hinton, G., Vinyals, O. & Dean, J. (2015). Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531.)曾將知識蒸餾設計為壓縮深度神經網絡的集合。深度神經網絡的復雜性主要來自于深度和寬度這兩個維度。通常需要將知識從更深、更寬的神經網絡轉移到更淺、更窄的神經網絡。學生網絡的結構通常有以下選擇:1)教師網絡的簡化版本,層數更少,每一層的通道數更少;2)保留教師網絡的結構,學生網絡為其量化版本;3)具有高效基本運算的小型網絡;4)具有優化全局網絡結構的小網絡;5)與教師網絡的結構相同。
????????大網絡和小網絡之間容量的差距會阻礙知識的遷移。為了有效地將知識遷移到學生網絡中,許多方法被提出來控制降低模型的復雜性。論文(Mirzadeh, S. I., Farajtabar, M., Li, A. & Ghasemzadeh, H. (2020). Improved knowledge distillation via teacher assistant. In AAAI.)引入了一個教師助手,來減少教師模型和學生模型之間的訓練差距。另一篇工作通過殘差學習進一步縮小差距,利用輔助結構來學習殘差。還有其他一些方法關注減小教師模型與學生模型結構上的差異。例如將量化與知識蒸餾相結合,即學生模型是教師模型的量化版本。
???????以往的研究多側重于設計師生模型的結構或師生模型之間的知識轉移方案。為了使小的學生模型與大的教師模型能夠很好地匹配,從而提高知識的蒸餾性能,需要自適應的師生學習結構。近年來,知識蒸餾中的神經結構搜索思想被提出,即在教師模式指導下聯合搜索學生結構和知識轉移,將成為未來研究的熱點。此外,動態搜索知識遷移機制的想法也出現在知識蒸餾中,例如,使用強化學習以數據驅動的方式自動去除冗余層,并尋找給定教師網絡的最優學生網絡。
5.蒸餾算法
????????一個簡單但有效的知識遷移方法是直接匹配基于響應的、基于特征的或教師模型和學生模型之間的特征空間中的表示分布。許多不同的算法已經被提出,以改善在更復雜的環境中傳遞知識的過程。
5.1.對抗性蒸餾(Adversarial Distillation)
????????在知識蒸餾中,教師模型很難學習到真實數據分布,同時,學生模型容量小,不能準確模仿教師模型。近年來,對抗訓練在生成網絡中取得了成功,生成對抗網絡(GAN)中的鑒別器估計樣本來自訓練數據分布的概率,而生成器試圖使用生成的數據樣本欺騙鑒別器的概率預測。受此啟發,許多對抗知識蒸餾方法被提出,以使教師和學生網絡更好地了解真實的數據分布,如下圖所示,對抗訓練在知識蒸餾中的應用可以剛被分為三類。
a)訓練一個對抗性生成器生成合成的數據,將其直接作為訓練集或用于增強訓練集。
????????其中,Ft(.)和Fs(.)分別是教師模型和學生模型的輸出;G(z)表示給定隨機輸入向量z的生成器G生成的訓練樣本;LG是蒸餾損失,以迫使預測的概率分布與真實概率分布之間匹配,蒸餾損失函數通常采用交叉熵或KL散度。
b)使用鑒別器,利用logits或特征來分辨樣本來自教師或是學生模型。
????????代表性方法如論文(Wang, Y., Xu, C., Xu, C. & Tao, D. (2018f). Adversarial learning of portable student networks. In AAAI.),其loss可以表示為:
????????其中,G是一個學生網絡,LGAN是生成對抗網絡使用的損失函數,使學生和教師之間的輸出盡可能相似。
c)在線方式進行,在每次迭代中,教師和學生共同進行優化。
????????利用知識蒸餾壓縮GAN,小GAN學生網絡通過知識遷移模仿大GAN教師網絡。從上述對抗性蒸餾方法中,可以得出三個主要結論:1)GAN是通過教師知識遷移來提高學生學習能力的有效工具;2)聯合GAN和知識蒸餾可以為知識蒸餾的性能生成有價值的數據,克服了不可用和不可訪問的數據的限制;3)知識蒸餾可以用來壓縮GAN。
5.2.多教師蒸餾(Multi-teacher Distillation)
?????????不同的教師架構可以為學生網絡提供他們自己有用的知識。在訓練一個教師網絡期間,多個教師網絡可以單獨或整體地用于蒸餾。在一個典型的師生框架中,教師通常是一個大的模型或一個大的模型的集合。要遷移來自多個教師的知識,最簡單的方法是使用來自所有教師的平均響應作為監督信息。多教師蒸餾的一般框架如下圖所示。
??????????多個教師網絡通常使用logits和特征表示作為知識。除了來自所有教師的平均logits,還有其他的變體。文獻(Chen, X., Su, J., & Zhang, J. (2019b). A two-teacher tramework for knowledge distillation. In ISNN.)使用了兩個教師網絡,其中一名教師將基于響應的知識遷移給學生,另一名將基于特征的知識遷移給學生。文獻(Fukuda, T., Suzuki, M., Kurata, G., Thomas, S., Cui, J. & Ramabhadran,B. (2017). Effificient knowledge distillation from an ensemble of teachers. In Interspeech.))在每次迭代中從教師網絡池中隨機選擇一名教師。一般來說,多教師知識蒸餾可以提供豐富的知識,并能針對不同教師知識的多樣性量身定制一個全方位的學生模型。然而,如何有效地整合來自多名教師的不同類型的知識,還需要進一步研究。
5.3.跨模態蒸餾(Cross-Modal Distillation)
???????在訓練或測試時一些模態的數據或標簽可能不可用,因此需要在不同模態間知識遷移。在教師模型預先訓練的一種模態(如RGB圖像)上,有大量注釋良好的數據樣本,(Gupta, S., Hoffman, J. & Malik, J. (2016). Cross modal distillation for supervision transfer. In CVPR.)將知識從教師模型遷移到學生模型,使用新的未標記輸入模態,如深度圖像(depth image)和光流(optical flow)。具體來說,所提出的方法依賴于涉及兩種模態的未標記成對樣本,即RGB和深度圖像。然后將教師從RGB圖像中獲得的特征用于對學生的監督訓練。成對樣本背后的思想是通過成對樣本遷移標注(annotation)或標簽信息,并已廣泛應用于跨模態應用。成對樣本的示例還有1)在人類動作識別模型中,RGB視頻和骨骼序列;2)在視覺問題回答方法中,將圖像-問題-回答作為輸入的三線性交互教師模型中的知識遷移到將圖像-問題作為輸入的雙線性輸入學生模型中。跨模態蒸餾的框架如下:
???????跨模態總結如下。其中ResK表示基于響應的知識,FeaK表示基于特征的知識,RelK表示基于關系的知識。
5.4.基于圖的蒸餾(Graph-Based Distillation)
????????大多數知識蒸餾算法側重于將個體實例知識從教師傳遞給學生,而最近提出了一些方法使用圖來探索數據內關系。這些基于圖的蒸餾方法的主要思想是1)使用圖作為教師知識的載體;2)使用圖來控制教師知識的傳遞。基于圖的知識可以歸類為基于關系的知識。基于圖的知識蒸餾如下圖所示:
1)使用圖作為教師知識的載體
????????文獻(Zhang, C. & Peng, Y. (2018). Better and faster: knowledge transfer from multiple self-supervised learning tasks via graph distillation for video classifification. In IJCAI)中,每個頂點表示一個自監督的教師,利用logits和中間特征構造兩個圖,將多個自監督的教師的知識轉移給學校。
2)使用圖來控制知識遷移
???????文獻(Luo, Z., Hsieh, J. T., Jiang, L., Carlos Niebles, J.& Fei-Fei, L. (2018).Graph distillation for action detection with privileged http://modalities.In ECCV.)將模態差異納入來自源領域的特權信息,特權信息。引入了一種有向圖來探討不同模態之間的關系。每個頂點表示一個模態,邊表示一個模態和另一個模態之間的連接強度。
5.5. 基于注意力的蒸餾(Attention-Based Distillation)
???????注意力機制能夠很好地反映神經網絡中神經元的激活情況,因此在知識蒸餾中引入了注意力機制,提高了學生模型的性能。基于注意力機制的知識遷移的核心是定義注意力圖,將特征嵌入神經網絡的各個層次。也就是說,利用注意力圖函數轉移特征嵌入知識。
5.6.無數據的蒸餾(Data-Free Distillation)
???????無數據蒸餾的方法提出的背景是克服由于隱私性、合法性、安全性和保密問題導致的數據缺失。“data free”表明并沒有訓練數據,數據是新生成或綜合產生的。新生的數據可以利用GAN來產生。合成數據通常由預先訓練過的教師模型的特征表示生成。
???????盡管無數據蒸餾在數據不可用的情況下顯示出了巨大的潛力,但如何生成高質量的多樣化訓練數據來提高模型的泛化能力仍然是一個非常具有挑戰性的任務。
5.7. 量化蒸餾(Quantized Distillation)
???????網絡量化通過將高精度網絡(如32位浮點)轉換為低精度網絡(如2位和8位),降低了神經網絡的計算復雜度。同時,知識蒸餾的目標是訓練小模型,使其具有與復雜模型相當的性能。在師生框架下,利用量化過程提出了一些KD方法,如下圖所示;
5.8.終身蒸餾(Lifelong Distillation)
???????終身學習包括持續學習、持續學習和元學習,旨在以與人相似的方式學習。它積累了以前學到的知識,并將所學到的知識轉化為未來的學習,知識蒸餾提供了一種有效的方法來保存和轉移學習到的知識,而不會造成災難性的遺忘。最近,越來越多的KD變體被開發出來,它們是基于終身學習的。
5.9.基于神經架構搜索的蒸餾(NAS-Based Distillation)
???????神經架構搜索(NAS),它是最流行的自動機器學習(或AutoML)之一,旨在自動識別深度神經模型和自適應學習合適的深度神經結構。在知識蒸餾中,知識轉移的成功不僅取決于教師的知識,還取決于學生的架構。然而,大教師模式和小學生模式之間可能存在能力差距,使得學生很難從老師那里學得好。為了解決這一問題,采用神經結構搜索尋找合適的學生結構。
6.性能比較(Performance Comparison)
???????為了更好地證明知識蒸餾的有效性,總結了一些典型的KD方法在兩種流行的圖像分類數據集上的分類性能。這兩個數據集分別是CIFAR10和CIFAR100。兩者都有50000張訓練圖像和10000張測試圖像,每一類都有相同數量的訓練和測試圖像。為了進行公平的比較,實驗分類精度結果(%)的KD是直接從相應的原始論文中獲取,本文報告了在使用不同類型的知識、蒸餾方案和教師/學生模型結構時,不同方法的性能。括號中的準確率是教師模型和學生模型分別訓練后的分類結果。
???????從上表性能比較中,可以總結出以下幾點:
- 知識蒸餾可以在不同的深度模型上實現;
- 通過知識蒸餾可以實現不同深度模型的模型壓縮 ;
- 基于協作學習的在線知識蒸餾可以顯著提高深度模型的性能;
- 自蒸餾可以很好地提高深度模型的性能 ;
- 離線和在線蒸餾方法通常分別傳遞基于特征的知識和基于響應的知識;
- 通過對高容量教師模型的知識轉移,可以提高輕量級深度模型(學生)的性能。
???????通過對不同知識蒸餾方法的性能比較,可以得出知識蒸餾是一種有效、高效的深度模型壓縮技術。
7.應用(Applications)
???????知識蒸餾作為一種有效的深度神經網絡壓縮和加速技術,已廣泛應用于人工智能的各個領域,包括視覺識別、語音識別、自然語言處理(NLP)和推薦系統。此外,知識蒸餾還可以用于其他目的,如數據隱私和作為對抗攻擊的防御。本節簡要回顧了知識蒸餾的應用。
KD in NLP
???????傳統的語言模型(如BERT)結構復雜,耗費大量的時間和資源。知識蒸餾是自然語言處理領域中廣泛研究的一種方法,其目的是獲得輕量級、高效、有效的語言模型。越來越多的KD方法被提出來解決大量的NLP任務。在這些基于KD的NLP方法中,大多數都屬于自然語言理解(NLU),其中許多基于自然語言理解的KD方法都被設計成任務特定蒸餾和多任務蒸餾。
???????以下是自然語言處理中知識蒸餾的一些總結。
- 知識蒸餾提供了高效、有效的輕量級語言深度模型。大容量教師模型可以將大量不同種類的語言數據中豐富的知識轉化為小容量學生模型,使學生能夠快速有效地完成許多語言任務。
- 考慮到多語言模型中的知識可以相互傳遞和共享,師生知識轉移可以輕松有效地解決多個多語言任務。
- 在深度語言模型中,序列知識可以有效地從大型網絡轉移到小型網絡中
8.總結和討論(Conclusion and Discussion)
???????本文從知識、蒸餾方案、師生體系結構、蒸餾算法、性能比較和應用等方面對知識蒸餾進行了綜述,下面,主要討論了知識蒸餾面臨的挑戰,并對知識蒸餾的未來研究提出了一些見解。
8.1.挑戰(Challenges)
- 不同知識來源的重要性,以及他們的整合方式,如何在一個統一的、互補的框架內對不同類型的知識進行建模仍然是一個挑戰;
- 為了提高知識轉移的有效性,需要進一步研究模型復雜度與現有蒸餾方案或其他新型蒸餾方案之間的關系。
- 如何設計一個有效的學生模型,或者構建一個合適的教師模型,仍然是知識提煉中具有挑戰性的問題。 知識蒸餾的可解釋性。
???????盡管知識蒸餾的方法和應用有大量的存在,但對知識蒸餾的理解,包括理論解釋和經驗評價,仍然不足。教師和學生模型線性化的假設,使得通過蒸餾研究學生學習特征的理論解釋成為可能。然而,要深刻理解知識蒸餾的概括性,特別是如何衡量知識的質量或師生建筑的質量,仍然是非常困難的。
8.2.未來方向(Future Directions)
???????為了提高知識蒸餾的性能,最重要的因素包括:什么樣的師生網絡架構,從教師網絡中學習到什么樣的知識,在哪里提煉到學生網絡中。
- 在現有的知識蒸餾方法中,討論知識蒸餾與其他各種壓縮方法相結合的相關著作很少;
- 知識蒸餾除了用于深度神經網絡加速的模型壓縮外,由于師生結構中知識傳遞的自然特性,知識蒸餾也可用于其他問題。比如,數據隱私、數據擴充、對抗訓練和多模態。
總結
以上是生活随笔為你收集整理的【知识蒸馏】知识蒸馏(Knowledge Distillation)技术详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 精心备战30天,三天斩获阿里offer,
- 下一篇: python 操作 csv 编码问题,繁