Facebook 提出Data-efficient image Transformers(DeiT)灌侣,需要更少的數(shù)據(jù)和更少的計(jì)算資源就能生成高性能的圖像分類模型侧啼。僅用一臺 8-GPU 的服務(wù)器對 DeiT 模型進(jìn)行 3 天訓(xùn)練痊乾,就在 ImageNet 基準(zhǔn)測試中達(dá)到了 84.2% 的 top-1 準(zhǔn)確率哪审,并且訓(xùn)練階段未使用任何外部數(shù)據(jù),該結(jié)果可以與頂尖的卷積神經(jīng)網(wǎng)絡(luò)(CNN)媲美舌狗。
論文地址:https://arxiv.org/abs/2012.12877v2
GitHub 地址:https://github.com/facebookresearch/deit
摘要:最近把夸,純粹基于注意力的神經(jīng)網(wǎng)絡(luò)被用來處理圖像理解任務(wù)恋日,如圖像分類岂膳。然而谈截,這些視覺Transformer使用昂貴的基礎(chǔ)設(shè)施預(yù)訓(xùn)練了數(shù)億張圖像簸喂,從而限制了它們的采用喻鳄。
在這項(xiàng)工作中除呵,我們僅通過在Imagenet上進(jìn)行訓(xùn)練來生產(chǎn)具有競爭力的無卷積Transformer颜曾。我們用不到3天的時(shí)間在一臺電腦上訓(xùn)練他們泛豪。在沒有外部數(shù)據(jù)的情況下,我們的參考視覺Transformer(86M參數(shù))在ImageNet上實(shí)現(xiàn)了83.1%的top-1精度(單裁剪評估)岗仑。
更重要的是荠雕,我們引入了針對Transformer的師生策略。它依賴于一個(gè)蒸餾標(biāo)記(distillation token),確保學(xué)生通過注意力從老師那里學(xué)習(xí)嘱蛋。我們展示了這種基于令牌的蒸餾(token-based distillation)的興趣洒敏,特別是當(dāng)使用convnet作為教師時(shí)凶伙。這使我們能夠報(bào)告在Imagenet(我們獲得高達(dá)85.2%的準(zhǔn)確率)和遷移到其他任務(wù)時(shí)與ConvNet競爭的結(jié)果函荣。我們共享我們的代碼和模型傻挂。
1 引言
卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成為圖像理解任務(wù)的主要設(shè)計(jì)范式踊谋,正如最初在圖像分類任務(wù)中所展示的那樣。他們成功的一個(gè)因素是提供了一個(gè)大型訓(xùn)練集沉迹,即Imagenet[13,42]鞭呕。受自然語言處理中基于注意的模型的成功[14,52]的推動(dòng)葫松,人們對在convnet中利用注意機(jī)制的架構(gòu)越來越感興趣[2,34,61]腋么。最近珊擂,一些研究人員提出了混合架構(gòu)摧扇,將Transformer成分移植到CONVNET中扛稽,以解決視覺任務(wù)[6,43]用含。
Dosovitskiy等人[15]引入的視覺Transformer(ViT)是一種直接繼承自自然語言處理[52]的架構(gòu)耕餐,但應(yīng)用于以原始圖像塊作為輸入的圖像分類肠缔。他們的論文展示了使用大型私有標(biāo)記圖像數(shù)據(jù)集(JFT-300M[46]明未,3億張圖像)訓(xùn)練Transformer的出色結(jié)果趟妥。論文的結(jié)論是披摄,Transformer“在數(shù)據(jù)量不足的情況下不能很好地泛化”疚膊,這些模型的訓(xùn)練涉及大量的計(jì)算資源。
在本文中傀蚌,我們在一個(gè)8-GPU節(jié)點(diǎn)上用兩到三天的時(shí)間(53小時(shí)的預(yù)訓(xùn)練和20小時(shí)的微調(diào))訓(xùn)練一個(gè)vision transformer善炫,這與具有相似數(shù)量的參數(shù)和效率的ConvNet相比有競爭力销部。它使用Imagenet作為唯一的訓(xùn)練集舅桩。我們建立在Dosovitskiy等人[15]的視覺Transformer架構(gòu)和timm庫[55]中的改進(jìn)基礎(chǔ)上擂涛。使用我們的Data-efficient image Transformers(DeiT)恢暖,我們報(bào)告了比以前結(jié)果的巨大改進(jìn)杰捂,見圖1嫁佳。我們的消融研究詳細(xì)說明了成功訓(xùn)練的超參數(shù)和關(guān)鍵因素蒿往,如重復(fù)增強(qiáng)( repeated augmentation)瓤漏。
我們解決另一個(gè)問題:如何蒸餾這些模型?我們介紹了一種基于令牌的策略娃惯,該策略專門針對Transformer,由DeiT*表示馒稍,并表明它有利于取代通常的蒸餾
總之纽谒,我們的工作做出了以下貢獻(xiàn):
?????我們表明央勒,我們的神經(jīng)網(wǎng)絡(luò)不包含卷積層崔步,可以在沒有外部數(shù)據(jù)的情況下井濒,與ImageNet上的最新技術(shù)相比瑞你,獲得具有競爭力的結(jié)果。在三天內(nèi)虏缸,在單個(gè)節(jié)點(diǎn)上使用4個(gè)GPU學(xué)習(xí)它們1寇钉。我們的兩個(gè)新模型DeiT-S和DeiT-Ti的參數(shù)較少扫倡,可以看作是ResNet-50和ResNet-18的對應(yīng)物撵溃。(注釋1:如果用8個(gè)GPU的話,我們可以加速對大的DeiT-B模型的訓(xùn)練语淘,2天內(nèi)完成)
?????我們介紹了一種基于蒸餾令牌的新蒸餾過程惶翻,蒸餾令牌(tocken)與類令牌的作用相同,只是其目的在于再現(xiàn)教師估計(jì)的標(biāo)簽颅筋。這兩個(gè)tokens通過注意在Transformer中交互议泵。這種特定于Transformer的策略大大優(yōu)于香草蒸餾法肢簿。
?????有趣的是池充,通過我們的蒸餾坑匠,圖像Transformer從convnet中學(xué)到的東西比從另一個(gè)具有類似性能的Transformer中學(xué)到的要多厘灼。
?????我們在Imagenet上預(yù)學(xué)習(xí)的模型在轉(zhuǎn)移到不同的下游任務(wù)(如細(xì)粒度分類)時(shí),在幾個(gè)流行的公共基準(zhǔn)上具有競爭力:CIFAR-10闪朱、CIFAR-100奋姿、Oxford-102 flowers称诗、Stanford Cars和iNaturalist-18/19。
本文的組織結(jié)構(gòu)如下:第2節(jié)中袜香,我們回顧了相關(guān)工作,并在第3節(jié)中重點(diǎn)介紹了用于圖像分類的Transformer疾就。我們將在第4節(jié)介紹Transformer的蒸餾策略猬腰。實(shí)驗(yàn)第5節(jié)提供了對convnets和最新Transformer的分析和比較,以及對Transformer特定蒸餾的比較評估鼠冕。第6節(jié)詳細(xì)介紹了我們的訓(xùn)練計(jì)劃懈费。它包括對我們的數(shù)據(jù)高效訓(xùn)練選擇的廣泛消冗,這使我們對DeiT中涉及的關(guān)鍵要素有了一些了解泞边。我們在第7節(jié)中得出結(jié)論阵谚。
2????相關(guān)工作
圖像分類????是計(jì)算機(jī)視覺的核心,它經(jīng)常被用作衡量圖像理解進(jìn)展的基準(zhǔn)蕊蝗。任何進(jìn)展通常轉(zhuǎn)化為其他相關(guān)任務(wù)(如檢測或分割)的改進(jìn)仅乓。自2012年的AlexNet[32]以來,ConvNet一直主導(dǎo)著這一基準(zhǔn)匿又,并已成為事實(shí)上的標(biāo)準(zhǔn)方灾。ImageNet數(shù)據(jù)集的最新進(jìn)展[42]反映了卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和學(xué)習(xí)的進(jìn)展[32碌更、44裕偿、48、50痛单、51嘿棘、57]。
盡管有幾次嘗試使用Transformer進(jìn)行圖像分類[7]旭绒,但到目前為止鸟妙,它們的性能還不如ConvNet。然而挥吵,結(jié)合了convnet和transformer(包括自注意機(jī)制)的混合架構(gòu)最近在圖像分類[56]重父、檢測[6,28]、視頻處理[45,53]忽匈、無監(jiān)督對象發(fā)現(xiàn)[35]和統(tǒng)一文本視覺任務(wù)[8,33,37]方面展示了具有競爭力的結(jié)果房午。
最近,Vision transformers(ViT)[15]在不使用任何卷積的情況下丹允,填補(bǔ)了ImageNet與最新技術(shù)的差距郭厌。這種性能是顯著的,因?yàn)橛糜趫D像分類的convnet方法得益于多年的調(diào)整和優(yōu)化[22,55]雕蔽。然而折柠,根據(jù)這項(xiàng)研究[15],為了使學(xué)習(xí)到的Transformer有效批狐,需要對大量的數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練扇售。在本文中,我們實(shí)現(xiàn)了強(qiáng)大的性能,而不需要大量的訓(xùn)練數(shù)據(jù)集承冰,即僅使用Imagenet1k嘱根。
Transformer架構(gòu)????Vaswani等人[52]為機(jī)器翻譯引入的Transformer架構(gòu)目前是所有自然語言處理(NLP)任務(wù)的參考模型。convnets在圖像分類方面的許多改進(jìn)都受到Transformer的啟發(fā)巷懈。例如,SE擠壓和激發(fā)[2]慌洪、SK選擇內(nèi)核[34]和Split-Attention網(wǎng)絡(luò)[61]利用了類似于Transformer自注意(SA)的機(jī)制顶燕。
知識蒸餾????Hinton等人[24]介紹的知識蒸餾(KD)指的是一種訓(xùn)練范式,其中學(xué)生模型利用來自強(qiáng)大教師網(wǎng)絡(luò)的“軟”標(biāo)簽冈爹。這是教師softmax函數(shù)的輸出向量涌攻,而不僅僅是分?jǐn)?shù)的最大值(分?jǐn)?shù)的最大值給出的是“硬”標(biāo)簽)。這樣的訓(xùn)練提高了學(xué)生模型的性能(或者频伤,可以將其視為將教師模型壓縮為更小的模型(即學(xué)生模型)的一種形式)恳谎。一方面,教師的軟標(biāo)簽將具有與標(biāo)簽平滑類似的效果[58]憋肖。另一方面因痛,如Wei等人[54]所示,教師的監(jiān)督會(huì)受到數(shù)據(jù)增擴(kuò)的影響岸更,這有時(shí)會(huì)出現(xiàn)真實(shí)標(biāo)簽和圖像之間的錯(cuò)位鸵膏。例如,給定一張圖像怎炊,其標(biāo)簽的“貓”谭企,而圖像內(nèi)容是一只小貓?jiān)谝粋€(gè)大的景觀的角落里。如果數(shù)據(jù)增擴(kuò)的裁剪將圖像中的貓裁掉了评肆,它會(huì)隱式地更改圖像的標(biāo)簽债查。如果教師模型使用硬的方式利用歸納偏置,知識蒸餾能以一種軟的方式將歸納偏置[1]遷移給學(xué)生模型瓜挽。例如盹廷,通過使用卷積模型作為教師,Transformer模型為學(xué)生秸抚,卷積導(dǎo)致的歸納偏置對Transformer可能是有用的速和。在本文中,我們研究了以卷積為教師和以Transformer為教師分別對Transformer學(xué)生的整理剥汤。我們介紹了一種新的Transformer蒸餾方法颠放,并展示了其優(yōu)越性。
3????視覺Transformer:概述
在本節(jié)中吭敢,我們簡要回顧了與視覺Transformer相關(guān)的預(yù)備知識[15,52]碰凶,并進(jìn)一步討論了位置編碼和分辨率。
多頭自注意層(MSA)。
注意機(jī)制是基于可訓(xùn)練的成對的(鍵欲低,值)向量對(The attention mechanism is based on a trainable associative memory with (key, value) vector pairs )辕宏。一個(gè)查詢向量使用內(nèi)積與一組k個(gè)鍵向量(打包成矩陣)匹配)。然后使用softmax函數(shù)對這些內(nèi)積進(jìn)行縮放和歸一化砾莱,以獲得k個(gè)權(quán)重瑞筐。注意力的輸出是一組k個(gè)值向量(打包成矩陣)的加權(quán)和。對于N個(gè)查詢向量序列(打包成矩陣)腊瑟,它輸出矩陣(形狀為為N×d):
? ??
其中聚假,Softmax函數(shù)應(yīng)用于輸入矩陣的每一行,提供了適當(dāng)?shù)目s放闰非。在[52]中膘格,提出了自注意層。查詢财松、鍵和值矩陣本身是從N個(gè)輸入向量序列(打包成矩陣)使用線性變換瘪贱、、和約束計(jì)算出的:辆毡,菜秦,,這意味著注意力發(fā)生在所有輸入向量之間舶掖。
最后喷户,通過考慮個(gè)注意“頭”,即應(yīng)用于輸入的個(gè)自注意函數(shù)访锻,定義了多頭自注意層(MSA)褪尝。每個(gè)頭部提供一個(gè)大小為的序列。這個(gè)序列被重新排列成一個(gè)序列期犬,該序列被線性投影成河哑。
用于圖像的Transformer塊。
為了獲得如[52]所示的完整Transformer塊龟虎,我們在MSA層的頂部添加了一個(gè)前饋網(wǎng)絡(luò)(FFN)璃谨。該FFN由兩個(gè)線性層組成,兩線性層中間隔著Gelu激活函數(shù)[23]鲤妥。第一個(gè)線性層將維度從擴(kuò)展到佳吞,第二個(gè)線性層將維度從縮減回。由于跳連棉安,MSA和FFN都作為殘差運(yùn)算符運(yùn)行底扳,并且具有層歸一化[3]。
為了讓Transformer處理圖像贡耽,我們的工作建立在ViT模型的基礎(chǔ)上[15]衷模。它是一個(gè)簡單而優(yōu)雅的架構(gòu)鹊汛,可以像處理一系列輸入token一樣處理輸入圖像。將固定大小的輸入RGB圖像分解為N個(gè)分辨率固定為16×16的圖像塊(N=14×14)阱冶。每個(gè)圖像塊被一個(gè)線性層投影刁憋,將其最終維度轉(zhuǎn)換為3×16×16=768。
上述Transformer塊對于圖塊嵌入的順序是排列不變的木蹬,因?yàn)闆]有考慮它們的相對位置胚想。位置通過固定[52]或可訓(xùn)練[18]位置嵌入組件來利用位置信息喂击。它們在第一個(gè)transformer塊之前添加到圖塊token倾芝,然后將圖塊token饋送到transformer塊堆棧范舀。
類別token(The class token)
類別token是一個(gè)可訓(xùn)練向量肘迎,在第一層之前append to?the patch tokens灸姊,它通過Transformer層父叙,然后用線性層投影以預(yù)測類徙垫。類別tokentoken繼承自NLP[14]饺汹,與計(jì)算機(jī)視覺中用于預(yù)測類的典型池化層不同蛔添。因此,Transformer處理維度為的個(gè)tokens的批處理兜辞,其中只有類向量(class vector)用于預(yù)測輸出迎瞧。該架構(gòu)迫使自注意在圖塊token和類別token之間傳播信息:在訓(xùn)練時(shí),監(jiān)督信號僅來自類嵌入逸吵,而圖塊token是模型的唯一變量輸入凶硅。
修復(fù)跨分辨率的位置編碼。(Fixing the positional encoding across resolutions.)
Touvron等人[50]表明扫皱,最好使用較低的訓(xùn)練分辨率足绅,并以較大的分辨率微調(diào)網(wǎng)絡(luò)。這加快了完整的訓(xùn)練韩脑,并提高了當(dāng)前數(shù)據(jù)增強(qiáng)方案下的準(zhǔn)確性氢妈。當(dāng)增加輸入圖像的分辨率時(shí),我們保持圖塊分辨率不變段多,因此輸入圖塊的數(shù)量會(huì)發(fā)生變化首量。由于transformer blocks和類別token的架構(gòu),不需要修改模型和分類器來處理更多token进苍。相比之下加缘,需要調(diào)整位置嵌入,因?yàn)槲恢们度胗?img class="math-inline" src="https://math.jianshu.com/math?formula=N" alt="N" mathimg="1">個(gè)觉啊,每個(gè)圖塊一個(gè)拣宏。Dosovitskiy等人[15]在改變分辨率時(shí)對位置編碼做插值,并證明該方法適用于隨后的微調(diào)階段杠人。
4????注意力的蒸餾
在本節(jié)中蚀浆,我們假設(shè)我們可以使用一個(gè)強(qiáng)大的圖像分類器作為教師模型缀程。它可以是convnet,也可以是混合的分類器(a mixture of classifiers)市俊。我們解決的問題是如何利用這個(gè)老師學(xué)習(xí)Transformer杨凑。正如我們將在第5節(jié)中通過比較精度和圖像吞吐量之間的權(quán)衡所看到的,用Transformer代替卷積神經(jīng)網(wǎng)絡(luò)是有益的摆昧。本節(jié)涵蓋兩個(gè)蒸餾軸:硬蒸餾與軟蒸餾撩满,以及經(jīng)典蒸餾與蒸餾token。
軟蒸餾
軟蒸餾[24,54]最小化了教師模型和學(xué)生模型的軟最大值之間的Kullback-Leibler散度绅你。
假設(shè)是教師模型的logits伺帘,是學(xué)生模型的logits。我們用表示蒸餾溫度忌锯,表示平衡Kullback–Leibler散度損失(KL)和真值標(biāo)簽上的交叉熵(LCE)的系數(shù)伪嫁,表示softmax函數(shù)。蒸餾的損失是:
硬標(biāo)簽蒸餾偶垮。
我們介紹了蒸餾法的一種變體张咳,我們把老師的hard decision視為標(biāo)簽。假設(shè)是教師的hard decision似舵,硬標(biāo)簽蒸餾相應(yīng)的損失為:
對于給定的圖像脚猾,教師提供的硬標(biāo)簽會(huì)隨著數(shù)據(jù)增強(qiáng)的改變而改變。我們將看到砚哗,這種選擇比傳統(tǒng)的選擇更好龙助,沒有超參且概念更簡單:教師預(yù)測與真正的標(biāo)簽起著相同的作用。
還請注意蛛芥,硬標(biāo)簽也可以通過標(biāo)簽平滑轉(zhuǎn)換為軟標(biāo)簽[47]提鸟,標(biāo)簽平滑是:真實(shí)標(biāo)簽的概率為1? ε、 剩下的ε在剩下的類中共享仅淑。在我們所有使用真實(shí)標(biāo)簽的實(shí)驗(yàn)中沽一,我們將該參數(shù)固定為ε=0.1。
蒸餾token漓糙。
我們現(xiàn)在關(guān)注我們的提案铣缠,如圖2所示。我們在初始嵌入(圖塊token和類別token)中添加了一個(gè)新的token昆禽,即蒸餾token蝗蛙。我們的蒸餾token與類別token類似:它通過自注意與其他嵌入交互,并在最后一層之后由網(wǎng)絡(luò)輸出醉鳖。其目標(biāo)是由蒸餾損失的組成部分給出捡硅。蒸餾嵌入允許我們的模型從教師的輸出中學(xué)習(xí),就像在常規(guī)蒸餾中一樣盗棵,同時(shí)保持對類別嵌入的補(bǔ)充壮韭。
有趣的是,我們觀察到習(xí)得的類別token和蒸餾token收斂到不同的向量:這些token之間的平均余弦相似性等于0.06恶耽。隨著在每一層計(jì)算類和蒸餾嵌入密任,它們通過網(wǎng)絡(luò)逐漸變得更相似,一直到最后一層偷俭,它們的相似性很高(cos=0.93)浪讳,但仍然低于1。這是意料之中的涌萤,因?yàn)樗鼈冎荚诋a(chǎn)生相似但不完全相同的目標(biāo)淹遵。
我們驗(yàn)證了我們的蒸餾token向模型中添加了一些東西,而不是簡單地添加與同一目標(biāo)標(biāo)簽相關(guān)聯(lián)的額外類別token:我們使用一個(gè)帶有兩個(gè)類別token的Transformer來代替教師偽標(biāo)簽形葬。即使我們隨機(jī)且獨(dú)立地初始化它們,在訓(xùn)練期間它們也會(huì)收斂到同一個(gè)向量(cos=0.999)暮的,并且輸出嵌入也是準(zhǔn)相同的( quasi-identical)笙以。這個(gè)額外的類別token不會(huì)給分類性能帶來任何影響。相比之下冻辩,我們的蒸餾策略比香草蒸餾基線有顯著的改進(jìn)猖腕,正如我們在第5.2節(jié)中的實(shí)驗(yàn)所驗(yàn)證的那樣。
通過蒸餾進(jìn)行微調(diào)恨闪。
在更高分辨率的微調(diào)階段倘感,我們使用真實(shí)標(biāo)簽和教師預(yù)測。我們使用具有相同目標(biāo)分辨率的教師咙咽,通常通過Touvron等人[50]的方法從低分辨率教師處獲得老玛。我們也測試只使用真實(shí)標(biāo)簽的微調(diào),但這會(huì)降低教師模型帶來的增益钧敞,并導(dǎo)致績效下降蜡豹。
使用我們的方法進(jìn)行分類:聯(lián)合分類器。
在測試時(shí)溉苛,transformer生成的類別嵌入或蒸餾嵌入都與線性分類器關(guān)聯(lián)镜廉,并且能夠推斷圖像標(biāo)簽。然而愚战,我們的參考方法是這兩個(gè)單獨(dú)的頭部的后期融合( late fusion)娇唯,為此我們添加兩個(gè)分類器的softmax輸出以進(jìn)行預(yù)測齐遵。我們將在第5節(jié)中評估這三個(gè)選項(xiàng)。
5????實(shí)驗(yàn)
本節(jié)介紹了一些分析實(shí)驗(yàn)和結(jié)果塔插。我們首先討論我們的蒸餾策略梗摇。然后對比分析了convnet和vision transformer的效率和準(zhǔn)確性。
5.1????Transformer型號
如前所述佑淀,我們的架構(gòu)設(shè)計(jì)與Dosovitskiy等人[15]提出的架構(gòu)設(shè)計(jì)相同留美,沒有卷積。我們唯一的區(qū)別是訓(xùn)練策略和技巧伸刃。此外谎砾,在預(yù)訓(xùn)練階段,我們不使用MLP頭捧颅,只使用線性分類器景图。為了避免任何混淆,我們參考了ViT在先前工作中獲得的結(jié)果碉哑,并使用DeiT的前綴挚币。如果未指定,DeiT指的是我們的參考模型DeiT-B扣典,它與ViT-B具有相同的架構(gòu)妆毕。當(dāng)我們以更大的分辨率微調(diào)DeiT時(shí),我們在末尾附加產(chǎn)生的操作分辨率贮尖,例如DeiT-B↑384最后笛粘,當(dāng)使用我們的蒸餾過程時(shí),我們用一個(gè)alembic符號DeiT*~湿硝。
ViT-B(因此也包括DeiT-B)的參數(shù)固定為D=768薪前、h=12和d=D/h=64。我們引入了兩個(gè)較小的模型关斜,即DeiT-S和DeiT-Ti示括,對于這兩個(gè)模型,我們在保持d不變的情況下改變頭部的數(shù)量痢畜。表1總結(jié)了我們在本文中考慮的模型垛膝。
5.2????蒸餾
我們的蒸餾方法產(chǎn)生了一個(gè)視覺Transformer,它與最佳的卷積網(wǎng)絡(luò)在精度和吞吐量之間的權(quán)衡一致桶雀,見表5矿酵。有趣的是唬复,在準(zhǔn)確性和吞吐量之間的權(quán)衡方面,蒸餾模型的表現(xiàn)優(yōu)于它的老師全肮。我們在ImageNet-1k上的最佳模型具有85.2%的top-1精度敞咧,優(yōu)于在JFT-300M上以384分辨率預(yù)訓(xùn)練的最佳Vit-B模型(84.15%)。作為參考辜腺,當(dāng)前的state of art是88.55%休建,它使用額外的數(shù)據(jù)訓(xùn)練,它是ViT-H模型(600M參數(shù))在JFT-300M數(shù)據(jù)上以512分辨率訓(xùn)練的评疗。此后测砂,我們將提供一些分析和觀察結(jié)果。
卷積教師百匆。
我們觀察到砌些,使用convnet教師比使用Transformer具有更好的性能。表2比較了不同教師架構(gòu)的蒸餾結(jié)果加匈。正如Abnar等人[1]所解釋的存璃,convnet是一個(gè)更好的老師,這一事實(shí)可能是由于學(xué)生Transformer可以通過蒸餾而繼承歸納偏置雕拼。在我們隨后的所有蒸餾實(shí)驗(yàn)中纵东,默認(rèn)的教師是一個(gè)RegNetY-16GF[40](84M參數(shù)),我們使用與DeiT相同的數(shù)據(jù)和相同的數(shù)據(jù)增強(qiáng)對其進(jìn)行訓(xùn)練啥寇。該教師在ImageNet上達(dá)到82.9%的top-1準(zhǔn)確率偎球。
蒸餾方法的比較。
我們在表3中比較了不同蒸餾策略的性能示姿。對于Transformer而言甜橱,硬蒸餾顯著優(yōu)于軟蒸餾逊笆,即使僅使用類別token:硬蒸餾在分辨率為224×224時(shí)達(dá)到83.0%栈戳,而軟蒸餾精度為81.8%。第4節(jié)提出的蒸餾策略進(jìn)一步提高了性能难裆,表明這兩個(gè)token提供了對分類有用的補(bǔ)充信息:這兩個(gè)標(biāo)記上的分類器明顯優(yōu)于只使用類別token分類器或只使用蒸餾token分類器子檀,只使用類別token分類器或只使用蒸餾token分類器已經(jīng)優(yōu)于蒸餾基線。
蒸餾token比類別token給出的結(jié)果稍好一些乃戈。它也與convnets預(yù)測更相關(guān)褂痰。這種性能上的差異可能是由于這樣一個(gè)事實(shí),即它更多地受益于卷積網(wǎng)絡(luò)的歸納偏置症虑。我們將在下一段中給出更多細(xì)節(jié)和分析缩歪。蒸餾token在初始訓(xùn)練中具有不可否認(rèn)的優(yōu)勢(initial training)。
與教師和歸納偏置的一致性? (Agreement with the teacher & inductive bias颤绕?)
如上所述幸海,教師的架構(gòu)具有重要影響。它是否繼承了已有的利于訓(xùn)練的歸納偏置奥务?雖然我們認(rèn)為很難正式回答這個(gè)問題物独,但我們在表4中分析了convnet教師、我們的DeiT(僅從標(biāo)簽中學(xué)習(xí))和DeiT*~之間的決策一致性汗洒。
相比從頭訓(xùn)練的Transformer议纯,蒸餾的模型與convnet的關(guān)聯(lián)性更大。正如預(yù)期的那樣溢谤,相比類別嵌入分類器瞻凤,蒸餾嵌入分類器要更接近卷積網(wǎng)絡(luò);相反世杀,類別嵌入分類器更接近無蒸餾的DeiT阀参。毫不奇怪,類別+蒸餾的聯(lián)合分類器提供了一個(gè)中間地帶瞻坝。
epoch數(shù)浮创。
增加epoch的數(shù)量可以顯著提高蒸餾訓(xùn)練的性能忧吟,見圖3。我們的蒸餾網(wǎng)絡(luò)DeiT-B*~有300個(gè)epoch斩披,已經(jīng)比DeiT-B好溜族。但對于后者,性能隨著時(shí)間的延長而飽和垦沉,我們的蒸餾網(wǎng)絡(luò)顯然受益于更長的訓(xùn)練時(shí)間煌抒。
5.3????效率與準(zhǔn)確性:與convnets的對比研究
在文獻(xiàn)中,通常將圖像分類方法作為精度和另一個(gè)標(biāo)準(zhǔn)(如FLOPs、參數(shù)數(shù)量况既、網(wǎng)絡(luò)大小等)之間的折衷進(jìn)行比較屋群。
在圖1中,我們重點(diǎn)討論了吞吐量(每秒處理的圖像)和ImageNet上top-1的分類精度之間的權(quán)衡坏挠。我們關(guān)注流行的最先進(jìn)的EfficientNet convnet芍躏,它得益于多年來對convnet的研究,并通過ImageNet驗(yàn)證集上的架構(gòu)搜索進(jìn)行了優(yōu)化降狠。
我們的方法DeiT略低于EfficientNet对竣,這表明當(dāng)僅使用Imagenet進(jìn)行訓(xùn)練時(shí),我們幾乎已經(jīng)縮小了視覺Transformer和ConvNet之間的差距榜配。與僅在Imagenet1k上訓(xùn)練的先前ViT模型相比否纬,這些結(jié)果是一項(xiàng)重大改進(jìn)(在可比設(shè)置中top-1提升6.3%)[15]。此外蛋褥,當(dāng)DeiT從相對較弱的RegNetY蒸餾中獲益以產(chǎn)生DeiT*~临燃,其性能優(yōu)于EfficientNet。它的性能也比在JFT300M上以384分辨率預(yù)訓(xùn)練的Vit-B型號高出1%(top-1 acc)(85.2%對84.15%)烙心,同時(shí)訓(xùn)練速度明顯加快膜廊。
表5更詳細(xì)地報(bào)告了ImageNet V2和ImageNet Real的數(shù)值結(jié)果和附加評估,這兩個(gè)測試集不同于ImageNet驗(yàn)證淫茵,從而減少了驗(yàn)證集上的過擬合爪瓜。我們的結(jié)果表明,DeiT-B*~和DeiT-B*~↑384在GPU上的準(zhǔn)確性和推理時(shí)間之間的權(quán)衡上匙瘪,以一定的優(yōu)勢超過了最先進(jìn)的技術(shù)铆铆。
5.4????遷移學(xué)習(xí):下游任務(wù)的性能
雖然DeiT在ImageNet上表現(xiàn)得很好袒哥,但為了衡量DeiT的泛化能力缩筛,在其他數(shù)據(jù)集上使用遷移學(xué)習(xí)對其進(jìn)行評估是很重要的。我們通過微調(diào)表6中的數(shù)據(jù)集堡称,對遷移學(xué)習(xí)任務(wù)進(jìn)行了評估瞎抛。表7將DeiT遷移學(xué)習(xí)結(jié)果與ViT[15]和最先進(jìn)的卷積結(jié)構(gòu)[48]的結(jié)果進(jìn)行了比較。DeiT與競爭性的卷積模型相當(dāng)却紧,這與我們之前對ImageNet的結(jié)論一致桐臊。
與從頭訓(xùn)練比較
我們研究了在沒有Imagenet預(yù)訓(xùn)練的情況下,在小數(shù)據(jù)集上從頭開始訓(xùn)練時(shí)的性能巫俺。我們在小型CIFAR-10上獲得了以下結(jié)果认烁,它的圖像和標(biāo)簽數(shù)量都很小:
對于這個(gè)實(shí)驗(yàn)介汹,我們嘗試盡可能接近Imagenet預(yù)訓(xùn)練對應(yīng)物却嗡,這意味著(1)我們考慮更長的訓(xùn)練時(shí)間表(最多7200個(gè)epochs,對應(yīng)于300個(gè)Imagenet epochs)嘹承,這樣網(wǎng)絡(luò)被饋送相當(dāng)數(shù)量的總計(jì)圖像稽穆;(2) 我們將圖像重新縮放到224×224,以確保使用相同的數(shù)據(jù)增強(qiáng)赶撰。結(jié)果不如Imagenet預(yù)訓(xùn)練(98.5%對99.1%)好舌镶,這是因?yàn)榫W(wǎng)絡(luò)的多樣性要低得多。然而豪娜,他們表明餐胀,僅在CIFAR-10上學(xué)習(xí)合理的Transformer是可能的。
6????訓(xùn)練細(xì)節(jié)和消冗
在本節(jié)中瘤载,我們將討論DeiT訓(xùn)練策略否灾,以數(shù)據(jù)高效的方式學(xué)習(xí)視覺變換器。我們以PyTorch[39]和timm庫[55](注釋2)為基礎(chǔ)鸣奔。我們提供超參數(shù)和消融研究墨技,分析每種選擇的影響。
注釋2:timm實(shí)施已經(jīng)包括一個(gè)訓(xùn)練程序挎狸,該程序?qū)iT-B的準(zhǔn)確度從77.91%提高到79.35%top-1扣汪,并使用8xV100 GPU機(jī)器在Imagenet-1k上進(jìn)行培訓(xùn)。
初始化和超參數(shù)响牛。
Transformer對初始化相對敏感。在初步實(shí)驗(yàn)中測試了幾個(gè)選項(xiàng)(其中一些選項(xiàng)不收斂)后赫段,我們按照Hanin和Rolnick[20]的建議娃善,使用截?cái)嗾龖B(tài)分布初始化權(quán)重。表9顯示了我們在所有實(shí)驗(yàn)的訓(xùn)練時(shí)默認(rèn)使用的超參數(shù)瑞佩,除非另有說明聚磺。對于蒸餾,我們遵循Cho等人[9]的建議選擇參數(shù)τ和λ炬丸。對于通常(軟)蒸餾瘫寝,我們?nèi)〉湫椭郸?3.0和λ=0.1。
數(shù)據(jù)增強(qiáng)焕阿。
與包含更多先驗(yàn)(如卷積)的模型相比,Transformer需要更大的數(shù)據(jù)量首启。因此暮屡,為了使用相同大小的數(shù)據(jù)集進(jìn)行訓(xùn)練,我們依賴于大量的數(shù)據(jù)增強(qiáng)毅桃。我們評估了不同類型的強(qiáng)數(shù)據(jù)增強(qiáng)褒纲,目的是實(shí)現(xiàn)數(shù)據(jù)高效的訓(xùn)練機(jī)制。
自動(dòng)增強(qiáng)Auto-Augment[11]钥飞、隨機(jī)增強(qiáng)Rand-Augment[12]和隨機(jī)擦除random erasing[62]改善了結(jié)果莺掠。對于后兩種,我們使用timm[55]定制读宙,消融后彻秆,我們選擇Rand-Augment而不是自動(dòng)增強(qiáng)〗嵴ⅲ總的來說唇兑,我們的實(shí)驗(yàn)證實(shí),Transformer需要強(qiáng)大的數(shù)據(jù)增強(qiáng):我們評估的幾乎所有數(shù)據(jù)增強(qiáng)方法都證明是有用的桦锄。一個(gè)例外是dropout扎附,我們將其排除在訓(xùn)練程序之外。
正則化和優(yōu)化器察纯。
我們考慮了不同的優(yōu)化器帕棉,交叉驗(yàn)證了不同的學(xué)習(xí)率和權(quán)重衰減。Transformer對優(yōu)化超參數(shù)的設(shè)置非常敏感饼记。因此香伴,在交叉驗(yàn)證期間,我們嘗試了3種不同的學(xué)習(xí)率(5.10?4, 3.10?4 , 5.10?5)和3個(gè)權(quán)重衰減(0.03, 0.04, 0.05)具则。我們根據(jù)批量大小用公式:lrscaled=lr/ 512×batchsize來縮放學(xué)習(xí)率即纲,與Goyal等人[19]類似,只是我們使用512而不是256作為基值博肋。
最好的結(jié)果是使用AdamW優(yōu)化器低斋,其學(xué)習(xí)率與ViT[15]相同,但權(quán)重衰減要小得多匪凡,因?yàn)檎撐闹袌?bào)告的權(quán)重衰減會(huì)影響我們設(shè)置中的收斂性膊畴。
我們采用了隨機(jī)深度[29],這有助于Transformer的收斂病游,特別是深Transformer[16,17]唇跨。對于視覺Transformer,Wightman[55]首先在訓(xùn)練程序中采用了它們衬衬。像Mixup[60]和Cutmix[59]這樣的正則化可以提高性能买猖。我們還使用了重復(fù)增強(qiáng)[4,25],它顯著提高了性能滋尉,是我們建議的訓(xùn)練程序的關(guān)鍵要素之一玉控。
指數(shù)移動(dòng)平均(EMA)。
我們評估訓(xùn)練后獲得的網(wǎng)絡(luò)的EMA狮惜。有小的增益高诺,但微調(diào)后增益會(huì)消失:EMA模型有0.1的邊緣精度(has an edge of is 0.1),但微調(diào)后兩個(gè)模型達(dá)到相同(改進(jìn))的性能碾篡。
在不同分辨率下進(jìn)行微調(diào)懒叛。
我們采用了Touvron等人[51]的微調(diào)程序:我們的 schedule、正則化和優(yōu)化程序與FixEfficientNet相同耽梅,但我們保持了訓(xùn)練時(shí)間數(shù)據(jù)增強(qiáng)(與Touvron等人[51]的dampened data augmentation)薛窥。我們還對位置嵌入進(jìn)行插值:原則上可以使用任何經(jīng)典的圖像縮放技術(shù),如雙線性插值眼姐。然而诅迷,一個(gè)向量從相鄰向量雙線性插值,該向量相比相鄰向量會(huì)減小L2范數(shù)众旗。
這些低范數(shù)向量不適配預(yù)訓(xùn)練的Transformer罢杉,如果我們直接使用而不進(jìn)行任何形式的微調(diào),我們觀察到精度會(huì)顯著下降贡歧。因此滩租,在使用AdamW[36]或SGD微調(diào)網(wǎng)絡(luò)之前赋秀,我們采用了一種近似保留向量范數(shù)的雙三次插值(bicubic)。這些優(yōu)化器在微調(diào)階段具有類似的性能律想,請參見表8猎莲。
默認(rèn)情況下,與ViT[15]類似技即,我們以224分辨率訓(xùn)練DeiT模型著洼,并以384分辨率進(jìn)行微調(diào)。我們將在第3節(jié)詳細(xì)介紹如何進(jìn)行插值而叼。然而身笤,為了測量分辨率的影響,我們對不同分辨率的DeiT進(jìn)行了微調(diào)葵陵。我們在表10中報(bào)告了這些結(jié)果液荸。
訓(xùn)練時(shí)間。
對于DeiT-B涡尘,300個(gè)epoch的典型訓(xùn)練需要37小時(shí)(2個(gè)節(jié)點(diǎn))或53小時(shí)(單個(gè)節(jié)點(diǎn))忍弛。作為比較點(diǎn),使用RegNetY-16GF[40](84M參數(shù))的類似訓(xùn)練要慢20%考抄。DeiT-S和DeiT-Ti在不到3天的時(shí)間內(nèi)在4個(gè)GPU上接受訓(xùn)練细疚。然后,我們可以選擇以更高的分辨率微調(diào)模型川梅。這需要在單個(gè)節(jié)點(diǎn)(8 GPU)上20個(gè)小時(shí)才能生成分辨率為384×384的FixDeiT-B模型疯兼,對應(yīng)為25個(gè)epoch。不依賴于批量歸一化贫途,可以在不影響性能的情況下減少批量大小吧彪,從而更容易訓(xùn)練更大的模型?( Not having to rely on batch-norm allows one to reduce the batch size without impacting performance, which makes it easier to train larger models )。請注意丢早,由于我們使用了3次重復(fù)的重復(fù)增強(qiáng)(repeated augmentation)[4,25]姨裸,我們在一個(gè)epoch內(nèi)只能看到三分之一的圖像(注釋3)。
(注釋3:從形式上講怨酝,這意味著我們有100個(gè)epoch傀缩,但由于repeated augmentation,每個(gè)epoch都要長3倍农猬。我們更愿意將其稱為300個(gè)epoch赡艰,以便直接比較有無epeated augmentation的有效訓(xùn)練時(shí)間)
7????結(jié)論
在本文中,我們介紹了DeiT斤葱,這是一種圖像Transformer慷垮,由于改進(jìn)了訓(xùn)練揖闸,特別是一種新的蒸餾過程,它不需要大量數(shù)據(jù)進(jìn)行訓(xùn)練料身。卷積神經(jīng)網(wǎng)絡(luò)在近十年的時(shí)間里汤纸,在結(jié)構(gòu)和優(yōu)化方面都進(jìn)行了優(yōu)化,包括通過廣泛的結(jié)構(gòu)搜索進(jìn)行優(yōu)化惯驼,這種搜索容易過度擬合蹲嚣,例如EfficientNets[51]递瑰。對于DeiT祟牲,我們已經(jīng)開始使用ConvNet已有的數(shù)據(jù)增強(qiáng)和正則化策略,除了我們新提的蒸餾token之外抖部,沒有引入任何重要的架構(gòu)说贝。因此,對于Transformer更適合或?qū)W習(xí)的數(shù)據(jù)增強(qiáng)的研究可能會(huì)帶來進(jìn)一步的收益慎颗。
因此乡恕,考慮到我們的結(jié)果,其中圖像Transformer與卷積網(wǎng)絡(luò)已經(jīng)相當(dāng)俯萎,我們相信傲宜,它們將迅速成為一種選擇方法,考慮到它們對于給定精度的較低的內(nèi)存占用夫啊。我們提供了我們方法的開源實(shí)現(xiàn)函卒。可于https://github.com/facebookresearch/deit.
感謝Ross Wightman與社區(qū)分享他的ViT代碼和引導(dǎo)(bootstrapping)訓(xùn)練方法撇眯,以及幫助我們解決本文不同方面問題的寶貴反饋报嵌。感謝Vinicius Reis、Mannat Singh熊榛、Ari Morcos锚国、Mark Tygert、Gabriel Synnave和Facebook的其他同事在這一軸上進(jìn)行了頭腦風(fēng)暴和一些探索玄坦。感謝Ross Girshick和Piotr Dollar的建設(shè)性評論血筑。