劉 昊, 張曉濱
(西安工程大學(xué) 計(jì)算機(jī)學(xué)院, 西安 710048)
近些年來, 深度神經(jīng)網(wǎng)絡(luò)獲得了越來越多的關(guān)注,且在各種應(yīng)用領(lǐng)域都取得了很好的成果, 例如計(jì)算機(jī)視覺[1,2]、自然語言處理[3]等. 但是深層的神經(jīng)網(wǎng)絡(luò)往往受限于其模型大和復(fù)雜度高的特性, 很難直接部署到計(jì)算和存儲(chǔ)能力有限的設(shè)備, 例如移動(dòng)設(shè)備和嵌入式傳感器等[4]. 因此, 在保證一定的準(zhǔn)確度和精度的條件下, 合理的對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行模型壓縮和優(yōu)化成為了一個(gè)很有研究價(jià)值的問題. 知識(shí)蒸餾就是模型壓縮方法中的一種非常典型的方法.
知識(shí)蒸餾的概念最早由Bucila等人[5]在2006年提出, 由Hindon等人[6]在2015年重拾并普及. 該方法的核心思想在于, 將復(fù)雜的、學(xué)習(xí)能力強(qiáng)的教師網(wǎng)絡(luò)學(xué)到的知識(shí)遷移到較小的學(xué)生網(wǎng)絡(luò), 從而提升學(xué)生網(wǎng)絡(luò)的精度. 但是在原始的知識(shí)蒸餾方法中, 學(xué)生網(wǎng)絡(luò)只是學(xué)習(xí)了教師網(wǎng)絡(luò)模型的輸出, 并沒有考慮教師網(wǎng)絡(luò)中的其他信息. 隨后Romero等人[7]很快提出在知識(shí)蒸餾方法基礎(chǔ)上, 引導(dǎo)學(xué)生模型先學(xué)習(xí)教師網(wǎng)絡(luò)隱含層的特征表達(dá)來作為一個(gè)預(yù)訓(xùn)練模型, 再通過知識(shí)蒸餾得到目標(biāo)學(xué)生網(wǎng)絡(luò), 以使得學(xué)生網(wǎng)絡(luò)可以學(xué)習(xí)到更豐富的信息. Zagoruyko等人[8]在2016年提出使用教師網(wǎng)絡(luò)中的注意力圖進(jìn)一步訓(xùn)練學(xué)生網(wǎng)絡(luò), 通過定義注意力機(jī)制, 讓學(xué)生網(wǎng)絡(luò)擬合教師網(wǎng)絡(luò)的注意力映射, 從而提升學(xué)生網(wǎng)絡(luò)的效果, 達(dá)到知識(shí)蒸餾的目的. Yim等人[9]在2017年提出讓學(xué)生網(wǎng)絡(luò)去學(xué)習(xí)教師網(wǎng)絡(luò)中層與層之間的關(guān)系而不是輸出, 層間關(guān)系是用關(guān)系矩陣來定義的, 相當(dāng)于讓學(xué)生網(wǎng)絡(luò)擬合了教師網(wǎng)絡(luò)的學(xué)習(xí)過程, 這個(gè)思路也得到了不錯(cuò)的蒸餾效果. Chen 等人[10]提出將原始蒸餾和文獻(xiàn)[7]中提出的隱層蒸餾結(jié)合起來針對(duì)物體檢測任務(wù)做知識(shí)蒸餾. Huang等人[11]提出將知識(shí)蒸餾的遷移過程看作是特征分布擬合過程, 并采用域適應(yīng)中常用的最大平均差異來優(yōu)化. Chen等人[12]提出使用跨樣本相似性作為新的知識(shí)來讓學(xué)生網(wǎng)絡(luò)進(jìn)行學(xué)習(xí), 在人員檢測和圖像檢索任務(wù)中都收到了不錯(cuò)的效果. Heo等人[13]提出遷移兩種知識(shí), 包括ReLU之后的特征響應(yīng)大小以及每一個(gè)神經(jīng)元的激活狀態(tài)讓學(xué)生網(wǎng)絡(luò)進(jìn)行學(xué)習(xí). Heo等人[14]在AAAI上也提出了基于激活邊界的知識(shí)蒸餾. Saputra等人[15]的工作對(duì)用于回歸任務(wù)的網(wǎng)絡(luò)進(jìn)行知識(shí)蒸餾有一定的實(shí)踐指導(dǎo)價(jià)值. Mishra等人[16]利用知識(shí)蒸餾技術(shù)提升低精度網(wǎng)絡(luò)的分類性能. Wonpyo等人[17]在2019年提出關(guān)系型知識(shí)蒸餾方法, 讓學(xué)生網(wǎng)絡(luò)學(xué)習(xí)由教師網(wǎng)絡(luò)的多個(gè)輸出組成的結(jié)構(gòu)性信息, 包括二元的距離結(jié)構(gòu)信息和三元的角度結(jié)構(gòu)信息, 在蒸餾的效果上相較之前的方法有了更明顯的提升.
上述方法都是在教師網(wǎng)絡(luò)知識(shí)遷移類型上來進(jìn)行優(yōu)化, 并沒有考慮到教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)層數(shù)差距過大時(shí), 學(xué)生網(wǎng)絡(luò)的擬合能力受到限制從而導(dǎo)致蒸餾效果下降的問題. 對(duì)于這個(gè)問題, Cho等人[18]提出提前終止教師網(wǎng)絡(luò)的訓(xùn)練來使學(xué)生網(wǎng)絡(luò)更好的擬合教師網(wǎng)絡(luò),這個(gè)方法在一定程度上降低了師生差距過大導(dǎo)致的影響, 但也損失了部分教師網(wǎng)絡(luò)的信息. Jin等人[19]的工作受課程學(xué)習(xí)啟發(fā), 提出路由約束學(xué)習(xí), 讓學(xué)生網(wǎng)絡(luò)學(xué)習(xí)教師網(wǎng)絡(luò)訓(xùn)練過程中不同階段的狀態(tài), 由易到難不斷學(xué)習(xí)和優(yōu)化. Mirzadeh等人[20]于2019年引出了“助教”的概念, 即在教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)中間使用一個(gè)中間的蒸餾網(wǎng)絡(luò)進(jìn)行過渡, 一定程度上避免了教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)層數(shù)差距過大的問題. 但是這個(gè)方法僅考慮了原始的知識(shí)蒸餾方法的優(yōu)化, 蒸餾得到的學(xué)生模型效果并不是十分理想.
本文針對(duì)教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)層數(shù)差距過大影響蒸餾效果的問題, 基于關(guān)系型知識(shí)蒸餾方法, 提出了基于關(guān)系型蒸餾的分步神經(jīng)網(wǎng)絡(luò)壓縮方法. 首先訓(xùn)練深層的神經(jīng)網(wǎng)絡(luò)作為教師網(wǎng)絡(luò), 選取中間網(wǎng)絡(luò)來學(xué)習(xí)教師網(wǎng)絡(luò)的單體輸出與關(guān)系型輸出作為過渡, 隨后讓目標(biāo)學(xué)生網(wǎng)絡(luò)學(xué)習(xí)中間網(wǎng)絡(luò)的單體輸出與關(guān)系型知識(shí).通過分步的關(guān)系型蒸餾來緩解教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的層數(shù)差距, 同時(shí)在每一次關(guān)系型蒸餾過程中增加單體輸出來豐富學(xué)生網(wǎng)絡(luò)的信息, 實(shí)現(xiàn)高層到低層的神經(jīng)網(wǎng)絡(luò)壓縮.
本文以關(guān)系型知識(shí)蒸餾作為基礎(chǔ), 通過分步的蒸餾方法有效的避免了教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)層數(shù)差距過大時(shí)蒸餾效果下降的問題, 以使得較低層數(shù)的學(xué)生網(wǎng)絡(luò)也可以很好的學(xué)習(xí)到較高層數(shù)的教師網(wǎng)絡(luò)的知識(shí),從而獲得更高質(zhì)量的學(xué)生網(wǎng)絡(luò).
傳統(tǒng)的知識(shí)蒸餾方法通常只考慮到教師網(wǎng)絡(luò)的輸出表現(xiàn)或在此基礎(chǔ)上的改進(jìn), 很少考慮到教師網(wǎng)絡(luò)的結(jié)構(gòu)信息. 相比之下, 關(guān)系型蒸餾引入了教師模型的多個(gè)輸出組成結(jié)構(gòu)單元來讓學(xué)生網(wǎng)絡(luò)進(jìn)行學(xué)習(xí). 由于這些信息更能體現(xiàn)出教師模型的結(jié)構(gòu)化特征, 關(guān)系型蒸餾使得學(xué)生模型可以得到更好的指導(dǎo).
關(guān)系型蒸餾的整體流程如圖1.

