• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      卷積神經(jīng)網(wǎng)絡(luò)壓縮中的知識(shí)蒸餾技術(shù)綜述

      2021-10-12 08:49:38孟憲法黃萌萌
      計(jì)算機(jī)與生活 2021年10期
      關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)樣本

      孟憲法,劉 方,李 廣,黃萌萌

      國(guó)防科技大學(xué) 自動(dòng)目標(biāo)識(shí)別重點(diǎn)實(shí)驗(yàn)室,長(zhǎng)沙 410000

      近些年來,隨著數(shù)據(jù)集的豐富完善,計(jì)算單元性能的快速提升,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)憑借著強(qiáng)大的特征提取和表達(dá)能力,在圖像分類[1]、目標(biāo)檢測(cè)[2]和語(yǔ)義分割[3]等計(jì)算機(jī)視覺領(lǐng)域,都獲得了顯著的應(yīng)用成效。得益于網(wǎng)絡(luò)模型的加深加巨,CNN 的眾多拓展模型在眾多任務(wù)中超越了很多傳統(tǒng)技術(shù)方法,甚至堪比人類的識(shí)別能力,可適用于廣泛的行業(yè)應(yīng)用,如智能駕駛[4-5]、智能機(jī)器人[6]、人臉識(shí)別[7]、疾病檢測(cè)[8]等。

      但是注意到:通常網(wǎng)絡(luò)的性能與網(wǎng)絡(luò)的結(jié)構(gòu)復(fù)雜度成正比,網(wǎng)絡(luò)結(jié)構(gòu)越復(fù)雜模型越深越寬,網(wǎng)絡(luò)性能就越好。如表1 所示,He 等提出的ResNet-152[9]模型深度達(dá)到了152 層,參數(shù)量達(dá)到了0.6 億個(gè),需要花費(fèi)241 MB 內(nèi)存存儲(chǔ),分類一幅分辨率為224×224 的彩色圖像需要115 億次浮點(diǎn)型計(jì)算。深度神經(jīng)網(wǎng)絡(luò)會(huì)占用大量的內(nèi)存存儲(chǔ),帶來繁多的計(jì)算量,造成巨大的電量消耗,這些問題使網(wǎng)絡(luò)很難在資源受限的嵌入式設(shè)備和對(duì)實(shí)時(shí)性要求較高的移動(dòng)端部署。如果能把深度神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮,讓網(wǎng)絡(luò)減少對(duì)內(nèi)存存儲(chǔ)的消耗,就可以使網(wǎng)絡(luò)在內(nèi)存資源受限的設(shè)備上進(jìn)行部署,并且輕量化的神經(jīng)網(wǎng)絡(luò)還可以實(shí)現(xiàn)運(yùn)算加速,這樣在軍民應(yīng)用中都有著廣泛的拓展?jié)摿Α?/p>

      Table 1 Basic information of classical convolutional neural network表1 經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)的基本信息

      通常情況下,深度神經(jīng)網(wǎng)絡(luò)存在著大量的參數(shù)冗余。根據(jù)LeCun 等[10]實(shí)驗(yàn)表明,深度神經(jīng)網(wǎng)絡(luò)有近一半的權(quán)重對(duì)網(wǎng)絡(luò)性能影響甚微,由此可見,深度神經(jīng)網(wǎng)絡(luò)有著很大的壓縮空間,而且過量的參數(shù)還會(huì)導(dǎo)致過擬合,使模型的泛化能力下降。研究者們已經(jīng)探索了網(wǎng)絡(luò)剪枝(network pruning)[11-13]、參數(shù)量化(parameter quantification)[14-17]、低秩分解(low-rank decomposition)[18-19]、輕量化網(wǎng)絡(luò)設(shè)計(jì)(compact structure design)[20-22]、知識(shí)蒸餾(knowledge distillation)[23-26]等方法。自AI 教父Hinton 提出了知識(shí)蒸餾技術(shù)后[23],知識(shí)蒸餾受到了研究者們的廣泛關(guān)注,并在網(wǎng)絡(luò)壓縮中展現(xiàn)了巨大的研究?jī)r(jià)值。目前網(wǎng)絡(luò)壓縮領(lǐng)域的綜述性文章[27-31]缺乏專門對(duì)知識(shí)蒸餾技術(shù)的詳細(xì)介紹,因此本文對(duì)卷積神經(jīng)網(wǎng)絡(luò)壓縮中的知識(shí)蒸餾技術(shù)進(jìn)行詳細(xì)說明。

      1 面向卷積神經(jīng)網(wǎng)絡(luò)的壓縮方法簡(jiǎn)述

      1.1 卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)和發(fā)展歷程

      卷積神經(jīng)網(wǎng)絡(luò)是目前廣泛應(yīng)用的深度學(xué)習(xí)架構(gòu),它是一種層次模型,由用于特征提取的卷積層和用于特征處理的池化層交叉堆疊而成。卷積神經(jīng)網(wǎng)絡(luò)的輸入為一般原始數(shù)據(jù)(如RGB 圖像、原始音頻數(shù)據(jù)等),通過前饋運(yùn)算來進(jìn)行預(yù)測(cè)和推理,通過反饋運(yùn)算來進(jìn)行網(wǎng)絡(luò)參數(shù)的訓(xùn)練和學(xué)習(xí)。

      VGG[32]是一種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),它采用卷積層和池化層交叉堆疊,最后連接全連接層的層次結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)非常具有代表性。VGG 一共有6個(gè)不同的版本,最常用的是VGG16,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。VGG 的核心思想是通過加深網(wǎng)絡(luò)深度來提高網(wǎng)絡(luò)性能,在2014 年的ILSVRC 挑戰(zhàn)賽中表現(xiàn)優(yōu)異,在定位比賽上取得了第一名的成績(jī),在分類比賽上以7.3%的top5 錯(cuò)誤率取得了第二名的成績(jī)。

      Fig.1 Stucture of VGG16 network圖1 VGG16 網(wǎng)絡(luò)結(jié)構(gòu)

      6 個(gè)不同版本的VGG 網(wǎng)絡(luò)結(jié)構(gòu)如表2 所示。模型A-LRN 在模型A 的基礎(chǔ)上多一個(gè)局部響應(yīng)歸一化層(local response normalization,LRN),但是實(shí)驗(yàn)表明,LRN 對(duì)性能提升收效甚微,并且增加模型的內(nèi)存占用和運(yùn)行時(shí)間,因此后續(xù)模型都沒有加入LRN。模型C 在模型B 的基礎(chǔ)上增加了1×1 卷積層,增加了網(wǎng)絡(luò)的非線性表達(dá)能力。模型D 用3×3 卷積核代替了模型C 的1×1 卷積核,因?yàn)榇蟾惺芤翱梢詫W(xué)習(xí)到更多的空間特征,增加了網(wǎng)絡(luò)的學(xué)習(xí)能力。模型D 對(duì)應(yīng)VGG16,模型E 對(duì)應(yīng)VGG19。

      Table 2 Structure of VGGNet network表2 VGGNet網(wǎng)絡(luò)結(jié)構(gòu)組成

      卷積神經(jīng)網(wǎng)絡(luò)起源于20 世紀(jì)60 年代左右的神經(jīng)科學(xué)領(lǐng)域中。LeCun 在1998 年提出基于梯度學(xué)習(xí)的改良版CNN 模型LeNet-5[33]。在這之后,大量研究人員提出了很多方法去優(yōu)化深層結(jié)構(gòu)和克服深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程的困難,深度卷積神經(jīng)網(wǎng)絡(luò)的性能也因此得到了大幅提升。2012 年卷積神經(jīng)網(wǎng)絡(luò)在ILSVRC2012 挑戰(zhàn)賽圖像分類任務(wù)大放異彩,Krizhevsky 提出的AlexNet[34]模型一舉奪下2012 年ILSVRC 挑戰(zhàn)賽冠軍。繼AlexNet 之后,卷積神經(jīng)網(wǎng)絡(luò)迅速發(fā)展,陸續(xù)出現(xiàn)了很多性能優(yōu)異的卷積神經(jīng)網(wǎng)絡(luò)模型,其中比較有代表性的有ZF-Net[35]、VGG[32]、GoogLeNet[36]、ResNet[9]、DenseNet[37]、DPN[38]、SENet[39]、MobileNetV1[40]、MobileNetV2[41]、SqueezeNet[42]和ShuffleNet[43]。

      如圖2 所示,卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展是由簡(jiǎn)到繁,不斷發(fā)展的應(yīng)用亟需網(wǎng)絡(luò)在保持性能的前提下可高效適用于計(jì)算資源受限的平臺(tái)上,探索可行的網(wǎng)絡(luò)簡(jiǎn)化技術(shù)具有理論和應(yīng)用雙重意義。

      Fig.2 Development of convolutional neural network圖2 卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展

      1.2 知識(shí)蒸餾技術(shù)與其他壓縮方法的對(duì)比

      目前卷積神經(jīng)網(wǎng)絡(luò)壓縮和加速的方法主要有以下五種:網(wǎng)絡(luò)剪枝、參數(shù)量化、低秩分解、輕量化網(wǎng)絡(luò)設(shè)計(jì)、知識(shí)蒸餾。為了綜合示意以上方法特色,如表3所示,從方法的設(shè)計(jì)思想、作用位置、是否改動(dòng)網(wǎng)絡(luò)架構(gòu)等方面進(jìn)行對(duì)比,列舉了以上方法的代表性研究工作,并對(duì)比分析了以上方法的優(yōu)缺點(diǎn)。

      知識(shí)蒸餾從充分發(fā)掘神經(jīng)網(wǎng)絡(luò)的性能潛力出發(fā)進(jìn)行研究,旨在實(shí)現(xiàn)使用層級(jí)淺、結(jié)構(gòu)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)發(fā)揮良好的性能,相比于其他方法壓縮出來的雜亂的結(jié)構(gòu),知識(shí)蒸餾可以選擇任何一種網(wǎng)絡(luò)結(jié)構(gòu)整齊簡(jiǎn)潔的小型網(wǎng)絡(luò)作為目標(biāo)網(wǎng)絡(luò),并且不會(huì)改變小型網(wǎng)絡(luò)的結(jié)構(gòu),知識(shí)蒸餾通過大型網(wǎng)絡(luò)(即教師網(wǎng)絡(luò))輔助小型網(wǎng)絡(luò)(即學(xué)生網(wǎng)絡(luò))訓(xùn)練的方式,提高學(xué)生網(wǎng)絡(luò)性能,達(dá)到學(xué)生網(wǎng)絡(luò)性能接近教師網(wǎng)絡(luò)的效果,實(shí)現(xiàn)將教師網(wǎng)絡(luò)壓縮為學(xué)生網(wǎng)絡(luò)的目的。通過知識(shí)蒸餾獲得了層數(shù)更淺性能更好的小模型,小模型更適合部署因?yàn)樗褪菫榱丝於O(shè)計(jì)的,并且小模型并不需要花很多時(shí)間去調(diào)參,不需要特定的硬件就能直接實(shí)現(xiàn)模型加速。因此知識(shí)蒸餾逐漸發(fā)展為網(wǎng)絡(luò)輕量化方法的一個(gè)熱點(diǎn)分支。

      Table 3 Comparison of network compression methods表3 網(wǎng)絡(luò)壓縮方法對(duì)比

      2 知識(shí)蒸餾方法

      2014 年,Hinton 等人[23]首次提出了知識(shí)蒸餾(knowledge distillation,KD)的概念,并通過實(shí)驗(yàn)驗(yàn)證了其在卷積神經(jīng)網(wǎng)絡(luò)壓縮上的有效性和可行性。知識(shí)蒸餾策略已在目標(biāo)檢測(cè)[44-46]、語(yǔ)義分割[47]、目標(biāo)識(shí)別[48]、視頻分類[49]、圖像去霧[50]等很多計(jì)算機(jī)視覺應(yīng)用中發(fā)揮了作用。

      下文先給出基本分析原理,然后根據(jù)蒸餾位置的不同,把知識(shí)蒸餾劃分為基于softmax 輸出層的知識(shí)蒸餾與基于中間層的知識(shí)蒸餾,其他代表性的方法還包括基于相關(guān)性知識(shí)的知識(shí)蒸餾以及結(jié)合生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks,GAN)的知識(shí)蒸餾。

      2.1 知識(shí)蒸餾的基本思想

      知識(shí)蒸餾的本質(zhì)體現(xiàn)在:老師會(huì)把自己的思考過程和總結(jié)作為一種知識(shí)精華傳授給學(xué)生,學(xué)生通過理解學(xué)習(xí),獲得抽象、提煉后的知識(shí),以達(dá)到和老師接近的水平。

      知識(shí)蒸餾的基本思想正是讓卷積神經(jīng)網(wǎng)絡(luò)模仿人類的學(xué)習(xí)行為,將大型網(wǎng)絡(luò)(教師網(wǎng))學(xué)習(xí)到的知識(shí)提煉傳授給小型網(wǎng)絡(luò)(學(xué)生網(wǎng)),并指導(dǎo)小型網(wǎng)絡(luò)的訓(xùn)練,從而實(shí)現(xiàn)了從大型網(wǎng)絡(luò)壓縮成小型網(wǎng)絡(luò)的目的。其一般實(shí)現(xiàn)思路如圖3 所示。

      Fig.3 Realization of knowledge distillation圖3 知識(shí)蒸餾一般的實(shí)現(xiàn)思路

      2.2 基于softmax 輸出層的知識(shí)蒸餾

      基于softmax輸出層的知識(shí)蒸餾(KD)[23]是由Hinton提出的知識(shí)蒸餾領(lǐng)域的開山之作。在一個(gè)訓(xùn)練成熟的網(wǎng)絡(luò)模型輸出的概率分布中,錯(cuò)誤類別的概率一般比較小,但是其中可能會(huì)存在一些概率相對(duì)較高的類別,例如,一輛公交車可能只有很小的機(jī)會(huì)被誤認(rèn)為小汽車,但這個(gè)錯(cuò)誤概率仍然比誤認(rèn)為一棵樹的可能性高很多倍,Hinton 等人認(rèn)為這些錯(cuò)誤類別的相對(duì)概率中隱藏著網(wǎng)絡(luò)學(xué)習(xí)到的知識(shí),這種知識(shí)是概率分布只有0 和1 的真實(shí)標(biāo)簽不具備的。

      因此,Hinton 提出KD,在softmax 輸出層中加入超參數(shù)T(如式(1)所示)用來平滑網(wǎng)絡(luò)輸出的概率分布,以強(qiáng)化輸出的概率分布中網(wǎng)絡(luò)學(xué)習(xí)到的知識(shí)。通過溫度系數(shù)T平滑過后的網(wǎng)絡(luò)輸出被稱為軟目標(biāo),軟目標(biāo)和真實(shí)標(biāo)簽一起指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練,損失函數(shù)的組成JKD一般如式(2)所示。

      神經(jīng)網(wǎng)絡(luò)通常通過使用softmax 輸出層來產(chǎn)生類別概率,該輸出層通過將zi歸一化轉(zhuǎn)化成概率qi。JCE(ytrue,p)表示學(xué)生網(wǎng)絡(luò)的預(yù)測(cè)輸出與真實(shí)標(biāo)簽的交叉熵,表示學(xué)生網(wǎng)絡(luò)平滑后的預(yù)測(cè)輸出與教師網(wǎng)絡(luò)平滑后的預(yù)測(cè)輸出的交叉熵,λ為調(diào)節(jié)兩個(gè)損失函數(shù)比例的超參數(shù),因?yàn)榻?jīng)過超參數(shù)T平滑后的交叉熵,在反向傳播時(shí)其梯度會(huì)變?yōu)樵瓉淼臑榱吮3制涮荻鹊某叨群驼鎸?shí)標(biāo)簽對(duì)應(yīng)的交叉熵的尺度一致,需要把平滑后的交叉熵乘以T2。

      下面介紹基于softmax 輸出層的知識(shí)蒸餾的拓展方法。

      2.2.1 最高分差(TSD)知識(shí)蒸餾

      研究動(dòng)機(jī):深度網(wǎng)絡(luò)能夠自動(dòng)地為每幅圖像學(xué)習(xí)語(yǔ)義相似的類,置信度越高的類在語(yǔ)義上更可能與輸入圖像相似。利用這些信息,可以讓學(xué)生網(wǎng)絡(luò)避免對(duì)不必要的嚴(yán)格分布進(jìn)行擬合,從而獲得更好的泛化能力。

      方法實(shí)現(xiàn):最高分差(top score difference,TSD)[51]在標(biāo)簽平滑正則化(label smoothing regularization,LSR)[52]和置信懲罰(confidence penalty,CP)[53]的基礎(chǔ)上進(jìn)行改進(jìn),TSD 只使用教師網(wǎng)絡(luò)預(yù)測(cè)輸出置信度最高的k個(gè)類別計(jì)算損失,超參數(shù)k代表每個(gè)圖像語(yǔ)義上最相似的類的數(shù)量,其中包含真實(shí)類別在內(nèi)。然后,計(jì)算最高置信度類別與其之下得分最高的k-1 類之間的置信度差距,將結(jié)果作為教師網(wǎng)絡(luò)提供的損失,聯(lián)合目標(biāo)任務(wù)損失對(duì)學(xué)生網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

      2.2.2 提前停止知識(shí)蒸餾(ESKD)

      研究動(dòng)機(jī):將神經(jīng)網(wǎng)絡(luò)部署在移動(dòng)平臺(tái)上一般需要較大的壓縮率,學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)之間的規(guī)模差距也隨之提升。雖然大模型的準(zhǔn)確率更高,但是它往往并不能更好地指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練,原因是容量不匹配。由于網(wǎng)絡(luò)規(guī)模差距過大,學(xué)生無法模仿老師,反而會(huì)帶偏了目標(biāo)任務(wù)損失。這類問題的解決辦法一般是采用分步蒸餾,從大模型提取到中模型,然后從中模型提取到小模型,但是這種分步的方法需要多次訓(xùn)練,造成訓(xùn)練時(shí)間也數(shù)倍地增長(zhǎng)。

      方法實(shí)現(xiàn):文獻(xiàn)[54]詳盡地探索了影響知識(shí)蒸餾的因素,提出了另外一種思路——提前停止知識(shí)蒸餾(early-stopped knowledge distillation,ESKD),在學(xué)生網(wǎng)絡(luò)訓(xùn)練結(jié)束之前停止教師的知識(shí)指導(dǎo)以提高學(xué)生網(wǎng)絡(luò)學(xué)習(xí)效果,通過使教師網(wǎng)絡(luò)知識(shí)對(duì)應(yīng)的損失權(quán)重逐漸衰減,以獲得一個(gè)更適合學(xué)生訓(xùn)練的方案。

      2.3 基于中間層的知識(shí)蒸餾

      基于中間層的知識(shí)蒸餾是目前研究最多的方法[55-60],主要是從網(wǎng)絡(luò)的中間隱藏層中通過各種手段提取可以表示網(wǎng)絡(luò)學(xué)習(xí)過程的知識(shí),或者能夠蘊(yùn)藏網(wǎng)絡(luò)如何對(duì)輸入數(shù)據(jù)進(jìn)行推理的知識(shí),將提取到的這些知識(shí)傳遞給學(xué)生網(wǎng)絡(luò)以實(shí)現(xiàn)知識(shí)蒸餾,達(dá)到提高學(xué)生網(wǎng)絡(luò)性能的目的。下面介紹一些典型的方法。

      2.3.1 FitNet

      研究動(dòng)機(jī):增加網(wǎng)絡(luò)深度可以重復(fù)使用特征,獲得在更高層次上更抽象和不變的特征表示。受此啟發(fā),F(xiàn)itNet[55]使用更深更窄的學(xué)生網(wǎng)絡(luò)和更淺更寬的教師網(wǎng)絡(luò)以實(shí)現(xiàn)更好的蒸餾效果,并且同時(shí)使用教師網(wǎng)絡(luò)的軟目標(biāo)和教師網(wǎng)絡(luò)的中間層特征圖作為知識(shí)。

      方法實(shí)現(xiàn):使用教師網(wǎng)絡(luò)的特征圖作為指導(dǎo)層,選擇學(xué)生網(wǎng)絡(luò)的特征圖作為被指導(dǎo)層,F(xiàn)itNet 是一個(gè)二階知識(shí)蒸餾,第一步使用指導(dǎo)層指導(dǎo)被指導(dǎo)層訓(xùn)練,損失函數(shù)如式(3)所示,第二步使用KD[23]繼續(xù)訓(xùn)練學(xué)生網(wǎng)絡(luò)。

      其中,uh、vg和r分別代表教師網(wǎng)絡(luò)、學(xué)生網(wǎng)絡(luò)和適配器的嵌套函數(shù),X是輸入特征圖,WHint、WGuided和Wr分別代表教師網(wǎng)絡(luò)的權(quán)重、學(xué)生網(wǎng)絡(luò)的權(quán)重和適配器的權(quán)重。

      直接由卷積層生成的特征圖通常尺寸較大,計(jì)算成本高,而且學(xué)生網(wǎng)絡(luò)很難學(xué)習(xí)。為了解決這個(gè)問題,Lee 等人[56]提出結(jié)合奇異值分解(singular value decomposition,SVD)的知識(shí)蒸餾,通過減少特征地圖的空間維數(shù),有效去除特征映射中的空間冗余,在特征降維過程中獲得有意義的隱含特征信息,并將這種信息傳遞給學(xué)生網(wǎng)絡(luò)。

      2.3.2 注意力轉(zhuǎn)移(AT)

      研究動(dòng)機(jī):FitNet 要求學(xué)生模擬教師的全部特征圖,這樣的要求太嚴(yán)格。文獻(xiàn)[24]提出了注意力轉(zhuǎn)移(attention transfer,AT)來放寬FitNet 的假設(shè),注意力圖是對(duì)多個(gè)通道的特征圖的總結(jié),使用一個(gè)注意力圖來代替多通道的特征圖。

      注意力機(jī)制:注意力是視覺體驗(yàn)的一個(gè)關(guān)鍵因素,并與感知密切相關(guān),注意力的集中程度體現(xiàn)了重視程度,人類需要保持注意力,以建立一個(gè)具有細(xì)節(jié)和連貫性的視覺表現(xiàn)。受此啟發(fā),人工注意力的核心思想是,通過集中注意力讓系統(tǒng)更關(guān)注一個(gè)對(duì)象或區(qū)域,以更詳細(xì)地檢查它。

      方法實(shí)現(xiàn):AT 把注意力看作一組空間映射,這些映射可以在網(wǎng)絡(luò)的各個(gè)層中定義,以便它們能夠捕獲低、中、高級(jí)的表示信息,然后把注意力從教師網(wǎng)絡(luò)轉(zhuǎn)移到學(xué)生網(wǎng)絡(luò),以提高后者的表現(xiàn)。如圖4 所示,AT 定義了基于激活值(神經(jīng)元在預(yù)測(cè)過程的輸出)的注意力圖,其基本假設(shè)是隱藏層神經(jīng)元激活的絕對(duì)值可以代表這個(gè)神經(jīng)元的重要性,通過對(duì)同一空間位置不同通道的特征圖的統(tǒng)計(jì),將C個(gè)通道的特征圖映射為單通道的注意力圖。通過讓學(xué)生網(wǎng)絡(luò)的注意力圖擬合教師網(wǎng)絡(luò)的注意力圖,并聯(lián)合目標(biāo)任務(wù)損失對(duì)學(xué)生網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

      文獻(xiàn)[25]提出通過匹配注意力圖和它們的雅可比矩陣進(jìn)行知識(shí)蒸餾,該蒸餾方法的教師和學(xué)生網(wǎng)絡(luò)結(jié)構(gòu)可以是任意的。該方法主要利用了神經(jīng)網(wǎng)絡(luò)雅可比矩陣兩個(gè)重要的性質(zhì):第一,維度與網(wǎng)絡(luò)結(jié)構(gòu)無關(guān),只與輸入和輸出的維度有關(guān),因此,不同網(wǎng)絡(luò)的雅可比矩陣可以進(jìn)行比較;第二,對(duì)于相同的網(wǎng)絡(luò),不同的權(quán)重配置可能得到相同的雅可比矩陣,這是由于網(wǎng)絡(luò)的冗余性和損失函數(shù)非凸性造成的。

      2.3.3 FSP 蒸餾

      研究動(dòng)機(jī):卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)層次結(jié)構(gòu),特征從輸入到輸出逐層傳遞,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的知識(shí)可以定義為如何構(gòu)建一個(gè)從輸入到輸出的映射關(guān)系,進(jìn)一步可以分解為層與層之間的特征變換關(guān)系,如圖5 所示。FSP(flow of solution procedure)蒸餾[57]將這種層與層之間的特征關(guān)系從教師網(wǎng)絡(luò)傳遞給學(xué)生網(wǎng)絡(luò)。單純地讓學(xué)生網(wǎng)絡(luò)模仿老師網(wǎng)絡(luò)生成的特征圖是硬約束,會(huì)讓學(xué)生網(wǎng)絡(luò)變得不靈活,因此更好的辦法是教會(huì)學(xué)生學(xué)習(xí)的過程,F(xiàn)SP 蒸餾定義了FSP 矩陣來刻畫層與層之間的特征關(guān)系,其核心思想便是授人以魚不如授人以漁。

      方法實(shí)現(xiàn):對(duì)于具有相同尺寸的特征圖,使用低層和高層不同通道的特征圖兩兩計(jì)算內(nèi)積,得到的結(jié)果代表對(duì)應(yīng)通道的兩兩特征圖的互相關(guān)值,將互相關(guān)值作為FSP 矩陣的對(duì)應(yīng)位置的元素。FSP 矩陣的計(jì)算過程如式(4)所示。最后用L2損失去拉近教師和學(xué)生的FPS 矩陣之間的距離,通過構(gòu)建如式(5)所示的FSP 損失聯(lián)合目標(biāo)任務(wù)損失一起指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練。FSP 蒸餾的概念圖如圖5[29]所示。

      Fig.4 Concept map of knowledge distillation for attention transfer圖4 注意力轉(zhuǎn)移知識(shí)蒸餾概念圖

      Fig.5 Concept diagram of FSP distillation圖5 FSP 蒸餾的概念圖

      其中,F(xiàn)1和F2分別表示低層和高層特征圖;h和w分別表示特征圖的長(zhǎng)和寬;i和j分別表示低層和高層特征圖的通道索引;x和W分別表示輸入和參數(shù)。

      2.3.4 神經(jīng)元選擇性轉(zhuǎn)移(NST)

      研究動(dòng)機(jī):文獻(xiàn)[58]提出在知識(shí)蒸餾過程中,直接對(duì)特征圖進(jìn)行匹配并不是最好的選擇,因?yàn)樗雎粤藰颖久芏?,并提出采用分布?duì)齊的神經(jīng)元選擇性轉(zhuǎn)移(neuron selectivity transfer,NST)方法。

      方法實(shí)現(xiàn):NST 的假設(shè)是每個(gè)神經(jīng)元都從原始輸入中提取與目標(biāo)任務(wù)相關(guān)的特定模式,因此,如果一個(gè)神經(jīng)元在某些區(qū)域或樣本中被激活,這就意味著這些區(qū)域或樣本可能具有一些與任務(wù)相關(guān)的共同屬性。NST 通過匹配教師和學(xué)生網(wǎng)絡(luò)之間神經(jīng)元選擇性模式的分布進(jìn)行知識(shí)蒸餾,采用最大平均偏差(maximum mean discrepancy,MMD)作為損失函數(shù)來度量師生分布之間的差異,并結(jié)合目標(biāo)任務(wù)損失對(duì)學(xué)生網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

      2.3.5 互信息知識(shí)蒸餾

      研究動(dòng)機(jī):基于互信息的知識(shí)蒸餾[59,61]使用的手段是最大化教師和學(xué)生網(wǎng)絡(luò)之間的互信息,學(xué)生網(wǎng)絡(luò)通過學(xué)習(xí)教師網(wǎng)絡(luò)中激活值的分布最大化互信息,從而進(jìn)行知識(shí)的傳遞。在學(xué)生網(wǎng)絡(luò)已知的條件下,當(dāng)教師網(wǎng)絡(luò)的熵很小時(shí),這說明學(xué)生網(wǎng)絡(luò)已經(jīng)獲得了能夠擬合教師網(wǎng)絡(luò)所需要的知識(shí),因此學(xué)生網(wǎng)絡(luò)的性能也已經(jīng)接近教師網(wǎng)絡(luò)。如式(6)所示,在H(t)已知的條件下,H(t/s)的值越小時(shí),互信息I(t;s)越大。

      由于互信息的計(jì)算較困難,變分信息蒸餾(variational information distillation,VID)[31]采用變分信息最大化方案來最大化變分下界,如式(7)所示,即用一個(gè)可變高斯分布q(t/s)來模擬p(t/s),由于蒸餾過程中H(t)和需要學(xué)習(xí)的學(xué)生網(wǎng)絡(luò)參數(shù)無關(guān),最大化互信息就轉(zhuǎn)換為最大化可變高斯分布的問題。

      方法實(shí)現(xiàn):學(xué)生網(wǎng)絡(luò)通過最小化與真實(shí)標(biāo)簽的交叉熵?fù)p失,同時(shí)與教師網(wǎng)絡(luò)保持高度的互信息以學(xué)習(xí)教師網(wǎng)絡(luò)的知識(shí)。

      2.3.6 因子傳輸(FT)

      研究動(dòng)機(jī):當(dāng)教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)在網(wǎng)絡(luò)結(jié)構(gòu)、通道數(shù)量和初始條件等差距較大時(shí),學(xué)生網(wǎng)絡(luò)不能很好地理解教師網(wǎng)絡(luò)特征圖中復(fù)雜的知識(shí),受此啟發(fā),文獻(xiàn)[60]提出使用通道擴(kuò)展的方法——因子傳輸(factor transfer,F(xiàn)T)蒸餾去進(jìn)一步解釋教師的知識(shí),以幫助學(xué)生網(wǎng)絡(luò)學(xué)習(xí)。

      Fig.6 Concept diagram of FT distillation圖6 FT 蒸餾的概念圖

      方法實(shí)現(xiàn):先將教師網(wǎng)絡(luò)特征圖的通道擴(kuò)展k倍,使m個(gè)通道特征圖的知識(shí)轉(zhuǎn)化到m×k個(gè)通道上,再進(jìn)行知識(shí)傳遞。整體架構(gòu)如圖6[60]所示,在教師網(wǎng)絡(luò)指導(dǎo)層的特征圖后面連接一個(gè)額外的釋義器模塊,將特征圖通道數(shù)擴(kuò)展為m×k。釋義器由卷積模塊組成,為了保證通道擴(kuò)展后得到的信息可以完整地表示原始特征圖,在釋義器的輸入特征x和輸出特征p(x)間設(shè)置重建損失,對(duì)釋義者進(jìn)行無監(jiān)督訓(xùn)練。相應(yīng)地,在學(xué)生網(wǎng)絡(luò)的被指導(dǎo)層后連接一個(gè)適配器,適配器也由卷積模塊構(gòu)成,目的是為了讓學(xué)生網(wǎng)絡(luò)的通道數(shù)與釋義器的輸出相匹配。通過式(8)計(jì)算蒸餾損失,其中,F(xiàn)T和FS分別表示釋義特征和適配器特征。

      2.3.7 最佳指導(dǎo)路徑

      研究動(dòng)機(jī):對(duì)于基于中間層的知識(shí)蒸餾,一個(gè)重要問題是如何確定最佳指導(dǎo)路徑,即確定教師網(wǎng)絡(luò)中的哪一層作為指導(dǎo)層和學(xué)生網(wǎng)絡(luò)中的哪一層作為被指導(dǎo)層,怎么能使學(xué)生網(wǎng)絡(luò)獲得最好的指導(dǎo)效果。如圖7 所示,文獻(xiàn)[62]提出一個(gè)迭代剪枝的優(yōu)化方案來尋找最佳指導(dǎo)路線。

      方法實(shí)現(xiàn):將所有教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)特征圖尺寸一致的層構(gòu)成的指導(dǎo)路徑作為指導(dǎo)路徑集合,在訓(xùn)練超參數(shù)相同的情況下遍歷所有可能的路徑,動(dòng)態(tài)確定最佳指導(dǎo)路徑。對(duì)學(xué)生網(wǎng)絡(luò)的特征圖使用1×1 的卷積核進(jìn)行分析,這個(gè)操作可以降低特征圖的維度和計(jì)算復(fù)雜度,并過濾出獨(dú)特的通道特征。經(jīng)過1×1 的卷積核提取的新特征圖用來與教師網(wǎng)絡(luò)的特征圖計(jì)算損失,損失函數(shù)如下所示:

      Fig.7 Candidate paths of knowledge transfer圖7 知識(shí)傳遞的候選路徑

      其中,u和v分別表示指導(dǎo)層和被指導(dǎo)層的深度嵌套函數(shù),WT和WS分別表示教師網(wǎng)絡(luò)參數(shù)和學(xué)生網(wǎng)絡(luò)參數(shù)。r是應(yīng)用在u上的知識(shí)投影函數(shù),參數(shù)WTP是卷積適配層的參數(shù)。u、v和r必須在空間維度上具有可比性。

      2.4 其他方法

      2.4.1 相關(guān)性知識(shí)蒸餾

      (1)關(guān)系知識(shí)蒸餾

      研究動(dòng)機(jī):文獻(xiàn)[63]提出了個(gè)體知識(shí)蒸餾(individual knowledge distillation,IKD)和關(guān)系知識(shí)蒸餾(relational knowledge distillation,RKD)的概念,IKD[23-24,51,55,60,64]使用單個(gè)輸入樣本在網(wǎng)絡(luò)特征提取過程中生成的特征圖或網(wǎng)絡(luò)的輸出作為知識(shí)進(jìn)行蒸餾,使學(xué)生網(wǎng)絡(luò)的輸出模擬教師網(wǎng)絡(luò)的輸出,以此來模擬大模型的擬合能力。IKD 中每個(gè)輸入樣本都是獨(dú)立的,學(xué)生網(wǎng)絡(luò)只能學(xué)習(xí)教師網(wǎng)絡(luò)對(duì)單個(gè)輸入樣本的推理過程和輸出結(jié)果,無法學(xué)習(xí)到多個(gè)輸入樣本在教師網(wǎng)絡(luò)特征空間的相關(guān)性,這種相關(guān)性包含了教師網(wǎng)絡(luò)對(duì)類內(nèi)樣本的聚合能力和類間樣本的區(qū)分能力,以及教師網(wǎng)絡(luò)的結(jié)構(gòu)信息。

      Fig.8 Individual knowledge distillation and relational knowledge distillation圖8 個(gè)體知識(shí)蒸餾與關(guān)系知識(shí)蒸餾

      方法實(shí)現(xiàn):如圖8[63]所示,RKD 算法的核心是以教師網(wǎng)絡(luò)的輸出為結(jié)構(gòu)單元,取代IKD 中以教師網(wǎng)絡(luò)單個(gè)輸出為知識(shí)的蒸餾方式,RKD 利用多輸出組合成結(jié)構(gòu)單元,更好地獲取教師網(wǎng)絡(luò)的結(jié)構(gòu)化特征。RKD 學(xué)習(xí)的損失函數(shù)如式(11)所示,其中t1,t2,…,tn表示教師網(wǎng)絡(luò)的多個(gè)輸出,s1,s2,…,sn表示學(xué)生網(wǎng)絡(luò)的多個(gè)輸出,?是構(gòu)建結(jié)構(gòu)信息的函數(shù),由兩個(gè)樣本之間的歐幾里德距離或三元組之間的角距離實(shí)現(xiàn),l表示計(jì)算二者之間的差距。

      (2)樣本關(guān)系圖蒸餾

      研究動(dòng)機(jī):知識(shí)蒸餾的主要挑戰(zhàn)是如何從教師網(wǎng)絡(luò)中提取一般的、適度的、充足的知識(shí)來指導(dǎo)學(xué)生網(wǎng)絡(luò)。文獻(xiàn)[65]提出了一種用于知識(shí)提取的樣本關(guān)系圖(instance relationship graph,IRG),它對(duì)樣本特征、樣本關(guān)系和特征空間變換這三種知識(shí)進(jìn)行建模,其概念圖如圖9[58]所示。

      Fig.9 Concept diagram of instance relationship graph distillation圖9 樣本關(guān)系圖蒸餾示意圖

      方法實(shí)現(xiàn):首先,構(gòu)造IRG,其中頂點(diǎn)表示訓(xùn)練樣本,兩個(gè)頂點(diǎn)之間的邊權(quán)重表示樣本之間的相似性程度。然后,使用IRG 變換對(duì)從低層到更高層的特征空間轉(zhuǎn)換進(jìn)行建模,盡管輸入樣本的特征在不同的網(wǎng)絡(luò)結(jié)構(gòu)中通常具有不同的維度,但圖的大小總是相同的,因?yàn)楣?jié)點(diǎn)的數(shù)量等于單次輸入訓(xùn)練樣本的數(shù)量。最后,設(shè)計(jì)IRG 損失、IRG 變換損失以及目標(biāo)任務(wù)損失的聯(lián)合損失函數(shù),使用聯(lián)合損失函數(shù)指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練。

      (3)圖知識(shí)蒸餾

      使用圖作為網(wǎng)絡(luò)中間層的拓?fù)浔硎荆梢杂脕斫忉尵W(wǎng)絡(luò)正在學(xué)習(xí)什么[66-67]或增強(qiáng)其魯棒性[68]。圖知識(shí)蒸餾(graph knowledge distillation,GKD)[69]可以看作是RKD 歐幾里德版本的拓展。在RKD 的基礎(chǔ)上,利用圖捕捉隱藏空間的幾何特征,建模多個(gè)樣本之間的關(guān)系距離,提取相關(guān)性知識(shí),進(jìn)行知識(shí)蒸餾。GKD 使用余弦距離來度量樣本相似性,余弦距離相對(duì)于歐氏距離,更多的是從方向上區(qū)分差異,而對(duì)絕對(duì)的數(shù)值不敏感,可以更準(zhǔn)確地衡量樣本特征之間的相似性。為了避免過分重視離群值,對(duì)鄰接矩陣進(jìn)行了規(guī)范化處理,使用huber損失作為損失函數(shù)。

      文獻(xiàn)[70]在此基礎(chǔ)上對(duì)損失函數(shù)進(jìn)行了擴(kuò)展,提出了三元組蒸餾(triplet distillation),使用三元組損失[71],通過自適應(yīng)地改變正負(fù)對(duì)之間的距離,將相似信息從教師網(wǎng)絡(luò)轉(zhuǎn)移到學(xué)生網(wǎng)絡(luò)。

      (4)相似性保留知識(shí)蒸餾(SPKD)

      研究動(dòng)機(jī):語(yǔ)義相似的輸入往往會(huì)在一個(gè)經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)中產(chǎn)生相似的激活模式,文獻(xiàn)[65]提出了相似性保留知識(shí)蒸餾(similarity-preserving knowledge distillation,SPKD),并提出輸入樣本之間的相似性反映了教師網(wǎng)絡(luò)在特征空間中表示特征的規(guī)律,有助于在特征空間中減小類內(nèi)間距和增大類間間距,以提高學(xué)生網(wǎng)絡(luò)的學(xué)習(xí)效果。SPKD 使學(xué)生網(wǎng)絡(luò)不用去模仿教師網(wǎng)絡(luò)提取到的特征,只需要在自己的特征空間中保持樣本之間的相似性與教師一致即可。其概念圖如圖10[72]所示。

      Fig.10 Similarity preserving knowledge distillation圖10 相似性保留知識(shí)蒸餾

      方法實(shí)現(xiàn):對(duì)于輸入的樣本數(shù)為b個(gè)的小批量圖像,選擇某一層特征圖計(jì)算形狀為b×b的相關(guān)矩陣,蒸餾損失定義在學(xué)生和教師產(chǎn)生的相關(guān)矩陣上。教師和學(xué)生網(wǎng)絡(luò)生成的相關(guān)矩陣的形狀都是b×b,因此不用刻意保證師生網(wǎng)絡(luò)的特征圖大小和通道數(shù)相等,放寬了教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的選擇范圍,方法實(shí)現(xiàn)了更好的泛化。

      (5)相關(guān)同余知識(shí)蒸餾(CCKD)

      文獻(xiàn)[73]提出了相關(guān)同余知識(shí)蒸餾(correlation congruence for knowledge distillation,CCKD),將教師網(wǎng)絡(luò)對(duì)輸入樣本的預(yù)測(cè)輸出和樣本間相似性知識(shí)都傳遞給學(xué)生網(wǎng)絡(luò)。此外,為了更好地捕捉樣本之間的相關(guān)性,CCKD 使用高斯徑向基函數(shù)(Gaussian-RBF)去衡量樣本之間的相關(guān)性,該函數(shù)如下所示:

      高斯徑向基函數(shù)是一種常用的核函數(shù),其值只依賴于距離原點(diǎn)空間的歐氏距離。相比于雙線性池化[74],高斯徑向基函數(shù)在捕捉樣本之間復(fù)雜的非線性關(guān)系方面更為靈活和強(qiáng)大。

      CCKD 的采樣策略:樣本之間的相關(guān)性是在小批量輸入中計(jì)算的,因此一個(gè)合適的采樣器對(duì)于平衡類內(nèi)的一致性和類間的相關(guān)性非常重要。一種簡(jiǎn)單的策略是均勻隨機(jī)抽樣,但是當(dāng)類數(shù)較多時(shí),所有樣本都屬于不同的類,這會(huì)導(dǎo)致類內(nèi)相關(guān)性梯度的高偏差估計(jì)。為了解決這個(gè)問題,CCKD 采用兩種小批量采樣器策略:類均勻隨機(jī)采樣器和超類單形隨機(jī)采樣器。均勻隨機(jī)抽樣按類抽樣并隨機(jī)為每個(gè)抽樣類別選擇固定k個(gè)樣本數(shù)(例如,一個(gè)批次中包含5個(gè)類別,每個(gè)類別包含k=8 個(gè)樣本,組成一個(gè)包含40個(gè)樣本的批次)。超類單形隨機(jī)采樣器與類均勻隨機(jī)采樣器相似,不同之處在于,它通過超類對(duì)樣本進(jìn)行采樣,超類是通過聚類生成的真實(shí)類的一種更軟的形式。為了得到訓(xùn)練樣本的超類,首先使用教師網(wǎng)絡(luò)提取特征,然后使用K-均值聚類,樣本的超類被定義為它所屬的集群。由于超類改變了特征空間中樣本的粗糙結(jié)構(gòu),超類單形隨機(jī)采樣器比類均勻隨機(jī)采樣器更靈活,更能容忍不平衡標(biāo)記。

      (6)多頭圖蒸餾(MHGD)

      文獻(xiàn)[75]提出了多頭圖蒸餾(multi-head graph distillation,MHGD)方法獲取輸入樣本的嵌入知識(shí)。首先提取網(wǎng)絡(luò)兩個(gè)層對(duì)應(yīng)的特征映射,使用KD-SVD[56](knowledge distillation using singular value decomposition)通過徑向基函數(shù)將特征映射壓縮為特征向量,然后將小批量樣本輸入教師網(wǎng)絡(luò),生成兩個(gè)特征向量集。通過計(jì)算兩個(gè)特征向量集之間的關(guān)系提取知識(shí),使用傳遞知識(shí)的損失聯(lián)合目標(biāo)任務(wù)損失同時(shí)指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練。

      2.4.2 基于生成對(duì)抗網(wǎng)絡(luò)的知識(shí)蒸餾

      研究動(dòng)機(jī):基于生成對(duì)抗網(wǎng)絡(luò)(GAN)[26]的知識(shí)蒸餾,利用生成對(duì)抗策略以實(shí)現(xiàn)知識(shí)從教師網(wǎng)絡(luò)到學(xué)生的傳遞。當(dāng)學(xué)生網(wǎng)絡(luò)比教師網(wǎng)絡(luò)小很多時(shí),強(qiáng)迫學(xué)生網(wǎng)絡(luò)精確模擬教師網(wǎng)絡(luò)是很困難的,而GAN有助于保持輸出分布的多模態(tài)性質(zhì)[60],并減小手工調(diào)參的誤差,學(xué)生網(wǎng)絡(luò)可以自動(dòng)學(xué)習(xí)到良好的損失,轉(zhuǎn)移類間的相關(guān)性,提升學(xué)生網(wǎng)絡(luò)的性能。

      方法實(shí)現(xiàn):對(duì)抗知識(shí)蒸餾[76-78]將學(xué)生網(wǎng)絡(luò)作為生成器,先分別獲取生成器和教師網(wǎng)絡(luò)生成對(duì)輸入樣本的輸出概率分布,再使用判別器來區(qū)分學(xué)生網(wǎng)絡(luò)的輸出與教師網(wǎng)絡(luò)的輸出。學(xué)生網(wǎng)絡(luò)和判別器交替更新參數(shù),其中判別器的更新為了更好地區(qū)分教師網(wǎng)絡(luò)的輸出與學(xué)生網(wǎng)絡(luò)的輸出,學(xué)生網(wǎng)絡(luò)的更新為了更好地欺騙判別器,使判別器無法區(qū)分學(xué)生網(wǎng)絡(luò)的輸出與教師網(wǎng)絡(luò)的輸出。經(jīng)過學(xué)生網(wǎng)絡(luò)和判別器的多次交替更新后,并達(dá)到使判別器無法區(qū)分學(xué)生網(wǎng)絡(luò)的輸出與教師網(wǎng)絡(luò)的輸出的效果,最終實(shí)現(xiàn)學(xué)生網(wǎng)絡(luò)模擬教師網(wǎng)絡(luò)的目的。圖11 描述了基于生成對(duì)抗網(wǎng)絡(luò)的知識(shí)蒸餾的一般思想。

      Fig.11 Knowledge distillation based on generative adversarial network圖11 基于生成對(duì)抗網(wǎng)絡(luò)的知識(shí)蒸餾

      雖然判別器捕獲了教師和學(xué)生輸出的高級(jí)統(tǒng)計(jì)數(shù)據(jù),但是缺少低級(jí)對(duì)齊,并且對(duì)抗性訓(xùn)練過程很困難[76]。文獻(xiàn)[79]提出了更嚴(yán)格的訓(xùn)練方式,其增加了判別器的預(yù)測(cè)目標(biāo),判別器除了預(yù)測(cè)真、假之外,還預(yù)測(cè)類別標(biāo)簽,使對(duì)抗訓(xùn)練變得更加穩(wěn)定,鑒別器還可以在學(xué)生和教師的輸出之間提供類別級(jí)的對(duì)齊,判別器的輸出是一個(gè)C+2 維向量,帶有C個(gè)標(biāo)簽預(yù)測(cè)和一個(gè)真/假預(yù)測(cè)。文獻(xiàn)[77]提出了KDGAN(knowledge distillation with generative adversarial networks)的框架,利用生成對(duì)抗網(wǎng)絡(luò)提取知識(shí)用于多標(biāo)簽學(xué)習(xí)。KDGAN 框架定義為一個(gè)極大極小博弈,其中學(xué)生網(wǎng)絡(luò)、教師網(wǎng)路和判別器對(duì)立地訓(xùn)練,極大極小博弈具有均衡性,有利于學(xué)生網(wǎng)絡(luò)更好地模擬真實(shí)數(shù)據(jù)的分布。在對(duì)抗性訓(xùn)練中,利用具體的分布來控制梯度的方差,得到低方差的梯度估計(jì)以加速訓(xùn)練。

      2.5 知識(shí)蒸餾目前的評(píng)價(jià)體系

      目前知識(shí)蒸餾的評(píng)價(jià)體系尚未完善,本文在展望部分針對(duì)知識(shí)蒸餾評(píng)價(jià)標(biāo)準(zhǔn)的規(guī)范化提出一些建議,下面僅介紹目前知識(shí)蒸餾普遍使用的評(píng)價(jià)方法。

      目前知識(shí)蒸餾的評(píng)價(jià)是通過圖像分類任務(wù)實(shí)現(xiàn)的,使用的數(shù)據(jù)集包括CIFAR-10、CIFAR-100、ImageNet、SVHN、ILSVRC2012、MNIST。其中CIFAR-10、CIFAR-100 為最常用的數(shù)據(jù)集。

      CIFAR-10 是一個(gè)普適物體的小型彩色圖像數(shù)據(jù)集。一共包含10 個(gè)類別的RGB 彩色圖片:飛機(jī)、汽車、鳥類、貓、鹿、狗、蛙類、馬、船和卡車。每個(gè)圖片的尺寸為32×32,每個(gè)類別有6 000 個(gè)圖像,數(shù)據(jù)集中一共有50 000 張訓(xùn)練圖片和10 000 張測(cè)試圖片。

      CIFAR-100 包含100 個(gè)類別的RGB 彩色圖片,每個(gè)類包含600 個(gè)圖像,每類各有500 個(gè)訓(xùn)練圖像和100 個(gè)測(cè)試圖像。CIFAR-100 中的100 個(gè)類被分成20個(gè)超類。每個(gè)圖像都帶有一個(gè)“精細(xì)”標(biāo)簽(它所屬的類)和一個(gè)“粗糙”標(biāo)簽(它所屬的超類)。

      評(píng)價(jià)指標(biāo)包括3 個(gè):(1)學(xué)生網(wǎng)絡(luò)相對(duì)于教師網(wǎng)絡(luò)參數(shù)的減少量;(2)通過知識(shí)蒸餾后的學(xué)生網(wǎng)絡(luò)相比于教師網(wǎng)絡(luò)準(zhǔn)確率的降低量;(3)通過知識(shí)蒸餾后的學(xué)生網(wǎng)絡(luò)相比于正常訓(xùn)練的學(xué)生網(wǎng)絡(luò)準(zhǔn)確率的提升量。第一個(gè)指標(biāo)體現(xiàn)了算法對(duì)網(wǎng)絡(luò)的壓縮程度;第二個(gè)指標(biāo)體現(xiàn)了在第一個(gè)指標(biāo)對(duì)應(yīng)的壓縮程度下,算法對(duì)準(zhǔn)確率的損失程度;第三個(gè)指標(biāo)體現(xiàn)了在第一個(gè)指標(biāo)對(duì)應(yīng)的壓縮程度下,該知識(shí)蒸餾算法的有效程度。

      評(píng)價(jià)流程:(1)在實(shí)驗(yàn)數(shù)據(jù)集上訓(xùn)練多個(gè)教師網(wǎng)絡(luò)(如ResNet152、ResNet101、WRN40-2 等),訓(xùn)練多個(gè)教師網(wǎng)絡(luò)的目的是為了后續(xù)測(cè)試算法對(duì)網(wǎng)絡(luò)結(jié)構(gòu)和復(fù)雜度的泛化性。(2)對(duì)每一個(gè)教師網(wǎng)絡(luò),都選擇多個(gè)不同復(fù)雜度的學(xué)生網(wǎng)絡(luò)(如ResNet50、WRN40-1、WRN16-2、WRN4016-1 等)進(jìn)行蒸餾訓(xùn)練,學(xué)生網(wǎng)絡(luò)的訓(xùn)練與教師網(wǎng)絡(luò)使用相同的數(shù)據(jù)集,以進(jìn)行準(zhǔn)確率的對(duì)比,選擇多個(gè)不同復(fù)雜度的學(xué)生網(wǎng)絡(luò)的目的是為了測(cè)試算法對(duì)壓縮程度的魯棒性。一般情況下,當(dāng)壓縮程度超出一定范圍時(shí),蒸餾的效果會(huì)急劇下降。(3)使用正常的訓(xùn)練方式,對(duì)學(xué)生網(wǎng)絡(luò)在相同的數(shù)據(jù)集上進(jìn)行訓(xùn)練,以測(cè)試蒸餾的有效性。

      2.6 知識(shí)蒸餾技術(shù)的對(duì)比實(shí)驗(yàn)與評(píng)價(jià)

      2.6.1 不同知識(shí)蒸餾技術(shù)的對(duì)比實(shí)驗(yàn)

      表4 展示了各種知識(shí)蒸餾方法的性能,實(shí)驗(yàn)在CIFAR-100 數(shù)據(jù)集上對(duì)WRN40-2 進(jìn)行兩種程度的壓縮,將WRN40-2 壓縮為WRN16-2 和WRN40-1。在兩種程度的壓縮中,KD 表現(xiàn)均最優(yōu);在WRN40-2 到WRN16-2 的壓縮中,AT 表現(xiàn)第二好;在WRN40-2 到WRN40-1 的壓縮中,VID 表現(xiàn)第二好。

      表5 展示了不同知識(shí)蒸餾方法與KD 組合表現(xiàn)的性能,實(shí)驗(yàn)在CIFAR-100 數(shù)據(jù)集上進(jìn)行。將WRN40-2 壓縮為WRN16-2,有6 種知識(shí)蒸餾方法與KD 組合表現(xiàn)的性能超越KD 單獨(dú)使用的性能,其中AT+KD表現(xiàn)最優(yōu),這表明這6 種方法提取到了KD 缺乏的知識(shí),與KD 存在互補(bǔ)關(guān)系。

      2.6.2 對(duì)各種知識(shí)蒸餾技術(shù)的分析評(píng)價(jià)

      知識(shí)蒸餾的發(fā)展關(guān)系如圖12 所示,其中第一部分為基于softmax 輸出層的知識(shí)蒸餾方法,第二部分為基于中間層的知識(shí)蒸餾方法,第三部分為相關(guān)性知識(shí)蒸餾,第四部分為對(duì)抗性知識(shí)蒸餾。下面對(duì)上述四種類型的知識(shí)蒸餾方法的優(yōu)缺點(diǎn)進(jìn)行分析評(píng)價(jià),并對(duì)其拓展研究提供一些思路:

      Table 4 Experiment of different knowledge distillation methods on CIFAR-100表4 不同知識(shí)蒸餾方法在CIFAR-100 上的實(shí)驗(yàn)

      Table 5 Combination experiment of different knowledge distillation methods and KD表5 不同知識(shí)蒸餾方法與KD 組合實(shí)驗(yàn)

      (1)基于softmax 輸出層的KD

      優(yōu)點(diǎn):KD 能夠有效地將大型教師網(wǎng)絡(luò)壓縮為小型學(xué)生網(wǎng)絡(luò),實(shí)現(xiàn)思路簡(jiǎn)單,適用于任意網(wǎng)絡(luò)結(jié)構(gòu),在多分類任務(wù)中表現(xiàn)了優(yōu)秀的性能。

      Fig.12 Development of knowledge distillation圖12 知識(shí)蒸餾的發(fā)展關(guān)系

      缺點(diǎn):該方法也存在著一定的局限性,由于它是基于softmax 層輸出的概率分布,嚴(yán)重依賴類的數(shù)量,因此應(yīng)用場(chǎng)景只能局限于多分類問題,在二分類甚至目標(biāo)類別較少的情況以及回歸問題的表現(xiàn)并不理想;并且softmax 輸出層位于網(wǎng)絡(luò)的最后,特征經(jīng)過多次池化降維,所包含的信息量較少,提取到的知識(shí)語(yǔ)義程度太高,單純地?cái)M合教師網(wǎng)絡(luò)的輸出可能會(huì)造成學(xué)生網(wǎng)絡(luò)的過擬合,影響學(xué)生網(wǎng)絡(luò)的學(xué)習(xí)效果。

      拓展研究:KD 在知識(shí)蒸餾的快速訓(xùn)練方向有著良好的發(fā)展?jié)摿?,由于KD 傳遞的知識(shí)位于網(wǎng)絡(luò)的輸出層,KD 可以通過多模型集成的思路,將多個(gè)小模型同時(shí)訓(xùn)練,把小模型的預(yù)測(cè)輸出通過集成產(chǎn)生知識(shí),同時(shí)使用知識(shí)對(duì)其中的小模型進(jìn)行指導(dǎo),從而實(shí)現(xiàn)一階段訓(xùn)練的知識(shí)蒸餾,達(dá)到快速訓(xùn)練的效果;探索可以與KD 結(jié)合使用的中間層知識(shí)蒸餾方法,實(shí)現(xiàn)對(duì)輸出層知識(shí)的補(bǔ)充,從而達(dá)到更好的蒸餾性能。

      (2)基于中間層的知識(shí)蒸餾

      優(yōu)點(diǎn):大量的研究人員提出了各式各樣的知識(shí)提取方法,包括AT、FSP、NST、VID、FT 等,基于中間層的知識(shí)蒸餾取得了較好的效果,相對(duì)于基于softmax 輸出層的知識(shí)蒸餾,其擁有更豐富多樣的知識(shí)提取和傳遞的手段,同時(shí)也擁有更廣闊的發(fā)展?jié)摿脱芯績(jī)r(jià)值,其應(yīng)用范圍也取得了極大的擴(kuò)展,不再依賴分類任務(wù)以及類的數(shù)量,可以應(yīng)用在檢測(cè)和分割任務(wù)上。通過實(shí)驗(yàn)發(fā)現(xiàn),AT 實(shí)現(xiàn)了最好的性能,F(xiàn)SP和FT 可以幫助學(xué)生網(wǎng)絡(luò)提高收斂速度。

      缺點(diǎn):由于中間層的特征維度比輸出層龐大很多,因此加劇了訓(xùn)練難度;并且在學(xué)生網(wǎng)絡(luò)固定的時(shí)候,很難確定最優(yōu)的指導(dǎo)路線以及最佳的指導(dǎo)教師,增加了人工調(diào)參的難度,可能需要多次調(diào)參才能獲得訓(xùn)練最佳的學(xué)生網(wǎng)絡(luò);基于中間層特征圖的知識(shí)蒸餾方法實(shí)現(xiàn)相對(duì)復(fù)雜,AT 需要教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的特征圖適配,實(shí)際應(yīng)用中可能會(huì)需要額外的適配操作,F(xiàn)T 需要提前對(duì)釋義器進(jìn)行額外的訓(xùn)練,同時(shí)釋義器和適配器會(huì)增加額外的參數(shù);基于中間層知識(shí)蒸餾的研究動(dòng)機(jī)大多從試探的角度出發(fā),該方向的研究缺乏明確的理論知識(shí)指導(dǎo),需要較高創(chuàng)新直覺。

      拓展研究:基于中間層的知識(shí)蒸餾是目前知識(shí)蒸餾領(lǐng)域的熱點(diǎn)研究,該方向可以結(jié)合神經(jīng)網(wǎng)絡(luò)最新的研究成果,探索更有效的知識(shí)提取和傳遞的手段。在AT 的基礎(chǔ)上可以探索結(jié)合更多類型的注意力機(jī)制的蒸餾方法,如空間注意力機(jī)制、通道注意力機(jī)制、混合型注意力機(jī)制以及自注意力機(jī)制等;如何選擇教師到學(xué)生的指導(dǎo)路徑也是重要的研究方向。

      (3)相關(guān)性知識(shí)蒸餾

      優(yōu)點(diǎn):相關(guān)性知識(shí)蒸餾有利于減少特征空間中的類內(nèi)間距,擴(kuò)大類間間距,對(duì)不同的網(wǎng)絡(luò)結(jié)構(gòu)具有較強(qiáng)的魯棒性。

      缺點(diǎn):相關(guān)性知識(shí)蒸餾傳遞的知識(shí)太雜亂,各個(gè)損失分量之間的權(quán)重比例缺乏規(guī)律性,需要多次調(diào)參和試錯(cuò)才能找到較好的訓(xùn)練效果;由于相關(guān)性知識(shí)需要從批量數(shù)據(jù)中提取,輸入數(shù)據(jù)的類別分布對(duì)蒸餾的效果也有較大的影響。

      拓展研究:相關(guān)性知識(shí)蒸餾從樣本的角度出發(fā),因此,對(duì)輸入樣本進(jìn)行預(yù)處理和采樣策略可以作為重點(diǎn)研究方向。

      (4)基于生成對(duì)抗網(wǎng)絡(luò)的知識(shí)蒸餾

      優(yōu)點(diǎn):基于生成對(duì)抗網(wǎng)絡(luò)的知識(shí)蒸餾提供了知識(shí)蒸餾的一種全新的思路,通過使用鑒別器和學(xué)生網(wǎng)絡(luò)交叉迭代訓(xùn)練使學(xué)生網(wǎng)絡(luò)不斷向教師網(wǎng)絡(luò)靠近,該方法可以實(shí)現(xiàn)端到端的訓(xùn)練,解決了人工調(diào)參帶來的誤差和麻煩,而且訓(xùn)練效果較好。

      缺點(diǎn):由于這種訓(xùn)練方式使學(xué)生網(wǎng)絡(luò)僅僅模擬教師網(wǎng)絡(luò)的輸出端,無法學(xué)習(xí)到教師網(wǎng)絡(luò)內(nèi)部更豐富的知識(shí),并且鑒別器和學(xué)生網(wǎng)絡(luò)的交叉迭代訓(xùn)練造成網(wǎng)絡(luò)收斂速度慢,訓(xùn)練時(shí)間長(zhǎng)。

      拓展研究:基于生成對(duì)抗網(wǎng)絡(luò)的知識(shí)蒸餾作為知識(shí)蒸餾的一個(gè)新的領(lǐng)域,以對(duì)抗訓(xùn)練作為訓(xùn)練手段,探索可以結(jié)合網(wǎng)絡(luò)中間層知識(shí)的方法,以實(shí)現(xiàn)更好的蒸餾效果和更快速的訓(xùn)練。

      3 展望知識(shí)蒸餾的拓展方向

      隨著深度神經(jīng)網(wǎng)絡(luò)研究的不斷深入以及對(duì)神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)輕量化日益擴(kuò)大的應(yīng)用需求,知識(shí)蒸餾技術(shù)在未來一定會(huì)大放異彩,未來的研究工作可參考如下幾方面。

      (1)更有效的知識(shí)提取

      在知識(shí)蒸餾中,最重要的一個(gè)環(huán)節(jié)就是如何從教師網(wǎng)絡(luò)中提取能夠有效地指導(dǎo)學(xué)生網(wǎng)絡(luò)進(jìn)步的知識(shí),基于注意力機(jī)制和相關(guān)性等提取知識(shí)的方法展現(xiàn)了不錯(cuò)的效果,但提取到的知識(shí)還是不夠準(zhǔn)確和有效,學(xué)生網(wǎng)絡(luò)需要更精準(zhǔn)的教師網(wǎng)絡(luò)知識(shí)以獲得更好的指導(dǎo)效果,因此如何改進(jìn)知識(shí)提取的方法有很大的研究意義也是目前研究亟需解決的問題。

      (2)知識(shí)蒸餾技術(shù)的研究領(lǐng)域擴(kuò)展

      現(xiàn)階段知識(shí)蒸餾技術(shù)的研究主要是在分類問題上的,對(duì)于檢測(cè)、分割等復(fù)雜任務(wù)的應(yīng)用上還存在一定的局限性。對(duì)于同樣的知識(shí)蒸餾算法,應(yīng)用在分類問題上的壓縮有著很好的效果,而應(yīng)用到目標(biāo)檢測(cè)任務(wù)時(shí)性能可能會(huì)大幅降低,主要有以下幾點(diǎn)原因:基于輸出層的知識(shí)蒸餾方法是針對(duì)分類問題提出來的,它的假設(shè)是所有的輸出類別有著相同的重要性,但是目標(biāo)檢測(cè)任務(wù)中,通常背景類所占比例要遠(yuǎn)高于目標(biāo)類;檢測(cè)任務(wù)相對(duì)于分類任務(wù)更復(fù)雜,需要同時(shí)處理目標(biāo)分類和邊框回歸問題,對(duì)網(wǎng)絡(luò)能力有更強(qiáng)的要求;檢測(cè)任務(wù)主要關(guān)注物體真實(shí)標(biāo)簽重疊的局部區(qū)域,而分類模型更關(guān)注全局背景,在檢測(cè)任務(wù)中,知識(shí)蒸餾將整個(gè)教師網(wǎng)絡(luò)的知識(shí)提取給學(xué)生網(wǎng)絡(luò),其中包含了學(xué)生不需要的知識(shí),冗余的知識(shí)會(huì)影響蒸餾的效果。因此知識(shí)蒸餾技術(shù)在目標(biāo)檢測(cè)的應(yīng)用還存在著許多問題需要克服,這也正是知識(shí)蒸餾技術(shù)未來重要的研究方向。

      (3)與網(wǎng)絡(luò)剪枝技術(shù)等策略結(jié)合

      基于知識(shí)蒸餾的網(wǎng)絡(luò)壓縮技術(shù)使小型網(wǎng)絡(luò)超越自己正常的訓(xùn)練極限,達(dá)到與大型網(wǎng)絡(luò)相當(dāng)?shù)臏?zhǔn)確率,但是經(jīng)過知識(shí)蒸餾訓(xùn)練完成的小型網(wǎng)絡(luò)的參數(shù)仍然存在大量冗余,網(wǎng)絡(luò)剪枝技術(shù)剛好可以很好地解決這個(gè)問題,通過知識(shí)蒸餾技術(shù)和網(wǎng)絡(luò)剪枝技術(shù)的聯(lián)合使用可以更大程度地壓縮網(wǎng)絡(luò),因此如何將兩種壓縮技術(shù)不沖突地聯(lián)合起來,減少人工調(diào)參的難度,實(shí)現(xiàn)端到端的快速訓(xùn)練有進(jìn)一步的研究?jī)r(jià)值。

      (4)邊緣端AI芯片限制條件下的應(yīng)用

      民用方面如在手機(jī)、智能監(jiān)控?cái)z像頭以及移動(dòng)穿戴式設(shè)備對(duì)神經(jīng)網(wǎng)絡(luò)能夠部署到邊緣端智能芯片的應(yīng)用日益增多,軍用方面如無人機(jī)敵情偵察、衛(wèi)星導(dǎo)彈的智能化也有著同樣迫切的需求。但是在面對(duì)邊緣端AI 芯片的算力和功耗等限制條件下,知識(shí)蒸餾技術(shù)壓縮得到的小型網(wǎng)絡(luò)參數(shù)的精度仍然很高,會(huì)消耗非常多的計(jì)算資源,因此知識(shí)蒸餾技術(shù)結(jié)合參數(shù)量化技術(shù)對(duì)神經(jīng)網(wǎng)絡(luò)從學(xué)術(shù)研究到工業(yè)落地有著巨大的應(yīng)用潛力,需要結(jié)合特定的應(yīng)用場(chǎng)景、計(jì)算環(huán)境約束、待分析的目標(biāo)特性、特殊的知識(shí)類型,展開個(gè)性化研究。

      (5)評(píng)價(jià)標(biāo)準(zhǔn)規(guī)范化

      目前對(duì)網(wǎng)絡(luò)壓縮中的知識(shí)蒸餾技術(shù)的評(píng)價(jià)主要側(cè)重于準(zhǔn)確率、模型內(nèi)存等方面,但使用更加全面的評(píng)價(jià)指標(biāo)對(duì)于發(fā)現(xiàn)不同算法的優(yōu)缺點(diǎn)是大有裨益的。

      由于在工程上經(jīng)常有快速訓(xùn)練的需求,不同算法訓(xùn)練時(shí)消耗的計(jì)算資源和訓(xùn)練時(shí)間也可以作為一種衡量算法的評(píng)價(jià)指標(biāo);由于簡(jiǎn)化后的網(wǎng)絡(luò)模型往往是在資源受限的設(shè)備上運(yùn)行,乘加運(yùn)算量、硬件能耗也是重要的評(píng)價(jià)指標(biāo)。

      由于知識(shí)蒸餾壓縮的效果與教師、學(xué)生網(wǎng)絡(luò)的選取以及壓縮的程度有密切的關(guān)系,在超出一定壓縮程度后,某些知識(shí)蒸餾方法的壓縮效果會(huì)急劇下降。因此,在知識(shí)蒸餾的理論研究中,非常有必要建立標(biāo)準(zhǔn)完備的用于壓縮效果評(píng)價(jià)的網(wǎng)絡(luò)集合。該集合包含多個(gè)網(wǎng)絡(luò)壓縮對(duì),每個(gè)網(wǎng)絡(luò)壓縮對(duì)都單獨(dú)對(duì)應(yīng)一個(gè)教師網(wǎng)絡(luò)和一個(gè)學(xué)生網(wǎng)絡(luò)(如網(wǎng)絡(luò)壓縮對(duì)ResNet152 與ResNet101,ResNet152 與ResNet50,WRN40-2 與WRN40-1,WRN40-2 與WRN16-2 等),每個(gè)網(wǎng)絡(luò)壓縮對(duì)也都標(biāo)志著具體的網(wǎng)絡(luò)結(jié)構(gòu)和壓縮程度。網(wǎng)絡(luò)壓縮中各種知識(shí)蒸餾算法都使用這個(gè)集合在固定的公開數(shù)據(jù)集上進(jìn)行蒸餾效果的比較,以呈現(xiàn)該算法在不同網(wǎng)絡(luò)結(jié)構(gòu)、不同壓縮程度下的壓縮效果,以使實(shí)驗(yàn)結(jié)果更加具有說服力,以更清晰地呈現(xiàn)不同算法的優(yōu)劣性和泛化性。

      4 結(jié)束語(yǔ)

      本文簡(jiǎn)述了網(wǎng)絡(luò)壓縮方法的發(fā)展淵源,在簡(jiǎn)單對(duì)比典型網(wǎng)絡(luò)壓縮技術(shù)的基礎(chǔ)上,重點(diǎn)針對(duì)近年深度神經(jīng)網(wǎng)絡(luò)壓縮知識(shí)蒸餾技術(shù)進(jìn)行了詳細(xì)的梳理,全面介紹了近年知識(shí)蒸餾技術(shù)的典型探索,并給出了未來該技術(shù)研究拓展的初步思考,希望對(duì)當(dāng)前及未來知識(shí)蒸餾技術(shù)的研究工作有所幫助。

      猜你喜歡
      卷積神經(jīng)網(wǎng)絡(luò)樣本
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      用樣本估計(jì)總體復(fù)習(xí)點(diǎn)撥
      神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      推動(dòng)醫(yī)改的“直銷樣本”
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      隨機(jī)微分方程的樣本Lyapunov二次型估計(jì)
      基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
      村企共贏的樣本
      復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
      巨野县| 合江县| 奈曼旗| 巢湖市| 怀化市| 会宁县| 玉门市| 平谷区| 龙口市| 丰顺县| 防城港市| 罗甸县| 西贡区| 关岭| 郎溪县| 新邵县| 潜江市| 衡东县| 东兴市| 清丰县| 遂川县| 大洼县| 银川市| 玛曲县| 砚山县| 和平县| 常州市| 邢台县| 雅江县| 东安县| 张掖市| 缙云县| 贡嘎县| 福州市| 北碚区| 清河县| 全椒县| 遵义县| 鄂伦春自治旗| 长阳| 峡江县|