MLP回归,无需卷积、自注意力,纯多层感知机视觉架构媲美CNN、ViT
作者|機器之心編輯部
?來源|機器之心
當前,卷積神經網絡(CNN)和基于自注意力的網絡(如近來大火的 ViT)是計算機視覺領域的主流選擇,但研究人員沒有停止探索視覺網絡架構的腳步。近日,來自谷歌大腦的研究團隊(原 ViT 團隊)提出了一種舍棄卷積和自注意力且完全使用多層感知機(MLP)的視覺網絡架構,在設計上非常簡單,并且在 ImageNet 數據集上實現了媲美 CNN 和 ViT 的性能表現。
計算機視覺的發展史證明,規模更大的數據集加上更強的計算能力往往能夠促成范式轉變。雖然卷積神經網絡已經成為計算機視覺領域的標準,但最近一段時間,基于自注意力層的替代方法 Vision Transformer(ViT)實現新的 SOTA 性能。從技術上講,ViT 模型延續了長久以來去除模型中手工構建特征和歸納偏置的趨勢,并進一步依賴基于原始數據的學習。
近日,原 ViT 團隊提出了一種不使用卷積或自注意力的 MLP-Mixer 架構(簡稱 Mixer),這是一種頗具競爭力并且在概念和技術上都非常簡單的替代方案。
Mixer 架構完全基于在空間位置或特征通道重復利用的多層感知機(MLP),并且僅依賴于基礎矩陣乘法運算、數據布局變換(如 reshape 和 transposition)和非線性層。
論文地址:
https://arxiv.org/pdf/2105.01601.pdf
項目地址:
https://github.com/google-research/vision_transformer/tree/linen
結果表明,雖然 Mixer 架構很簡單,但取得了極具競爭力的結果。當在大型數據集(約 1 億張圖像)上進行預訓練時,該架構在準確率 / 成本權衡方面能夠媲美 CNN 和 ViT,實現了接近 SOTA 的性能,在 ImageNet 數據集上取得了 87.94% 的 top1 準確率。
對于該研究提出的 Mixer 架構,特斯拉 AI 高級總監 Andrej Karpathy 認為:「很好!1×1 卷積通常利用深度卷積實現堆疊或交替,但在這里,通道或空間混合得到簡化或者實現完全對稱。」?
另一用戶表示:「CV 領域網絡架構的演變從 MLP 到 CNN 到 Transformer 再回到 MLP,真是太有意思了。」
不過,谷歌 DeepMind 首席科學家 Oriol Vinyals 也提出了質疑,他認為:「per-patch 全連接,那不就是卷積嗎」
架構思路
下圖 1 描述了 Mixer 的宏觀架構,它以一系列圖像塊的線性投影(輸入的形狀為 patches × channels)作為輸入,先將輸入圖片拆分為 patch,通過 Per-patch Fully-connected 將每個 patch 轉換為 feature embedding,接著饋入 N 個 Mixer Layer,最后通過 Fully-connected 進行分類。
Mixer 架構采用兩種不同類型的 MLP 層:channel-mixing MLP 和 token-mixing MLP。channel-mixing MLP 允許不同通道之間進行通信,token-mixing MLP 允許不同空間位置(token)之間進行通信。這兩種類型的層交替執行以促進兩個維度間的信息交互。
另外,在極端的情況下,Mixer 架構可以看做是一個特殊的 CNN,使用 1×1 卷積進行 channel mixing,同時全感受野和參數共享的的單通道深度卷積進行 token mixing。
設計思想
Mixer 架構的設計思想是清楚地將按位置(channel-mixing)操作 (i) 和跨位置(token-mixing)操作 (ii) 分開,兩種操作都通過 MLP 來實現。
該架構如圖 1 所示,Mixer 將一系列 S 個不重疊的圖像 patch 作為輸入,每個 patch 投影到所需的隱藏維度 C 上。這將產生二維實值(real-valued)輸入表 X ∈ R^S×C。
Mixer 由大小相同的多個層組成。每個層由 2 個 MLP 塊組成,其中,第一個塊是 token-mixing MLP 塊,第二個是 channel-mixing MLP 塊。每個 MLP 塊包含兩個全連接層,以及一個單獨應用于其輸入數據張量的每一行的非線性層。Mixer 層描述如下:
Mixer 中的每個層(初始 patch 投影層除外)都采用相同大小的輸入,這種「各向同性(isotropic)」的設計與使用固定寬度的 Transformer 或其他域中的深度 RNN 大致相似。這不同于大多數具有金字塔結構的 CNN,即較深的層具有較低分辨率的輸入,但是有較多通道(channel)。
除了 MLP 層,Mixer 還使用其他標準架構組件:跳遠連接(skip-connection)和層歸一化。此外,和 ViT 不同,Mixer 不使用位置嵌入,因為 token-mixing MLP 對輸入 token 的順序很敏感,因此能夠學會表征位置。最后,Mixer 將標準分類頭與全局平均池化層配合使用,隨后使用線性分類器。
實驗及結果
該研究用實驗對 MLP-Mixer 模型的性能進行了評估。其中,模型在中大規模數據集上進行預訓練,采用一系列中小型下游分類任務,并對以下三個問題進行重點研究:
在下游任務上的準確率;
預訓練的總計算成本,這對于在上游數據集上從頭開始訓練模型非常重要;
推斷時的吞吐量,這在實際應用中非常重要。
該研究的實驗目的不是展示 SOTA 結果,而在于表明:一個簡單的基于 MLP 的模型就可以取得與當前最佳的 CNN、基于注意力的模型相媲美的性能。
下表 1 列出了 Mixer 模型的各種配置以對標一些最新的 SOTA CNN 和基于注意力的模型:
下表 2 給出了最大 Mixer 模型與 SOTA 模型的性能對比結果:
當在 ImageNet-21k 上進行帶有額外正則化的預訓練時,Mixer 實現了非常好的性能(ImageNet 上 84.15% top-1),略低于其他模型。當上游數據集的大小增加時,Mixer 的性能顯著提高。具體來說,Mixer-H/14 在 ImageNet 上取得了 87.94% top-1 的準確率,比 BiT-ResNet152x4 高 0.5%,比 ViT-H/14 低 0.5%。值得一提的是,Mixer-H/14 的運行速度要比 ViT-H/14 快 2.5 倍,比 BiT 快 2 倍。
圖 2(左)展示了表 2 中 SOTA 模型在 ImageNet 數據集上的準確率、訓練成本帕累托前沿(Pareto frontier):
下表展示了在多種模型和預訓練是數據集規模上,Mixer 和其他一些模型的性能對比結果。
由上表可得,當在 ImageNet 上從頭開始訓練時, Mixer-B/16 取得了一個合理的 top-1 準確率 76.44%,這要比 ViT-B/16 低 3%。隨著預訓練數據集的增大,Mixer 的性能逐步提升。值得一提的是,在 JFT-300M 數據集上預訓練、微調到 224 分辨率的 Mixer-H/14 取得了 86.32% 的準確率,比 ViT-H/14 僅低 0.3%,但運行速度是其 2.2 倍。
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的MLP回归,无需卷积、自注意力,纯多层感知机视觉架构媲美CNN、ViT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零基础如何快速上手高精度AI模型开发?
- 下一篇: 红糖煮雪梨放多少红糖?