知識蒸餾是一種在深度學習中用于模型壓縮和知識傳遞的技術。它通過將大型復雜模型(教師模型)的知識轉移給小型簡單模型(學生模型),從而優化學生模型的性能。

這種方法被廣泛應用于降低模型復雜性和減少計算資源需求。知識蒸餾是通過將教師模型的輸出概率分布傳遞給學生模型,并使用軟標簽作為學生模型的訓練目標來實現的。蒸餾可以通過最小化軟標簽和學生模型輸出之間的交叉熵損失來優化。這種方法已經在各種任務和數據集上取得了顯著的成功,包括圖像分類、自然語言處理和語音識別。

圖1為知識蒸餾的發展歷程和各個時期較為代表性的工作。

圖1知識蒸餾發展歷程

知識蒸餾面臨的挑戰主要可以分為:模型問題包括教師模型和學生模型不匹配、深層模型和淺層模型之間的容量差距等;成本問題包括模型訓練過程對超參數較為敏感以及對損失函數依賴較大等;可解釋性不足則是指知識蒸餾的原理解釋主要是基于黑盒模型,難以解釋模型的決策過程和內部機制。

該綜述主要貢獻包括:

1)對知識的分類進行了細化,增加了中間層知識、參數知識、圖表示知識,完整地涵蓋了目前知識的全部形式;

2)以表格的方式對不同方法之間的優缺點、適用場景等進行詳細的總結對比,便于掌握;

3)遵循了主題式分類原則,不僅分析了單篇文獻,還分析相關領域中知識蒸餾的重要研究,并對知識蒸餾的學習目的、原理和解釋、發展趨勢等方面做了較為全面的闡釋。

圖2是知識蒸餾模型的整體結構,由一個多層的教師模型和學生模型組成,教師模型主要負責向學生模型傳遞知識。

圖2 知識蒸餾教師學生模型結構流程圖

此外,本文對知識蒸餾相關研究進行了總結,主要從知識傳遞形式、學習的方式、學習的目的、交叉領域、主要應用等方面對其進行分類,其分類框架如圖3所示,具體內容將在后續的文章中展開。

圖3 知識蒸餾整體分類框架

知識傳遞形式

根據知識在教師-學生模型之間傳遞的形式可以將知識蒸餾方法歸類為標簽知識、中間層知識、參數知識、結構化知識和圖表示知識。

不同知識傳遞形式下的蒸餾方法的形式化表示及其相關解釋整理為表1所示:

表1 不同知識傳遞形式下的蒸餾方法形式化表示對比表

相關的優缺點和實驗對比,見表2~表3所示:

表2 不同知識形式的代表性蒸餾方法在CIFAR100數據集上實驗結果

表3 不同“知識”表達形式的優缺點

標簽知識

標簽知識是指通過訓練好的模型對數據集進行預測得到的標簽信息,通常也被稱為“暗知識”。標簽知識方法簡單通用,易于實現,適合分類、識別、分割等幾乎所有任務。但是,標簽知識也存在知識單一、依賴于損失函數的設計且對參數敏感等缺點。此外,標簽知識中也包含了很多不確定信息,這些信息通常反映了樣本間的相似度或干擾性、樣本預測的難度。因此,標簽知識通常提供的信息十分有限且有相對的不確定性,但它仍然是基礎蒸餾方法研究的重點和熱點之一,因為其與傳統的偽標簽學習或者自訓練方法有著密切的聯系,這實際上為半監督學習開辟了新的道路。標簽知識是各種任務中知識蒸餾的基礎之一,適用于安全隱私要求相對不高的場景。

中間層知識

中間層知識是指教師模型中間層的特征作為學生模型的目標,相比標簽知識蒸餾更加豐富,大大提高了傳輸知識的表征能力和信息量,有效提升了蒸餾訓練效果。中間層知識所表達的是深度神經網絡的中間層部件所提取出的高維特征,具有更具表征能力的特征知識。中間層知識可以提高傳輸知識的表征能力和信息量,有效提升蒸餾訓練效果。但是不同架構的教師學生模型的中間層知識表征空間通常難以直接匹配基于中間層知識的蒸餾方法在實踐中通常需要考慮教師和學生模型的網絡結構,可以將其分為同構蒸餾和異構蒸餾兩種情況,如圖4所示,同構知識蒸餾(a)中教師和學習模型具有相同的架構,層與層,塊與塊之間對應,可直接蒸餾;異構知識蒸餾(b)中教師模型和學生模型各個層或塊不能完全對應需要通過橋接模塊來實現蒸餾。

