# AN IMAGE IS WORTH 16x16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE **Anonymous authors** Under review as a conference paper at ICLR 2021 ## ABSTRACT * 在 NLP 領域上,Transformer architecture 是一個很重要的架構,但不常使用在 vision * attention 常和 cnn 結合 * 這篇文章要直接應用 transformation , 且證明可以表現得很好 * 可以用更少的資源,且訓練得跟 SOTA 一樣好 ## INTRODUCTION * 由於 self-attention 在 NLP 上的成功,有人他用來取代 CNN(Ramachandran et al., 2019; Wang et al., 2020a),但只有理論上的有效率,而由於他是用特別的 attention patterns ,因此在大型資料集上的 image recognition 還是 classic ResNet-like architecture 比較好 * 因為 NLP 處理的資料是序列化的,而 cv 處理的資料是三維的,長寬和channels,所以將影響分割成 patchs ,並將 patches 變成依序列線性嵌入,當成 transformer 的輸入。 ## METHOD 使用很接近 original Transformer(Vaswani et al., 2017) ,這樣有意的設計是為了有 scalable NLP Transformer architectures 的優勢,還有有效率的實作,希望可以超越最好的 CNN ### 3.1 VISION TRANSFORMER ![](https://i.imgur.com/RMtjepC.png) **a. 將圖片序列化** 首先將圖像分割成 patchs ,然後將每個 patch 重塑成一個向量,得到 flattened patch。 如果圖片是 `H x W x C` 用 `P x P` 大小的 patch 去分割圖片得到 N 個 patch ,那每個 patch 的 shape 是 `P x P x C` ,轉成向量會是 $P^2C$ 維的向量,將 N 個 patch reshape 的向量 concat 在一起得到, $N x (P^2C)$ 的 2D vector , 和 NLP輸入 transformer 的詞向量相同。 **b. Position embedding** 因為 transformer 本身沒有位置訊息,我們要用 position embedding 將位置訊息加到模型。 如上圖,編號 0-9 的紫色框表示各個位置的 positon embedding ,而紫框旁邊的粉色框是經過 linear projection 之後的 flattened patch 向量。 使用將 position embedding 和 patch embedding 相加的方式結合 position 訊息。 **c. Learnable embedding** 上圖帶星號的粉色框不是通過某個 patch 產生的,他是一個 learnable embedding(既做 $X_{class}$),其作用類似於 BERT中的 [class] token。 在 BERT 中。[class] token 經過 encoder 後對應的結果作為整個句子的表示; 類似地,這裡 $X_{class}$ 經過 encoder 後的對應的結果也最為整個圖的表示。 為什麼 BERT 或者這篇文章的 ViT 要多加一個 token 呢?因為如果人為指定一個 embedding ,經過 encoder 得到的結果作為整體的表示,則不可避免會使得整體表示偏向於這個指定 embedding 的訊息,而這個新增的 token 沒有語意訊息,與圖像的任何 patch 無關,所以可以公平的反應全圖的資訊。 **d. Transformer encoder --- 4.5 INSPECTING VISION TRANSFORMER ![](https://i.imgur.com/NbUVSB7.png) 在中等規模的數據集上(例如ImageNet),transformer 模型的表現不如ResNets; 而當數據及的規模擴大, transformer 模型的效果接近或是超過目前的一些 SOTA。 ## 補充 ![](https://i.imgur.com/Kqpigd1.png) ![](https://i.imgur.com/4CNGHhn.png) ![](https://i.imgur.com/KgjtW5H.png) ![](https://i.imgur.com/q8bss0z.png) **Transformer** ![](https://i.imgur.com/Nx3KLcj.png) ## Reference https://arxiv.org/abs/2010.11929 https://zhuanlan.zhihu.com/p/266311690 ###### tags: `uscc論文`