論文基于改進訓(xùn)練配置以及一種新穎的蒸餾方式昌简,提出了僅用ImageNet就能訓(xùn)練出來的Transformer網(wǎng)絡(luò)DeiT饲帅。在蒸餾學(xué)習(xí)時,DeiT以卷積網(wǎng)絡(luò)作為teacher甸昏,能夠結(jié)合當(dāng)前主流的數(shù)據(jù)增強和訓(xùn)練策略來進一步提高性能耐薯。從實驗結(jié)果來看舔清,效果很不錯
來源:曉飛的算法工程筆記 公眾號
論文: Training data-efficient image transformers & distillation through attention
[圖片上傳失敗...(image-3e441f-1659936459728)]
Introduction
[圖片上傳失敗...(image-bbabd8-1659936459729)]
? Vision Transformer一般要先在大型計算設(shè)施上預(yù)訓(xùn)練數(shù)以億計的圖片才能有較好的性能,這極大地提高其應(yīng)用門檻曲初。為此体谒,論文基于ViT提出了可在ImageNet上訓(xùn)練的Vision Transformer模型DeiT,僅需要一臺電腦(4卡)訓(xùn)練不到三天(53小時的預(yù)訓(xùn)練和可選的20小時微調(diào))的時間臼婆。在沒有外部數(shù)據(jù)預(yù)訓(xùn)練的情況下抒痒,在ImageNet上達到了83.1% 的最高精度。
? 此外目锭,論文還提出了一種針對Transformer的蒸餾策略评汰,通過一個蒸餾token確保student網(wǎng)絡(luò)通過注意力從teacher網(wǎng)絡(luò)那里進行學(xué)習(xí)。當(dāng)使用卷積網(wǎng)絡(luò)作為teacher網(wǎng)絡(luò)時痢虹,ImageNet上可達到85.2%的準確性被去。
? 總體而言,論文主要有以下貢獻:
- 通過實驗表明奖唯,在沒有外部數(shù)據(jù)的情況下惨缆,Vision Transformer也可以在ImageNet上達到SOTA的結(jié)果,而且僅需要4卡設(shè)備訓(xùn)練三天。
- 論文提出了一種基于蒸餾token的新蒸餾方法坯墨,這種用于Transformer的蒸餾方法大幅優(yōu)于一般蒸餾方法寂汇。蒸餾token與class token的作用相同,都參與注意力計算中捣染,只是蒸餾token的訓(xùn)練目的在于復(fù)現(xiàn)teacher網(wǎng)絡(luò)的標簽預(yù)測骄瓣。
- 有趣的是,論文發(fā)現(xiàn)在使用新蒸餾方法時耍攘,用卷積網(wǎng)絡(luò)作為teacher要比用另一個相同準確率的transformer的作為teacher的效果要好榕栏。
- 在Imagenet上預(yù)訓(xùn)練的模型可以轉(zhuǎn)移到不同的下游任務(wù)(如細粒度分類),得到很不錯的性能蕾各。
Distillation through attention
Soft distillation
? 一般的蒸餾方法都是Soft distillation扒磁,其核心目標是最小化teacher網(wǎng)絡(luò)和student網(wǎng)絡(luò)的softmax輸出之間的Kullback-Leibler散度。
? 定義為teacher網(wǎng)絡(luò)的logits輸出(輸入softmax的向量)式曲,為student網(wǎng)絡(luò)的logits輸出妨托。用表示蒸餾溫度,表示平衡Kullback-Leibler散度損失(KL)和交叉熵損失(LCE)的權(quán)值吝羞,表示softmax函數(shù)兰伤。定義soft distillation的目標函數(shù)為:
[圖片上傳失敗...(image-2a5c71-1659936459729)]
Hard-label distillation
? 論文提出了一種蒸餾的變體,將teacher網(wǎng)絡(luò)的預(yù)測標簽作為蒸餾的GT標簽钧排。假設(shè)是teacher網(wǎng)絡(luò)的預(yù)測標簽医清,與之相關(guān)的hard-label distillation目標為:
[圖片上傳失敗...(image-db2c9e-1659936459729)]
? 對于同一張圖片,teacher網(wǎng)絡(luò)預(yù)測的標簽可能隨著特定的數(shù)據(jù)增強而有所變化卖氨。從實驗結(jié)果來看,將預(yù)測標簽作為蒸餾目標的做法比傳統(tǒng)的做法更好负懦,不僅無額外參數(shù)筒捺,概念上還更簡單:teacher網(wǎng)絡(luò)預(yù)測的與真實標簽是相同的作用。
? 此外纸厉,hard label也可以通過label smoothing轉(zhuǎn)換為軟標簽系吭,其中GT標簽具有的概率,其余類共享概率颗品。在相關(guān)的實驗中肯尺,參數(shù)固定為。
Distillation token
[圖片上傳失敗...(image-cbeade-1659936459729)]
? 論文提出的蒸餾方案如如圖2所示躯枢,在輸入的token序列中添加一個蒸餾token则吟。蒸餾token與class token類似,通過self-attention與其它token交互并將最后一層中的對應(yīng)輸出作為網(wǎng)絡(luò)輸出锄蹂,其訓(xùn)練目標為損失函數(shù)中的蒸餾損失部分氓仲。蒸餾token使得模型可以像常規(guī)蒸餾一樣從teacher網(wǎng)絡(luò)的輸出中學(xué)習(xí),同時與class token保持互補的關(guān)系。
? 論文發(fā)現(xiàn)敬扛,訓(xùn)練后的輸入層class token和蒸餾token收斂到了完全不同的向量晰洒,平均余弦相似度僅為0.06。但隨著在網(wǎng)絡(luò)的計算啥箭,class和蒸餾token在越深層中的對應(yīng)輸出逐漸變得更加相似谍珊,最后一層達到了較高的相似度(cos=0.93),但沒有完全相同急侥。這是符合預(yù)期的砌滞,因為兩個token的目標就是產(chǎn)生相似但不相同的目標。
? 論文也嘗試替代實驗缆巧,用另一個class token代替teacher網(wǎng)絡(luò)的蒸餾token進行偽蒸餾學(xué)習(xí)布持。但無論如何隨機且獨立地初始化兩個class token,訓(xùn)練后都會收斂到相同的向量(cos=0.999)陕悬,其對應(yīng)的輸出也是準相同的题暖。這表明這個代替的class token不會對分類性能帶來任何影響,相比之下蒸餾token則能帶來顯著的提升捉超。
Fine-tuning with distillation
? 在分辨率增加的fine-tuning階段胧卤,同樣使用真實標簽和teacher網(wǎng)絡(luò)預(yù)測標簽進行訓(xùn)練。此時需要一個具有相同目標分辨率的teacher網(wǎng)絡(luò)拼岳,可通過FixRes的做法從之前的低分辨率teacher網(wǎng)絡(luò)中轉(zhuǎn)換枝誊。論文也嘗試了只用真實標簽進行fine-tuning,但這導(dǎo)致了性能的降低惜纸。
Classification with our approach:joint classifiers
? 在測試時叶撒,網(wǎng)絡(luò)輸出的class token和蒸餾token都用于標簽分類。論文的建議做法是將這兩個token獨立預(yù)測后再融合耐版,即將兩個分類器的softmax輸出相加再進行預(yù)測祠够。
Transformer models
[圖片上傳失敗...(image-fa1509-1659936459729)]
? DeiT的架構(gòu)設(shè)計與ViT相同,唯一的區(qū)別是訓(xùn)練策略和蒸餾token粪牲,訓(xùn)練策略的區(qū)別如表9所示古瓤。此外,在預(yù)訓(xùn)練時不使用MLP腺阳,僅使用線性分類器落君。
? 為避免混淆,用ViT來指代先前工作中的結(jié)果亭引,用DeiT來指代論文的結(jié)果绎速。如果未指定,DeiT指的是DeiT-B痛侍,與ViT-B具有相同的架構(gòu)朝氓。當(dāng)以更大的分辨率fine-tune DeiT時魔市,論文會在名字的最后附加分辨率,例如DeiT-B↑384赵哲。最后待德,當(dāng)使用論文提出的蒸餾方法時,論文會用一個蒸餾符號將其標識為DeiT?.枫夺。
[圖片上傳失敗...(image-88e3e-1659936459729)]
? 如表1所示将宪,DeiT-B的結(jié)構(gòu)與ViT-B完全一樣,參數(shù)固定為橡庞,和较坛。另外,論文設(shè)計了兩個較小的模型:DeiT-S和DeiT-Ti扒最,減少了head的數(shù)量丑勤,保持不變。
Experiment
[圖片上傳失敗...(image-421243-1659936459729)]
? 不同類型的teacher網(wǎng)絡(luò)的蒸餾效果吧趣。
[圖片上傳失敗...(image-bc687f-1659936459729)]
? 不同蒸餾策略的對比實驗法竞。
[圖片上傳失敗...(image-345c1-1659936459729)]
? 不同網(wǎng)絡(luò)以及蒸餾策略之間的結(jié)果差異,值越小差異越小强挫。
[圖片上傳失敗...(image-b489dc-1659936459729)]
? 蒸餾策略與訓(xùn)練周期的關(guān)系岔霸。
[圖片上傳失敗...(image-5a408b-1659936459729)]
? 整體性能的對比。
[圖片上傳失敗...(image-f38b6e-1659936459729)]
? ImageNet上預(yù)訓(xùn)練模型的在其它訓(xùn)練集上的遷移效果俯渤。
[圖片上傳失敗...(image-7e2511-1659936459729)]
? 不同優(yōu)化器呆细、數(shù)據(jù)增強、正則化的對比八匠,尋找最佳的訓(xùn)練策略和配置絮爷。
[圖片上傳失敗...(image-89e4a2-1659936459729)]
? 224分辨率預(yù)訓(xùn)練的DeiT在不同數(shù)據(jù)集上用不同分辨率fine-tune的效果。
Conclusion
? 論文基于改進訓(xùn)練配置以及一種新穎的蒸餾方式梨树,提出了僅用ImageNet就能訓(xùn)練出來的Transformer網(wǎng)絡(luò)DeiT略水。在蒸餾學(xué)習(xí)時苦酱,DeiT以卷積網(wǎng)絡(luò)作為teacher托启,能夠結(jié)合當(dāng)前主流的數(shù)據(jù)增強和訓(xùn)練策略來進一步提高性能票堵。從實驗結(jié)果來看,效果很不錯床嫌。
?
?
?
?
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內(nèi)容請關(guān)注 微信公眾號【曉飛的算法工程筆記】