圖4 同構-異構蒸餾知識遷移結構圖

參數知識

參數知識是指直接利用教師模型的部分訓練好的參數或網絡模塊參與蒸餾訓練,它通常無法作為一個獨立的方法,而是與其他蒸餾方法結合使用。目前存在兩種形式的參數知識蒸餾方法:教師平均法作為一種穩定訓練過程,可以通過對教師模型的多次訓練得到多個教師模型,然后將這些教師模型的參數進行平均得到一個更加穩定的教師模型;模塊注入法則是將教師模型的某些模塊直接注入到學生模型中,以提高學生模型的性能。

結構化知識

結構化知識的傳遞可以通過兩種方式實現:一是直接將教師模型的結構信息復制到學生模型中,二是通過一些規則或算法將教師模型的結構信息轉化為學生模型的結構信息。結構化知識的傳遞可以提高學生模型的泛化能力和可解釋性,但也存在一些挑戰,如教師模型和學生模型的結構不匹配、結構信息的復雜性等。結構化知識在深度學習中的應用非常廣泛,可以用于圖像分類、目標檢測、自然語言處理等領域。例如,在圖像分類任務中,教師模型可以學習到不同類別之間的關系,將這些關系傳遞給學生模型可以幫助學生模型更好地理解不同類別之間的區別和聯系。

傳統的知識蒸餾(a)主要是在特征上直接蒸餾;結構化知識蒸餾(b)在特征之上構建特征之間的結構關系(如距離和角度)),兩者的對比如圖6所示:

圖5 傳統知識特征與結構化知識特征對比

圖表示知識

圖表示知識是指將特征向量映射至圖結構來表示其中的關系,以滿足非結構化數據表示的學習需求。圖表示知識的傳遞可以通過兩種方式實現:一是直接將教師模型中的圖表示知識復制到學生模型中,二是通過一些規則或算法將教師模型中的特征向量轉化為學生模型中的圖表示知識。圖表示知識的傳遞可以提高學生模型的泛化能力和可解釋性,但也存在一些挑戰,如圖表示知識的復雜性、圖結構的匹配問題等。

使用圖表示知識的蒸餾方法主要集中于兩類場景:一是從經典深度神經網絡中提取特征的圖結構化關系表示知識,二是圖神經網絡(Graph Neural Networks,GNN)上的知識蒸餾。

圖6展示了圖表示知識與圖表示知識蒸餾示意圖,其中,圖表示知識(a)通常構建成節點和邊的連接形式,而圖表示知識蒸餾(b)需要建立在邊表示的節點關系或局部圖結構上。

圖6 圖表示知識與圖表示知識蒸餾示意圖

學習方式

類似于人類教師和學生間的學習模式,神經網絡的知識蒸餾學習方式也有著多種模式。如離線蒸餾、在線蒸餾、自蒸餾、無數據蒸餾、多模型蒸餾和特權蒸餾。圖7為知識蒸餾的三種基本學習方式分類結構示意圖(T 為教師模型,S 為學習模型,下同)。

圖7 學習方式分類結構示意圖

不同蒸餾方法的優缺點如表4所示:

表4不同蒸餾方法的優缺點比較

離線蒸餾

離線蒸餾是指教師模型和學生模型分別獨立訓練,學生模型只使用教師模型的輸出作為標簽進行訓練。離線蒸餾的優點是靈活可控、易于操作、成本較低,但缺點是無法滿足多任務、多領域任務。離線蒸餾主要適用于單任務學習,安全隱私要求相對不高,教師模型可訪問的場景。

在線蒸餾

在線蒸餾是指教師模型和學生模型同時參與訓練和參數更新。在線蒸餾的優點是能夠滿足多任務、多領域任務,能夠實時調整教師模型的知識提煉過程,但缺點是計算量大、時間成本高。在線蒸餾主要適用于多任務學習、安全隱私要求較高、教師模型無法訪問的場景。在線蒸餾學習模式有互學習、共享學習和協同學習。

互學習。互學習的特點是將兩個或多個學生模型一起訓練并將他們的輸出知識作為互相之間的學習目標?;W習的方法包括兩個學生模型之間互相學習、多個學生模型互學習等,它們在不同的場景中都有著廣泛的應用?;W習的優勢在于模型之間可以相互促進實現互補。

