MLP給視覺研究帶來潛在驚喜?近期MLP圖像分類工作概覽分析

 2021-05-23 13:00:40.0

圖像分類(image classification)一直都是 計算機視覺研究中非常基礎且重要的一類任務,在 深度學習爲主導的近十年中已經普遍繼承了通用卷積 神經網絡(CNN)的基本範式,大部分思路多着眼於不同網絡模型的設計和模塊創新,少有直接對卷積 神經網絡本身既定框架的顛覆性工作。Transformer 在自然語言處理任務上獲得成功之後,注意力機制(attention)在視覺任務方向也獲得很多關注和應用,它們中的大多數工作也被認爲是十分有效的性能提升部分。

然而近期 Google brain, Oxford, 清華大學等研究機構分別發表了自己對 多層感知機(MLP)在視覺分類中起到作用的重定位,引起了廣泛的學界思考: 深度學習網絡是否經歷了從 CNN 開始一系列的主幹變化之後,重新收斂於普通簡明的多層 MLP 範式了?MLP 框架是否存在普適性,潛在的科研和商用價值有多高?新的框架提出又會對之後的視覺研究和技術應用提供哪些潛在的可能性和創新啓發呢?

本文基於以上的問題,結合作者最近讀過的上述三篇 MLP 論文,單對 神經網絡模型相關的 圖像分類任務做一個簡單的發展梳理,之後針對近期提出的三篇論文,將其所提到的方法進行概述和觀點提煉,並嘗試總結此類研究所帶來的的意義和未來潛力。

0. 神經網絡圖像分類發展簡述 

其實早在 20 世紀,使用 神經網絡進行 圖像分類就有 Neocognitron,ConvNet,以及 LeNet 等早期的雛形,如 LeNet 非常有效地完成了受限於數字識別的任務,且卷積的概念也早早出現,然而因爲計算機算力的不足在較長一段時間內並沒有取得更多的進展。

大部分人更加熟悉的在於 2012 年 AlexNet 利用 GPU 在當年的視覺 圖像分類挑戰賽(ImageNet)上取得了非常驚人的 Top-1 準確度,之後以卷積層爲範式的卷積 神經網絡(CNN)發展出多種經典模型。

在 2014 到 2017 年間,Inception, ResNet, VGG 等模型均達到了非常好的 SOTA 性能,其設計的小卷積核感受野,多路跨層鏈接等等模塊設計都被證明非常的有效。在很長一段時間內 CNN 作爲骨幹是處理深度視覺任務的不二之選,可參考下圖各個經典 CNN 網絡模型的提出和演變過程:

接下來便是 2017 年附近,人們發現注意力機制在捕捉及加強視覺特徵提取過程中也非常有效,並有了少量工作進行嘗試。2018 年左右,本用於自然語言處理的 Transofmer 被發現其在視覺分類等等任務方面也有非常強的可遷移性,於是 Transformer 成爲了近兩年來炙手可熱的視覺研究主題,人們前所未有的關注圖像局部塊之間的上下文關係,將卷積網絡時期的感受野學習進一步改善爲特徵或圖像塊之間的關聯學習。注意力相關的工作也有了井噴式發展,比如 Vit[9], Deit[10] 就是最初有效融合 Transformer 思想的工作,DeepViT[11] 則是嘗試混合多個注意力模塊(attention head mixing),CaiT[12]將原 Transformer 中的注意力層分化爲兩個階段進行學習,CrossViT[13],PiT[14],LeViT[15],CvT[16]以及其他更多相關工作都把 Transformer 對於全局長依賴捕捉的優點更近一步發揚,且嘗試與之前的 CNN 中被證明非常有效的模塊如池化(pooling)相結合,引領了 CNN 之後的另一輪模型革新潮流。 

1. 注意力是分類性能的保障嗎?

Do You Even Need Attention? A Stack of Feed-Forward Layers Does Surprisingly Well on ImageNet

