NLP/CV模型跨界進行到底,視覺Transformer要趕超CNN?

2020-12-24 騰訊網

機器之心報導

機器之心編輯部

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

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

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

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

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

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

NLP 領域中的 Transformer VS 計算機視覺領域中的 CNN

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

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

Transformer 向視覺領域的跨界融合

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

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

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

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

模型和方法

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

Vision Transformer(ViT)

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

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

Vision Transformer 在所有層使用相同的寬度,所以一個可訓練的線性投影將每個向量化 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)與 SOTA CNN 模型進行對比,結果參見下表 2。

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

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

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

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

預訓練數據要求

Vision Transformer 在大型 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:

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

可擴展性研究

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

實驗結果表明:

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

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

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

ViT 如何處理圖像數據?

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

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

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

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

參考連結:

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

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

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

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

相關焦點

  • NLP/CV模型跨界,視覺Transformer趕超CNN?
    機器之心報導機器之心編輯部在計算機視覺領域中,卷積神經網絡(CNN)一直佔據主流地位。不過,不斷有研究者嘗試將 NLP 領域的 Transformer 進行跨界研究,有的還實現了相當不錯的結果。特斯拉 AI 負責人 Andrej Karpathy 轉發了該論文,並表示「樂見計算機視覺和 NLP 領域日益融合」。前有 Facebook將 Transformer 應用於目標檢測任務、OpenAI 用 GPT-2 做圖像分類的嘗試,這篇「跨界」論文又有哪些新嘗試呢?
  • 如何看待Transformer在CV上的應用前景,未來有可能替代CNN嗎?
    但為什麼cv很少用?因為參數太特麼多了,多到現有設備難以維持多層fc。所以聰明的人提出了share weights的思想,大大減少了參數量,後續工作也就變成了如何擴大感受野,從而有了加深網絡深度,金字塔,或者其他方法。如果cnn是參數量和性能的折衷,那麼某種意義上,我覺得transformer對於cv領域來說就是cnn和fc的折衷,沒什麼稀奇,只能說有錢了,有設備了,往全局性上去考量很正常。
  • 【綜述專欄】3W字長文帶你輕鬆入門視覺transformer
    本文從transformer結構出發,結合視覺中的transformer成果(具體是vision transformer和detr)進行分析,希望能夠幫助cv領域想了解transformer的初學者快速入門。由於本人接觸transformer時間也不長,也算初學者,故如果有描述或者理解錯誤的地方歡迎指正。本文的大部分圖來自論文、國外博客和國內翻譯博客,在此一併感謝前人工作,具體連結見參考資料。
  • 熱門的模型跨界,Transformer、GPT做CV任務一文大盤點
    其實不然,現階段已出現好多研究,它們通過算法的改進,將在 NLP 領域表現良好的模型,如 Transformer、GPT 等進行改進並應用於視覺任務,不僅實現了模型跨界,而且取得了不錯的性能。模型跨界效果如何呢?人工智慧的快速發展已經淋漓盡致地體現在我們的日常生活中,從人臉識別、語音識別到機器翻譯等等,無不展示著 AI 帶來的便利。
  • NLP攜手Transformer跨界計算機視覺,DETR:目標檢測新範式
    其實,它還可以用來進行目標檢測。Facebook AI 的研究者首先推出了 Transformer 視覺版本——Detection Transformer(DETR),填補了 Transformer 用於目標檢測的空白,對標超越 Faster RCNN。基於 DETR,研究者們提出了多種優化版本進行目標檢測任務,效果還不錯。
  • Transformer在CV領域有可能替代CNN嗎?
    傳統方法在視覺任務上的應用絕大多數都依賴於在某個領域具有豐富經驗的專家,去針對具體的任務設計出一組最具有代表性的數據表示來作為輸入特徵進行處理,使得特徵之間具備可區分性,典型的有SIFT。  其次,一些特徵提取的方法也需要人為的參與,手工設計出一些特徵提取算子,比如一些經典的邊緣檢測算子,水平檢測,垂直檢測等。
  • nlp領域發生了新的技術突破,用attention機制研究nlp領域
    近期,nlp領域發生了一系列的技術突破。包括:attention機制,cnn,adaptive attention network(an),兩層cnn相比較,an表現優於一層的cn。今天我們將從這兩種attention機制開始研究nlp領域突破性技術!
  • 視覺Transformer最新綜述
    因此,進一步研究 Transformer 在自然語言處理和計算機視覺領域的應用具有重要意義。Revisiting Transformers for NLPTransformers 出現後,克服了RNN訓練速度慢的缺陷,使得大規模預訓練模型成為可能。BETR 及其變種(SpanBERT,RoBERTa)等都是基於 transformer 的模型。
  • 1,CV;2,NLP;3,推薦系統?
    現在就差壓縮這些巨無霸還有搞頭視覺各類基礎模塊全都服務化了,而且這東西走集中調度比較坑,中臺搞了人家業務方也不一定會用,github調包太方便了,完全可以自己啟動,現在中臺血拼視覺能力靠的是大量gpu伺服器和低成本並發能力,你要10個gpu跑多少qps,我做到5個,拼這種能力,沒人關心性能,只關心成本。
  • 一文學會目前最火NLP三大方法:基於TransFormer、RNN\CNN、機器學習!真實實例+解決方法快速入門!
    實例說明1.nlp-getting-started 是kaggle入門機器學習競賽之一(https://www.kaggle.com/c/nlp-getting-started) 對於希望開始使用自然語言處理的數據科學家而言,這一特殊挑戰是完美的。比賽數據集不是太大,即使你沒有太多的個人計算能力,則可以完成所有的工作。
  • 復旦邱錫鵬教授:2020最新NLP預訓練模型綜述
    背景「nlp、cv領域的傳統方法極度依賴於手動特徵工程」。例如nlp中的log-linear、CRF模型等,cv中各種抽取特徵的模型,如sift特徵等。深度學習中本質上是一種表示學習,能夠一定程度上避免手動的特徵工程。
  • PTMs|2020最新NLP預訓練模型綜述
    由於篇幅原因,本文主要針對前面兩點進行梳理,即「目前主流的預訓練模型」和「預訓練模型的分類體系」。1. 背景「nlp、cv領域的傳統方法極度依賴於手動特徵工程」。例如nlp中的log-linear、CRF模型等,cv中各種抽取特徵的模型,如sift特徵等。深度學習中本質上是一種表示學習,能夠一定程度上避免手動的特徵工程。究其原因,主要得益於深度學習中一系列很強大的特徵提取器,如CNN、RNN、Transformer等,這些特徵提取器能夠有效地捕獲原始輸入數據中所蘊含的特點和規律。
  • 歷史最全深度學習與NLP核心概念、模型、策略及最新論文整理分享
    資源整理自網絡,源地址:https://github.com/neulab/nn4nlp-concepts/blob/master/concepts.md    帶論文連結資源下載地址:    連結: https://pan.baidu.com/s/1lC8DiPJnyzbxtvns-HXr_w
  • ​關於深度學習、NLP和計算機視覺的30個頂級Python庫
    Stanza(https://github.com/stanfordnlp/stanza/)GluonNLP(https://github.com/dmlc/gluon-nlp)GluonCV(https://github.com/dmlc/gluon-cv)
  • NLP領域最優秀的8個預訓練模型(附開源地址)
    自然語言處理應用能夠快速增長,很大程度上要歸功於通過預訓練模型實現遷移學習的概念。在本文中,我將介紹一些頂級的預訓練模型,你可以用它們來開始你的自然語言處理之旅,並複製該領域的最新研究成果。如今,自然語言處理(Natural Language Processing,NLP)應用已經變得無處不在。
  • ...利用基於遷移學習策略的transformer 模型進行Heck反應預測
    第一步,transformer模型首先在含有大量基礎化學反應的資料庫上進行端到端的訓練,從而獲得基礎的化學知識。第二步,transformer模型將所學的這些基礎化學知識遷移到Heck反應預測的目標任務中並且在Heck反應數據集上進一步訓練,從而結合基礎化學知識以及Heck特有的化學信息特徵。最後,模型根據預訓練和遷移訓練過程中學習到的知識要素做出相應的Heck反應產物的預測。
  • |利用基於遷移學習策略的transformer 模型進行Heck...
    Transformer-transfer learning模型的訓練步驟主要分為兩步:預訓練和遷移訓練。第一步,transformer模型首先在含有大量基礎化學反應的資料庫上進行端到端的訓練,從而獲得基礎的化學知識。
  • NLP三大特徵提取器全梳理:RNN vs CNN vs Transformer
    原創 Synced 機器之心機器之心原創編輯:陳萍在進行 NLP 模型訓練前,請先選擇一個好的特徵提取器。在中我們介紹了自然語言處理的基礎問題——文本預處理的常用步驟。
  • 【乾貨】NLP中「詞袋」模型和詞嵌入模型的比較(附代碼)
    什麼情況下詞袋模型比詞嵌入更具優勢,值得大家學習和收藏!那麼,我們是否還需要詞袋模型呢?實際上,在某些情況下,詞袋模型會表現地更好。二. 何時詞袋模型比詞嵌入更具優勢?代碼此示例代碼將在Count Occurrence,Normalized Count Occurrence和TF-IDF之間進行比較。
  • A Survey on Visual Transformer及引文理解
    因此,進一步研究Transformer在自然語言處理和計算機視覺領域的應用具有重要意義。3. Revisiting Transformers for NLPTransformers出現後,克服了RNN訓練速度慢的缺陷,使得大規模預訓練模型成為可能。BETR及其變種(SpanBERT,RoBERTa)等都是基於transformer的模型。