知識蒸餾是一種在深度學(xué)習(xí)中用于模型壓縮和知識傳遞的技術(shù)。它通過將大型復(fù)雜模型(教師模型)的知識轉(zhuǎn)移給小型簡單模型(學(xué)生模型),從而優(yōu)化學(xué)生模型的性能。

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

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

圖1知識蒸餾發(fā)展歷程

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

該綜述主要貢獻包括:

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

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

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

圖2是知識蒸餾模型的整體結(jié)構(gòu),由一個多層的教師模型和學(xué)生模型組成,教師模型主要負責(zé)向?qū)W生模型傳遞知識。

圖2 知識蒸餾教師學(xué)生模型結(jié)構(gòu)流程圖

此外,本文對知識蒸餾相關(guān)研究進行了總結(jié),主要從知識傳遞形式、學(xué)習(xí)的方式、學(xué)習(xí)的目的、交叉領(lǐng)域、主要應(yīng)用等方面對其進行分類,其分類框架如圖3所示,具體內(nèi)容將在后續(xù)的文章中展開。

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

知識傳遞形式

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

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

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

相關(guān)的優(yōu)缺點和實驗對比,見表2~表3所示:

表2 不同知識形式的代表性蒸餾方法在CIFAR100數(shù)據(jù)集上實驗結(jié)果

表3 不同“知識”表達形式的優(yōu)缺點

標簽知識

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

中間層知識

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

圖4 同構(gòu)-異構(gòu)蒸餾知識遷移結(jié)構(gòu)圖

參數(shù)知識

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

結(jié)構(gòu)化知識

結(jié)構(gòu)化知識的傳遞可以通過兩種方式實現(xiàn):一是直接將教師模型的結(jié)構(gòu)信息復(fù)制到學(xué)生模型中,二是通過一些規(guī)則或算法將教師模型的結(jié)構(gòu)信息轉(zhuǎn)化為學(xué)生模型的結(jié)構(gòu)信息。結(jié)構(gòu)化知識的傳遞可以提高學(xué)生模型的泛化能力和可解釋性,但也存在一些挑戰(zhàn),如教師模型和學(xué)生模型的結(jié)構(gòu)不匹配、結(jié)構(gòu)信息的復(fù)雜性等。結(jié)構(gòu)化知識在深度學(xué)習(xí)中的應(yīng)用非常廣泛,可以用于圖像分類、目標檢測、自然語言處理等領(lǐng)域。例如,在圖像分類任務(wù)中,教師模型可以學(xué)習(xí)到不同類別之間的關(guān)系,將這些關(guān)系傳遞給學(xué)生模型可以幫助學(xué)生模型更好地理解不同類別之間的區(qū)別和聯(lián)系。

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

圖5 傳統(tǒng)知識特征與結(jié)構(gòu)化知識特征對比

圖表示知識

圖表示知識是指將特征向量映射至圖結(jié)構(gòu)來表示其中的關(guān)系,以滿足非結(jié)構(gòu)化數(shù)據(jù)表示的學(xué)習(xí)需求。圖表示知識的傳遞可以通過兩種方式實現(xiàn):一是直接將教師模型中的圖表示知識復(fù)制到學(xué)生模型中,二是通過一些規(guī)則或算法將教師模型中的特征向量轉(zhuǎn)化為學(xué)生模型中的圖表示知識。圖表示知識的傳遞可以提高學(xué)生模型的泛化能力和可解釋性,但也存在一些挑戰(zhàn),如圖表示知識的復(fù)雜性、圖結(jié)構(gòu)的匹配問題等。

使用圖表示知識的蒸餾方法主要集中于兩類場景:一是從經(jīng)典深度神經(jīng)網(wǎng)絡(luò)中提取特征的圖結(jié)構(gòu)化關(guān)系表示知識,二是圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)上的知識蒸餾。

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

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

學(xué)習(xí)方式

類似于人類教師和學(xué)生間的學(xué)習(xí)模式,神經(jīng)網(wǎng)絡(luò)的知識蒸餾學(xué)習(xí)方式也有著多種模式。如離線蒸餾、在線蒸餾、自蒸餾、無數(shù)據(jù)蒸餾、多模型蒸餾和特權(quán)蒸餾。圖7為知識蒸餾的三種基本學(xué)習(xí)方式分類結(jié)構(gòu)示意圖(T 為教師模型,S 為學(xué)習(xí)模型,下同)。

圖7 學(xué)習(xí)方式分類結(jié)構(gòu)示意圖

不同蒸餾方法的優(yōu)缺點如表4所示:

表4不同蒸餾方法的優(yōu)缺點比較

離線蒸餾

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

在線蒸餾

在線蒸餾是指教師模型和學(xué)生模型同時參與訓(xùn)練和參數(shù)更新。在線蒸餾的優(yōu)點是能夠滿足多任務(wù)、多領(lǐng)域任務(wù),能夠?qū)崟r調(diào)整教師模型的知識提煉過程,但缺點是計算量大、時間成本高。在線蒸餾主要適用于多任務(wù)學(xué)習(xí)、安全隱私要求較高、教師模型無法訪問的場景。在線蒸餾學(xué)習(xí)模式有互學(xué)習(xí)、共享學(xué)習(xí)和協(xié)同學(xué)習(xí)。

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

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

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

