題目:Training data-efficient image transformers & distillation through attention
【GiantPandaCV導(dǎo)語】Deit是一個全Transformer的架構(gòu)拓轻,沒有使用任何的卷及操作耳奕。其核心是將蒸餾方法引入VIT的訓(xùn)練喉悴,引入了一種教師-學(xué)生的訓(xùn)練策略,提出了token-based distillation宝磨。有趣的是,這種訓(xùn)練策略使用卷積網(wǎng)絡(luò)作為教師網(wǎng)絡(luò)進行蒸餾,能夠比使用transformer架構(gòu)的網(wǎng)絡(luò)作為教師取得更好的效果概说。
歡迎關(guān)注vx公號:GiantPandaCV 和 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索
[圖片上傳失敗...(image-2dc4fd-1632449951181)]
簡介
之前的ViT需要現(xiàn)在JFT-300M大型數(shù)據(jù)集上預(yù)訓(xùn)練碧注,然后在ImageNet-1K上訓(xùn)練才能得到出色的結(jié)果,但這借助了額外的數(shù)據(jù)糖赔。
ViT文中也表示:“do not generalize well when trained on insufficient amounts of data”數(shù)據(jù)量不足會導(dǎo)致ViT效果變差萍丐。
針對以上問題,Deit核心共享是使用了蒸餾策略放典,能夠僅使用ImageNet-1K數(shù)據(jù)集就就可以達到83.1%的Top1逝变。
文章貢獻如下:
僅使用Transformer,不引入Conv的情況下也能達到SOTA效果奋构。
提出了基于token蒸餾的策略壳影,這種針對transformer的蒸餾方法可以超越原始的蒸餾方法。
Deit發(fā)現(xiàn)使用Convnet作為教師網(wǎng)絡(luò)能夠比使用Transformer架構(gòu)取得更好的效果弥臼。
知識蒸餾
Knowledge Distillation(KD)最初被Hinton提出宴咧,與Label smoothing動機類似,但是KD生成soft label的方式是通過教師網(wǎng)絡(luò)得到的径缅。
KD可以視為將教師網(wǎng)絡(luò)學(xué)到的信息壓縮到學(xué)生網(wǎng)絡(luò)中掺栅。還有一些工作“Circumventing outlier of autoaugment with knowledge distillation”則將KD視為數(shù)據(jù)增強方法的一種。
KD能夠以soft的方式將歸納偏置傳遞給學(xué)生模型芥驳,Deit中使用Conv-Based架構(gòu)作為教師網(wǎng)絡(luò)柿冲,將局部性的假設(shè)通過蒸餾方式引入Transformer中,取得了不錯的效果兆旬。
本文提出了兩種KD:
- Soft Distillation: 使用KL散度衡量教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的輸出假抄,即Hinton提出的方法。
其中分別代表學(xué)生網(wǎng)絡(luò)的logits輸出和教師網(wǎng)絡(luò)的logits輸出宿饱。
- Hard-label Distillation: 本文提出的一個KD變體,將教師網(wǎng)絡(luò)得到的hard輸出作為label脚祟,即
谬以,該方法是無需調(diào)參的。
Deit蒸餾過程
[圖片上傳失敗...(image-94bbeb-1632449951181)]
在ViT架構(gòu)基礎(chǔ)上引入了Distillation token由桌,其地位與Class token相等为黎,并且參與了整體信息的交互過程。
Distillation token讓模型從教師模型輸出中學(xué)習(xí)行您,文章發(fā)現(xiàn):
最初class token和distillation token區(qū)別很大铭乾,余弦相似度為0.06
隨著class 和 distillation embedding互相傳播和學(xué)習(xí),通過網(wǎng)絡(luò)逐漸變得相似娃循,到最后一層炕檩,余弦相似度為0.93
實驗
Deit模型follow了Vision Transformer的設(shè)置,訓(xùn)練策略有所不同捌斧,僅使用Linear classifier笛质,而不是用MLP head泉沾。
本文提出了Deit的系列模型:
Deit-B:代表與ViT-B有相同架構(gòu)的模型
Deit-B|384 : 代表對Deit-B進行finetune,分辨率提升到384
Deit-S/Deit-Ti:更小的模型妇押,修改了head數(shù)量跷究。
[圖片上傳失敗...(image-13c7e5-1632449951181)]
實驗1: 選取不同教師網(wǎng)絡(luò)的效果
[圖片上傳失敗...(image-10d393-1632449951181)]
可以發(fā)現(xiàn)使用RegNet作為教師網(wǎng)絡(luò)可以取得更好的性能表現(xiàn),Transformer可以通過蒸餾來繼承歸納偏差舆吮。
同時還可以發(fā)現(xiàn)揭朝,學(xué)生網(wǎng)絡(luò)可以取得超越老師的性能队贱,能夠在準(zhǔn)確率和吞吐量權(quán)衡方面做的更好色冀。
PS:不太明白這里對比的時候為何不選取ViT-H(88.5%top1)作為教師模型?
實驗2: 測試不同蒸餾方法
[圖片上傳失敗...(image-e94ac9-1632449951181)]
實驗證明:hard-label distillation能夠取得更好的結(jié)果柱嫌。
[圖片上傳失敗...(image-8f0e9c-1632449951181)]
實驗3: 與SOTA模型進行比較
[圖片上傳失敗...(image-d8b9ff-1632449951181)]
訓(xùn)練細節(jié)
使用truncated normal distribution來進行初始化
soft蒸餾參數(shù):
數(shù)據(jù)增強:Autoaugment,Rand-augment,random erasing,Cutmix,Mixup,Label Smoothing等
訓(xùn)練300個epoch需要花費37個小時锋恬,使用兩個GPU
[圖片上傳失敗...(image-e7cdcb-1632449951181)]
回顧
問: 為什么不同架構(gòu)之間也可以蒸餾?蒸餾能夠?qū)⒕植啃砸雝ransformer架構(gòu)嗎编丘?
答:教師模型能夠?qū)w納偏置以soft的方式傳遞給學(xué)生模型与学。
問: 性能增強歸功于蒸餾 or 復(fù)雜度數(shù)據(jù)增強方法?
答:蒸餾策略是有效的嘉抓,但是相比ViT索守,Deit確實引入了非常多的數(shù)據(jù)增強方法,直接與ViT比較還是不夠公平的抑片。Deit測試了多種數(shù)據(jù)增強方法卵佛,發(fā)現(xiàn)大部分?jǐn)?shù)據(jù)增強方法能夠提高性能,這還是可以理解為Transformer缺少歸納偏置敞斋,所以需要大量數(shù)據(jù)+數(shù)據(jù)增強截汪。