圖1 關(guān)系型蒸餾流程
步驟1. 確定教師網(wǎng)絡(luò)和目標(biāo)學(xué)生網(wǎng)絡(luò)的整體結(jié)構(gòu), 并用正常的訓(xùn)練方式訓(xùn)練教師網(wǎng)絡(luò);
步驟2. 以教師網(wǎng)絡(luò)的多個(gè)輸出組成的結(jié)構(gòu)性知識(shí)作為監(jiān)督來訓(xùn)練學(xué)生網(wǎng)絡(luò);
步驟3. 訓(xùn)練完成的學(xué)生網(wǎng)絡(luò)即為目標(biāo)模型.
其中,t1,···,tn代表教師模型的一個(gè)批次中的多個(gè)輸出,s1,···,sn代表一個(gè)批次中學(xué)生模型的多個(gè)輸出,關(guān)系矩陣rt和rs分別為教師和學(xué)生模型的輸出經(jīng)過距離/角度關(guān)系函數(shù)變換得到的關(guān)系矩陣.
從圖1中可以看出, 模型整體是通過使用教師網(wǎng)絡(luò)中距離或角度信息的關(guān)系矩陣作為監(jiān)督來訓(xùn)練學(xué)生模型從而實(shí)現(xiàn)知識(shí)蒸餾, 因此, 損失函數(shù)可以定義如下:

其中,x1,···,xn代 表一個(gè)批次樣本中的n元組,t1,···,tn代表教師模型的多個(gè)輸出,s1,···,sn代表學(xué)生模型的多個(gè)輸出, φ為給定n元組的關(guān)系函數(shù),l是教師模型的結(jié)構(gòu)信息與學(xué)生模型的結(jié)構(gòu)信息的損失函數(shù). 考慮到效率和運(yùn)算成本, φ關(guān)系函數(shù)的選取目前只給出兩種情況, 一種是距離關(guān)系函數(shù)φd, 此時(shí)n取值為2; 一種是角度關(guān)系函數(shù)φa, 此時(shí)n取值為3.
當(dāng)選取距離關(guān)系函數(shù)時(shí), 將每個(gè)批次的m個(gè)樣本分成二元組 (ti,tj)分別計(jì)算歐幾里得距離, 距離計(jì)算方法如下所示:

其中, μ是距離的正則化參數(shù), 為了更好的關(guān)聯(lián)其他二元組的距離數(shù)據(jù), μ定義如下:

通過兩兩計(jì)算距離, 可以得到一個(gè)m×m的距離矩陣作為關(guān)系型的距離結(jié)構(gòu)信息, 矩陣中包含了批次中每一個(gè)樣本到其他所有樣本的距離關(guān)系. 學(xué)生模型通過學(xué)習(xí)這個(gè)關(guān)系型距離結(jié)構(gòu)信息來實(shí)現(xiàn)蒸餾學(xué)習(xí), 此時(shí)損失函數(shù)如下:

當(dāng)選取角度關(guān)系函數(shù)時(shí), 將每個(gè)批次的m個(gè)樣本分成若干三元組分別計(jì)算角度, 角度計(jì)算方法如下所示:

通過每一個(gè)三元組計(jì)算角度, 得到一個(gè)m×m×m的角度矩陣作為關(guān)系型的角度結(jié)構(gòu)信息, 由于角度信息是一個(gè)更高階的屬性, 因此可以更高效的傳遞關(guān)系信息. 學(xué)生模型通過學(xué)習(xí)這個(gè)關(guān)系型角度結(jié)構(gòu)信息來實(shí)現(xiàn)蒸餾學(xué)習(xí), 此時(shí)損失函數(shù)如下:

