華為諾亞方舟實驗室聯合北大和悉大整理了業界第一篇視覺Transformer綜述。2021 年對計算機視覺來說是非常重要的一年,各個任務的 SOTA 不斷被刷新。這麼多種 Vision Transformer 模型,到底該選哪一個?新手入坑該選哪個方向?華為諾亞方舟實驗室的這一篇綜述或許能給大家帶來幫助。

綜述論文鏈接:https://ieeexplore.ieee.org/document/9716741/
諾亞開源模型:https://github.com/huawei-noah
華為 A+M 社區:https://www.mindspore.cn/resources/hub
如何將 Transformer 應用於計算機視覺(CV)任務,引起了越來越多研究人員的興趣。在過去很長一段時間內,CNN 成為視覺任務中的主要模型架構,但如今 Transformer 呈現出巨大的潛力,有望在視覺領域中打敗 CNN 的霸主地位。谷歌提出了 ViT 架構,首先將圖像切塊,然後用純 Transformer 架構直接應用於圖像塊序列,就能完成對圖像的分類,並在多個圖像識別基準數據集上取得了優越的性能。除圖像分類任務之外,Transformer 還被用於解決其他視覺問題,包括目標檢測(DETR),語義分割(SETR),圖像處理(IPT)等等。由於其出色的性能,越來越多的研究人員提出了基於 Transformer 的模型來改進各種視覺任務。為了讓大家對視覺 Transformer 在這兩年的飛速發展有一個清晰的感受,圖 1 展示了視覺 Transformer 的發展里程碑,從圖像分類到目標檢測,從圖片生成到視頻理解,視覺 Transformer 展現出了非常強的性能。
對於很多剛接觸視覺 Transformer 的研究員,看到這麼多模型架構或許一時沒有頭緒,在面對具體應用需求的時候,也不知道選哪一個視覺 Transformer 架構。另外,想做視覺 Transformer 的同學也經常在問還有沒有新方向可以挖掘。這些問題或多或少的都可以從這一篇涵蓋了 200 多篇前沿論文的綜述中找到答案:按照視覺 Transformer 的設計和應用場景,本文對視覺 Transformer 模型進行了系統性的歸類,如表 1 所示:骨幹網絡、高 / 中層視覺、底層視覺、多模態等,並且在每一章中針對任務特點進行詳細分析和對比;
本文針對高效的視覺 Transformer 進行了詳細的分析,尤其是在標準數據集和硬件上進行了精度和速度的評測,並討論了一些 Transformer 模型壓縮和加速的方法;
華為是一家具有軟硬件全棧 AI 解決方案的公司,基於 A+M 生態,在 Transformer 領域已經做出了很多有影響力的工作,基於這些經驗並且聯合了業界知名學者一起進行了深入思考和討論,給出了幾個很有潛力的未來方向,供大家參考。

附華為諾亞方舟實驗室 Transformer 系列工作:NLP 大模型盤古 Alpha:https://arxiv.org/abs/2104.12369
中文預訓練模型哪吒:https://arxiv.org/abs/1909.00204
輕量模型 TinyBERT:https://arxiv.org/abs/1909.10351
底層視覺 IPT:https://arxiv.org/abs/2012.00364
多模態 - 悟空:https://arxiv.org/abs/2111.07783
骨幹網絡架構 TNT:https://arxiv.org/abs/2103.00112
視覺 Transformer 的所有組件,包括多頭自注意力、多層感知機、殘差連接、層歸一化、位置編碼和網絡拓撲結構,在視覺識別中起着關鍵作用。為了提高視覺 transformer 的精度和效率,業界已經提出了許多模型。下表總結了視覺 Transformer 骨幹網絡的結果,可以更好分析現有網絡的發展趨勢。從圖 2 中的結果可以看出,將 CNN 和 Transformer 結合起來可以獲得更好的性能,這表明卷積的局部連接和注意力的全局連接能夠相互補充。
表 2 代表性 CNN 和 Transformer 網絡在 ImageNet 結果的對比。
圖 2 代表性 CNN 和 Transformer 網絡的 FLOPs / 吞吐量對比基於 Transformer 的目標檢測方法也引起了廣泛的興趣,這些方法大致可以分為兩類:基於 Transformer 的檢測集合預測方法和基於 Transformer 骨幹網絡的檢測方法。與基於 CNN 的檢測器相比,基於 Transformer 的方法在準確性和運行速度方面都表現出了強大的性能。表 3 展示了在 COCO 數據集上基於 Transformer 的不同目標檢測器的性能。將 Transformer 用於中高層視覺任務,在輸入 embedding、位置編碼、損失函數以及整體架構設計等方面都有較多的探索空間。一些現有方法從不同角度改進自注意力模塊,如變形注意力機制和自適應聚類。儘管如此,利用 Transformer 來解決中高層視覺任務的探索仍處於初步階段,需要整個業界進一步的研究。例如,在 Transformer 之前是否有必要使用 CNN 或 PointNet 等特徵提取模塊以獲得更好的性能?如何像 BERT 和 GPT-3 在 NLP 領域所做的那樣,使用大規模的預訓練數據充分利用 Transformer 的特性?如何通過結合特定任務的先驗知識來設計更強大的體系結構?之前的一些工作已經對上述問題進行了初步討論,期待有更多研究來探索更強大的視覺 Transformer。除了目標檢測,Transformer 還被應用於其他中高層視覺任務,如圖像分割、人體姿態估計、目標跟蹤等,詳細內容可參考原論文。
表 3 基於 Transformer 的目標檢測器在 COCO2017 上的結果對比底層視覺是計算機視覺領域的一個重要問題,如圖像超分辨率和圖像生成等,而目前也有一些工作來研究如何將 Transformer 應用於底層視覺中來。這些任務通常將圖像作為輸出(高分辨率或去噪圖像),這比分類、分割和檢測等高層視覺任務(輸出是標籤或框)更具挑戰性。圖 3 和圖 4 展示了在底層視覺中使用 Transformer 的方式。在圖像處理任務中,首先將圖像編碼為一系列 token,Transformer 編碼器使用該序列作為輸入,進而用 Transformer 解碼器生成所需圖像。在圖像生成任務中,基於 GAN 的模型直接學習解碼器生成的 token,通過線性映射輸出圖像,而基於 Transformer 的模型訓練自編碼器學習圖像的碼本,並使用自回歸 Transformer 模型預測編碼的 token。而一個有意義的未來研究方向是為不同的圖像處理任務設計合適的網絡架構。