共享學習。共享學習在多個訓練模型中需要通過構建教師模型來收集和匯總知識,并將知識反饋給各個模型,以達到知識共享的目的。與互學習不同,共享學習的模型之間沒有直接的相互作用,而是通過教師模型來進行知識的傳遞和共享。共享學習的方法包括分層共享、分支共享等。

協同學習。同學習類似于互學習,主要是在任務上訓練多個獨立的分支后實現知識集成與遷移并實現學生的同時更新。與互學習不同的是,協同學習的模型之間沒有直接的相互作用,而是通過任務的分支來進行知識的傳遞和共享。協同學習的方法包括分支協同、任務協同等。

自蒸餾

自蒸餾學習是指學生模型不依賴于外在模型而是利用自身信息進行蒸餾學習。自蒸餾的優點是不需要預先訓練大型教師模型,能夠在沒有教師模型指導的條件下達到學生模型性能的自我提升,但缺點是需要較長的訓練時間和更多的計算資源。自蒸餾主要適用于單任務學習、教師模型無法訪問的場景。

無數據蒸餾

無數據蒸餾是指在沒有訓練數據的情況下,通過對教師模型的分析和理解,直接將其知識傳遞給學生模型的一種蒸餾方法,也叫零樣本蒸餾。這種方法可以在不需要額外標注數據的情況下,提高模型的泛化能力和魯棒性。無數據蒸餾的優點在于不需要額外的標注數據,可以節省時間和成本。但是需要注意的是,無數據蒸餾的效果可能會受到已有模型的質量和輸出的影響。

圖無數據蒸餾需要通過噪聲合成等效樣本同時將知識傳遞給學生模型,傳統知識蒸餾模型和無數據知識蒸餾的結構對比如圖8:

圖8 傳統知識蒸餾模型和無數據知識蒸餾的結構對比

多模型蒸餾

多模型蒸餾是指在蒸餾過程中有多個模型參與,各自集成其他模型輸出的知識后進行學習。這種方法可以提高模型的魯棒性和泛化能力,同時也可以減少過擬合的風險。值得注意的是,多模型蒸餾需要更多的計算資源和時間,因此需要在實際應用中進行權衡。可分為多教師模型和集成學習的多模型蒸餾方式。

多教師蒸餾。多教師蒸餾的研究重點在于設計合適的知識組合策略用于指導學生,學習多個教師的優點而摒棄不足。多教師蒸餾對于多任務、多模態學習等有很重要的指導意義,可以解決傳統端到端訓練方式面臨的許多困難。

集成學習。集成學習類似于多教師蒸餾,關鍵在于多個模型的知識集成策略的設計,使其達到優勢互補的效果。不同的是,集成學習沒有嚴格意義上的教師模型參與,所有學生模型都同時學習和更新參數。并且,它通常采用多個完全同構的模型,因此對中間層特征的利用度很高。

特權蒸餾

特權蒸餾主要用于一些隱私保護的場景,教師模型可以利用特權信息,而學生模型可以間接地通過蒸餾學習獲得這些信息,從而提升學生的學習效果,降低訓練難度。特權蒸餾的知識傳遞形式主要是以軟標簽信息為主,學習形式沒有嚴格約束。特權蒸餾的結構是特殊的,特權數據只能教師模型訪問,學生模型無法直接訪問,學生模型需要通過教師模型來學習,如圖9所示。特權蒸餾方法的實現需要考慮如何保護特權信息的安全性,同時也需要考慮如何提高知識的傳遞效率和學生模型的泛化能力。

圖9 特權蒸餾結構

學習目的

模型壓縮

模型壓縮是知識蒸餾提出的最初目的,它可以通過減少模型的參數數量、計算復雜度等方式來提高模型的效率和泛化能力。常見的模型壓縮方法包括剪枝、量化、低秩分解、高效結構設計以及知識蒸餾等,圖10展示三種主要模型壓縮方法的原理示意圖。這些方法可以單獨使用,也可以結合使用,以達到更好的壓縮效果。模型壓縮在實際應用中具有廣泛的應用前景,可以幫助深度學習模型在移動設備、嵌入式設備等資源受限的環境下實現高效的計算和預測。

圖10 三種主要模型壓縮方法的原理示意圖(箭頭左邊為原始模型,右側為壓縮模型)

跨模態/跨領域

