預(yù)備知識【Transformer】:http://t.csdn.cn/m2Jat
預(yù)備知識【BERT】:?http://t.csdn.cn/QCmUK
1 Abstract??
雖然Transformer體系結(jié)構(gòu)已經(jīng)成為自然語言處理任務(wù)的事實上的標(biāo)準(zhǔn),但它在計算機(jī)視覺方面的應(yīng)用仍然有限。在視覺上,注意力機(jī)制要么與卷積網(wǎng)絡(luò)結(jié)合應(yīng)用,要么用于替換卷積網(wǎng)絡(luò)的某些組件,同時仍舊保持其CNN(卷積神經(jīng)網(wǎng)絡(luò))整體結(jié)構(gòu)。我們發(fā)現(xiàn),這種對CNNs的依賴不是必須的,直接應(yīng)用于圖像補(bǔ)丁序列(sequences of image patches)的未經(jīng)改動的Transformer可以很好地執(zhí)行圖像分類任務(wù)。當(dāng)在大量數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練并應(yīng)用到多個中型或小型圖像識別基準(zhǔn)(ImageNet, CIFAR-100, VTAB等)時,與最先進(jìn)的卷積網(wǎng)絡(luò)相比,Vision Transformer(ViT)獲得了出色的結(jié)果,同時需要更少的計算資源進(jìn)行訓(xùn)練。
2 Conclusion??
- 我們探索了Transformer在圖像識別中的直接應(yīng)用。與之前在計算機(jī)視覺中使用自注意力機(jī)制的工作不同,除了初始的補(bǔ)丁提取步驟(initial patch extraction step)外,我們沒有在架構(gòu)中引入特定于圖像的歸納偏置。相反,我們將圖像解釋為一系列補(bǔ)丁(a sequence of patches ),并通過NLP中使用的標(biāo)準(zhǔn)Transformer編碼器對其進(jìn)行處理。這種簡單但可擴(kuò)展的策略在與大型數(shù)據(jù)集上的預(yù)訓(xùn)練相結(jié)合時效果非常好。因此,Vision Transformer在許多圖像分類數(shù)據(jù)集上達(dá)到或超過了最先進(jìn)的水平,同時預(yù)訓(xùn)練成本相對較低。
- 盡管這些初步成果令人鼓舞,但仍存在許多挑戰(zhàn)。一種是將ViT應(yīng)用于其他計算機(jī)視覺任務(wù),如目標(biāo)檢測和語義分割。我們的結(jié)果,加上Carion等人(2020)的結(jié)果,表明了這種方法的前景。另一個挑戰(zhàn)是繼續(xù)探索自監(jiān)督的預(yù)訓(xùn)練方法。我們的初步實驗表明,自監(jiān)督預(yù)訓(xùn)練有所改善,但自監(jiān)督預(yù)訓(xùn)練與大規(guī)模有監(jiān)督預(yù)訓(xùn)練之間仍有較大差距。最后,ViT的進(jìn)一步擴(kuò)展可能會提高性能。
3 Introduction??
- 基于自注意力機(jī)制的架構(gòu),特別是Transformers,已經(jīng)成為自然語言處理(NLP)的首選模型。主要的方法是在大型文本語料庫上進(jìn)行預(yù)訓(xùn)練,然后在較小的特定于任務(wù)的數(shù)據(jù)集上進(jìn)行微調(diào)。得益于Transformers的計算效率和可擴(kuò)展性,使訓(xùn)練具有超過100B個參數(shù)的空前規(guī)模的模型成為可能。隨著模型和數(shù)據(jù)集的增長,性能仍然沒有飽和的跡象。
- 然而,在計算機(jī)視覺中,卷積架構(gòu)仍然占主導(dǎo)地位。受到NLP成功的啟發(fā),多個工作嘗試將類似CNN的架構(gòu)與自注意力機(jī)制相結(jié)合,一些甚至完全取代卷積。后一種模型雖然理論上是有效的,但由于使用了特殊的注意力機(jī)制,還沒有在現(xiàn)代硬件加速器上有效地擴(kuò)展(模型不大)。因此,在大規(guī)模圖像識別中,經(jīng)典的ResNet-like架構(gòu)仍然是最先進(jìn)的。
- 受NLP中Transformer可擴(kuò)展性(scaling)成功的啟發(fā),我們嘗試將標(biāo)準(zhǔn)Transformer直接應(yīng)用于圖像,并進(jìn)行最少的修改。為此,我們將圖像分割為多個補(bǔ)丁(patches),并將這些補(bǔ)丁的線性嵌入序列作為Transformer的輸入。在NLP應(yīng)用程序中,圖像補(bǔ)丁的處理方式與tokens(單詞)相同。我們以有監(jiān)督的方式訓(xùn)練模型進(jìn)行圖像分類。(NLP基于都是無監(jiān)督的訓(xùn)練方式)
- 當(dāng)在中型數(shù)據(jù)集(如ImageNet)上訓(xùn)練時,沒有很強(qiáng)的正則化處理(regularization),這些模型產(chǎn)生的精度比同等大小的ResNets低幾個百分點。這個看起來令人沮喪的結(jié)果可能是意料之中的;Transformers缺乏CNN固有的一些歸納偏置(inductive biases),例如平移等變性(translation equivariance)和局域性(locality),因此在訓(xùn)練數(shù)據(jù)量不足時性能不是很好。
- locality:假設(shè)圖片上相鄰的區(qū)域會有相鄰的特征,靠的越近的東西相關(guān)性越強(qiáng)。
- translation equivariance:即 f(g(x))=g(f(x))?,f?為卷積,g 為平移,無論先做卷積還是平移,卷積核相當(dāng)于模板(template),不論圖片中同樣的物體移到哪里,只要是同樣的輸入進(jìn)來,遇到同樣的卷積核,其輸出永遠(yuǎn)是一樣的。
- 然而,如果模型在更大的數(shù)據(jù)集(14M-300M圖像)上訓(xùn)練,情況就會發(fā)生變化。我們發(fā)現(xiàn)大規(guī)模訓(xùn)練克服了歸納偏置。我們的Vision Transformer(ViT)在足夠大規(guī)模數(shù)據(jù)上的預(yù)訓(xùn)練和轉(zhuǎn)移到數(shù)據(jù)點更少的任務(wù)時獲得了出色的結(jié)果。當(dāng)在公共ImageNet-21k數(shù)據(jù)集或內(nèi)部JFT-300M數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練時,ViT在多個圖像識別基準(zhǔn)(benchmarks)測試中接近或超過了最先進(jìn)的水平。其中,最佳模型在ImageNet上的準(zhǔn)確率為88.55%,在ImageNet- ReaL上的準(zhǔn)確率為90.72%,在CIFAR-100上的準(zhǔn)確率為94.55%,在VTAB基準(zhǔn)包含跨不同領(lǐng)域的19項評估任務(wù)的準(zhǔn)確率為77.63%。(VATB融合了19個數(shù)據(jù)集,驗證了模型的穩(wěn)健性)
4 Summary??
ViT就是用了一個標(biāo)準(zhǔn)的Transformer模型,只需要對圖片做一下預(yù)處理,就是把圖片打成塊,然后送到Transformer里就可以了,別的什么改動都不需要。這樣徹底可以把一個計算機(jī)視覺問題理解成一個NLP問題,這樣CV和NLP這兩個領(lǐng)域就大一統(tǒng)了。
5 Difficulty??
該怎么把一個二維的圖片轉(zhuǎn)換成Transformer的輸入呢?或許我們可以把所有像素點(pixel)作為一個輸入sequence,如下圖所示,一個 3 * 3 大小的圖像,轉(zhuǎn)換成一個長度為9的sequence。
但是對于一個 224 * 224 大小的圖像而言,進(jìn)行這樣的圖像預(yù)處理的結(jié)果是產(chǎn)生長度為50176的輸入sequence,可是我們知道Transformer對于輸入的sequence長度是有一定的限制的,在BERT中,輸入sequence的長度是512,所以這種方法復(fù)雜度太高,訓(xùn)練起來十分困難。?
6 Architecture??
- 在模型設(shè)計中,我們盡可能地(as closely as possible)遵循原始的Transformer。
- 這個有意識的簡單設(shè)置的優(yōu)勢在于,可擴(kuò)展的NLP Transformer架構(gòu)以及它們的高效實現(xiàn)可以幾乎直接使用。(不需要魔改模型了)
- 我們將一張圖片分成固定大小的塊(不再是一個像素點了),對每個塊進(jìn)行線性嵌入,添加位置嵌入(position embeddings),然后將生成的向量序列送到標(biāo)準(zhǔn)Transformer編碼器中。
- 為了進(jìn)行分類,我們使用添加一個額外的可學(xué)習(xí)的“分類標(biāo)記”到序列的標(biāo)準(zhǔn)方法(這一點和BERT中的[CLS]完全一樣)。
- 如上圖所示,我們可以把一個圖片分解成9個大小相同的塊(patches)。(圖片分解為類似于NLP中的tokens)
- 再例如一個 224 * 224 大小的圖像,按大小為 16 * 16 大小的patch進(jìn)行分割,就會形成 14 * 14 = 196 個塊。
- 這196個塊通過一個全連接層可以轉(zhuǎn)換為一維向量,這就解決上面提到的輸入sequence長度過長的問題了,直接用196代替50716。
- 我們知道二維圖片是存在空間順序關(guān)系的,所以使用position embedding(位置編碼)和經(jīng)過全連接層的向量直接進(jìn)行相加操作。
- 與BERT的[class]令牌類似,we prepend a learnable embedding to the sequence of embedded patches?,如下圖中的紅框所示,其在Transformer編碼器輸出的結(jié)果向量作為圖像表征。在預(yù)訓(xùn)練和微調(diào)期間,分類頭附加到Transformer編碼器。分類頭在預(yù)訓(xùn)練時由一個隱含層的MLP實現(xiàn),在微調(diào)時由一個線性層實現(xiàn)。
- Inductive bias(歸納偏置):我們注意到Vision Transformer比CNN具有更少的圖像特定的歸納偏置。在CNN中,局部性、二維鄰域結(jié)構(gòu)和平移等變性貫穿整個模型的每一層。在ViT中,只有MLP層是局部的、平移等變的,而自注意力層是全局的。二維鄰域結(jié)構(gòu)的使用非常謹(jǐn)慎:在模型開始時,通過將圖像切割成塊,并在微調(diào)時調(diào)整不同分辨率圖像的位置編碼(position embedding)。除此之外,初始化時的位置編碼不包含patches的二維位置信息,并且必須從頭學(xué)習(xí)patches之間的所有空間關(guān)系。
- Hybrid Architecture(混合模型):作為原始圖像補(bǔ)丁的替代方案,輸入序列可以從CNN的特征圖中形成。
- 通常情況下,我們會在大型數(shù)據(jù)集上預(yù)訓(xùn)練ViT,并對(較小的)下游任務(wù)進(jìn)行微調(diào)。為此,我們移除預(yù)訓(xùn)練的預(yù)測頭并連接一個零初始化的D×K前饋層,其中K是下游任務(wù)的類別數(shù)。在較高的分辨率下進(jìn)行微調(diào)往往是有益的。在饋送較高分辨率的圖像時,我們保持塊的大小不變,這會導(dǎo)致更大的有效序列長度。Vision Transformer可以處理任意序列長度(受內(nèi)存限制),但是預(yù)訓(xùn)練的位置嵌入可能不再有意義。因此,我們根據(jù)它們在原始圖像中的位置執(zhí)行預(yù)訓(xùn)練位置嵌入的二維插值。分辨率調(diào)整和補(bǔ)丁提取是關(guān)于圖像2D結(jié)構(gòu)的歸納偏置手動注入Vision Transformer的唯一點。
7 Model??
ViT-L/16表示使用16×16輸入塊(patch size)大小的“大型”變體。請注意,Transformer的序列長度與塊大小的平方成反比,因此具有較小塊大小的模型在計算上更昂貴。
ViT = SOTA + 訓(xùn)練起來更快更便宜
Take home message:?ViT在大數(shù)據(jù)集上表現(xiàn)更好。
在相同的計算預(yù)算下,Vision Transformers通常優(yōu)于ResNets。Hybrids在較小的模型尺寸上優(yōu)于pure Transformers,但在較大的模型尺寸上差距消失了。
8 Supplement??
從全局來看,我們發(fā)現(xiàn)該模型關(guān)注與分類語義相關(guān)的圖像區(qū)域。
- 上圖可以看出Position embedding確實學(xué)習(xí)到了一定的位置信息,自注意力機(jī)制也學(xué)習(xí)到了一定的全局信息。
- Transformers在NLP任務(wù)中表現(xiàn)出色。然而,它們的成功不僅來自于出色的可擴(kuò)展性,還來自于大規(guī)模的自監(jiān)督預(yù)訓(xùn)練,我們還對自監(jiān)督的掩碼補(bǔ)丁預(yù)測進(jìn)行了初步探索,模擬BERT中使用的掩碼語言建模任務(wù)。通過自監(jiān)督的預(yù)訓(xùn)練,我們較小的ViT-B/16模型在ImageNet上的準(zhǔn)確率達(dá)到了79.9%,比從頭開始的訓(xùn)練顯著提高了2%,但仍落后于有監(jiān)督的預(yù)訓(xùn)練4%。
- 我們也可以依舊使用全局平均池化作為最后的預(yù)測特征向量,上圖是全局平均池化(GAP)和使用類似于BERT中的[CLS],兩者的效果相似,但需要不同的學(xué)習(xí)率。
- 論文中使用了幾種位置編碼(Positional Embedding)的方法,進(jìn)行了消融實驗(類似于化學(xué)中的控制變量法),效果類似,影響不大。
9 My View??
Vision Transformer(ViT)在計算機(jī)視覺中的出現(xiàn)具有一定的預(yù)見性,主要表現(xiàn)在以下幾個方面:
跨模態(tài)遷移能力:ViT的Transformer結(jié)構(gòu)在自然語言處理中已經(jīng)被廣泛應(yīng)用,并取得了良好的效果,因此將其應(yīng)用到計算機(jī)視覺領(lǐng)域具有一定的預(yù)見性。這種跨模態(tài)的遷移能力也是未來深度學(xué)習(xí)研究和應(yīng)用的趨勢。
對大規(guī)模數(shù)據(jù)的需求:ViT是一種預(yù)訓(xùn)練模型,需要大規(guī)模的數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,這也是目前深度學(xué)習(xí)研究和應(yīng)用的趨勢之一。ViT的出現(xiàn)預(yù)示著未來深度學(xué)習(xí)將更加注重數(shù)據(jù)的規(guī)模和質(zhì)量。
對計算資源的依賴:ViT是一種計算資源密集型的模型,需要較高的計算資源進(jìn)行訓(xùn)練,這也預(yù)示著未來深度學(xué)習(xí)研究和應(yīng)用需要更加關(guān)注計算資源的分配和利用。文章來源:http://www.zghlxwxcb.cn/news/detail-769836.html
總之,ViT的出現(xiàn)預(yù)示著計算機(jī)視覺領(lǐng)域?qū)⒃絹碓絻A向于使用基于Transformer結(jié)構(gòu)的模型,并且需要大規(guī)模數(shù)據(jù)和高計算資源的支持。文章來源地址http://www.zghlxwxcb.cn/news/detail-769836.html
到了這里,關(guān)于【論文精讀】AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!