距離結(jié)構(gòu)信息和角度結(jié)構(gòu)信息可以通過給定權(quán)重,共同作為監(jiān)督來訓(xùn)練學(xué)生網(wǎng)絡(luò), 讓學(xué)生網(wǎng)絡(luò)學(xué)習(xí)到更豐富的結(jié)構(gòu)型信息. 但是如上一小節(jié)所述, 關(guān)系型蒸餾方法同樣存在教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)層數(shù)差距過大時(shí)損失蒸餾效果的問題, 因此本文引入了分步蒸餾的思想來進(jìn)行進(jìn)一步的改進(jìn).
本文方法以關(guān)系型蒸餾方法為基礎(chǔ), 在教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)中間增加了一個(gè)中間網(wǎng)絡(luò)作為過渡, 分步進(jìn)行知識(shí)蒸餾, 同時(shí)在每一步的蒸餾過程中都學(xué)習(xí)了額外的單體信息. 單體信息是由教師或?qū)W生的輸出首先除以一個(gè)軟化系數(shù)t[5], 再經(jīng)過Softmax變換得到的,軟化系數(shù)t用來緩和教師網(wǎng)絡(luò)的原輸出, 取值越大, 輸出的分布越緩和.
模型的整體訓(xùn)練流程如算法1.

算法1. 模型訓(xùn)練流程x1,···,xn 輸入: 多批次的圖片樣本輸出: 學(xué)生網(wǎng)絡(luò)模型S x1,···,xn t1,···,tn步驟1. 確定教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的模型結(jié)構(gòu), 確定中間網(wǎng)絡(luò)的層數(shù)及結(jié)構(gòu), 隨后使用樣本 訓(xùn)練教師網(wǎng)絡(luò)T, 得到教師網(wǎng)絡(luò)的輸出信息a1,···,an步驟2. 根據(jù)式(2)和式(5)計(jì)算得到教師網(wǎng)絡(luò)的二元距離關(guān)系矩陣rdt和三元角度關(guān)系矩陣rat, 與教師網(wǎng)絡(luò)軟化的單體輸出softt協(xié)同作為監(jiān)督訓(xùn)練中間網(wǎng)絡(luò)A, 得到中間網(wǎng)絡(luò)的輸出信息步驟3. 根據(jù)式(2)和式(5)計(jì)算得到中間網(wǎng)絡(luò)的二元距離關(guān)系矩陣rda和三元角度關(guān)系矩陣raa, 與中間網(wǎng)絡(luò)軟化的單體輸出softa協(xié)同作為監(jiān)督訓(xùn)練學(xué)生網(wǎng)絡(luò)S步驟4. 訓(xùn)練好的學(xué)生網(wǎng)絡(luò)S即為最終的目標(biāo)模型
如圖2所示, 模型整體經(jīng)過了教師到中間網(wǎng)絡(luò)和中間到學(xué)生網(wǎng)絡(luò)的蒸餾過程. 以教師到中間網(wǎng)絡(luò)為例,中間網(wǎng)絡(luò)模型在訓(xùn)練過程中會(huì)學(xué)習(xí)并擬合教師模型的3種知識(shí), 包括教師模型軟化的單個(gè)輸出集合softt; 教師模型輸出的二元距離值組成的距離關(guān)系矩陣rdt; 教師模型輸出的三元角度值組成的角度關(guān)系矩陣rat.

圖2 本文方法模型框架圖
圖2中, 軟化輸出通過交叉熵來計(jì)算損失值; 二元距離關(guān)系矩陣由教師網(wǎng)絡(luò)的輸出通過式(2)計(jì)算得到, 三元角度關(guān)系矩陣由教師網(wǎng)絡(luò)的輸出通過式(5)計(jì)算得到, 且二元距離矩陣和三元角度矩陣均使用了Smooth L1損失來計(jì)算損失值.
顯然, 教師到中間網(wǎng)絡(luò)蒸餾過程的整體的損失函數(shù)由3部分組成, 分別是單體損失、距離關(guān)系損失和角度關(guān)系損失, 具體可以表示為:

其中,Lzmrkd為教師向中間網(wǎng)絡(luò)蒸餾的整體損失函數(shù),Ltkd為中間網(wǎng)絡(luò)的單體輸出損失,Ltrkd-d和Ltrkd-a分別為2.1節(jié)中提到的中間網(wǎng)絡(luò)的距離關(guān)系損失和角度關(guān)系損失, λkd為 單體輸出權(quán)重, λd為距離結(jié)構(gòu)信息權(quán)重, λa為角度結(jié)構(gòu)信息權(quán)重.
經(jīng)過教師模型到中間網(wǎng)絡(luò)的知識(shí)蒸餾, 可以得到一個(gè)蒸餾了教師網(wǎng)絡(luò)中各種知識(shí)的較淺的中間網(wǎng)絡(luò),該中間網(wǎng)絡(luò)的輸出將作為監(jiān)督進(jìn)一步訓(xùn)練學(xué)生網(wǎng)絡(luò).與中間網(wǎng)絡(luò)訓(xùn)練過程類似, 學(xué)生網(wǎng)絡(luò)模型在訓(xùn)練過程中也會(huì)擬合中間網(wǎng)絡(luò)的3種知識(shí), 包括中間網(wǎng)絡(luò)軟化的單個(gè)輸出集合; 中間網(wǎng)絡(luò)輸出的二元距離值組成的距離關(guān)系矩陣; 中間網(wǎng)絡(luò)輸出的三元角度值組成的角度關(guān)系矩陣.
中間網(wǎng)絡(luò)到學(xué)生網(wǎng)絡(luò)蒸餾過程的整體損失函數(shù)具體可表示為:

