機器之心報道

機器之心編輯部

在計算機視覺領域中,卷積神經網絡(CNN)一直佔據主流地位。不過,不斷有研究者嘗試將NLP領域的Transformer進行跨界研究,有的還實現了相當不錯的結果。近日,一篇匿名的ICLR2021投稿論文將標準Transformer直接應用於圖像,提出了一個新的VisionTransformer模型,並在多個圖像識別基準上實現了接近甚至優於當前SOTA方法的性能。

10月2日,深度學習領域頂級會議ICLR2021論文投稿結束,一篇將Transformer應用於圖像識別的論文引起了廣泛關注。

特斯拉AI負責人AndrejKarpathy轉發了該論文,並表示「樂見計算機視覺和NLP領域日益融合」。

前有Facebook將Transformer應用於目標檢測任務、OpenAI用GPT-2做圖像分類的嘗試,這篇「跨界」論文又有哪些新嘗試呢?

Transformer架構早已在自然語言處理任務中得到廣泛應用,但在計算機視覺領域中仍然受到限制。在計算機視覺領域,注意力要麼與卷積網絡結合使用,要麼用來代替卷積網絡的某些組件,同時保持其整體架構不變。

該研究表明,對CNN的依賴不是必需的,當直接應用於圖像塊序列時,transformer也能很好地執行圖像分類任務。該研究基於大量數據進行模型預訓練,並遷移至多個圖像識別基準數據集(ImageNet、CIFAR-100、VTAB等),結果表明VisionTransformer(ViT)模型可以獲得與當前最優卷積網絡相媲美的結果,而其訓練所需的計算資源大大減少。

NLP領域中的TransformerVS計算機視覺領域中的CNN

基於自注意力的架構,尤其Transformer,已經成爲NLP領域的首選模型。該主流方法基於大型文本語料庫進行預訓練,然後針對較小的任務特定數據集進行微調。由於Transformer的計算效率和可擴展性,基於它甚至可以訓練出參數超過100B的模型。隨着模型和數據集的增長,性能仍然沒有飽和的跡象。

然而,在計算機視覺中,卷積架構仍然占主導地位。受NLP成功的啓發,多項計算機視覺研究嘗試將類CNN架構與自注意力相結合,有的甚至完全代替了卷積。後者雖然在理論上有效,但由於其使用了專門的注意力模式,因此尚未在現代硬件加速器上有效地擴展。因此,在大規模圖像識別任務中,經典的類ResNet架構仍然是最先進的。

Transformer向視覺領域的跨界融合

受到NLP領域中Transformer縮放成功的啓發,這項研究嘗試將標準Transformer直接應用於圖像,並儘可能減少修改。爲此,該研究將圖像分割成多個圖像塊(patch),並將這些圖像塊的線性嵌入序列作爲Transformer的輸入。然後用NLP領域中處理token的方式處理圖像塊,並以監督的方式訓練圖像分類模型。

在中等規模的數據集(如ImageNet)上訓練時,這樣的模型產生的結果並不理想,準確率比同等大小的ResNet低幾個百分點。這個看似令人沮喪的結果是可以預料的:Transformer缺少一些CNN固有的歸納偏置,例如平移同變性和局部性,因此在數據量不足的情況下進行訓練後,Transformer不能很好地泛化。

但是,如果在大型數據集(14M-300M張圖像)上訓練模型,則情況大爲不同。該研究發現大規模訓練勝過歸納偏置。在足夠大的數據規模上進行預訓練並遷移到數據點較少的任務時,Transformer可以獲得出色的結果。

該研究提出的VisionTransformer在JFT-300M數據集上進行預訓練,在多個圖像識別基準上接近或超過了SOTA水平,在ImageNet上達到了88.36%的準確率,在ImageNetReaL上達到了90.77%的準確率,在CIFAR-100上達到了94.55%的準確率,在VTAB基準19個任務中達到了77.16%的準確率。

模型和方法

