機器之心發布
機器之心編輯部
作為自然語言處理領域的主流模型,Transformer 近期頻頻出現在計算機視覺領域的研究中。例如 OpenAI 的 iGPT、Facebook 提出的 DETR 等,這些跨界模型多應用於圖像識別、目標檢測等高層視覺任務。而華為、北大、悉大以及鵬城實驗室近期提出了一種新型預訓練 Transformer 模型——IPT(Image Processing Transformer),用於完成超解析度、去噪、去雨等底層視覺任務。該研究認為輸入和輸出維度相同的底層視覺任務更適合 Transformer 處理。
預訓練模型能否在視覺任務上復刻在自然語言任務中的成功?華為諾亞方舟實驗室聯合北京大學、雪梨大學、鵬城實驗室提出底層視覺 Transformer,使用 ImageNet 預訓練,在多項視覺任務上達到 SOTA。
與自然語言任務相比,視覺任務在輸入形式上有很大差別。Transformer 等模型在自然語言處理任務上展現出了強大的特徵學習能力,使用大量數據進行預訓練的策略獲得了成功。因此,很多研究都在考慮如何在計算機視覺領域發揮 Transformer 模型與預訓練的潛力。
近日,華為、北大、悉大以及鵬城實驗室的研究者提出了一個名為 IPT(Image Processing Transformer)的預訓練 Transformer 模型,用於完成超解析度、去噪、去雨等底層視覺任務。IPT 具備多個頭結構與尾結構用於處理不同的任務,不同的任務共享同一個 Transformer 模塊。預訓練得到的模型經過微調即可在多個視覺任務上大幅超越對應任務上的當前最好模型。
論文連結:https://arxiv.org/pdf/2012.00364.pdf
Transformer 真的比 CNN 要好嗎?
卷積神經網絡(CNN)是計算機視覺領域中的常用模型,自然語言處理領域中出類拔萃的 Transformer 模型在應用到計算機視覺任務中時,真的能比 CNN 更好嗎?
該研究通過一系列實驗回答了這個問題。
首先,研究者展示了經過預訓練的 IPT 模型在不同任務上微調後達到的性能。如圖 1 所示,在多項底層視覺任務中,IPT 模型均取得了巨大的性能提升。例如,對於不同倍率的超解析度任務,IPT 普遍能夠提升 0.4dB,而對於去噪和去雨任務則提升更多,提升了 1.6-2.0dB。
圖 1:IPT 模型與當前各項任務最好結果的對比情況。
為了更好地說明為什麼要用 Transformer,研究者還設計了一個基於 CNN 的預訓練模型作為對照,並在 DIV2K 數據集 2 倍超解析度的任務上探索了不同預訓練數據量對模型性能的影響。圖 2 展示了不同的數據量對 CNN 和 Transformer 模型的影響。結果顯示,在預訓練數據有限時,CNN 模型能獲得更好的性能。隨著數據量的增大,基於 Transformer 模塊的 IPT 模型獲得了顯著的性能提升,曲線趨勢也展現了 IPT 模型令人期待的潛力。
圖 2:預訓練數據量對 CNN 與 IPT 模型的影響。
可以看出,Transformer 模型能夠更充分地發揮大規模訓練數據的優勢。自然語言處理領域的成功經驗在底層視覺任務上得到了驗證。
底層視覺任務如何使用 Transformer
在自然語言任務中,Transformer 的輸入是單詞序列,圖像數據無法作為輸入。解決如何使用 Transformer 處理圖像的問題是將 Transformer 應用在視覺任務的第一步。
不同於高層視覺語義任務的目標是進行特徵抽取,底層視覺任務的輸入和輸出均為圖像。除超解析度任務之外,大多數底層視覺任務的輸入和輸出維度相同。相比於高層視覺任務,輸入和輸出維度匹配這一特性使底層視覺任務更適合由 Transformer 處理。
具體而言,研究者在特徵圖處理階段引入 Transformer 模塊,而圖像維度匹配則交給了頭結構與尾結構,如圖 3 所示:
圖 3:IPT 模型結構。
研究者首先將圖片經過一個頭結構變換為特徵圖:
接下來,再對特徵圖進行切塊與拉平操作。首先按照 P×P 的大小將特徵圖切割成 N 塊,每一個特徵塊再被拉平為維度為 P^2×C 的向量,得到
這樣一來,每個特徵向量可以等同於一個「單詞」,即可送入 Transformer 進行處理,得到維度相同的輸出特徵:
這些輸出特徵再經過整形和拼接操作,還原為與輸入相同維度的特徵圖。如此處理得到的特徵圖會被送入一個尾結構,被解碼為目標圖像。
有了頭結構和尾結構負責維度變換,Transformer 模塊可以專心地做特徵處理。這使得多任務的擴展變得簡單:對於不同的任務,只需要增加新的頭結構與尾結構即可,多種任務之間的 Transformer 模塊是共享的。為了適應多任務,研究者在 Transformer 的解碼模塊中加入了一個可學習的任務編碼。
底層視覺任務的預訓練與微調
Transformer 的成功離不開大量數據預訓練帶來的性能提升。在這篇論文中,針對底層視覺任務,研究者提出一種使用 ImageNet 數據集對模型進行預訓練的方法。結果顯示,經過預訓練的模型只需要做一些簡單微調即可適用於多種下遊任務。
研究者使用 ImageNet 數據集生成多種退化圖像,構成多種底層視覺任務訓練集。具體來說,對 ImageNet 數據集中的自然圖像進行下採樣即可得到用於超解析度任務的訓練數據;加入噪聲可生成用於去噪任務的訓練數據;加入雨痕可產生用於去雨任務的訓練集等。
利用這些人工合成的數據,配以對應任務的多頭多尾結構,多個任務的訓練數據同時進行訓練,整個模型可以通過監督損失函數進行訓練:
除此之外,為了提升模型在未曾預訓練過的任務上的性能(如不同倍率的超解析度、不同噪聲強度的去噪任務),研究者根據特徵塊之間的相關性引入了對比學習方法作為自監督損失函數。具體來說,來自於同一圖像的特徵塊之間的特徵應當相互接近,來自於不同圖像的特徵塊應當遠離。這一自監督損失函數如下所示:
研究者表示,通過引入這一對比損失函數,模型能夠在未經預訓練的任務上展現超越傳統方法的性能。
經過預訓練的 IPT 模型,只需要在特定任務的數據集上進行微調,即可在此任務上達到很好的效果。在微調階段,只有特定任務所對應的頭尾結構以及 Transformer 模塊被激活訓練,與此任務無關的頭尾模塊被暫時凍結。
IPT 刷榜多項底層視覺任務
為了證明 IPT 的有效性,研究者在多種底層視覺任務上測試了模型效果,包括 2 倍、3 倍和 4 倍的超解析度任務、兩種強度的去噪任務以及去雨任務。每個具體任務所採用的 IPT 模型均為同一個預訓練模型在特定任務上微調得到的。另外,研究者還做了一系列對照實驗來確定 Transformer、對比學習損失函數等不同模塊的重要性。所有實驗都是在英偉達 Tesla V100 GPU 和 PyTorch 上完成的。
首先對於超解析度任務,其預訓練樣本是將圖像進行 bicubic 下採樣得到的。研究者報告了在 Set5、Set14、B100 以及 Urban100 四個數據集上的結果,如表 1 所示。
表 1:超解析度任務實驗結果。
可以看出,IPT 模型在所有設定下均取得了最好的結果。尤其是在 Urban100 數據集上,對比當前最好的超解析度算法,IPT 模型展現出了大幅度的優勢。
如表 2 和表 3 所示,在去噪和去雨任務上,IPT 模型也展現出了類似的性能。
表 2:去噪任務實驗結果。
表 3:去雨任務實驗結果。
下圖展示了不同方法在去噪、去雨任務中的處理結果,從中可以看出 IPT 模型的輸出結果更接近真值圖像:
泛化性能
隨後研究者進一步測試了預訓練模型的泛化性能。具體做法是,將 IPT 模型在沒有預訓練過的任務上進行微調後測試。在表 4 中,對於噪聲強度為 10 和 70 的設定下(預訓練為 20 和 50),IPT 模型依舊展現出巨大的優勢,展示了預訓練模型良好的泛化性。
表 4:未經預訓練任務上的實驗結果。
控制變量研究
除此之外, 為了探究對比損失函數對模型學習表示能力的影響,研究者在 2 倍超解析度任務上測試了對比損失函數佔不同比例時模型的性能。表 5 展示了模型在 Set4 數據集上不同的對比損失函數權重得到的 PSNR。結果顯示,相比不加入此損失(λ=0)的情況,對比損失函數能夠進一步提升模型學習表示的能力。
表 5:對比損失函數的影響。
從實驗效果中可以看出,Transformer 模型在底層視覺任務上展現出了超過 CNN 的實力,說明 Transformer 在視覺任務中是可行的。不僅如此,它所表現出的因大量訓練數據而帶來的性能提升,展現出更大數據量、更大的模型在視覺領域的巨大潛力。這一方向值得更多的研究者做更多深入探索。
2020 NeurIPS MeetUp
12月6日,機器之心將舉辦2020 NeurIPS MeetUp。此次MeetUp精選數十篇論文,覆蓋深度學習、強化學習、計算機視覺、NLP等多個熱門主題,設置4場Keynote、13篇論文分享和28個Poster。
時間:12月6日9:00-18:00
地址:北京燕莎中心凱賓斯基飯店(亮馬橋)
原標題:《預訓練圖像處理Transformer:華為諾亞、北大等提出IPT模型,刷榜多項底層視覺任務》
閱讀原文