其中,Lsmrkd為中間網(wǎng)絡(luò)向?qū)W生網(wǎng)絡(luò)蒸餾的整體損失函數(shù),Lskd為學(xué)生網(wǎng)絡(luò)的單體輸出損失,Lsrkd-d和Lsrkd-a分別為學(xué)生網(wǎng)絡(luò)的距離關(guān)系損失和角度關(guān)系損失.
模型整體通過增加中間網(wǎng)絡(luò)分步進(jìn)行知識(shí)蒸餾來緩和教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)之間的層數(shù)差距, 同時(shí)本文在每一次蒸餾過程中都使用了教師網(wǎng)絡(luò)的3種知識(shí)協(xié)同對(duì)學(xué)生網(wǎng)絡(luò)進(jìn)行指導(dǎo), 學(xué)生網(wǎng)絡(luò)不僅可以遷移獲得兩種關(guān)系型信息, 還可以學(xué)習(xí)到教師網(wǎng)絡(luò)單體輸出帶來的直接信息, 從而使得學(xué)生網(wǎng)絡(luò)可以更好的擬合教師網(wǎng)絡(luò)的學(xué)習(xí)能力.
本文實(shí)驗(yàn)所采用的數(shù)據(jù)集為CIFAR-10和CIFAR-100圖像分類數(shù)據(jù)集, 其中CIFAR-10數(shù)據(jù)集包括60 000張尺寸為32×32的彩色圖像, 圖像分為10類, 每一個(gè)分類中都有6000個(gè)圖像, 包括5000個(gè)訓(xùn)練圖像和1000個(gè)測試圖像; CIFAR-100和CIFAR-10類似, 但是有100個(gè)類, 每個(gè)類包含600個(gè)圖像, 包括500個(gè)訓(xùn)練圖像和100個(gè)測試圖像. 為了更直觀的體現(xiàn)深度變化,采用ResNet作為實(shí)驗(yàn)?zāi)P偷闹黧w, 其中ResNet-110作為教師網(wǎng)絡(luò)模型, ResNet-20作為目標(biāo)學(xué)生網(wǎng)絡(luò)模型,ResNet-44作為中間網(wǎng)絡(luò). 實(shí)驗(yàn)同時(shí)將本文的方法與原始的知識(shí)蒸餾KD (Knowledge Distillation)模型、文獻(xiàn)[7]提到的FT (FitNet)模型、文獻(xiàn)[8]提到的AT(Attention Transfer)模型、文獻(xiàn)[9]提到的FSP (Fast optimization, network minimization and transfer learning)模型、文獻(xiàn)[11]提到的NST (Neural Selective Transfer)模型、文獻(xiàn)[17]提到的RKD(Relational Knowledge Distillation)模型以及文獻(xiàn)[20]提到的TAKD (Knowledge Distillation via Teacher Assistant)模型在相同參數(shù)和模型設(shè)置下做了對(duì)比實(shí)驗(yàn).
本文的模型均基于PyTorch實(shí)現(xiàn), 初始學(xué)習(xí)率設(shè)定為0.1, batch-size設(shè)定為64, epochs設(shè)定為100. 蒸餾過程中的參數(shù)中, KD模型軟化系數(shù)T為4.0, 權(quán)重λkd為16, AT模型權(quán)重設(shè)定為2.0, RKD模型中距離結(jié)構(gòu)信息權(quán)重 λd為25.0, 角度結(jié)構(gòu)信息權(quán)重λa為50.0.ResNet-20、ResNet-110、ResNet-44的網(wǎng)絡(luò)結(jié)構(gòu)參照文獻(xiàn)[21]中實(shí)現(xiàn). 受限于機(jī)器性能, 本文給出的實(shí)驗(yàn)數(shù)據(jù)不代表模型最佳表現(xiàn), 這里只給出實(shí)驗(yàn)對(duì)比結(jié)果來進(jìn)行模型的對(duì)照.
實(shí)驗(yàn)采用的主體評(píng)價(jià)指標(biāo)為圖像分類準(zhǔn)確率, 同時(shí)也給出了一部分模型參數(shù)量和召回率的實(shí)驗(yàn)數(shù)據(jù)對(duì)比. 為了達(dá)到更好的對(duì)照效果, 模型共用的參數(shù)如軟化系數(shù)T, 均采用相同的取值.
首先, 本文首先分別用CIFAR-10和CIFAR-100數(shù)據(jù)集訓(xùn)練教師網(wǎng)絡(luò)ResNet110和學(xué)生網(wǎng)絡(luò)ResNet20,以獲得未經(jīng)過蒸餾的模型的準(zhǔn)確率, 隨后使用本文的方法, 訓(xùn)練得到蒸餾過后的ResNet20作為目標(biāo)學(xué)生模型. 所得結(jié)果如表1所示.
從表1可以看出, 本文的方法得出的模型結(jié)構(gòu)與原始ResNet20相同, 但是在兩個(gè)數(shù)據(jù)集上的準(zhǔn)確率均有很大的提升.
同時(shí)列出ResNet110、ResNet44、ResNet20及本文模型的網(wǎng)絡(luò)層數(shù)及參數(shù)量, 如表2所示.
從表2可以看到, 本文中目標(biāo)學(xué)生網(wǎng)絡(luò)的參數(shù)量僅有0.27 M, 遠(yuǎn)小于教師網(wǎng)絡(luò)甚至是中間網(wǎng)絡(luò)的參數(shù)量, 且通過表1的數(shù)據(jù)來看, 本文模型相對(duì)于同結(jié)構(gòu)的ResNet20, 準(zhǔn)確率有相當(dāng)大程度的提升.

表1 初始模型與本文模型準(zhǔn)確率(%)

表2 網(wǎng)絡(luò)層數(shù)及參數(shù)量對(duì)比
為了說明在教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的差距過大時(shí)加入中間網(wǎng)絡(luò)的影響, 以及在分步蒸餾過程中加入單體輸出信息協(xié)同結(jié)構(gòu)信息來進(jìn)一步監(jiān)督的影響, 本文在學(xué)生網(wǎng)絡(luò)設(shè)定為ResNet20的情況下, 分別進(jìn)行了教師網(wǎng)絡(luò)為ResNet20、ResNet50以及ResNet110的關(guān)系型蒸餾實(shí)驗(yàn), 同時(shí)使用TAKD的思路進(jìn)行了關(guān)系型蒸餾的實(shí)驗(yàn), 所得結(jié)果如表3所示.