跨模態數據的存在形式稱為模態,它可以是不同領域的數據,如視覺、文本、語音等??缒B學習可以建立不同數據之間的關系,從而使得學習效果得到改進。同時,跨領域數據也是一種常見的數據形式,它可以是不同領域的數據,如醫療、金融、交通等??珙I域學習可以將不同領域的知識進行遷移,從而提高模型的泛化能力和效率。跨領域學習可以在不同領域之間共享知識,從而提高模型的性能和應用效果??缒B/跨領域學習在深度學習中具有廣泛的應用前景,可以幫助深度學習模型更好地理解和學習任務,從而提高模型的性能和應用效果。

跨模態 / 跨領域知識蒸餾模型結構如圖11所示:

圖11 跨領域和跨模態模型結構對比

隱私保護

傳統的深度學習模型很容易受到隱私攻擊,例如攻擊者可以從模型參數或目標模型中恢復個體的敏感信息。因此,出于隱私或機密性的考慮,大多數數據集都是私有的,不會公開共享。特別是在處理生物特征數據、患者的醫療數據等方面,而且企業通常也不希望自己的私有數據被潛在競爭對手訪問。因此,模型獲取用于模型訓練優質數據,并不現實。知識蒸餾可以通過教師學生結構的知識蒸餾來隔離的數據集的訪問,讓教師模型學習隱私數據,并將知識傳遞給外界的模型。例如,Gao等人提出的知識轉移結合了隱私保護策略,這個過程中教師模型訪問私有的敏感數據并將學習到的知識傳遞給學生,而學生模型不能公開獲取數據但是可以利用教師模型的知識來訓練一個可以公開發布的模型,以防止敏感的訓練數據直接暴露給應用。因此,知識蒸餾是一種有效的隱私保護方法,可以幫助深度學習模型在保護隱私的同時實現高效的計算和預測。

持續學習

持續學習是指一個學習系統能夠不斷地從新樣本中學習新的知識,并且保存大部分已經學習到的知識,其學習過程也十分類似于人類自身的學習模式。但是持續學習需要面對一個非常重要的挑戰是災難性遺忘,即需要平衡新知識與舊知識之間的關系。知識蒸餾能夠將已學習的知識傳遞給學習模型實現“知識遷移”,從而在持續學習中起到重要的作用。因此,知識蒸餾是一種有效的持續學習方法,可以幫助深度學習模型在不斷學習新知識的同時保留舊知識,從而提高模型的泛化能力和效率。

交叉領域

生成對抗網絡

生成對抗網絡(GAN)是一種深度學習模型,它由兩個神經網絡組成:生成器和判別器。生成器的目標是生成與真實數據相似的假數據,而判別器的目標是區分真實數據和假數據。通過不斷地訓練,生成器可以逐漸生成更加逼真的假數據,而判別器也可以逐漸提高對真假數據的判別能力。生成對抗網絡在圖像生成、圖像修復、圖像轉換等方面具有廣泛的應用,是深度學習領域的一個重要研究方向。知識蒸餾結合GANs壓縮還存在著不易訓練、不可解釋等方面的挑戰。

圖12展示了生成對抗網絡結合知識蒸餾結構示意圖:

圖12 生成對抗網絡結合知識蒸餾結構示意圖(T 為教師模型,S為學生模型,D為生成器,G 為判別器

強化學習

強化學習(LR)又稱為增強學習,它通過智能體與環境的交互來學習最優的行為策略,如圖13所示。在強化學習中,智能體通過觀察環境的狀態,采取相應的行動,并根據環境的反饋獲得獎勵或懲罰。通過不斷地試錯和學習,智能體可以逐漸學習到最優的行為策略,從而實現任務的最優化。強化學習在游戲、機器人控制、自然語言處理等領域具有廣泛的應用,是深度學習領域的一個重要研究方向。

圖13 強化學習原理圖(智能體在環境中根據觀察的狀態作為決策,采取相應的行為并期望獲得最大的獎勵)

知識蒸餾與深度強化相結合的過程有兩種方式,策略蒸餾和雙策略蒸餾,深度強化教師模型將經驗值存到記憶重播池中,學生模型從策略池中學習教師模型的經驗.雙策略模型的兩個模型從環境中學習經驗并互相蒸餾知識。如圖14所示:

圖14 強化學習中的知識蒸餾示意圖

元學習

元學習(Meta Learning)的目標是學習如何學習。元學習的核心思想是通過學習一些基本的學習算法或策略,來快速適應新的任務或環境。元學習可以幫助機器學習模型在少量樣本的情況下快速適應新的任務,從而提高模型的泛化能力。近年來,元學習在少樣本分類、強化學習等領域得到了廣泛的應用和研究。

元學習知識蒸餾結構如圖15所示:

圖15 元學習知識蒸餾結構圖(在教師和學生模型中構建 “元知識”用于輔助學生訓練)

知識蒸餾結合的元學習作為小樣本環境下提高性能的手段,在知識遷移過程中也會面臨著一些挑戰,諸如過擬合、結構不匹配、新舊任務不關聯等問題。

自動機器學習

自動機器學習(AutoML)是通過自動化特征工程、模型構建和超參數優化等過程,來實現機器學習的自動化。AutoML可以幫助非專業人士快速構建和優化機器學習模型,從而降低了機器學習的門檻。在AutoML中,神經結構搜索(NAS)和超參數優化(HPO)是兩個重要的技術方向。NAS通過搜索最優的神經網絡結構來提高模型的性能,而HPO則是通過自動化搜索最優的超參數組合來提高模型的性能。,NAS結合知識蒸餾的過程中,還有一些需要解決的挑戰的難題,包括結構不匹配、搜索空間復雜、魯棒性不足等問題。AutoML在圖像分類等計算機視覺領域有著廣泛的應用。

傳統模型學習與自動機器學習對比如圖16所示:

圖16 傳統模型學習與自動機器學習對比圖

自監督學習

自監督學習(SSL)是一種預訓練微調的方法,它通過構建輔助任務來訓練模型,并將得到的預訓練模型通過微調的方式應用于下游任務。監督學習和自監督學習蒸餾結構對比如圖17所示。自監督學習的核心思想是利用大量的無標簽數據來訓練模型,從而提高模型的泛化能力。自監督學習可以幫助機器學習模型在少量標簽數據的情況下快速適應新的任務,從而降低了數據標注的成本。但是自監督學習的缺點在于學習輔助任務和目標任務時只能使用同構模型或者其中的一部分,這也導致了目前絕大部分自監督學習的方法在預訓練和微調時都是使用的相同架構。

圖17 監督學習和自監督學習蒸餾結構對比圖(傳統的監督學習的蒸餾在標簽數據集上構建預訓練模型(標簽任務),而自監督學習蒸餾則是在無標簽數據集上訓練并‘總結’出知識(輔助任務),用于目標模型的訓練。

主要應用

計算機視覺

應用知識蒸餾的視覺研究主要集中在視覺檢測和視覺分類上。視覺檢測主要有目標檢測、人臉識別、行人檢測、姿勢檢測;而視覺分類的研究熱點主要是語義分割,如表5所示。另外,視覺中還有視頻分類、深度估計和光流/場景流估計等。

表5 計算機視覺主要蒸餾方法應用與對比

注:‘A’表示離線蒸餾,‘B’表示在線蒸餾,‘C’表示自蒸餾,‘D’表示無數據蒸餾,‘E’表示多模型蒸餾,‘F’表示特權蒸餾;‘L’表示標簽知識,‘I’表示中間層知識,‘P’表示參數知識,‘S’表示結構知識;‘M’表示模型壓縮,‘K’表示跨模態/領域,‘H’表示隱私保護,‘J’表示持續學習,下同。

自然語言處理

結合知識蒸餾較為廣泛的自然語言處理(NLP)任務主要有機器翻譯(Neural Machine Translation, NMT),問答系統(Question Answer System, QAS)等領域。表6列舉了知識蒸餾結合機器翻譯和問答系統的代表性的研究工作。另外,BERT模型近年來被廣泛應用于NLP的各個領域,表6中一并列舉。

表6 自然語言處理的主要蒸餾方法應用與對比

推薦系統

推薦系統(Recommender Systems, RS)被廣泛應用于電商、短視頻、音樂等系統中,對各個行業的發展起到了很大的促進作用。推薦系統通過分析用戶的行為,從而得出用戶的偏好,為用戶推薦個性化的服務。因此,推薦系統在相關行業中有很高的商業價值。深度學習應用于推薦系統也面臨著模型復雜度和效率的問題。表7中整理了目前關于推薦系統和知識蒸餾工作的相關文獻,可供參考。

表7 推薦系統中的主要蒸餾方法應用與對比

文章轉自微信公眾號@算法進階

上一篇:

多模態深度學習:用深度學習的方式融合各種信息

下一篇:

神經網絡可視化工具,超全匯總!
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費