許多研究開始熱衷於挖掘 Transformer 在處理多模態任務(如視頻 - 文本、圖像 - 文本和音頻 - 文本)的潛力。CLIP 是其中影響力較大的一個工作, 其將自然語言作為監督信號,來學習更有效的圖像表示。CLIP 使用大量文本圖像對來聯合訓練文本編碼器和圖像編碼器。CLIP 的文本編碼器是一個標準的 Transformer,具有 mask 的自注意力層;對於圖像編碼器,CLIP 考慮了兩種類型的架構:ResNet 和視覺 Transformer。CLIP 在一個新採集的數據集上進行訓練,該數據集包含從互聯網上收集的 4 億對圖像 - 文本對。CLIP 展示了驚人的零樣本分類性能,在 ImageNet-1K 數據集上實現了 76.2% top-1 精度,而無需使用任何 ImageNet 訓練標籤。華為諾亞的悟空(英文名:FILIP)模型使用雙塔架構構建圖文表徵,取得了更好的效果,如圖 5 所示。總之,基於 transformer 的多模態模型在統一各種模態的數據和任務方面顯示出了其架構優勢,這表明了 transformer 具備構建一個能夠處理大量應用的通用智能代理的潛力。
儘管 Transformer 模型在各種任務中取得了成功,但它們對內存和計算資源的高要求阻礙了它們在端側設備(如手機)上的部署。文章還回顧了為高效部署而對 Transformer 模型進行壓縮和加速的研究,這包括網絡剪枝、低秩分解、知識蒸餾、網絡量化和緊湊結構設計。表 4 列出了一些壓縮 Transformer 模型的代表性工作,這些工作採用不同的方法來識別 Transformer 模型中的冗餘。具體來說,剪枝側重於減少 Transformer 模型中組件(例如,層、頭)的數量,而分解將原始矩陣表示為多個小矩陣。緊湊模型也可以直接手動(需要足夠的專業知識)或自動(例如通過 NAS)設計來得到。
作為一篇綜述論文,對所探究的領域未來方向的牽引也是非常重要的。本文的最後,也為大家提供了幾個有潛力並且很重要的方向:業界流行有各種類型的神經網絡,如 CNN、RNN 和 Transformer。在 CV 領域,CNN 曾經是主流選擇,但現在 Transformer 變得越來越流行。CNN 可以捕捉歸納偏置,如平移等變和局部性,而 ViT 使用大規模訓練來超越歸納偏置。從現有的觀察來看,CNN 在小數據集上表現良好,而 Transformer 在大數據集上表現更好。而在視覺任務中,究竟是使用 CNN 還是 Transformer,或者兼二者之所長,是一個值得探究的問題。
大多數現有的視覺 Transformer 模型設計為只處理一項任務,而許多 NLP 模型,如 GPT-3,已經演示了 Transformer 如何在一個模型中處理多項任務。CV 領域的 IPT 能夠處理多個底層視覺任務,例如超分辨率、圖像去雨和去噪。Perceiver 和 Perceiver IO 也是可以在多個領域工作的 Transformer 模型,包括圖像、音頻、多模態和點雲。將所有視覺任務甚至其他任務統一到一個 Transformer(即一個大統一模型)中是一個令人興奮的課題。
另一個方向是開發高效的視覺 Transformer;具體來說,如果讓 Transformer 具有更高精度和更低資源消耗。性能決定了該模型是否可以應用於現實世界的應用,而資源成本則影響其在硬件設備上的部署。而通常精度與資源消耗息息相關,因此確定如何在兩者之間實現更好的平衡是未來研究的一個有意義的課題。
通過使用大量數據進行訓練,Transformer 可以在 NLP 和 CV 不同任務上得到領先的性能。最後,文章還留下一個問題:Transformer 能否通過更簡單的計算範式和大量數據訓練獲得令人滿意的結果?

©THE END
轉載請聯繫本公眾號獲得授權
投稿或尋求報道:content@jiqizhixin.com