自蒸餾

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

無數(shù)據(jù)蒸餾

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

圖無數(shù)據(jù)蒸餾需要通過噪聲合成等效樣本同時將知識傳遞給學(xué)生模型,傳統(tǒng)知識蒸餾模型和無數(shù)據(jù)知識蒸餾的結(jié)構(gòu)對比如圖8:

圖8 傳統(tǒng)知識蒸餾模型和無數(shù)據(jù)知識蒸餾的結(jié)構(gòu)對比

多模型蒸餾

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

多教師蒸餾。多教師蒸餾的研究重點在于設(shè)計合適的知識組合策略用于指導(dǎo)學(xué)生,學(xué)習(xí)多個教師的優(yōu)點而摒棄不足。多教師蒸餾對于多任務(wù)、多模態(tài)學(xué)習(xí)等有很重要的指導(dǎo)意義,可以解決傳統(tǒng)端到端訓(xùn)練方式面臨的許多困難。

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

特權(quán)蒸餾

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

圖9 特權(quán)蒸餾結(jié)構(gòu)

學(xué)習(xí)目的

模型壓縮

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

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

跨模態(tài)/跨領(lǐng)域

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

跨模態(tài) / 跨領(lǐng)域知識蒸餾模型結(jié)構(gòu)如圖11所示:

圖11 跨領(lǐng)域和跨模態(tài)模型結(jié)構(gòu)對比

隱私保護

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

持續(xù)學(xué)習(xí)

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

交叉領(lǐng)域

生成對抗網(wǎng)絡(luò)

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

圖12展示了生成對抗網(wǎng)絡(luò)結(jié)合知識蒸餾結(jié)構(gòu)示意圖:

圖12 生成對抗網(wǎng)絡(luò)結(jié)合知識蒸餾結(jié)構(gòu)示意圖(T 為教師模型,S為學(xué)生模型,D為生成器,G 為判別器

強化學(xué)習(xí)

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

圖13 強化學(xué)習(xí)原理圖(智能體在環(huán)境中根據(jù)觀察的狀態(tài)作為決策,采取相應(yīng)的行為并期望獲得最大的獎勵)

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

圖14 強化學(xué)習(xí)中的知識蒸餾示意圖

元學(xué)習(xí)

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

元學(xué)習(xí)知識蒸餾結(jié)構(gòu)如圖15所示:

圖15 元學(xué)習(xí)知識蒸餾結(jié)構(gòu)圖(在教師和學(xué)生模型中構(gòu)建 “元知識”用于輔助學(xué)生訓(xùn)練)

知識蒸餾結(jié)合的元學(xué)習(xí)作為小樣本環(huán)境下提高性能的手段,在知識遷移過程中也會面臨著一些挑戰(zhàn),諸如過擬合、結(jié)構(gòu)不匹配、新舊任務(wù)不關(guān)聯(lián)等問題。

自動機器學(xué)習(xí)

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

傳統(tǒng)模型學(xué)習(xí)與自動機器學(xué)習(xí)對比如圖16所示:

圖16 傳統(tǒng)模型學(xué)習(xí)與自動機器學(xué)習(xí)對比圖

自監(jiān)督學(xué)習(xí)

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

圖17 監(jiān)督學(xué)習(xí)和自監(jiān)督學(xué)習(xí)蒸餾結(jié)構(gòu)對比圖(傳統(tǒng)的監(jiān)督學(xué)習(xí)的蒸餾在標簽數(shù)據(jù)集上構(gòu)建預(yù)訓(xùn)練模型(標簽任務(wù)),而自監(jiān)督學(xué)習(xí)蒸餾則是在無標簽數(shù)據(jù)集上訓(xùn)練并‘總結(jié)’出知識(輔助任務(wù)),用于目標模型的訓(xùn)練。

主要應(yīng)用

計算機視覺

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

表5 計算機視覺主要蒸餾方法應(yīng)用與對比

注:‘A’表示離線蒸餾,‘B’表示在線蒸餾,‘C’表示自蒸餾,‘D’表示無數(shù)據(jù)蒸餾,‘E’表示多模型蒸餾,‘F’表示特權(quán)蒸餾;‘L’表示標簽知識,‘I’表示中間層知識,‘P’表示參數(shù)知識,‘S’表示結(jié)構(gòu)知識;‘M’表示模型壓縮,‘K’表示跨模態(tài)/領(lǐng)域,‘H’表示隱私保護,‘J’表示持續(xù)學(xué)習(xí),下同。

自然語言處理

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

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

推薦系統(tǒng)

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

表7 推薦系統(tǒng)中的主要蒸餾方法應(yīng)用與對比

文章轉(zhuǎn)自微信公眾號@算法進階

上一篇:

多模態(tài)深度學(xué)習(xí):用深度學(xué)習(xí)的方式融合各種信息

下一篇:

神經(jīng)網(wǎng)絡(luò)可視化工具,超全匯總!
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

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

#AI深度推理大模型API

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

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