在引入當前激烈討論的 MLP-Mixer 模型之前,我們首先來看這篇牛津大學的 4 頁研究報告,一定程度上它簡明地回答了一個問題:注意力機制是保障 圖像分類任務性能的關鍵嗎?我們知道自從 Transformer 被證明在視覺任務上同樣可行後,許多視覺相關的任務也隨之應用該範式,且普遍都將性能提升歸功於注意力機制,聲稱注意力機制爲網絡引入了全局感受野(global receptive field),並在不同的工作中致力於提升注意力模塊的效率及有效性。於是該文章在 ImageNet 數據集上做了一個 「嚴格控制變量」 的 圖像分類實驗:在不改動注意力分類網絡其他結構和參數設置的情況下,單純將每個注意力網絡層替換爲一個簡單的前傳網絡層(feed-forward layer),由此原先的 Transformer 模型可被看爲由多層前傳網絡層構成的一個 MLP 分層網絡,如左下圖所示。

在實驗部分,論文作者採用了目前 Transformer 分類器中的代表作 ViT 以及 DeiT,繼承其所有的模型結構與超參設置,並依據 ViT,Deit 的 Tiny, Base, Large 三個網絡結構,在 ImageNet 數據集上訓練了三個 feed-forward only 模型(FF only)。參照右上圖訓練結果,Tiny 網絡中 FF only 模型表現相比於 attention 模型,參數數目較多的情況下性能也並不佔優。然而當模型增大爲 Base 與 Large 時,僅有前傳層的 FF only 表現就非常的驚豔了,在參數數目相比也較少的情況下,純前傳層構成的 MLP 模型 FF only 取得了幾乎持平甚至佔優的 Top-1 分類精確度,這從側面也說明了 MLP 模型在較複雜較大的網絡中有不俗的表徵能力

爲了更加公平的比較,論文作者也試圖將所有前傳層都替換爲注意力層,類比實現一個 attention only 的模型來進一步探究注意力機制的表現力,然而注意力網絡在 tiny 模型上訓練了 100 個 epochs 之後也只能達到 28.2% 的 top-1 準確度。由以上實驗,論文作者推斷一個好的 Transformer 分類器並不一定需要注意力模塊來保障性能,可能是圖片塊的映射嵌入(embedding)或者 Transformer 本身自成體系的訓練流程保證了性能的優越性。

下圖附上 FF only 模型中替換注意力模塊的線性前傳模塊,可以看出實現直觀簡單,感興趣的讀者同樣可以根據此做更多的擴展性探索和實驗。

總體來說這篇文章提出的問題非常鮮明,提出的論證過程本身也非常有趣。論證的過程雖然實驗設置相對有限,但也在一定程度上回答了開頭的疑問:特定的注意力模塊並不一定就是性能保證,同時文章非常吸引人的一點在於,它爲業界指出了一種可能性:當你面臨較大模型的需求時,根據實驗中 MLP 模型的表現力來看,它很有可能成爲一個保證性能同時節省性能的不錯替代方案。

2. MLP 有望成爲新的視覺範式 

MLP-Mixer: An all-MLP Architecture for Vision

通過牛津大學的文章我們瞭解到 多層感知機(MLP)的表現能力不俗,在替換了視覺 Transformer 模型中的注意力模塊之後依然能夠實現優秀的分類性能,而被持續關注多時的注意力模塊似乎並不能獨當一面——在單獨存在時作爲一種新的計算範式去支撐一個高精度的模型,其本身也更多還是依託於一個好的骨幹模型。谷歌大腦近期提出的 MLP-Mixer 就更進一步,讓我們看到 MLP 模型完全有機會成爲與傳統卷積網絡(CNN),Transformer 之後的下一種視覺研究範式。

