亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        知識蒸餾方法研究與應用綜述

        2023-09-26 04:22:00司兆峰齊洪鋼
        中國圖象圖形學報 2023年9期
        關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò)樣本監(jiān)督

        司兆峰,齊洪鋼

        中國科學院大學計算機科學與技術(shù)學院,北京 100049

        0 引言

        隨著硬件計算能力的不斷發(fā)展,深度學習方法(LeCun 等,2015)在目標檢測、語義分割和自然語言處理等任務(wù)中取得越來越好的成果。為了使深度神經(jīng)網(wǎng)絡(luò)獲得更好的性能,研究人員對神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進行了不斷改進,其中包括VGGNet(Visual Geometry Group network)(Simonyan 和Zisserman,2014)、ResNet(residual network)(He 等,2016)和GoogLeNet(Szegedy 等,2015)等經(jīng)典結(jié)構(gòu)。這些網(wǎng)絡(luò)之所以有很好的性能,一個很重要的因素在于網(wǎng)絡(luò)結(jié)構(gòu)的復雜性使得網(wǎng)絡(luò)能夠從數(shù)據(jù)集中學習到足夠的知識,并將這些知識泛化到實際場景中。然而,網(wǎng)絡(luò)結(jié)構(gòu)復雜度提升的同時也帶來了極高的運算代價和存儲代價,以至于深度學習模型難以部署到資源受限的平臺上。為了解決這個問題,神經(jīng)網(wǎng)絡(luò)壓縮方法進入了研究者的視線。

        神經(jīng)網(wǎng)絡(luò)壓縮方法可以分為4 類,即網(wǎng)絡(luò)剪枝(network pruning)、權(quán)重量化(weight quantization)、權(quán)重分解(weight decomposition)和知識蒸餾(knowledge distillation,KD)。網(wǎng)絡(luò)剪枝是其中最直接的方法,它考慮網(wǎng)絡(luò)結(jié)構(gòu)中存在的冗余連接,通過直接除去這些冗余連接來達到壓縮效果。權(quán)重量化是從存儲權(quán)重的角度考慮,使用低精度數(shù)值代替高精度數(shù)值從而減小存儲代價。權(quán)重分解方法從運算的角度入手,簡化網(wǎng)絡(luò)運算以減小網(wǎng)絡(luò)的運算代價。而知識蒸餾方法則是考慮神經(jīng)網(wǎng)絡(luò)整體,用學習的方法借助大型網(wǎng)絡(luò)指導訓練一個與其性能相當?shù)男⌒途W(wǎng)絡(luò),從而間接達到壓縮的目的。由于這種較為抽象的提取知識的方式不會更改原本網(wǎng)絡(luò)結(jié)構(gòu),知識蒸餾具有更好的擴展性,能夠與其他網(wǎng)絡(luò)壓縮方法同時使用,而且也能方便地應用于其他任務(wù)的訓練中。

        知識蒸餾最先由Hinton 等人(2015)提出,用于圖像分類任務(wù),其核心是“教師—學生”架構(gòu),即使用一個大型網(wǎng)絡(luò)(稱為教師網(wǎng)絡(luò))指導小型網(wǎng)絡(luò)(稱為學生網(wǎng)絡(luò))進行訓練,以提升學生網(wǎng)絡(luò)的性能。這種指導最早來自于教師網(wǎng)絡(luò)輸出的概率向量,學生網(wǎng)絡(luò)通過將其作為學習目標,以獲取教師網(wǎng)絡(luò)從數(shù)據(jù)集中學習到的類間關(guān)系,這也就是最早對知識蒸餾中“知識”的定義。而“蒸餾”則來自于溫度參數(shù),它作用于產(chǎn)生概率向量的softmax 層,使得類間關(guān)系更加易于學習。在知識蒸餾的訓練過程中,溫度參數(shù)被設(shè)置為較大的值,而當實際應用學生網(wǎng)絡(luò)時則不使用溫度參數(shù),這就是知識蒸餾的含義。

        當前,對知識蒸餾的研究主要集中在研究“知識”上,包括知識的表示形式以及知識的學習方式。對知識表示形式的探索以Romero 等人(2015)提出的FitNets(fit networks)為開端,嘗試使用包括中間層信息、類間信息等形式來豐富學生網(wǎng)絡(luò)從教師網(wǎng)絡(luò)處學習到的知識,以達到提升學生網(wǎng)絡(luò)性能的目的。另一方面,研究者嘗試對“教師—學生”架構(gòu)進行優(yōu)化,提出了包括在線蒸餾、自蒸餾和多教師蒸餾在內(nèi)的多種不同的學習結(jié)構(gòu)以提高知識蒸餾的效率,它們?yōu)椴煌瑘鼍跋碌膽锰峁┝烁嗟倪x擇。

        雖然知識蒸餾是作為網(wǎng)絡(luò)壓縮方法提出的,但是近年來的研究大多關(guān)注于提升學生網(wǎng)絡(luò)的性能,于是衍生出許多用于提升網(wǎng)絡(luò)性能的應用。與此同時,還有一些工作關(guān)注于神經(jīng)網(wǎng)絡(luò)壓縮的效率,如基于神經(jīng)架構(gòu)搜索(neural architecture search,NAS)的知識蒸餾,在使用“教師—學生”架構(gòu)的基礎(chǔ)上,探索一個合適的網(wǎng)絡(luò)結(jié)構(gòu)以權(quán)衡網(wǎng)絡(luò)性能與壓縮率。除此之外,研究者對“教師—學生”結(jié)構(gòu)中網(wǎng)絡(luò)規(guī)模的關(guān)系進行探索,并提出了能夠?qū)⒅R蒸餾應用在更大壓縮率的場景中的方法。

        Wang 等人(2020a)和Gou 等人(2021)對知識蒸餾進行了較為完整的綜述,其中,Wang 等人(2020a)從“教師—學生”架構(gòu)方面進行了總結(jié)與展望,而Gou 等人(2021)則是從知識的表示形式的角度出發(fā),對不同形式的知識以及學習方式進行了較為全面的綜述。與先前的工作不同,本文從一個全新的視角,將近年來的知識蒸餾方法按照優(yōu)化的目標分為兩類,即面向網(wǎng)絡(luò)性能的知識蒸餾和面向網(wǎng)絡(luò)壓縮的知識蒸餾,詳細介紹了不同目標下知識蒸餾的發(fā)展和最新成果。本文對知識蒸餾的分類方式如圖1所示。

        圖1 知識蒸餾的分類Fig.1 Categories of knowledge distillation

        1 傳統(tǒng)知識蒸餾

        最早的知識蒸餾方法(Hinton 等,2015)采用最直接的知識傳輸形式,即讓學生網(wǎng)絡(luò)直接學習教師網(wǎng)絡(luò)的輸出。這一過程類似于人類課堂學習,學生在教師指導下進行學習,能夠使得學習的過程更加高效。與人類教學情況類似,知識蒸餾能夠幫助學生網(wǎng)絡(luò)達到比自身直接進行學習更好的效果。傳統(tǒng)的知識蒸餾遵循“教師—學生”架構(gòu),其損失函數(shù)可以表示為

        式中,Ltask表示學生網(wǎng)絡(luò)學習原任務(wù)的損失,也就是“課本”,ls是學生網(wǎng)絡(luò)的輸出向量,t表示任務(wù)目標,LKD用來計算教師網(wǎng)絡(luò)與學生網(wǎng)絡(luò)輸出之間的差距,相當于“講課”,lT是教師網(wǎng)絡(luò)的輸出向量,λ是平衡二者的系數(shù),T是溫度參數(shù),用來軟化標簽,使其分布更為均衡。在Hinton 等人(2015)的工作中,LKD使用KL(Kullback-Leibler)散度作為度量方式,用以衡量二者分布的相似程度。傳統(tǒng)的知識蒸餾形式如圖2所示。

        圖2 傳統(tǒng)知識蒸餾Fig.2 Traditional knowledge distillation

        2 面向網(wǎng)絡(luò)性能的知識蒸餾

        知識蒸餾的本質(zhì)是對小型網(wǎng)絡(luò)的一種增強方法。從這個角度看,知識蒸餾方法的提升既可以是同等性能損失下壓縮率的提升,也可以是同等壓縮率下性能損失的減小,其中對后者的研究較多。對于提升學生網(wǎng)絡(luò)的性能,研究者對傳統(tǒng)知識蒸餾基于網(wǎng)絡(luò)輸出的策略進行了探究,同時在額外的監(jiān)督信息方面,從豐富知識的形式以及改善學習的方法兩個方面展開了研究。

        2.1 基于網(wǎng)絡(luò)輸出的改進

        對傳統(tǒng)知識蒸餾的改進,即基于網(wǎng)絡(luò)輸出的改進主要關(guān)注于尋找一個更好的損失函數(shù)。Meng 等人(2019)認為學生網(wǎng)絡(luò)在學習過程中應該判斷教師網(wǎng)絡(luò)給出的輸出是否可靠,而判斷依據(jù)就是教師網(wǎng)絡(luò)是否正確分類,若教師網(wǎng)絡(luò)的知識是錯誤的,那么學生網(wǎng)絡(luò)將直接學習真實目標。類似地,選擇性學習的思路也用于Zhang 等人(2020b)的工作,不同于選擇教師網(wǎng)絡(luò)的輸出,該方法嘗試對訓練樣本的重要程度進行分析并進行加權(quán),將教師網(wǎng)絡(luò)輸出和學生網(wǎng)絡(luò)輸出的差距建模為高斯分布,根據(jù)學習到的標準差對樣本進行加權(quán)。

        Oki 等人(2020)從損失函數(shù)形式的角度對傳統(tǒng)知識蒸餾進行優(yōu)化。借鑒度量學習中三元損失的思路,嘗試使用教師網(wǎng)絡(luò)的輸出作為基準,使學生網(wǎng)絡(luò)對應樣本的輸出向量與之接近,并使其他樣本對應的輸出向量與之遠離。Tian等人(2022)則從對比學習的思路出發(fā),嘗試最大化教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)互信息的下界,并將其作為損失函數(shù)進行優(yōu)化。

        對于溫度參數(shù),Wen 等人(2021)提出了根據(jù)樣本的不同在訓練時使用不同溫度參數(shù)的方法,采用焦點損失(focal loss)的思路和正則化概率向量的思路計算置信度,并據(jù)此計算樣本的置信度以動態(tài)調(diào)整溫度參數(shù)。

        考慮到知識蒸餾中教師網(wǎng)絡(luò)的計算量,Xu 等人(2020)嘗試使用減少教師網(wǎng)絡(luò)計算次數(shù)的方式降低知識蒸餾訓練的代價,根據(jù)學生網(wǎng)絡(luò)的輸出計算樣本的不確定性,并將不確定性大的樣本進行混合用于蒸餾訓練,以較小的代價獲得不低于知識蒸餾的性能。

        傳統(tǒng)基于網(wǎng)絡(luò)輸出的知識蒸餾也存在一定局限性。首先,神經(jīng)網(wǎng)絡(luò)的輸出只包含少量信息,蘊藏在網(wǎng)絡(luò)結(jié)構(gòu)中的大量知識仍然沒有得到有效利用。同時,學習神經(jīng)網(wǎng)絡(luò)的輸出是對其包含的知識的隱式學習,可解釋性不強,難以使學生網(wǎng)絡(luò)學到更加具體的知識。

        2.2 探索知識的表示形式

        知識蒸餾的實質(zhì)是教師網(wǎng)絡(luò)將自己學習到的知識傳輸給學生網(wǎng)絡(luò),于是“什么是知識”這一問題成為研究重點之一。傳統(tǒng)知識蒸餾使用教師網(wǎng)絡(luò)的輸出作為知識來源,這種知識形式存在一個顯著的缺陷,即包含的信息量十分有限。對于知識蒸餾而言,除了網(wǎng)絡(luò)輸出中隱式包含的有限信息,還有更多信息可以從神經(jīng)網(wǎng)絡(luò)內(nèi)部提取出來。

        2.2.1 直接擬合特征圖

        從神經(jīng)網(wǎng)絡(luò)內(nèi)部提取信息相當于讓學生網(wǎng)絡(luò)學習教師網(wǎng)絡(luò)“思考”的過程。對于這個思路,最直接的想法就是選取學生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)中對應的層進行匹配,使得學生網(wǎng)絡(luò)前向傳播的過程接近教師網(wǎng)絡(luò),其損失函數(shù)可以表示為

        式中,fS和fT分別是從學生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)中間層提取的特征圖,DF(·)是距離函數(shù)(distance function,DF),如L2 范數(shù)等。直接擬合特征圖的知識蒸餾過程如圖3所示。這一想法最早由Romero等人(2015)實現(xiàn)。他們在知識蒸餾過程中首先引入提示損失(hint loss),使用提示層(hint layer)對教師網(wǎng)絡(luò)的特征圖進行維度統(tǒng)一化,并將其與學生網(wǎng)絡(luò)特征圖的L2距離作為損失。Gao等人(2019)簡單地對這個過程進行改進,采用漸進的形式,讓學生網(wǎng)絡(luò)以提示層的形式逐層學習教師網(wǎng)絡(luò)的特征圖,以獲得更為全面的監(jiān)督。

        圖3 特征圖上的知識蒸餾Fig.3 Knowledge distillation on feature maps

        Zhi 等人(2017)將這種中間層特征圖匹配的方式改為兩階段的形式,首先將教師網(wǎng)絡(luò)的淺層部分和學生網(wǎng)絡(luò)的深層部分連接起來,起到高維信息學習的效果,之后再完整地對學生網(wǎng)絡(luò)進行蒸餾訓練。類似地,Zhou 等人(2018)也嘗試讓教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)共享淺層網(wǎng)絡(luò)結(jié)構(gòu)。與前者不同,該方法讓教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)同時進行訓練,并且在網(wǎng)絡(luò)輸出部分使用蒸餾損失。

        上述兩種方法采用了直接讓教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)共享特征圖的方式,研究人員將這種共享結(jié)構(gòu)擴展到了更大的范圍。Fu 等人(2021)提出了交互式知識蒸餾,在這種模式下,學生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)的結(jié)構(gòu)會按照概率交替使用,而只針對對應的任務(wù)進行訓練。這個思考的出發(fā)點是讓學生網(wǎng)絡(luò)在神經(jīng)網(wǎng)絡(luò)的各個位置上都接近教師網(wǎng)絡(luò)。

        直接擬合特征圖是獲取中間層信息最直接的方法,但同時也存在缺點。首先,這類方法對網(wǎng)絡(luò)結(jié)構(gòu)的要求較高。學生網(wǎng)絡(luò)在擬合教師網(wǎng)絡(luò)的特征時,需要盡量保證特征圖大小相同,這樣才能確保學生網(wǎng)絡(luò)與教師網(wǎng)絡(luò)推理過程的接近。其次,直接對特征圖的擬合需要大量的計算,特征圖的擬合結(jié)果與網(wǎng)絡(luò)輸出的擬合在數(shù)量級上有較大差別,難以確定損失函數(shù)與其他類型損失(任務(wù)損失和傳統(tǒng)知識蒸餾損失)的比例,造成調(diào)參困難。

        2.2.2 從特征圖中提取知識

        在直接擬合特征圖的思路的基礎(chǔ)上,研究者開始探索蘊含在中間層特征圖中的知識,其中最直觀的方法是使用數(shù)學方法從特征圖中提取知識。Zagoruyko 和Komodakis(2017)在提示層的基礎(chǔ)上,使用了特征圖的統(tǒng)計數(shù)據(jù)(通道維度上的最大值、平均值等)生成注意力圖,以代替特征圖的直接擬合。類似地,Yim 等人(2017)提出了另一種從特征圖中提取信息的方法,將兩層之間的特征圖做內(nèi)積,以獲取特征圖之間的“方向”信息,并將其作為知識指導學生網(wǎng)絡(luò)的訓練。

        中間層獲取的信息同樣可以由學習來得到,一般的思路是將特征圖的不同通道進行組合作為知識的表示形式,其損失函數(shù)的形式為

        式中,α和β分別是學生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)特征圖中對應通道的權(quán)重,角標i和j是特征圖對應的編號。

        Zhang等人(2020a)提出使用不同位置上的特征圖進行對應任務(wù)的預測,如在用于分類任務(wù)的網(wǎng)絡(luò)中加入額外的輔助分類器,使其能夠捕捉到特征圖上有關(guān)分類任務(wù)的信息,而這些輔助分類器的結(jié)果隨后將用來進行知識蒸餾訓練。

        對于通道匹配的方法,Yue 等人(2020)根據(jù)教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)之間的相似性矩陣計算出二值的通道匹配矩陣,在通道數(shù)不同的教師—學生特征圖對中建立多對一的映射,隨后聚合教師網(wǎng)絡(luò)的特征圖以得到用于監(jiān)督的特征圖。Wang 等人(2020a)則采用學習的方法,加入了特征選擇模塊,分別從教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)中選取特征圖進行匹配。

        最新的研究工作開始對整個網(wǎng)絡(luò)中不同位置的特征進行聚合,以達到充分利用教師網(wǎng)絡(luò)中的知識的目的。該方法工作流程如圖4。Jang 等人(2019)引入了元學習的方法,使用元網(wǎng)絡(luò)將網(wǎng)絡(luò)中不同位置的特征圖進行配對,計算出教師網(wǎng)絡(luò)各層對應學生網(wǎng)絡(luò)的權(quán)重,并加以整合計算損失。Ji 等人(2021a)采用自注意力機制(self-attention mechanism)的思路,根據(jù)教師網(wǎng)絡(luò)特征圖的位置對學生網(wǎng)絡(luò)不同層次的特征圖計算注意力權(quán)重,并根據(jù)權(quán)重對學生網(wǎng)絡(luò)的特征進行聚合。從另一個方向,Chen等人(2021)使用相同的思路將教師網(wǎng)絡(luò)特征圖進行特征聚合,作為知識對學生網(wǎng)絡(luò)進行監(jiān)督。對于上述方法中使用全部特征圖進行聚合造成的冗余問題,Chen 等人(2021)提出只讓學生網(wǎng)絡(luò)學習教師網(wǎng)絡(luò)中低于對應層次的信息,并采用漸進式的聚合方式獲取教師網(wǎng)絡(luò)中的知識。

        圖4 使用特征聚合的知識蒸餾Fig.4 Knowledge distillation with feature fusion

        現(xiàn)有的從特征圖中提取知識的方法雖然已經(jīng)較為有效地解決了如何提取知識的問題,但是知識提取的位置仍然有待探索。當前的方法采用學習的思路尋找知識的位置,這種思路仍然存在著不可解釋性和復雜性的問題,所以如何定位知識以及如何聚合知識仍然是今后的一個研究方向。

        2.2.3 結(jié)構(gòu)性知識

        除了上述直接從特征圖中提取知識的方法,研究者嘗試通過分析網(wǎng)絡(luò)的行為方式來獲取知識,即結(jié)構(gòu)性知識。常見的提取結(jié)構(gòu)性信息的方式有樣本間關(guān)系、類別間關(guān)系等,其損失函數(shù)的形式為

        式中,f是特征圖,其上角標表示樣本的編號,而函數(shù)M(·)則用于計算網(wǎng)絡(luò)對不同樣本生成的特征圖之間的距離。通過這些結(jié)構(gòu)性知識,學生網(wǎng)絡(luò)能夠?qū)W習到教師網(wǎng)絡(luò)對不同樣本(或類別)不同的處理方式。這與傳統(tǒng)的知識蒸餾是相似的,但是傳統(tǒng)知識蒸餾只是隱式地讓學生網(wǎng)絡(luò)學習類間關(guān)系,而結(jié)構(gòu)性知識則將這些知識顯式地提取出來。圖5 以一次性輸入3 個樣本的情況為例展示了使用結(jié)構(gòu)性知識的知識蒸餾方法。

        圖5 使用結(jié)構(gòu)性知識的知識蒸餾Fig.5 Knowledge distillation with structural knowledge

        Park 等人(2019b)在網(wǎng)絡(luò)輸出層中提取樣本間的知識,使用歐氏距離、角度距離等方式從多個樣本組成的元組中提取樣本之間的關(guān)系,并讓學生網(wǎng)絡(luò)對這些樣本的輸出之間的關(guān)系接近教師網(wǎng)絡(luò)。Tung和Mori(2019)則站在特征圖的角度,使用內(nèi)積的方式計算一個批(batch)中所有樣本的特征圖的相似度矩陣,并嘗試讓學生網(wǎng)絡(luò)的特征圖也得到類似的相似度關(guān)系。而Liu等人(2019a)則使用更加具體的方法分別為教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)建立了實例關(guān)系圖(instance relationship graph,IRG),以節(jié)點代表特征圖,以邊代表特征圖間的距離,讓學生網(wǎng)絡(luò)學習教師網(wǎng)絡(luò)的實例關(guān)系圖以及網(wǎng)絡(luò)不同位置的實例關(guān)系圖之間的關(guān)系,以學習到教師網(wǎng)絡(luò)前向傳播時的行為。

        對比學習也是近期較為熱門的研究熱點,這個思路也被引入到知識蒸餾中來提取結(jié)構(gòu)性知識。Tian 等人(2022)采用對比學習的思路,顯式地建模出了在多種任務(wù)下的目標函數(shù),即最大化教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)互信息的下界。Zhu 等人(2021)則關(guān)注于教師空間與教師—學生空間的一致性,分別用額外的結(jié)構(gòu)提取二者在特征和梯度上的結(jié)構(gòu)性知識,并最大化教師—學生之間的互信息。

        在分類任務(wù)中,傳統(tǒng)知識蒸餾可以將類別之間的信息突顯出來供學生網(wǎng)絡(luò)更好地學習,近期的一些工作通過顯式地利用這里的類間信息達到增強教師網(wǎng)絡(luò)指導的作用。Chen 等人(2020c)根據(jù)多個樣本的特征圖得到類內(nèi)結(jié)構(gòu)信息和類間結(jié)構(gòu)信息,其中類內(nèi)結(jié)構(gòu)信息來自樣本和類中心的距離,而類間結(jié)構(gòu)則由映射函數(shù)學習得到,隨后采用這些結(jié)構(gòu)指導學生網(wǎng)絡(luò)的行為。

        當前使用結(jié)構(gòu)性知識的方法已經(jīng)能夠做到顯性地從教師網(wǎng)絡(luò)向?qū)W生網(wǎng)絡(luò)傳遞知識。但是由于涉及到多個樣本間的操作和多個類別間的操作,這類方法同時也存在不易實現(xiàn)和訓練的問題。

        2.3 探索知識的學習方法

        作為知識蒸餾的另一個重要組成部分,教師—學生架構(gòu)也是研究重點之一。研究者從使用場景的角度出發(fā),提出了一些不同于傳統(tǒng)知識蒸餾教師—學生架構(gòu)的方法,如在線蒸餾、多教師蒸餾等,以適應不同應用場景來提高學生網(wǎng)絡(luò)的性能。本文將這些方法歸類于對教師與學生之間學習的方法的探索,它們往往可以和各種知識的表示形式協(xié)同使用,以達到更好的效果。

        2.3.1 在線蒸餾

        在線蒸餾也稱為深度相互學習(deep mutual learning,DML),最早由Zhang 等人(2018)提出。在這個結(jié)構(gòu)中不需要預訓練的教師網(wǎng)絡(luò),而是使用多個學生網(wǎng)絡(luò)同時進行學習,并使用知識蒸餾的方法互相學習對方學到的知識。在線蒸餾的損失函數(shù)可以表示為

        式中,l是各個子網(wǎng)絡(luò)的輸出,t是任務(wù)目標,圖6 展示了在線蒸餾的模式,k個學生網(wǎng)絡(luò)的輸出將兩兩形成損失。

        圖6 在線蒸餾Fig.6 Online distillation

        與傳統(tǒng)知識蒸餾類似,對在線蒸餾的改進主要關(guān)注于為多學生結(jié)構(gòu)添加監(jiān)督信息。Lan 等人(2018)使用學習的方法,將訓練過程中學生網(wǎng)絡(luò)的輸出整合,形成一個在線的“教師網(wǎng)絡(luò)”,使其能夠在學習真實值的同時為所有的學生網(wǎng)絡(luò)提供額外監(jiān)督。類似地,Chen 等人(2020a)向在線蒸餾的結(jié)構(gòu)中添加了合成的教師網(wǎng)絡(luò)提供額外監(jiān)督。與前者不同,該方法設(shè)置了兩層蒸餾,第1 層蒸餾使用非對稱的自注意力機制為每個學生網(wǎng)絡(luò)生成一個監(jiān)督信息,而第2層蒸餾將第1層的監(jiān)督信息整合為單獨的一個學生網(wǎng)絡(luò)提供監(jiān)督,從而提供了多樣化的監(jiān)督信息。循著同樣的思路,Kim 等人(2021)在此基礎(chǔ)上添加了特征聚合模塊,將學生網(wǎng)絡(luò)的特征進行聚合以提供“教師網(wǎng)絡(luò)”的監(jiān)督。

        在線蒸餾實現(xiàn)了不依賴預訓練的教師網(wǎng)絡(luò)和提升網(wǎng)絡(luò)性能兩個目標。但是新的研究發(fā)現(xiàn)這個框架中仍然需要一個合成的教師網(wǎng)絡(luò)以進一步提升網(wǎng)絡(luò)性能,這樣就會因同時訓練多種網(wǎng)絡(luò)而產(chǎn)生難以訓練的問題。

        2.3.2 自蒸餾

        自蒸餾(self-distillation,SD)指在網(wǎng)絡(luò)訓練過程中利用自身已經(jīng)學習到的信息優(yōu)化自身的學習過程,可以看做是一個用于提升網(wǎng)絡(luò)性能的方法。與在線蒸餾類似,自蒸餾可以在沒有教師網(wǎng)絡(luò)的情況下使用。相對于傳統(tǒng)的知識蒸餾,自蒸餾省去了對教師網(wǎng)絡(luò)的選擇和訓練的過程,但是同樣可以達到提升網(wǎng)絡(luò)性能的目的。自蒸餾的損失函數(shù)可以表示為

        式中,fi表示網(wǎng)絡(luò)中第i個部分的特征圖,R(·)是由深層次特征圖重建出淺層次特征圖的函數(shù),自蒸餾過程如圖7所示。

        圖7 自蒸餾Fig.7 Self-distillation

        自蒸餾最早出現(xiàn)在Zhang 等人(2019)的工作中,在神經(jīng)網(wǎng)絡(luò)的每個階段都添加了輸出層,并且使用多個來自高層特征的監(jiān)督信息,包括特征圖的提示監(jiān)督、輸出層的知識蒸餾監(jiān)督以及真實標簽的監(jiān)督。在此基礎(chǔ)上,Liu 等人(2020a)加入了元學習的思路,使用元網(wǎng)絡(luò)根據(jù)深層特征生成淺層網(wǎng)絡(luò)對應的監(jiān)督信息,從而實現(xiàn)自頂向下的自監(jiān)督學習。Ji等人(2021b)則使用自身網(wǎng)絡(luò)的特征自下而上地生成了對各個階段的監(jiān)督,并同時加入自上而下的特征以增強這些監(jiān)督信號,從而豐富自監(jiān)督的知識。

        自蒸餾學習中的監(jiān)督不一定來自自身的特征圖,也可以來自其他結(jié)構(gòu)化的信息。Ge 等人(2021)將樣本間相似性作為監(jiān)督信息,計算選定樣本和批(batch)中其他所有樣本的相似度,并根據(jù)結(jié)果對輸出進行加權(quán)得到最終的監(jiān)督信息,隨后在對選定的樣本的前向傳播中進行監(jiān)督。

        類似在線蒸餾,自蒸餾模式同樣達到了脫離預訓練模型的依賴的目的,但是同樣存在一個明顯的弊端,即無法確保自身保留的知識是否準確,導致這類方法訓練存在隨機性較強的問題。

        2.3.3 多教師蒸餾

        為了彌補單個教師網(wǎng)絡(luò)能夠提供的監(jiān)督有限的問題,一些工作采用多個教師網(wǎng)絡(luò)增加更多的監(jiān)督信息,即多教師蒸餾(multi-teacher distillation,MTD)。多教師蒸餾的優(yōu)勢在于,除了能夠提供傳統(tǒng)知識蒸餾中的軟化標簽之外,還能提供更加多樣化的信息,但存在獲取教師網(wǎng)絡(luò)難度高的缺陷。多教師蒸餾的損失函數(shù)可以表示為

        式中,E(·)表示對教師網(wǎng)絡(luò)的輸出整合函數(shù)。多教師蒸餾過程如圖8所示。

        圖8 多教師蒸餾Fig.8 Multi-teacher distillation

        早期多教師蒸餾的工作中,You 等人(2017)采用平均所有教師網(wǎng)絡(luò)軟標簽以及最大化樣本間相似度的損失,將教師網(wǎng)絡(luò)的信息進行整合,并用做知識蒸餾的監(jiān)督。之后的研究關(guān)注點主要在如何選擇教師網(wǎng)絡(luò)上,Park等人(2019a)加入了一系列的非線性變換,對學生網(wǎng)絡(luò)特征和教師網(wǎng)絡(luò)特征進行匹配并學習對應的特征。Liu 等人(2020d)采用注意力機制,計算教師網(wǎng)絡(luò)特征與學生網(wǎng)絡(luò)特征的內(nèi)積以得到匹配權(quán)重,并同時加入提示損失和基于結(jié)構(gòu)性知識的角度損失。

        Asif 等人(2020)將研究目標指向多教師多學生的蒸餾模式,通過分別對教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)的特征圖進行整合,讓學生網(wǎng)絡(luò)分別學習不同教師網(wǎng)絡(luò)的多樣化知識,并最終加以整合。

        多教師蒸餾的模式可以為學生網(wǎng)絡(luò)提供更加豐富和多樣的監(jiān)督信息,但是同樣也增加了知識蒸餾方法的使用代價。如何選擇合適的教師網(wǎng)絡(luò),以及如何訓練教師網(wǎng)絡(luò)供多樣化的知識,這些問題都有待進一步研究。

        2.3.4 漸進式蒸餾

        漸進式蒸餾(progressive knowledge distillation,PKD)的思路是使用教師網(wǎng)絡(luò)對學生網(wǎng)絡(luò)的訓練過程進行監(jiān)督,而非直接提供一個預訓練模型的輸出,這有助于尚未獲得足夠知識的學生網(wǎng)絡(luò)了解到教師網(wǎng)絡(luò)學習知識的過程。漸進式蒸餾的損失函數(shù)為

        上述形式描述的是教師和學生網(wǎng)絡(luò)同時訓練的情形。

        Yang 等人(2019)提出使用教師網(wǎng)絡(luò)訓練過程中的一系列“快照”(snapshot),分階段對學生網(wǎng)絡(luò)進行監(jiān)督。而Zhao 等人(2019)更加細化了這種漸進式的監(jiān)督,使用一個預訓練的教師網(wǎng)絡(luò)和一個跟隨學生網(wǎng)絡(luò)訓練的教師網(wǎng)絡(luò),二者分別在中間層和輸出層給予學生網(wǎng)絡(luò)指導。Shi 等人(2021)則舍棄了預訓練模型,使得這種訓練方法的應用范圍更廣。具體來說,將教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)進行交替訓練,同時使用額外的損失限制了教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)性能的差距,以使指導更為有效。

        漸進式蒸餾的方法細化了知識蒸餾的訓練過程,給出了學生網(wǎng)絡(luò)階段性的學習目標。這種思路降低了學生網(wǎng)絡(luò)的學習難度,但是在多階段的神經(jīng)網(wǎng)絡(luò)訓練中(如訓練期間調(diào)整學習率、交替優(yōu)化多個網(wǎng)絡(luò)部分等),其不確定性會增大,從而導致訓練效果的不穩(wěn)定。

        2.3.5 基于生成對抗網(wǎng)絡(luò)的知識蒸餾

        知識蒸餾的“教師—學生”架構(gòu)和生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)的“生成器—判別器”架構(gòu)具有很高的相似性,教師網(wǎng)絡(luò)的輸出可以看做“真實值”,而學生網(wǎng)絡(luò)的輸出可以看做“生成值”。根據(jù)這種博弈的思想,學生網(wǎng)絡(luò)將嘗試騙過判別器,而判別器嘗試將教師網(wǎng)絡(luò)的輸出和學生網(wǎng)絡(luò)的輸出分開,以促使學生網(wǎng)絡(luò)獲得更加接近教師網(wǎng)絡(luò)的能力?;贕AN的知識蒸餾可以表達為

        式中,D表示判別器,LGAN是訓練判別器使用的損失,具體形式為

        基于GAN 的知識蒸餾過程如圖9 所示。Xu 等人(2018)在知識蒸餾中使用了條件生成對抗網(wǎng)絡(luò)(conditional generative adversarial networks,C-GAN)的思路,讓判別器在分辨教師網(wǎng)絡(luò)輸出和學生網(wǎng)絡(luò)輸出的同時也對類別進行預測,從而首次做到了GAN 在提升知識蒸餾性能上的成功應用。而隨后Chen等人(2020b)則使用GAN 的判別器對教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)的特征圖進行判別。Chung 等人(2020)將GAN 的思路帶到了在線蒸餾,在相鄰的兩個學生網(wǎng)絡(luò)之間添加一個判別器,促使各個子網(wǎng)絡(luò)保留豐富的多樣性。黃仲浩等人(2022)嘗試在GAN 的結(jié)構(gòu)中細化教師網(wǎng)絡(luò)對學生網(wǎng)絡(luò)的監(jiān)督,采用逐層貪婪的監(jiān)督策略,最大化利用教師網(wǎng)絡(luò)的監(jiān)督信息,并在判別器的額外監(jiān)督下達到了較好的效果。

        圖9 基于GAN的知識蒸餾Fig.9 GAN-based knowledge distillation

        3 面向網(wǎng)絡(luò)壓縮的知識蒸餾

        知識蒸餾作為神經(jīng)網(wǎng)絡(luò)壓縮方法,在網(wǎng)絡(luò)壓縮效率方面的研究層出不窮。對于在知識蒸餾中考慮網(wǎng)絡(luò)規(guī)模的情形,常見的兩個思路是對網(wǎng)絡(luò)進行動態(tài)調(diào)整,即網(wǎng)絡(luò)架構(gòu)搜索(NAS)以及嘗試將知識蒸餾推廣到更小規(guī)模的網(wǎng)絡(luò)上。這兩個思路分別從動態(tài)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)結(jié)構(gòu)的選擇選擇兩個方面考慮神經(jīng)網(wǎng)絡(luò)的規(guī)模。

        3.1 動態(tài)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)

        將知識蒸餾與NAS 結(jié)合是一個十分直觀的思路,可以使網(wǎng)絡(luò)在蒸餾訓練的過程中調(diào)整結(jié)構(gòu),以達到性能和網(wǎng)絡(luò)規(guī)模的平衡。

        Mitsuno 等人(2021)提出一種類似NAS 思路的簡單的知識蒸餾方法,由一個規(guī)模很小的學生網(wǎng)絡(luò)開始,將網(wǎng)絡(luò)中的層分為若干組,每一輪迭代用窮舉的方法對每一組中的所有層添加一定數(shù)量的通道數(shù),并選出其中性能最好的網(wǎng)絡(luò),直到不再產(chǎn)生比上一輪迭代性能更好的網(wǎng)絡(luò)為止。Liu等人(2020b)將NAS完整地引入知識蒸餾中,使用強化學習的方式,根據(jù)知識蒸餾訓練和網(wǎng)絡(luò)在移動端上的使用延遲給出反饋,并在一個較大的搜索空間中進行搜索。

        同時,知識蒸餾的思路也可以輔助神經(jīng)網(wǎng)絡(luò)剪枝方法。Li 等人(2020b)首先采用剪枝的方法得到學生網(wǎng)絡(luò),再在學生網(wǎng)絡(luò)中插入卷積層,以對齊教師網(wǎng)絡(luò)與學生網(wǎng)絡(luò)的特征,并使用無標簽數(shù)據(jù)進行中間層的知識蒸餾訓練,達到恢復網(wǎng)絡(luò)性能的目的。

        3.2 小規(guī)模網(wǎng)絡(luò)蒸餾訓練

        在神經(jīng)網(wǎng)絡(luò)壓縮的應用場景下,研究者希望“教師—學生”架構(gòu)中的學生網(wǎng)絡(luò)有較小的規(guī)模。但是,當教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)的規(guī)模差異過大時,蒸餾的效果會受到明顯影響(Cho 和Hariharan,2019;Mirzadeh 等,2019),這是因為學生網(wǎng)絡(luò)的容量不足以學習到教師網(wǎng)絡(luò)的知識。為了將知識蒸餾訓練推廣到更小的網(wǎng)絡(luò)架構(gòu)上,Cho 和Hariharan(2019)提出用于知識蒸餾的提前停止(early stopping)策略,在訓練早期使用知識蒸餾訓練學生網(wǎng)絡(luò),而在進行到一定程度后停止教師網(wǎng)絡(luò)的監(jiān)督,使用真實標簽進行后續(xù)訓練。

        另外,Mirzadeh 等人(2019)采用一種新的策略,即在差別較大的教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)中間插入“助教”網(wǎng)絡(luò),讓規(guī)模介于二者之間的助教網(wǎng)絡(luò)學習到教師網(wǎng)絡(luò)的知識后再傳遞給學生網(wǎng)絡(luò),并提出了蒸餾路徑上助教網(wǎng)絡(luò)越多蒸餾效果越好的假設(shè)。在此基礎(chǔ)上,Son 等人(2021)嘗試解決助教網(wǎng)絡(luò)較多的情況下錯誤傳播放大的問題,提出對助教網(wǎng)絡(luò)或?qū)W生網(wǎng)絡(luò)訓練時,使用所有規(guī)模大于它的網(wǎng)絡(luò)進行蒸餾訓練,并加入用于助教網(wǎng)絡(luò)之間的隨機失活策略(dropout)來解決計算量過大的問題。類似地,劉昊和張曉濱(2021)提出了基于關(guān)系型蒸餾的分步神經(jīng)網(wǎng)絡(luò)壓縮方法,通過在每一層知識蒸餾中加入額外的監(jiān)督信息,達到提升小規(guī)模網(wǎng)絡(luò)性能的效果。

        4 知識蒸餾方法性能對比

        知識蒸餾方法嘗試將教師網(wǎng)絡(luò)從數(shù)據(jù)集中學習到的知識以各種形式傳遞給學生網(wǎng)絡(luò),以達到將學生網(wǎng)絡(luò)的性能提升至接近教師網(wǎng)絡(luò)的目的。本文對不同類別的知識蒸餾方法中具有代表性的方法進行實驗對比,以對不同知識蒸餾方法提性能提升的效果進行直觀可視化。

        知識蒸餾作為輔助訓練型方法,訓練所用數(shù)據(jù)集和訓練方法均與對應任務(wù)相同。所有實驗均在分類任務(wù)常用的CIFAR10(Canadian Institute for Advanced Research)數(shù)據(jù)集上進行,該數(shù)據(jù)集的圖像均為32 × 32 像素,共有50 000 個訓練集數(shù)據(jù)和10 000 個測試集數(shù)據(jù)。為了公平對比,統(tǒng)一采用ResNet56 作為教師網(wǎng)絡(luò)(如果使用了教師網(wǎng)絡(luò)),ResNet20作為學生網(wǎng)絡(luò),并采用同樣的超參數(shù)(包括學習率、學習率衰減和溫度參數(shù)等)。實驗采用3 次實驗的分類準確率作為最終的性能評價標準。實驗結(jié)果如表1所示。

        表1 知識蒸餾方法在CIFAR10數(shù)據(jù)集上的性能對比Table 1 Performance comparison of different KD methods on CIFAR10 dataset

        從實驗結(jié)果可得出以下結(jié)論:1)整體而言,當前所有的知識蒸餾方法都能夠使學生網(wǎng)絡(luò)達到比直接訓練更好的性能。但是由于網(wǎng)絡(luò)規(guī)模的差異過大,這些方法都未能達到教師網(wǎng)絡(luò)的性能水平;2)參與實驗對比的方法中,在線蒸餾系列方法能夠達到最好效果,且普遍高于傳統(tǒng)的使用網(wǎng)絡(luò)輸出進行一對一蒸餾的方法;3)使用結(jié)構(gòu)化知識的效果優(yōu)于直接從網(wǎng)絡(luò)中提取知識的方法,這是由于使用結(jié)構(gòu)化知識的方法更傾向于學習教師網(wǎng)絡(luò)的行為特征。

        5 知識蒸餾方法的應用

        知識蒸餾的應用也可按上述方法分類,即使用知識蒸餾的思路提升網(wǎng)絡(luò)在該任務(wù)上的性能,以及使用知識蒸餾方法得到輕量化的網(wǎng)絡(luò)。本文列舉了在多個任務(wù)下使用知識蒸餾進行性能提升和網(wǎng)絡(luò)壓縮的方法。

        5.1 目標檢測

        目標檢測任務(wù)是對輕量級網(wǎng)絡(luò)需求較大的任務(wù)之一,在目標檢測中可以直接使用知識蒸餾的思路來獲取輕量級網(wǎng)絡(luò),如Chen 等人(2017)使用一個大規(guī)模的目標檢測網(wǎng)絡(luò)作為教師網(wǎng)絡(luò),從主干網(wǎng)絡(luò)、區(qū)域提議網(wǎng)絡(luò)(region proposal network,RPN)和區(qū)域分類網(wǎng)絡(luò)(region classification network,RCN)3 個部分進行蒸餾訓練。Wei 等人(2018)則在前者的基礎(chǔ)上對教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)的特征圖進行量化,之后再進行蒸餾訓練,這樣可以有效減小學習的難度,并使量化后的學生網(wǎng)絡(luò)得到較好的性能。

        Dai等人(2021)采用更加豐富的蒸餾監(jiān)督,使用篩選模塊選擇出最有價值的檢測框,之后計算學生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)在對應檢測框中特征圖間的關(guān)系,與應用于檢測結(jié)果中的知識蒸餾共同組成完整的訓練損失。類似地,在Yao 等人(2021)的工作中也采用檢測框特征學習的思路,提取檢測框在特征金字塔中對應的特征圖,并使用自注意力機制對金字塔中各層特征圖進行整合,隨后再學習教師網(wǎng)絡(luò)對應的特征圖。楚玉春等人(2022)則同時使用檢測框的知識和目標分類中的知識,并采用多層注意力機制的方法提升知識傳輸?shù)男?,從而得到更好的訓練效果?/p>

        還有一些方法使用類似知識遷移的思路,側(cè)重于某項特定知識的提取和學習。Li等人(2017)嘗試使用在ImageNet數(shù)據(jù)集上預訓練的分類模型作為教師網(wǎng)絡(luò),并用一個輕量級的網(wǎng)絡(luò)從輸出和中間層學習教師網(wǎng)絡(luò)學到的知識,以在基本不損失性能的情況下大量減小使用代價。Valverde 等人(2021)使用多模態(tài)的信息,如彩色圖像、熱力圖像和深度圖等,用對應于3 種圖像的網(wǎng)絡(luò)的檢測結(jié)果監(jiān)督音頻信息,并最終使用音頻信息得到多種圖像上的檢測結(jié)果。

        5.2 語義分割

        語義分割相對于目標檢測更傾向于細粒度的知識(如像素級等),同樣適合作為知識蒸餾的應用場景。Liu等人(2019b)使用兩個網(wǎng)絡(luò)特征圖之間的距離作為逐對蒸餾(pair-wise distillation)損失,計算二者最終輸出的像素分數(shù)的相似性,形成逐像素蒸餾(pixel-wise distillation)損失,并根據(jù)GAN 的思路加入判別器分辨教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)的輸出。Shu 等人(2020)則將直接對特征圖進行的蒸餾換成了逐通道蒸餾(channel-wise distillation),并將這種思路同時用在了分割結(jié)果的蒸餾上,以使得學生網(wǎng)絡(luò)的每個通道獲取更加具有特異性的知識。

        對于域適應場景分割的應用,Kothandaraman 等人(2021)分別在教師網(wǎng)絡(luò)和學生網(wǎng)絡(luò)上建立源域到目標域的知識蒸餾策略,結(jié)合主干網(wǎng)絡(luò)中特征圖的特征和分割結(jié)果的特征以完成知識蒸餾訓練。

        在圖像的協(xié)同分割任務(wù)中,耿增民等人(2020)將知識蒸餾應用在孿生神經(jīng)網(wǎng)絡(luò)中以達到降低網(wǎng)絡(luò)復雜度的目的。他們嘗試使用二值化注意力機制的方式將教師網(wǎng)絡(luò)中的知識提取出來,并依此重構(gòu)得到學生網(wǎng)絡(luò)結(jié)構(gòu),隨后使用知識蒸餾訓練,得到接近教師網(wǎng)絡(luò)性能的學生網(wǎng)絡(luò)模型。

        5.3 人臉識別

        人臉識別任務(wù)相對于分類等任務(wù),需要更多地考慮人臉姿態(tài)和遮擋等問題,而知識蒸餾能夠提供這方面的支持以提高人臉識別的效果。Huang 等人(2020)嘗試使用知識蒸餾的思路對人臉特征的分布關(guān)系進行蒸餾,將簡單樣本正負對的相似度關(guān)系視為教師分布,將困難樣本正負對的相似度關(guān)系作為學生分布,將二者進行擬合以達到提升網(wǎng)絡(luò)對困難樣本進行識別的效果。

        對于網(wǎng)絡(luò)輕量化,Shi等人(2020)使用較為直接的蒸餾方式,將單個或多個教師網(wǎng)絡(luò)分類器部分的權(quán)重直接使用在學生網(wǎng)絡(luò)中,并采用人臉角度損失(arcface loss)進行蒸餾訓練。Wang 等人(2020c)定義神經(jīng)網(wǎng)絡(luò)權(quán)重特異性(weight exclusivity)以描述權(quán)重的多樣性,并提出使用特異性作為正則項加入到知識蒸餾的訓練中,以保證在人臉識別任務(wù)中學生網(wǎng)絡(luò)能夠保留更豐富的特征。

        5.4 圖像生成

        在圖像生成類任務(wù)中,生成對抗網(wǎng)絡(luò)是最常用的方法,而GAN 中使用的生成器往往會有較大的使用代價,所以對GAN 的壓縮也是一個常見的應用,但是GAN 生成器獨特的結(jié)構(gòu)特性使其不能直接使用傳統(tǒng)的知識蒸餾進行壓縮。Chen 等人(2020b)使學生網(wǎng)絡(luò)生成器生成的圖像在像素值上和語義上學習教師網(wǎng)絡(luò)生成的圖像,并將教師網(wǎng)絡(luò)生成的圖像作為真實值在學生網(wǎng)絡(luò)的判別器中進行訓練。

        Ren 等人(2021)嘗試利用多粒度的信息對GAN進行壓縮,采用在線蒸餾的形式,根據(jù)學生網(wǎng)絡(luò)的結(jié)構(gòu)定制出兩個不同的教師網(wǎng)絡(luò)以獲取不同層次的信息,并同時進行訓練,在這個結(jié)構(gòu)中,學生網(wǎng)絡(luò)不需要判別器進行訓練,而是采用圖像質(zhì)量損失、圖像風格損失和感知損失直接進行知識蒸餾訓練。

        為了更好地達到規(guī)模與性能的平衡,Li 等人(2020a)嘗試使用NAS 方法對條件GAN 進行壓縮,采用通道剪枝的方法得到學生網(wǎng)絡(luò)結(jié)構(gòu),并使用搜索方法確定通道數(shù)量的最佳配置。在訓練時采用“一勞永逸”(once-for-all)的NAS 方法將訓練和搜索進行解耦,并在訓練中加入了基于中間層信息的知識蒸餾。Jin 等人(2021)嘗試在GAN 和自編碼器的設(shè)定下,使用教師網(wǎng)絡(luò)同時完成知識蒸餾的任務(wù)和網(wǎng)絡(luò)架構(gòu)搜索的任務(wù),參照GoogLeNet 的形式將教師網(wǎng)絡(luò)的基本模塊設(shè)計成多路特征的形式,并使用剪枝的方式進行架構(gòu)搜索得到學生網(wǎng)絡(luò)。

        5.5 自然語言處理

        除了研究廣泛的計算機視覺(computer vision,CV)任務(wù),知識蒸餾也用于自然語言處理(natural language processing,NLP)任務(wù)中,以獲得更加輕量級的網(wǎng)絡(luò)。

        BERT(bidirectional encoder representation from Transformers)是NLP 任務(wù)中的常用結(jié)構(gòu),由多個Transformer 結(jié)構(gòu)堆疊而來,在具有較好性能的同時也存在規(guī)模較大的問題。Sun 等人(2019)在對BERT 的蒸餾中使用了對輸出的監(jiān)督和對中間層堆疊的Transformer 的監(jiān)督,同時為了避免中間層計算量過大,提出讓學生網(wǎng)絡(luò)在此過程中只對特殊字段進行學習。隨后Jiao等人(2020)開發(fā)了tinyBERT結(jié)構(gòu),在輸出和中間層監(jiān)督的基礎(chǔ)上添加了Transformer 內(nèi)部的知識蒸餾,包括多頭注意力模塊以及隱藏狀態(tài)上的監(jiān)督,同時提出了兩段式的學習框架,即首先在大規(guī)模語料庫下進行知識蒸餾訓練,之后再針對特定的任務(wù)進行知識蒸餾訓練得到最終的模型。

        Fu 等人(2021)引入了對比學習的方式對BERT進行知識蒸餾訓練,嘗試讓學生網(wǎng)絡(luò)的中間層特征接近對應樣本在教師網(wǎng)絡(luò)中的特征,而遠離其他樣本在教師網(wǎng)絡(luò)中的特征,并使用更加適合度量語義信息的基于角度的距離來進行距離的度量。

        6 總結(jié)與展望

        近年知識蒸餾方法取得了顯著發(fā)展,在神經(jīng)網(wǎng)絡(luò)性能提升和神經(jīng)網(wǎng)絡(luò)壓縮方面都形成了體系化的發(fā)展方向,在各大任務(wù)上得到了廣泛應用。但是知識蒸餾方法仍然存在需要解決的問題,下面從3個方面對知識蒸餾的現(xiàn)狀及問題進行總結(jié),并對其未來發(fā)展進行展望。

        1)知識蒸餾的研究主要集中于網(wǎng)絡(luò)性能提升的目標,在這個目標之下,研究者探究了知識的表示形式以及知識的學習方式。這類方法針對的主要問題是知識的來源,即確定何種知識是有效的,這也是今后知識蒸餾方法研究的一個主要問題。當前對知識的表示形式的研究主要局限于同種任務(wù)網(wǎng)絡(luò)的知識以及樣本之間的知識,所以探索其他形式的網(wǎng)絡(luò)(如生成式網(wǎng)絡(luò)等)和其他任務(wù)(如語義分割等)中可用的信息,并引入到其他任務(wù)中是一個可行的研究思路。

        2)在以神經(jīng)網(wǎng)絡(luò)壓縮為目標的研究中,最常采用的是神經(jīng)架構(gòu)搜索的思路。但是現(xiàn)有的神經(jīng)架構(gòu)搜索方法往往存在使用代價巨大的問題,再加上知識蒸餾需要額外的代價訓練教師網(wǎng)絡(luò),減小NAS 方法的搜索空間使之適合知識蒸餾任務(wù)成為一個可行的研究思路。同時,根據(jù)教師—學生架構(gòu)的相關(guān)研究,隨著網(wǎng)絡(luò)結(jié)構(gòu)的變化,對教師網(wǎng)絡(luò)進行調(diào)整也是一個可行的研究方向。

        3)除了研究方法上的創(chuàng)新,包括知識蒸餾在內(nèi)的神經(jīng)網(wǎng)絡(luò)壓縮方法還需要一個具有普遍意義的衡量標準。在以性能提升為目標的方法中,研究者采用的評價標準往往是學生網(wǎng)絡(luò)的性能變化,而在以網(wǎng)絡(luò)壓縮為目的的方法中,則常常是將壓縮率和性能變化直接以某種規(guī)律排列起來,而使用這種方法進行比較無法直觀地對比各個方法的效果,所以制訂一個較為統(tǒng)一的評價標準也是未來的研究方向之一。

        7 結(jié)語

        隨著深度學習方法效果的不斷提升,應用代價高的問題也越來越顯著,而使用神經(jīng)網(wǎng)絡(luò)壓縮方法則是解決這一問題的有效途徑。知識蒸餾作為神經(jīng)網(wǎng)絡(luò)壓縮中的重要方法,自提出以來就受到廣泛關(guān)注。本文從知識蒸餾方法的目標的角度(網(wǎng)絡(luò)性能提升及網(wǎng)絡(luò)壓縮)對知識蒸餾方法進行了分類和歸納,并列舉了知識蒸餾在多種任務(wù)中的應用場景。

        根據(jù)本文的歸納與分析,在近年來的知識蒸餾方法中,面向網(wǎng)絡(luò)性能的知識蒸餾是主流研究方向,包括對中間層知識、結(jié)構(gòu)性知識的探索,以及對無教師、多教師等情形下的研究。實驗表明,當前的知識蒸餾方法已經(jīng)能夠為神經(jīng)網(wǎng)絡(luò)訓練提供較好的性能提升效果,使其能夠代替大規(guī)模網(wǎng)絡(luò)應用于圖像分類等任務(wù)中。在此基礎(chǔ)上,結(jié)合多個任務(wù)中的知識,以及設(shè)計能夠適用于知識蒸餾的神經(jīng)架構(gòu)搜索空間,以獲得更好的性能與壓縮率的平衡,將是未來知識蒸餾可行的研究方向。

        猜你喜歡
        神經(jīng)網(wǎng)絡(luò)樣本監(jiān)督
        用樣本估計總體復習點撥
        突出“四個注重” 預算監(jiān)督顯實效
        神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
        電子制作(2019年19期)2019-11-23 08:42:00
        推動醫(yī)改的“直銷樣本”
        監(jiān)督見成效 舊貌換新顏
        隨機微分方程的樣本Lyapunov二次型估計
        夯實監(jiān)督之基
        基于神經(jīng)網(wǎng)絡(luò)的拉矯機控制模型建立
        重型機械(2016年1期)2016-03-01 03:42:04
        村企共贏的樣本
        復數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應用
        精品久久av一区二区| 国产成人精品无码一区二区老年人| 免费观看在线一区二区| 人妻少妇久久中中文字幕| 日本特黄特色特爽大片| 狠狠爱无码一区二区三区| 真人无码作爱免费视频禁hnn| 久久精品免费免费直播| 91大神蜜桃视频在线观看| 国产天堂av在线一二三四| 在熟睡夫面前侵犯我在线播放| 亚洲日本天堂| 成人影院免费观看在线播放视频 | 天堂国精产品2023年| 亚洲美国产亚洲av| 国模少妇无码一区二区三区| 亚洲丰满熟女乱一区二区三区 | 欧洲精品免费一区二区三区| 人妻无码中文专区久久综合| 国产精品女同久久久久久| 美女视频在线观看网址大全| 国产精品刮毛| 91av国产视频| 在线视频亚洲一区二区三区| 91精品人妻一区二区三区水蜜桃| 午夜免费福利小电影| 中文无码精品一区二区三区| 少妇高潮紧爽免费观看| 久久红精品一区二区三区| 无码国产色欲xxxx视频| 亚洲av无码成人yellow| 精品一区二区三区长筒靴| 操风骚人妻沉沦中文字幕| 牲欲强的熟妇农村老妇女| 青草青草伊人精品视频| 亚洲色图偷拍自拍在线| 免费看av在线网站网址| 欧美视频第一页| 日本老熟女一区二区三区| 久久99国产精品久久99| 亚洲妓女综合网99|