AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
https://openreview.net/pdf?id=YicbFdNTTy
background
Transformer已經(jīng)成為了NLP領(lǐng)域的“the model of choice”, 主流做法(如BERT, GPT等)一般為在一個巨大的文本庫上進(jìn)行預(yù)訓(xùn)練,然后再在 一個較小的具體任務(wù)數(shù)據(jù)集上進(jìn)行fine-tune。受益于Transformer 結(jié)構(gòu)的計(jì)算效率及可擴(kuò)展性,盡管目前模型及數(shù)據(jù)集尺寸不斷增長,Transformer結(jié)構(gòu)仍未到達(dá)性能上限。
limit
但它在CV領(lǐng)域的應(yīng)用依然很受限,受其啟發(fā),有一些工作采用了例如self-attention等結(jié)構(gòu),與CNN相結(jié)合,或者在保持CNN架構(gòu)的情況下取代某些組件,雖然也獲得了一些精度上的提升,但這些特殊的attention結(jié)構(gòu),目前還無法在實(shí)際硬件部署中獲得加速效果。因此在CV領(lǐng)域依然是ResNet類型的結(jié)構(gòu)占據(jù)主流。
novel point
本文將圖片進(jìn)行切片,直接將patch序列輸入到原始的Transformer中(Vision Transformer, ViT),在classification任務(wù)上取得了最優(yōu)的結(jié)構(gòu),證明了CNN的結(jié)構(gòu)并不是必須的。同時(shí)該工作還證明了ViT直接在ImageNet等數(shù)據(jù)集上進(jìn)行訓(xùn)練效果不是太好,但經(jīng)過在超大數(shù)據(jù)集(JFT-300M等)上進(jìn)行預(yù)訓(xùn)練,再遷移到ImageNet等任務(wù)上時(shí),可以獲得極高的精度。
methodology
為了能直接使用NLP中對Transformer的一系列研究工作,本文所采用的模型結(jié)構(gòu),盡量貼近于原始的Transformer,如下所示:
輸入:標(biāo)準(zhǔn)的Transformer采用的是1-D的序列,為處理2-D的圖像信息,這里采用將圖像切分的做法。首先將輸入圖像進(jìn)行reshape到
,其中P為分割的patch的尺寸,N為輸入序列的長度。將patch的圖像信息,位置信息及圖像類別信息flatten到1-D作為輸入,見公式1。若采用變體Hybrid Archetecture,結(jié)合CNN與Transformer,則將CNN輸出的feature map代替此處的patch圖像。
輸出:與encoder的輸出直接相連,在pre-training階段采用一個一層的MLP,在fine-tuning階段采用一個linear層.
Encoder: 詳見上圖左側(cè)encoder部分。中間部分即為一個encoder,與原始的Transformer相同,由交替的Multiheaded self-attention(MSA)和MLP組成,每個block頭尾還加入了LN和skip_connection,具體公式見2.3.
微調(diào):ViT首先在超大數(shù)據(jù)集上預(yù)訓(xùn)練 ,然后遷移到下游的小數(shù)據(jù)集上進(jìn)行微調(diào)。移除預(yù)訓(xùn)練的預(yù)測head,并添加了一個零初始化的 D × K 前饋層,其中 K 表示分類任務(wù)的類別。當(dāng)下游任務(wù)圖像分辨率不同時(shí),選擇固定patch尺寸不變。雖然這會導(dǎo)致更大的輸入尺寸(ViT可以處理內(nèi)存限制內(nèi)任意尺寸的輸入),但高分辨率的微調(diào)更有益處。但是此時(shí)預(yù)訓(xùn)練得到的position embeddings將失去意義,因此根據(jù)position embeddings在原始圖像中的位置,進(jìn)行2維插值。
evaluation(benchmark, experiments design)
文中對ViT,及其變體進(jìn)行了驗(yàn)證,在多個數(shù)據(jù)集上均達(dá)到了超越目前SOTA的精度。同時(shí)在ImageNet上還證明了當(dāng)模型尺寸較小時(shí),hybrid變體比ViT精度更高,但隨著模型增大,這種優(yōu)勢將逐漸消失。此外,還通過一個小實(shí)驗(yàn)證明了ViT在自監(jiān)督學(xué)習(xí)任務(wù)上同樣具有可觀的未來。下圖給出了在三個不同數(shù)據(jù)集上預(yù)訓(xùn)練后,在下游任務(wù)遷移的結(jié)果。
Thoughts:
1. Describe what the authors of the paper aim to accomplish, or perhaps did achieve.
將Transfomer用于CV領(lǐng)域
2. If a new approach/ technique/ method was introduced in a paper, what are the key elements of the newly proposed approach?
結(jié)構(gòu)采用原始的Transformer,需要考慮的就是如何處理輸入輸出,如何將2-D的圖像信息轉(zhuǎn)換為1-D的序列信息傳入Transformer結(jié)構(gòu)中。本文采用簡單的patch切分及position embedding,再進(jìn)行flatten的方法,實(shí)現(xiàn)了這一目標(biāo)。同時(shí),可以思考的是,采用圖像patch并進(jìn)行位置embedding的方法,本質(zhì)上類似于對圖像不同位置的attetion,有利于圖像內(nèi)容的理解。
3. What content within the paper is useful to you?
這兩年Transformer已經(jīng)逐漸攻破了CV的一個又一個領(lǐng)域,但自己一直都未有具體的研究。以后,還需要對其在檢測,超分,視頻等領(lǐng)域的工作也一一進(jìn)行學(xué)習(xí)。