研究者儘可能地遵循原始Transformer的設計。這種故意爲之的簡單設置具有以下優勢,即可擴展NLPTransformer架構和相應的高效實現幾乎可以實現開箱即用。研究者想要證明,當進行適當地擴展時,該方法足以超越當前最優的卷積神經網絡。

VisionTransformer(ViT)

該研究提出的VisionTransformer架構遵循原版Transformer架構。下圖1爲模型架構圖。

標準Transformer接收1D序列的token嵌入爲輸入。爲了處理2D圖像,研究者將圖像x∈R^H×W×C變形爲一系列的扁平化2Dpatchx_p∈R^N×(P^2·C),其中(H,W)表示原始圖像的分辨率,(P,P)表示每個圖像patch的分辨率。然後,N=HW/P^2成爲VisionTransformer的有效序列長度。

VisionTransformer在所有層使用相同的寬度,所以一個可訓練的線性投影將每個向量化patch映射到模型維度D上(公式1),相應的輸出被稱爲patch嵌入。

與BERT的[class]token類似,研究者在一系列嵌入patch(z_0^0=x_class)之前預先添加了一個可學習嵌入,它在Transformer編碼器(z_0^L)輸出中的狀態可以作爲圖像表示y(公式4)。在預訓練和微調階段,分類頭(head)依附於z_L^0。

位置嵌入被添加到patch嵌入中以保留位置信息。研究者嘗試了位置嵌入的不同2D感知變體,但與標準1D位置嵌入相比並沒有顯著的增益。所以,編碼器以聯合嵌入爲輸入。

Transformer編碼器由多個交互層的多頭自注意力(MSA)和MLP塊組成(公式2、3)。每個塊之前應用Layernorm(LN),而殘差連接在每個塊之後應用。MLP包含兩個呈現GELU非線性的層。

作爲將圖像分割成patch的一種替代方案,輸出序列可以通過ResNet的中間特徵圖來形成。在這個混合模型中,patch嵌入投影(公式1)被早期階段的ResNet取代。ResNet的其中一箇中間2D特徵圖被扁平化處理成一個序列,映射到Transformer維度,然後饋入並作爲Transformer的輸入序列。最後,如上文所述,將分類輸入嵌入和位置嵌入添加到Transformer輸入中。

微調和更高分辨率

研究者在大型數據集上預訓練ViT模型,並針對更小規模的下游任務對模型進行微調。爲此,研究者移除了預訓練預測頭,並添加了一個零初始化的D×K前饋層,其中K表示下游類的數量。與預訓練相比,在更高分辨率時進行微調通常更有益處。當饋入更高分辨率的圖像時,研究者保持patch大小不變,從而得到更大的有效序列長度。

ViT模型可以處理任意序列長度(取決於內存約束),但預訓練位置嵌入或許不再具有意義。所以,研究者根據預訓練位置嵌入在原始圖像中的位置,對它們進行2D插值操作。需要注意的是,只有在分辨率調整和patch提取中,才能將2D圖像的歸納偏置手動注入到ViT模型中。

實驗

該研究進行了大量實驗,並使用了多個ViT模型變體,參見下表1:

與SOTA模型的性能對比

研究者首先將最大的ViT模型(在JFT-300M數據集上預訓練的ViT-H/14和ViT-L/16)與SOTACNN模型進行對比,結果參見下表2。

表2:ViT模型與SOTA模型在流行圖像分類基準數據集上的性能對比。

從上表中可以看出,規模較小的ViT-L/16模型在所有數據集上的性能堪比或者超過BiT-L,同時它需要的算力也少得多。較大的ViTH-14模型進一步提升了性能,尤其在更具挑戰性的數據集上,如ImageNet、CIFAR-100和VTAB。ViTH-14模型在所有數據集上的性能匹配或超過SOTA,甚至在某些情況下大幅超過SOTA模型(如在CIFAR-100數據集上的性能高出1%)。在ImageNet數據集上,ViT模型的性能比NoisyStudent低了大約0.1%,不過在具備更乾淨ReaL標籤的ImageNet數據集上,ViT的性能超過SOTA模型。

