日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

DeiT:使用Attention蒸馏Transformer

發布時間:2023/12/13 综合教程 43 生活家
生活随笔 收集整理的這篇文章主要介紹了 DeiT:使用Attention蒸馏Transformer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:Training data-efficient image transformers & distillation through attention

【GiantPandaCV導語】Deit是一個全Transformer的架構,沒有使用任何的卷及操作。其核心是將蒸餾方法引入VIT的訓練,引入了一種教師-學生的訓練策略,提出了token-based distillation。有趣的是,這種訓練策略使用卷積網絡作為教師網絡進行蒸餾,能夠比使用transformer架構的網絡作為教師取得更好的效果。

簡介

之前的ViT需要現在JFT-300M大型數據集上預訓練,然后在ImageNet-1K上訓練才能得到出色的結果,但這借助了額外的數據。

ViT文中也表示:“do not generalize well when trained on insufficient amounts of data”數據量不足會導致ViT效果變差。

針對以上問題,Deit核心共享是使用了蒸餾策略,能夠僅使用ImageNet-1K數據集就就可以達到83.1%的Top1。

文章貢獻如下:

僅使用Transformer,不引入Conv的情況下也能達到SOTA效果。

提出了基于token蒸餾的策略,這種針對transformer的蒸餾方法可以超越原始的蒸餾方法。

Deit發現使用Convnet作為教師網絡能夠比使用Transformer架構取得更好的效果。

知識蒸餾

Knowledge Distillation(KD)最初被Hinton提出,與Label smoothing動機類似,但是KD生成soft label的方式是通過教師網絡得到的。

KD可以視為將教師網絡學到的信息壓縮到學生網絡中。還有一些工作“Circumventing outlier of autoaugment with knowledge distillation”則將KD視為數據增強方法的一種。

KD能夠以soft的方式將歸納偏置傳遞給學生模型,Deit中使用Conv-Based架構作為教師網絡,將局部性的假設通過蒸餾方式引入Transformer中,取得了不錯的效果。

本文提出了兩種KD:

Soft Distillation: 使用KL散度衡量教師網絡和學生網絡的輸出,即Hinton提出的方法。

[mathcal{L}_{ ext {global }}=(1-lambda) mathcal{L}_{mathrm{CE}}left(psileft(Z_{mathrm{s}}ight), yight)+lambda au^{2} mathrm{KL}left(psileft(Z_{mathrm{s}} / auight), psileft(Z_{mathrm{t}} / auight)ight)
]

其中(Z_s,Z_t)分別代表學生網絡的logits輸出和教師網絡的logits輸出。

Hard-label Distillation: 本文提出的一個KD變體,將教師網絡得到的hard輸出作為label,即(y_t=argmax_cZ_t(c)),該方法是無需調參的。

[mathcal{L}_{ ext {global }}^{ ext {hardDistill }}=frac{1}{2} mathcal{L}_{mathrm{CE}}left(psileft(Z_{s}ight), yight)+frac{1}{2} mathcal{L}_{mathrm{CE}}left(psileft(Z_{s}ight), y_{mathrm{t}}ight)
]

Deit蒸餾過程

在ViT架構基礎上引入了Distillation token,其地位與Class token相等,并且參與了整體信息的交互過程。

Distillation token讓模型從教師模型輸出中學習,文章發現:

最初class token和distillation token區別很大,余弦相似度為0.06

隨著class 和 distillation embedding互相傳播和學習,通過網絡逐漸變得相似,到最后一層,余弦相似度為0.93

實驗

Deit模型follow了Vision Transformer的設置,訓練策略有所不同,僅使用Linear classifier,而不是用MLP head。

本文提出了Deit的系列模型:

Deit-B:代表與ViT-B有相同架構的模型

Deit-B|384 : 代表對Deit-B進行finetune,分辨率提升到384

Deit-S/Deit-Ti:更小的模型,修改了head數量。

實驗1: 選取不同教師網絡的效果

可以發現使用RegNet作為教師網絡可以取得更好的性能表現,Transformer可以通過蒸餾來繼承歸納偏差。

同時還可以發現,學生網絡可以取得超越老師的性能,能夠在準確率和吞吐量權衡方面做的更好。

PS:不太明白這里對比的時候為何不選取ViT-H(88.5%top1)作為教師模型?

實驗2: 測試不同蒸餾方法

實驗證明:hard-label distillation能夠取得更好的結果。

實驗3: 與SOTA模型進行比較

訓練細節

使用truncated normal distribution來進行初始化

soft蒸餾參數:( au=3,lambda=0.1)

數據增強:Autoaugment,Rand-augment,random erasing,Cutmix,Mixup,Label Smoothing等

訓練300個epoch需要花費37個小時,使用兩個GPU

回顧

問: 為什么不同架構之間也可以蒸餾?蒸餾能夠將局部性引入transformer架構嗎?

答:教師模型能夠將歸納偏置以soft的方式傳遞給學生模型。

問: 性能增強歸功于蒸餾 or 復雜度數據增強方法?

答:蒸餾策略是有效的,但是相比ViT,Deit確實引入了非常多的數據增強方法,直接與ViT比較還是不夠公平的。Deit測試了多種數據增強方法,發現大部分數據增強方法能夠提高性能,這還是可以理解為Transformer缺少歸納偏置,所以需要大量數據+數據增強。

代碼改變世界

總結

以上是生活随笔為你收集整理的DeiT:使用Attention蒸馏Transformer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。