自從 深度學習興起,它一直傾向於直接從原始數據中學習所需要的視覺特徵,儘可能避免認爲構造特徵或設置歸納偏置, CNN 一直默認爲此種學習思想下的一種標準,一兩年前視覺的 Transformer 取得了 SOTA 的成績,成爲了另一個可選項。不同於前兩者,谷歌提出的 MLP-Mixer 結構完全摒棄了卷積或是注意力機制,完全基於 多層感知機結構,只依賴基礎的矩陣相乘,重複地在空間特徵或者通道特徵上計算抽取。

MLP-Mixer 的結構如下圖所示:

首先將大小爲 HxW 的的輸入圖像切割爲不重合的 S 個小方塊(Patch),每個方塊的分辨率均爲 PxP,隨之所有圖像方塊經過統一的線性映射變爲隱藏維度是 C 的張量,由此輸入 MLP-Mixer 的數據就轉換爲一個維度 SxC 的二維矩陣表 X,X 在之後的計算流程會經過多個 Mixer 層,其包含兩類 MLP 計算層:a.token-mixing MLPs 和 b.channel-mixing MLPs, X 首先通過 token-mixing MLP 計算不同方塊張量之間的聯繫,獲得特徵 U,之後再經過 channel-mixing MLPs 來計算通道之間的特徵 Y:

在模型的最後 MLP-Mixer 也接了一個常見的全連接分類模塊,來完成最終的類別預測。除此之外,MLP-Mixer 由於採用的 token-mixing MLP,導致它並不需要輸入圖片的位置編碼信息,本身就對每個圖像塊的位置有了一定的敏感度,同時其採用的參數綁定(parameter tying) 也使得參數體量能夠大幅度的減少。

實驗部分作者採用了三個規格的模型大小分別爲 base(B),large(L), huge(H), 對應的 MLP-Mixer 模型不僅在 ImageNet 與 JFT-300M 這幾個大數據集上進行了 pre-train,也同時通過在中小數據集上微調(fine-tune)來進一步測試 MLP-Mixer 的遷移學習能力。與此同時與 MLP-Mixer 對比的模型均爲 CNN 類別或者 Transformer 類別中實現 SOTA 性能的模型,例如 HaloNet,ViT。

通過實驗結果彙總,也可以看出無論是預訓練或是微調遷移,MLP-Mixer 雖然沒有能達到 SOTA 的精度,但是各方面已經可以與當今的兩個主流 SOTA 模型相當,同時在效率吞吐方面也存在着不錯的優勢。

更進一步,文章將每個輸入圖片方塊的權重進行了可視化,可以觀察的出來由粗到細、由輪廓到慢慢具象化的一個演變過程其實與 CNN 中提取視覺特徵的過程也是有異曲同工之妙的。

總的來說,這篇文章提出了一個非常新穎但是有效的網絡結構,涉及的方法理論並不複雜且模型結構直觀,實驗全面詳實,是一篇非常有啓發性的的 MLP 分類開山之作。尤其需要指出的是,在 MLP-Mixer 的結構描述中,對於如何設置各個 MLP 模塊的順序,以及如何進行圖像映射,包括同樣沿用了一個非常經典的 skip-connection 結構等方面看,是否也從某個側面呼應了第一篇中 FF only 的部分猜想:怎樣進行特徵的嵌入映射,與一個合理的訓練計算流程,或許纔是一個高精度模型背後的支撐面。

從學術研究的角度看,MLP-Mixer 的提出啓發更多學者關注到 MLP 網絡結構是有潛能成爲繼 CNN,Transformer 之後的第三種範式的,更加先進有效的網絡結構甚至微調延伸,也會不斷出現並幫助完善這個研究分支。工業化部署的方面看,MLP 模型也確實爲不少在性能和效率的 trade-off 之間掙扎的企業和工程師提供了新的思路,儘管目前的 MLP-Mixer 並不是精確度最優的解,但是其在效率利用甚至內存節省方面似乎看起來會比注意力機制爲主的 Transformer 有更多的想象空間。

希望詳細瞭解 MLP-Mixer 計算細節的讀者可以參考我們之前的文章[7],[8]。

