XYZNOT

論文 · arXiv 2010.11929

一張圖片相當於 16x16 個文字:大規模圖像識別的 Transformer 模型 (An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale)

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

發表於 cs.CVcs.AIcs.LG arXivPDF

用 XYZNOT 閱讀(全文翻譯與 AI 講解)

三句話總結

  1. 🎯 卷積神經網路憑藉強大的歸納偏向主導了電腦視覺領域,而標準 Transformer 則缺乏直接且具可擴展性應用於 2D 圖像的方法。
  2. 🔧 將圖像切分為固定大小的扁平化區塊(例如 16x16),線性投影為 token 嵌入,加入位置嵌入,並在前方加上 [class] token 後輸入標準 Transformer 編碼器。
  3. 📈 在 JFT-300M 上預訓練時,ViT-H/14 在 ImageNet 上達到 88.55% 的 top-1 準確率、在 ImageNet ReaL 上達到 90.72%、在 VTAB 上達到 77.63%,且預訓練計算量顯著低於同等效能的 CNN。

摘要

儘管 Transformer 架構已成為自然語言處理任務的事實標準,但其在電腦視覺領域的應用仍然有限。在視覺領域中,注意力機制要麼與卷積神經網路結合使用,要麼用於替換卷積神經網路的某些組件,同時保持其整體結構不變。我們證明了對 CNN 的這種依賴並非必要,直接將純 Transformer 應用於圖像區塊(patches)序列,即可在圖像分類任務中表現出色。當在大規模數據上進行預訓練並遷移至多個中小型圖像識別基準(ImageNet、CIFAR-100、VTAB 等)時,Vision Transformer (ViT) 與最先進的卷積神經網路相比,取得了優異的結果,同時所需的訓練計算資源大幅減少。

英文原文摘要

While the Transformer architecture has become the de-facto standard for natural language processing tasks, its applications to computer vision remain limited. In vision, attention is either applied in conjunction with convolutional networks, or used to replace certain components of convolutional networks while keeping their overall structure in place. We show that this reliance on CNNs is not necessary and a pure transformer applied directly to sequences of image patches can perform very well on image classification tasks. When pre-trained on large amounts of data and transferred to multiple mid-sized or small image recognition benchmarks (ImageNet, CIFAR-100, VTAB, etc.), Vision Transformer (ViT) attains excellent results compared to state-of-the-art convolutional networks while requiring substantially fewer computational resources to train.

論文解讀

問題與動機

長期以來,卷積架構(如 ResNet)憑藉平移等變性(translation equivariance)與二維局部性等硬編碼的歸納偏向(inductive biases),一直是現代電腦視覺的基石。雖然 Transformer 憑藉優異的計算效率與龐大的可擴展性成為自然語言處理(NLP)的標準,但先前將自注意力機制引入視覺領域的嘗試,通常是將注意力機制與 CNN 骨幹網路結合,或是使用難以在硬體加速器上高效擴展的特化局部/軸向注意力模式。本文探討純 Transformer 架構在僅進行極小修改的情況下,直接應用於圖像區塊序列時,能否匹敵或超越最先進的 CNN。

核心概念

  • 圖像即文字序列:將圖像 切分為大小為 的不重疊區塊。扁平化後的區塊與 NLP 中的 token 處理方式完全相同。
  • 極小化歸納偏向:不同於 CNN 在每一層都具備空間局部性與平移等變性,ViT 在所有區塊之間使用全局自注意力機制。僅在提取區塊以及為高解析度微調插值位置嵌入時,才會參考到 2D 結構。
  • 規模勝過歸納偏向:由於缺乏強大的歸納偏向,ViT 在中小型數據集上(如未經強力正則化的標準 ImageNet)表現不如 ResNet。然而,當在大規模數據集(包含 1,400 萬張圖像的 ImageNet-21k 或 3.03 億張圖像的 JFT-300M)上進行預訓練時,ViT 的表現能匹敵或超越 CNN,同時消耗顯著更少的訓練 FLOPs。

方法

  1. 區塊嵌入與輸入構建: 給定區塊大小 ,圖像會產生 個區塊。每個扁平化的區塊 透過矩陣 線性投影至維度 。在序列前加入可學習的分類 token ,並加上 1D 可學習位置嵌入 :
  2. Transformer 編碼器層: 序列通過 個相同的區塊,交替使用多頭自注意力(MSA)與 MLP 區塊,並採用前置層正規化(pre-LayerNorm, LN)與殘差連接:
  3. 特徵表示與預測頭: 特徵表示取自第一個輸出 token: 在預訓練期間,使用小型 MLP(帶有一個隱藏層)作為分類頭;在微調時,則替換為單個線性投影層()。
  4. 更高解析度微調: 當在更高圖像解析度(例如 或 )下微調時,區塊大小 保持不變,這會增加序列長度 。預訓練的 1D 位置嵌入會根據其原始空間網格位置,透過 2D 雙三次插值(bicubic interpolation)進行調整。

