文 / Neil Houlsby 研究員 和 Dirk WeissenbornSella Nevo, 高級軟體工程師,Google Research
使用商業 GPU 硬體為訓練提供了更強的計算能力。
因此,自 2012 年起,CNN 就已成為視覺任務的首選模型。
使用 CNN 的好處在於,它們無需手動設計的視覺特徵,而是直接從數據「端到端」執行學習任務。但是儘管 CNN架構本身專為圖像設計,無需手動提取特徵,但其對計算能力要求很高。展望下一代可擴展視覺模型,人們可能會思考這種特定於領域的設計是否有必要,或者考慮是否可以成功利用更多與領域無關的高效計算架構來獲得 SOTA 的成果。
我們朝這個方向邁出了第一步,推出了 Vision Transformer (ViT)。這是一種儘可能基於最初為基於文本的任務而設計的 Transformer 架構的視覺模型。ViT 將輸入圖像表示為一系列圖塊,類似於在將 Transformer 應用於文本時使用的一系列單詞嵌入,並且可直接預測圖像的類別標籤。使用充足的數據進行訓練時,ViT 可表現出卓越的性能,優於與之對等的先進 CNN,而所需資源僅為後者的四分之一。為了促進這一領域的進一步研究,我們開源了代碼和模型。
Vision Transformer
https://arxiv.org/abs/2010.11929
Transformer
https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf
代碼和模型
https://github.com/google-research/vision_transformer
Vision Transformer 將輸入圖像視為一系列圖塊,類似於自然語言處理 (NLP) Transformer 生成的一系列詞嵌入
Transformer 將文本中一系列單詞作為輸入,然後將其用於分類、翻譯或其他 NLP 任務。對於 ViT,我們儘量避免修改 Transformer 設計,使其能夠直接對圖像(而不是文字)進行處理,同時觀察模型能夠自行學到多少有關圖像結構的知識。
ViT 會將圖像分為方塊網格,通過連接一個方塊中所有像素通道,然後將其線性投影到所需的輸入維度,將每個方塊展平為單個矢量。Transformer 與輸入元素的結構無關,因此我們在每個方塊中添加了可學習的位置 Embedding,使模型能夠了解圖像結構。按理說,ViT 並不知道圖像中各方塊的相對位置,甚至不知道圖像具有 2D 結構,它必須從訓練數據中學習這類相關信息,並在位置嵌入中編碼結構信息。
首先,我們使用 ImageNet 訓練 ViT。在此階段,ViT 最高獲得了 77.9% top-1 準確率。對於首次嘗試來說,這個表現相當不錯,但較最先進水平仍相去甚遠:目前使用 ImageNet(無額外數據)訓練的最佳 CNN 的準確率可達 85.8%。儘管採取了緩解策略(例如正則化),但 ViT 並未內置充足的圖像相關知識,因此仍過擬合 ImageNet 任務。
為了研究數據集大小對模型性能產生的影響,我們使用數據集 ImageNet-21k(1400 萬張圖像,21000 個類別)和 JFT(3 億張圖像,18000 個類別)訓練 ViT,並將結果與使用相同數據集訓練的最先進 CNN Big Transfer(BiT)進行比較。我們之前觀察到,使用 ImageNet 訓練(100 萬張圖像)時,ViT 的性能明顯低於與之對等的 CNN (BiT)。但是,使用 ImageNet-21k(1400 萬張圖像)訓練時,ViT 與 BiT 性能相當;而使用 JFT(3 億張圖像)訓練時,ViT 的性能優於 BiT。
最後,我們分析了訓練模型所需計算量。為此,我們使用 JFT 訓練了幾種不同的 ViT 和 CNN 模型。這些模型涵蓋了各種模型大小和訓練時間。因此,它們需要不同的計算量來進行訓練。我們觀察到,給定計算量的情況下,ViT 的性能優於對等的 CNN。
左圖:使用不同數據集進行預訓練時 ViT 的性能;右圖:ViT 具有出色的性能/計算權衡
我們的數據表明,(1) 經過充分訓練的 ViT 可以表現出良好的性能,(2) ViT 在較小和較大的計算規模下均具有出色的性能/計算規模權衡。因此,為了確定在更大計算規模下其性能是否能夠繼續提升,我們訓練了一個具有 6 億個參數的 ViT 模型。
這一大型 ViT 模型在多個熱門基準上均表現出最先進的性能,其中在 ImageNet 上可達到 88.55% top-1 準確率,在 CIFAR-10 上則為 99.50%。ViT 在 ImageNet 評估集「ImageNet-Real」的清理版本上也表現出色,可達到 90.72% top-1 準確率。最後,即使訓練數據點非常少,ViT 仍可以出色完成各類任務。例如,在 VTAB-1k 套件(19 個任務,每個有 1000 個數據點)上,ViT 的準確率可達 77.63%,遠遠領先於最先進 (SOTA) 的單模型 (76.3%),甚至可與 SOTA 多模型集合 (77.6%) 相媲美。最重要的是,與以前的 SOTA CNN 相比,ViT 能夠使用更少的計算資源獲得這些結果,例如,ViT 使用的計算資源僅為預訓練 BiT 模型的四分之一。
Vision Transformer 在熱門基準上表現出的性能可媲美甚至超過最先進的 CNN。左圖:熱門圖像分類任務,包括 ImageNet(包含新的驗證標籤 ReaL 和 CIFAR)、Pets 和 Flowers);右圖:VTAB 分類套件中 19 個任務的平均值
為了直觀地了解模型所學內容,我們將其某些內部工作可視化。首先,我們看一下位置嵌入,即模型學習編碼相關方塊相對位置的參數,並發現 ViT 能夠再現直觀的圖像結構。每個位置嵌入與同行同列的其他位置嵌入最為相似,說明該模型已恢復了原始圖像的網格結構。然後,我們檢查了每個 Transformer 塊中各個元件之間的平均空間距離。在較高層(深度為 10-20)僅使用全局特徵(即較大的注意力距離),但較低層(深度為 0-5)則捕獲全局和局部特徵,如平均注意力距離的範圍較大。相反,CNN 的較低層中僅存在局部特徵。這些實驗表明,ViT 可學習硬編碼到 CNN 中的特徵(如對網格結構的認識),但也可以自由學習更多通用模式,例如較低層中局部和全局特徵的混合,這有助於泛化。
左圖:ViT 通過其位置嵌入學習圖塊的網格狀結構;右圖:ViT 的較低層包含全局和局部特徵,較高層僅包含全局特徵
儘管 CNN 徹底改變了計算機視覺,但我們的結果表明,沒有必要為圖像任務量身定製模型,甚至定製模型不是性能最好的模型。數據集規模在不斷擴大,無監督和半監督方法也在不斷發展,因此我們越來越需要開發出能夠更高效地使用這些數據集進行訓練的新型視覺架構。我們相信 ViT 是邁向可擴展通用架構的第一步,並對未來的發展充滿期待。這些架構能夠解決多種視覺任務,甚至多個領域的任務。
我們研究的預印本以及代碼和模型均已公開。
我們要感謝柏林、蘇黎世和阿姆斯特丹的論文合著者:Alexey Dosovitskiy、Lucas Beyer、Alexander Kolesnikov、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gelly 和 Jakob Uszkoreit。我們要感謝 Andreas Steiner 在基礎架構和開源方面提供的關鍵幫助,Joan Puigcerver 和 Maxim Neumann 在大規模培訓基礎架構方面所做的工作,以及 Dmitry Lepikhin、Aravindh Mahendran、Daniel Keysers、Mario Lučić、Noam Shazeer 和 Colin Raffel 提供的實用意見。最後,我們要感謝 Tom Small 為本文創作的 Vision Transformer 動畫。
更多 AI 相關閱讀: