大模型被偷家!CNN搞多模態不弱于Transfromer(騰訊&港中文)
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
騰訊AI實驗室與港中文聯合團隊提出了一種新的CNN架構,圖像識別精度和速度都超過了Transformer架構模型。
切換到點云、音頻、視頻等其他模態,也無需改變模型結構,簡單預處理即可接近甚至超越SOTA。
團隊提出了專門用于大核CNN架構設計的四條guideline和一種名為UniRepLKNet的強力backbone。
只要用ImageNet-22K對其進行預訓練,精度和速度就都能成為SOTA——
ImageNet達到88%,COCO達到56.4 box AP,ADE20K達到55.6 mIoU,實際測速優勢很大。
在時序預測的超大數據上使用UniRepLKNet,也能達到最佳水平——
例如在全球氣溫和風速預測上,它就超越了Nature子刊上基于Transformer的前SOTA。
更多細節,我們接著看作者投稿。
“Transformer時代”,為什么還需要CNN
在正式介紹UniRepLKNet的原理之前,作者首先解答了兩個問題。
第一個問題是,為什么在Transformer大一統各個模態的時代還要研究CNN?
作者認為,Transformer和CNN只不過是相互交融的兩種結構設計思路罷了,沒有理由認為前者具有本質的優越性。
“Transformer大一統各個模態”正是研究團隊試圖修正的認知。
正如2022年初ConvNeXt、RepLKNet和另外一些工作問世之前,“Transformer在圖像任務上吊打CNN”是主流認知。
這幾項成果出現后,這一認知被修正為“CNN和Transformer在圖像任務上差不多”。
本研究團隊的成果將其進一步修正:在點云、音頻、視頻上,CNN比我們想象的強太多了。
在時序預測這種并不是CNN傳統強項的領域(LSTM等曾是主流,最近兩年Transformer越來越多),CNN都能超過Transformer,成功將其“偷家”。
因此,研究團隊認為,CNN在大一統這一點上可能不弱于Transformer。
第二個問題是,如何將一個為圖像任務設計的CNN用于音頻、視頻、點云、時序數據?
出于對簡潔和通用性的永恒追求,將UniRepLKNet用于其他模態時,不對模型架構主體做任何改變(以下實驗用的全都是UniRepLKNet-Small)。
只需要將視頻、音頻、點云、時序數據給處理成C×H×W的embedding map(對于圖像來說,C=3),就能實現到其他模態的過渡,例如:
- 把音頻的頻譜圖(Time×Frequency)看成是一幅單通道圖像,即C=1,H=T,W=F;
- 將點云進行三視圖投影,得到三幅單通道圖像,C=3,H和W可以隨意指定;
- 將視頻中的各幀拼接到一起,極為簡單地得到一張大圖(例如,16幀的3×224×224視頻拼接得到3×896×896的輸入);
- 對時序數據,借鑒CorrFormer中的embedding layer將數據轉換為隱空間中的張量然后簡單粗暴地將其reshape成一幅單通道圖像。
后文展示的結果將會證明,如此簡單的設計產生的效果是極為優秀的。
大卷積核CNN架構設計
2022年,RepLKNet提出了用超大卷積核(從13×13到31×31)來構建現代CNN以及正確使用超大卷積核的幾個設計原則。
但從架構層面看,RepLKNet只是簡單地用了Swin Transformer的整體架構,并沒有做什么改動。
當前大核CNN架構設計要么遵循現有的CNN設計原則,要么遵循現有的Transformer設計原則。
在傳統的卷積網絡架構設計中,當研究者向網絡中添加一個3×3或5×5卷積層時,往往會期望它同時產生三個作用:
- 增大感受野
- 提高抽象層次,例如從線條到紋理、從紋理到物體的局部
- 通過增加深度而一般地提高表征能力(越深,參數越多,非線性越多,擬合能力越高)
那么,設計大卷積核CNN架構時,應該遵循怎樣的原則呢?
本文指出,應該解耦上述三種要素,需要什么效果就用對應的結構來實現:
- 用少量大卷積核保證大感受野。
- 用depthwise 3×3等小卷積提高特征抽象層次。
- 用一些高效結構(如SE Block、Bottleneck structure等)來提高模型的深度從而增強其一般的表示能力。
這樣的解耦之所以能夠實現,正是大卷積核的本質優勢所保證的,即不依賴深度堆疊的大感受野。
經過系統研究,本文提出了大卷積核CNN設計的四條Architectural Guidelines。
根據這些guideline,本文提出的UniRepLKNet模型結構如下——
每個block主要由depthwise conv、SE Block和FFN三個部分組成。
其中depthwise conv可以是大卷積核(圖中所示的Dilated Reparam Block,其使用膨脹卷積來輔助大核卷積來捕捉稀疏的特征而且可以通過結構重參數化方法等價轉換為一個卷積層),也可以只是depthwise 3x3。
多項表現超越Transformer
作為圖像模態中的老三樣,ImageNet、COCO、ADE20K上的結果自然是不能少。論文中最多只用ImageNet-22K預訓練,沒有用更大的數據。
雖然大核CNN本來不是很重視ImageNet(因為圖像分類任務對表征能力和感受野的要求不高,發揮不出大kernel的潛力),但UniRepLKNet還是超過了最新的諸多模型,其實際測速的結果尤為喜人。
例如,UniRepLKNet-XL的ImageNet精度達到88%,而且實際速度是DeiT III-L的三倍。量級較小的UniRepLKNet相對于FastViT等專門設計的輕量級模型的優勢也非常明顯。
圖片
在COCO目標檢測任務上,UniRepLKNet最強大的競爭者是InternImage:
UniRepLKNet-L在COCO上不及InternImage-L,但是UniRepLKnet-XL超過了InternImage-XL。
考慮到InternImage團隊在目標檢測領域的積淀非常深厚,這一效果也算很不容易了。
在ADE20K語義分割上,UniRepLKNet的優勢相當顯著,最高達到55.6的mIoU。與ConvNeXt-XL相比超出了整整1.6。
為了驗證UniRepLKNet處理時序數據的能力,本文挑戰了一個數據規模超大的《Nature》級別的任務:全球氣溫和風速預測。
盡管UniRepLKNet本來是為面向圖像任務設計的,它卻能超過為這個任務而設計的CorrFormer(前SOTA)。
這一發現尤為有趣,因為這種超大規模時間序列預測任務聽起來更適合LSTM、GNN和Transformer,這次CNN卻將其“偷家”了。
在音頻、視頻和點云任務上,本文的極簡處理方法也都十分有效。
One More Thing
除了提出一種在圖像上非常強力的backbone之外,本文所報告的這些發現似乎表明,大核CNN的潛力還沒有得到完全開發。
即便在Transformer的理論強項——“大一統建模能力”上,大核CNN也比我們所想象的更為強大。
本文也報告了相關的證據:將kernel size從13減為11,這四個模態上的性能都發生了顯著降低。
此外,作者已經放出了所有代碼,并將所有模型和實驗腳本開源。
論文地址:
https://arxiv.org/abs/2311.15599
原文鏈接:https://mp.weixin.qq.com/s/Y1rGsy4zK78T14YSy-GtQw