結果

  • 與 SOTA 比較:
    • 在 JFT-300M 上預訓練的 ViT-H/14 在 ImageNet 上達到 88.55%、ImageNet ReaL 達到 90.72%、CIFAR-100 達到 94.55%,以及 VTAB 19 項任務套件達到 77.63%,僅耗費 2.5k TPUv3-core-days。
    • 在 JFT-300M 上預訓練的 ViT-L/16 在 ImageNet 上達到 87.76%,僅需 0.68k TPUv3-core-days,優於 BiT-L(ResNet152x4, 87.54%, 9.9k TPUv3-core-days),並接近 Noisy Student EfficientNet-L2(88.4/88.5%, 12.3k TPUv3-core-days)。
    • 公開數據集預訓練:在 ImageNet-21k 上預訓練的 ViT-L/16 在 ImageNet 上達到 85.30%。
  • 計算量與效能的權衡: 在 JFT-300M 的擴展性實驗中,純 ViT 在柏拉圖前沿(Pareto frontier)上全面超越 ResNet,達到相同準確率所需的計算量減少了 到 。
  • 內部表徵特性: 較低的層中同時存在關注整個圖像的注意力頭,以及具有較小、局部注意力距離的注意力頭。注意力距離通常隨著網路深度單調增加。

局限性與未解決問題

  • 數據飢渴(Data Hunger):若沒有大量的預訓練數據(ImageNet-21k 或 JFT-300M)或強力的正則化,ViT 在小型數據集上的泛化能力較差。
  • 自我監督學習差距:使用遮蔽區塊預測(masked patch prediction)的初步實驗在 ImageNet 上達到 79.9%(ViT-B/16),與監督式預訓練相比仍有 4% 的效能差距。
  • 密集預測任務的應用:最初的工作僅專注於分類;將純區塊 Transformer 改編應用於物件偵測和語意分割等密集空間任務,仍是持續進行中的研究挑戰。

關鍵術語

Vision Transformer (ViT)
一種純 Transformer 架構,直接應用於不重疊圖像區塊序列以進行視覺任務,無需使用卷積進行特徵提取。
Patch Embeddings (區塊嵌入)
將扁平化的 像素區塊線性投影至模型潛在空間後所獲得的 維表示。
Classification Token ([class])
預先置於區塊序列前方的可學習 token,其在最後一個 Transformer 層輸出後的狀態將作為整個圖像的特徵表示。
Inductive Bias (歸納偏向)
模型架構內建的假設;在 CNN 中包括空間局部性與平移等變性,而這些在 ViT 中大部分都不存在。
Position Embeddings (位置嵌入)
加至區塊嵌入中的 1D 可學習向量,用於保留序列中的空間順序資訊。
Attention Distance (注意力距離)
注意力頭在圖像中整合資訊的平均空間距離,概念上類似於 CNN 中的感受野(receptive field)大小。
Hybrid Architecture (混合架構)
一種將區塊嵌入投影應用於從早期卷積骨幹網路提取的特徵圖,而非直接應用於原始圖像像素的模型架構。
Visual Task Adaptation Benchmark (VTAB)
一個基準測試套件,包含分為自然(Natural)、特化(Specialized)和結構化(Structured)三類的 19 項多樣化視覺任務,每項任務使用 1,000 個樣本進行評估。

常見問題

為什麼 ViT 在 ImageNet-1k 等較小的數據集上表現比 ResNet 差?

Transformer 缺乏卷積架構所具備的局部性與平移等變性等歸納偏向。在較小的數據集上,由於 ViT 必須從頭學習空間關係,因此容易過擬合;而 ResNet 硬編碼的歸納偏向使其在有限數據下具有更高的樣本效率。

ViT 在微調時如何處理不同或更高解析度的圖像?

ViT 保持區塊大小不變,這會增加總序列長度。預訓練的 1D 位置嵌入會映射回原始的 2D 網格,並使用 2D 雙三次插值(bicubic interpolation)進行調整以匹配新的網格大小。

具備 2D 感知的空間位置嵌入是否比標準 1D 嵌入更能提升 ViT 效能?

不會。作者發現 2D 座標嵌入或相對位置嵌入的效能,與標準的可學習 1D 位置嵌入幾乎完全相同,因為模型本身就能輕鬆學習到 2D 的行列拓撲結構。

ViT 與混合架構(Hybrid architecture)有何差異?

純 ViT 直接將原始輸入圖像切分為 的像素區塊並進行線性投影。而混合模型則是先讓圖像通過前置的 ResNet 骨幹網路,再從產生的中間特徵圖中提取區塊 token。

本頁解讀由 AI 根據論文生成,可能有錯誤;細節請以原文為準。

用 XYZNOT 閱讀(全文翻譯與 AI 講解)