表3 本文模型與低層教師關(guān)系型蒸餾準(zhǔn)確率(%)
從表3可以看出, 當(dāng)教師模型分別設(shè)定為ResNet20和ResNet50時(shí), 隨著教師網(wǎng)絡(luò)自己的模型效果提升,學(xué)生模型的準(zhǔn)確率也有了一定的提升; 當(dāng)教師模型設(shè)定為ResNet110時(shí), 教師模型準(zhǔn)確率有很大提升, 學(xué)生模型的準(zhǔn)確率相比教師模型為ResNet50卻有下降, 甚至跟教師模型為ResNet20時(shí)的準(zhǔn)確率相仿, 因此在教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)差距過大時(shí)實(shí)際上完全失去了知識(shí)蒸餾的意義. 使用TAKD的思路在ResNet110和ResNet20中加入中間網(wǎng)絡(luò)作為緩沖后, 學(xué)生模型準(zhǔn)確率有了一定的提升. 本文模型在兩次蒸餾過程中加入單體輸出作為監(jiān)督后, 可以在圖像分類中獲得更高的準(zhǔn)確率, 達(dá)到更好的效果.
本文還與其他文獻(xiàn)中給出的知識(shí)蒸餾方法的準(zhǔn)確率進(jìn)行了對(duì)比, 同時(shí)增加了CIFAR-10數(shù)據(jù)集的召回率對(duì)比. 使用的教師模型均為ResNet110, 學(xué)生模型為ResNet20. 受表格格式限制, 使用C-10代表CIFAR-10數(shù)據(jù)集, C-100代表CIFAR-100數(shù)據(jù)集, acc代表準(zhǔn)確率數(shù)據(jù), rec代表召回率數(shù)據(jù). 所得結(jié)果如表4所示.

表4 本文模型與其他蒸餾模型準(zhǔn)確率及召回率(%)
從表4可以看出, 本文模型在CIFAR-10數(shù)據(jù)集上相較于其他主流模型, 準(zhǔn)確度和召回率均有明顯提升,CIFAR-100數(shù)據(jù)集中, 模型表現(xiàn)跟FT模型相比雖有些許差距, 但總體來說也收到了不錯(cuò)的蒸餾效果. 特別是相較于關(guān)系型蒸餾RKD模型, 本文模型在兩個(gè)數(shù)據(jù)集上均有0.2%左右的準(zhǔn)確度提升.
以上實(shí)驗(yàn)表明, 當(dāng)教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)層數(shù)差距過大時(shí), 通過選取中間網(wǎng)絡(luò)分步對(duì)教師模型進(jìn)行包括單體輸出和結(jié)構(gòu)型輸出的蒸餾, 可以在讓學(xué)生網(wǎng)絡(luò)學(xué)到更多關(guān)于教師網(wǎng)絡(luò)的信息, 遷移更豐富的知識(shí), 進(jìn)而緩解教師模型和學(xué)生模型差距過大時(shí)蒸餾效果變差的問題, 獲得相比于其他大部分主流蒸餾模型更好的效果.
本文針對(duì)關(guān)系型知識(shí)蒸餾方法中教師模型與學(xué)生模型的差距過大時(shí)蒸餾效果下降的問題, 選取中間網(wǎng)絡(luò), 分步對(duì)教師網(wǎng)絡(luò)模型進(jìn)行關(guān)系型蒸餾, 同時(shí)在每一次蒸餾過程中都在距離結(jié)構(gòu)信息和角度結(jié)構(gòu)信息這兩種關(guān)系型信息之外, 額外遷移了單個(gè)輸出信息來豐富學(xué)生網(wǎng)絡(luò)的學(xué)習(xí). 實(shí)驗(yàn)結(jié)果表明, 本文的模型在圖像分類數(shù)據(jù)集上的表現(xiàn)相對(duì)于原始的關(guān)系型模型以及大部分前沿的知識(shí)蒸餾模型, 分類準(zhǔn)確率更高, 效果更好.但本文方法在中間網(wǎng)絡(luò)的選取以及知識(shí)遷移方式上仍有改進(jìn)空間, 將在后續(xù)的研究過程進(jìn)一步深化和推進(jìn).