下圖2將VTAB任務分解爲多個組,並對比了ViT與SOTA方法的性能,這些方法包括BiT、VIVI和S4L。

在Natural任務中,ViT-H/14的性能略低於BiT-R152x4;在Specialized任務中,ViT的性能超過BiT等方法;而在Structured任務中,ViT顯著優於其他方法。

預訓練數據要求

VisionTransformer在大型JFT-300M數據集上進行預訓練後表現出了優秀的性能。在ViT的歸納偏置少於ResNet的情況下,數據集規模的重要性幾何呢?該研究進行了一些實驗。

首先,在規模逐漸增加的數據集(ImageNet、ImageNet-21k和JFT300M)上預訓練ViT模型。下圖3展示了模型在ImageNet數據集上的性能:

下表3展示了模型在ImageNet、ImageNet-21k和JFT300M數據集上的性能對比情況。在前兩個規模較小的數據集上,ViT-Large模型的性能不如ViT-Base,但在規模較大的JFT300M數據集上,大模型展現出了優勢。這說明,隨着數據集規模的增大,較大的ViT模型變體優於較小的模型。

其次,研究者在JFT300M數據集的9M、30M和90M隨機子集以及完整數據集上進行了模型訓練。結果參見下圖4:

從圖中可以看到,在較小的數據集和相同的計算成本下,VisionTransformer比ResNet更加過擬合。該結果強化了這一認知:卷積歸納偏置對於規模較小的數據集較爲有用,但對於較大的數據集而言,學習相關模式就足夠了,甚至更加有效。

可擴展性研究

研究人員對不同模型執行了受控可擴展性研究(scalingstudy)。下圖5展示了模型在不同預訓練計算成本情況下的遷移性能:

實驗結果表明:

VisionTransformer在性能/算力權衡中顯著優於ResNet。

混合模型在較小計算成本的情況下略優於ViT,但在計算成本較高時,這一現象消失。該結果令人喫驚。

VisionTransformer在實驗嘗試的算力範圍內似乎並未飽和,未來可以進行更多可擴展性研究。

ViT如何處理圖像數據?

爲了瞭解ViT處理圖像數據的過程,研究者分析了其內部表示。

ViT的第一層將扁平化後的圖像塊線性投影至低維空間(公式1),下圖(左)展示了學得嵌入濾波器的主要組件。投影后,將學得的位置嵌入添加至圖像塊表示。下圖(中)展示了模型學習編碼圖像內的距離,表明距離越近的圖像塊更有可能具備更相似的位置嵌入。自注意力允許ViT集成整個圖像的信息,即使最低層也不例外。研究者調查了ViT網絡利用這一能力的程度。具體而言,該研究計算圖像空間中的平均距離(基於注意力權重)參見下圖右。「注意力距離」類似於CNN中的感受野大小。

ViT模型關注與分類具備語義相關性的圖像區域,參見圖6:

在知乎問題「ICLR2021有什麼值得關注的投稿?」下,多個回答提及了這篇論文,有解讀也有吐槽。更有網友表示:「我們正站在模型大變革的前夜,神經網絡的潛力還遠遠沒到盡頭。一種嶄新的強大的,足以顛覆整個CV和AI界的新模型才露出冰山一角,即將全面來襲。」

參考鏈接:

https://openreview.net/pdf?id=YicbFdNTTy

https://www.zhihu.com/question/423975807

如何根據任務需求搭配恰當類型的數據庫?

在AWS推出的白皮書《進入專用數據庫時代》中,介紹了8種數據庫類型:關係、鍵值、文檔、內存中、關係圖、時間序列、分類賬、領域寬列,並逐一分析了每種類型的優勢、挑戰與主要使用案例。

點擊閱讀原文或識別二維碼,申請免費獲取白皮書。

THEEND

轉載請聯繫本公衆號獲得授權

投稿或尋求報道:[email protected]

相關文章