訂閱
糾錯(cuò)
加入自媒體

一文讀懂什么是知識(shí)蒸餾

前言:

知識(shí)蒸餾是一種在繁瑣的模型中提煉知識(shí)并將其壓縮為單個(gè)模型的方法,以便可以將其部署到實(shí)際應(yīng)用中。AI的教父Geoffrey Hinton和他在Google的兩個(gè)同事Oriol Vinyals和Jeff Dean于2015年引入了知識(shí)蒸餾。

知識(shí)蒸餾的簡(jiǎn)要概述

知識(shí)蒸餾是指將笨拙的模型(教師)的學(xué)習(xí)行為轉(zhuǎn)移到較小的模型(學(xué)生),其中,教師產(chǎn)生的輸出被用作訓(xùn)練學(xué)生的“軟目標(biāo)”。通過(guò)應(yīng)用此方法,作者發(fā)現(xiàn)他們?cè)贛NIST數(shù)據(jù)集上取得了令人驚訝的結(jié)果,并表明通過(guò)將模型集成中的知識(shí)提取到單個(gè)模型中可以獲得顯著的改進(jìn)。

更多內(nèi)容請(qǐng)關(guān)注公眾號(hào)CV技術(shù)指南,專注于計(jì)算機(jī)視覺的技術(shù)總結(jié),最新技術(shù)跟蹤。

知識(shí)蒸餾用于圖像分類

Hinton和他的兩位合著者在論文中首先介紹了他們對(duì)圖像分類任務(wù)的知識(shí)蒸餾:在神經(jīng)網(wǎng)絡(luò)中提煉知識(shí)。

如本文所述,知識(shí)蒸餾的最簡(jiǎn)單形式是在具有軟目標(biāo)分布的傳遞集上訓(xùn)練蒸餾模型。到目前為止,我們應(yīng)該知道有兩個(gè)目標(biāo)用于訓(xùn)練學(xué)生模型。一個(gè)是正確的標(biāo)簽(硬目標(biāo)),另一個(gè)是從教師網(wǎng)絡(luò)生成的軟標(biāo)簽(軟目標(biāo))。

因此,目標(biāo)函數(shù)是兩個(gè)不同目標(biāo)函數(shù)的加權(quán)平均值。 第一個(gè)目標(biāo)函數(shù)是學(xué)生預(yù)測(cè)和軟目標(biāo)之間的交叉熵?fù)p失,第二個(gè)目標(biāo)函數(shù)是學(xué)生輸出和正確標(biāo)簽之間的交叉熵?fù)p失。 作者還提到,最好的結(jié)果通常是通過(guò)在第二目標(biāo)函數(shù)上使用較低的權(quán)重來(lái)獲得的。

實(shí)驗(yàn)結(jié)果如下所示

知識(shí)蒸餾的簡(jiǎn)要概述

知識(shí)蒸餾的簡(jiǎn)要概述

知識(shí)蒸餾用于目標(biāo)檢測(cè)

Guobin Chen和他的合著者在NeurIPS 2017中發(fā)表了他們的知識(shí)蒸餾與提示學(xué)習(xí)相結(jié)合的對(duì)象檢測(cè)研究,該論文通過(guò)知識(shí)蒸餾學(xué)習(xí)有效的對(duì)象檢測(cè)模型。

在他們的方法中,他們還使用提示,該提示是從教師的中間層獲得的特征圖,用于指導(dǎo)學(xué)生盡可能地了解教師的行為。 此外,為了實(shí)現(xiàn)最佳的蒸餾知識(shí),必須有一個(gè)適應(yīng)層,該適應(yīng)層將在后面討論。 Faster-RCNN是本文實(shí)驗(yàn)中使用的目標(biāo)檢測(cè)網(wǎng)絡(luò)。他們的學(xué)習(xí)方案如下圖所示:

知識(shí)蒸餾的簡(jiǎn)要概述

目標(biāo)函數(shù)如下:

知識(shí)蒸餾的簡(jiǎn)要概述

知識(shí)蒸餾的簡(jiǎn)要概述

其中RCN和RPN分別代表回歸分類網(wǎng)絡(luò)和區(qū)域提議網(wǎng)絡(luò);N和M分別是RCN和RPN的批量大小;L_RCN,L_RPN和L_Hint分別是RCN,RPN和提示的損失;λ(通常為1)和γ(通常設(shè)置為0.5)是用于控制最終損耗的超參數(shù)。

Hint learning

Adriana Romero在《FitNets: Hints for Thin Deep Nets》一文中證明,通過(guò)利用教師網(wǎng)絡(luò)的中間表示作為提示來(lái)幫助學(xué)生進(jìn)行訓(xùn)練,可以提高學(xué)生網(wǎng)絡(luò)的性能。從這個(gè)意義上講,提示特征Z(從教師的中間層獲得的特征圖)和引導(dǎo)特征V(學(xué)生的中間層的特征圖)之間的損失是使用L1或L2距離計(jì)算的。

下圖顯示了從在WAYMO數(shù)據(jù)集上訓(xùn)練的預(yù)訓(xùn)練YOLOv4模型中提取的特征圖,這是我的與知識(shí)蒸餾進(jìn)行目標(biāo)檢測(cè)有關(guān)的項(xiàng)目之一。 在這些示例中,輸入圖像的大小調(diào)整為800x800。

知識(shí)蒸餾的簡(jiǎn)要概述

知識(shí)蒸餾和提示學(xué)習(xí)

Hint learning的使用要求提示功能和引導(dǎo)功能應(yīng)具有相同的形狀(高度x寬度x通道)。同樣,提示特征和引導(dǎo)特征將永遠(yuǎn)不會(huì)在相似的特征空間中,因此,使用自適應(yīng)層(通常是1x1卷積層)來(lái)幫助改善知識(shí)從教師到學(xué)生的轉(zhuǎn)移。

知識(shí)蒸餾的簡(jiǎn)要概述

下圖描述了我在目標(biāo)檢測(cè)項(xiàng)目中正在研究的學(xué)習(xí)方案,其中,我正在使用一個(gè)具有三個(gè)檢測(cè)級(jí)別的小型網(wǎng)絡(luò),從預(yù)先訓(xùn)練的YOLOv4中提取知識(shí)。

知識(shí)蒸餾的簡(jiǎn)要概述

Guobin Chen在將知識(shí)蒸餾與Hint learning相結(jié)合進(jìn)行目標(biāo)檢測(cè)時(shí)顯示出優(yōu)異的結(jié)果。

知識(shí)蒸餾的簡(jiǎn)要概述

Conclusion

在這篇文章中,我簡(jiǎn)要介紹了知識(shí)蒸餾和Hint learning。知識(shí)蒸餾被認(rèn)為是一種將繁瑣的模型集成知識(shí)轉(zhuǎn)換成較小的蒸餾模型的有效方法。Hint learning和知識(shí)蒸餾的結(jié)合是提高神經(jīng)網(wǎng)絡(luò)性能的一種非常強(qiáng)大的方案。

本文來(lái)源于公眾號(hào)CV技術(shù)指南的論文分享系列,更多內(nèi)容請(qǐng)掃描文末二維碼關(guān)注公眾號(hào)。

最近把公眾號(hào)(CV技術(shù)指南)所有的技術(shù)總結(jié)打包成了一個(gè)pdf,在公眾號(hào)中回復(fù)關(guān)鍵字“技術(shù)總結(jié)”可獲取。

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)