3. MLP 與 CNN 的結合 

RepMLP: Re-parameterizing Convolutions into Fully-connected Layers for Image Recognition

清華的這篇 RepMLP 是一種 MLP 與 CNN 進行結合的新嘗試,它嘗試將各自網絡模塊的優勢進行混合來實現更好的性能提升,並不限於分類,而是在多個視覺任務方面都給了我們一些全新的啓發。已知全連接層通常來說更加擅長於建立特徵的長依賴關係與空間關係,但是並不擅長於捕捉局部的特徵或模式識別,這也一定程度上解釋了 ViT 之類的模型爲何需要數量更加龐大的訓練集或者充分的數據擴增(data augmentation),二者都有類似難以建立局部特徵的毛病。於是文章提出了 RepMLP,模型主體利用多層 神經網絡提取長期依賴關係與空間信息,同時利用結構化的重參數化(re-parameterization),在網絡訓練時候將多個卷積模塊與全連接並行,用其抽取對應的局部先驗知識並最後進行信息融合彙總。且 RepMLP 還巧妙地利用重參數化將推理時的參數與訓練時的參數進行了再度轉化,從而實現推理模型精簡的目的。

RepMLP 模型總的來說並不複雜可參考其結構圖如下:
對於模型具體可導性證明感興趣的讀者可以閱讀原文闡述,在此我們就不過多贅述了。

RepMLP 亮點着眼於其針對多個視覺任務的擴展嘗試,首先在分類任務上,就可以看出無論是小數據集 CIFAR10 還是超大數據及 ImageNet,MLP 結構的網絡均取得了非常不錯的效果:在 CIFAR10 數據集上,純粹的 MLP 就已經實現了 91.11 的準確度,直逼最佳精度:

在 ImageNet 上,RepMLP 也同樣比起原有的骨幹網絡實現了性能的超越:

更進一步,在之後擴展實驗涉及到的人臉識別以及語義分割任務上,RepMLP 比起原先的骨幹網絡,都各自取得了更加的精度效果。

在人臉識別任務上拿到了 95.9% 的 SOTA 成績,且推理效率也相對更優:

另一方面,在圖像分割任務上,雖然 RepMLP 相對速度較慢,但是在精度方面也實現了更高的成績。

這篇論文亮點在於將 MLP 與 CNN 結合進行了多個視覺任務的嘗試並且都證明了 MLP 的強表徵性,唯一美中不足就是模型本身其實還是沿用了不少 CNN 分支中的經典模型作爲骨幹網絡,在 MLP 範式中進行進一步更新修改,某種程度上難以分清優越的性能更多是由哪一部分模塊進行貢獻的。

4. MLP 三篇工作總結以及未來研究意義 

 本文介紹到的三篇工作起點和方法都不同,但是也確實通過各自的角度讓我們看到了 MLP 模型擁有的潛力。 多層感知機深度學習視覺方向最初就被認可其強大的特徵表徵力,然而研究的初期更多是受限於設備算力,在機器算力支持度增加的今天,原有的限制其實已不復存在,我們可以看到近一兩年風頭無幾的 Transformer 與圖網絡(Graph Neural Network), 都是在視覺任務學習中能有效捕捉關聯依賴信息的代表技術,視覺任務的研究對象也從最初的二維圖像爲主,演進爲視頻序列學習再到如今的 3D 數據學習,數據塊甚至是特徵塊之間的 「關聯學習」 會佔有更多的關注度。由此我們轉過頭來看 MLP,其本身帶有的特徵表現力和長距離依賴捕捉都是在視覺任務如今越來越強調 「關聯學習」 的情況下非常有競爭力的特質,三篇文章從各自的角度讓我們看到了 MLP 在 圖像分類這一任務上的卓越能力,也讓我們看到 MLP 方向進行新一輪視覺任務網絡結構探索的趨勢:谷歌論文提出一個純 MLP 的新型網絡結構,牛津論文強調了 MLP 本身的強表徵力,以及暗示了嵌入和網絡結構合理設計對性能的重要性,清華的文章則讓我們看到 MLP 有在多類型視覺任務上開花的可能性。

所以我們不妨大膽假設,MLP 在未來視覺研究中,比起目前 MLP-Mixer 這個雛形網絡,更合理更高效的網絡結構也會脫穎而出。另一方面,根據目前已經有的幾篇工作,可以看到 MLP 在今後的工業化部署之中也有不消的開發潛力,其一,MLP 模型的代碼實現是非常直觀簡潔的,根據三篇論文開源的代碼都可以看到並沒有涉及太多的 trick,所以在商業化應用的部署中就會減少複雜度和黑箱不確定性;其二當模型規模變大時,MLP 模型的參數量和計算效率均優於同期的 CNN 與 Transformer,且在性能方向幾乎持平,那麼對於要求性能的應用,相比模型剪枝或者參數蒸餾,MLP 顯然不需要在性能和效率之間過多的取捨,會是非常有潛力的一種通用解決方案。經上所述,筆者認爲 MLP 未來在網絡結構革新、除分類外的多類視覺任務探索,外加商業部署應用方向其實都有非常多的細緻工作值得學者們去探索和實現。

更多相關研究:

自谷歌MLP-Mixer論文公開後,各大高校與企業實驗室也在爭相發佈相關研究,這段時間機器之心報道了多篇相關研究,具體內容可查閱:


歡迎大家持續關注,也歡迎做相關研究的讀者們積極投稿。

引用文獻:

1. A Survey of the Recent Architectures of Deep Convolutional Neural Networks  https://arxiv.org/ftp/arxiv/papers/1901/1901.06032.pdf 
2. Deep Learning in Image Classification: A Survey Report  https://conferences.computer.org/ictapub/pdfs/ITCA2020-6EIiKprXTS23UiQ2usLpR0/114100a174/114100a174.pdf
3. MLP-Mixer: An all-MLP Architecture for Vision https://arxiv.org/pdf/2105.01601.pdf
4. Do You Even Need Attention? A Stack of Feed-Forward Layers Does SurprisinglyWell on ImageNet https://arxiv.org/pdf/2105.02723.pdf
5. RepMLP: Re-parameterizing Convolutions into Fully-connected Layers forImage Recognition https://arxiv.org/pdf/2105.01883.pdf
6. 7 Papers & Radios | 純 MLP 圖像分類架構;基於強注意力的跟蹤器網絡 https://mp.weixin.qq.com/s/dYXfGskKHGjuSfI6gJZW9w
7. 震驚!無需卷積、注意力機制,僅需 MLP 即可實現與 CNN、ViT 相媲美的性能 https://mp.weixin.qq.com/s/rNp4wLT2NwAo22gaLbVEQA
8. MLP 迴歸,無需卷積、自注意力,純多層感知機視覺架構媲美 CNN、ViT https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650814947&idx=1&sn=7cce32919afc573f1ddc8090ca90a74d&chksm=84e5fd9db392748be72058d2b872a44469490bb0ebe9d74800c86f3f94e6a9da30837bb95b0d&scene=21#wechat_redirect
9. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale https://arxiv.org/abs/2010.11929
10. Training data-efficient image transformers & distillation through attention  https://arxiv.org/abs/2012.12877
11. DeepViT: Towards Deeper Vision Transformer https://arxiv.org/abs/2103.11886
12. Going deeper with image transformers https://arxiv.org/abs/2103.17239
13. Crossvit: Cross-attention multi-scale vision transformer for image classification  https://arxiv.org/abs/2103.14899
14. Rethinking spatial dimensions of vision transformers https://arxiv.org/abs/2103.16302
15. Levit: a vision transformer in convnet’s clothing for faster inference https://arxiv.org/abs/2104.01136
16. Cvt: Introducing convolutions to vision transformers https://arxiv.org/abs/2103.15808

文章來源:機器之心