MLP-Mixer, FNet 2021-05-29

傳統(tǒng)CNN,卷積加下采樣進行特征提取,全連接進行全局的特征融合

視覺任務一直是以CNN為主流,2020年出現(xiàn)了基于NLP領域Transformer的模型Vision Transformer,用自注意力機制來替換CNN,而同一團隊今年發(fā)表了MLP-Mixer,表示也許CNN和Attention都不是必須的。最原始的神經(jīng)網(wǎng)絡模型 MLP就能達到媲美(稍遜)CNN的效果。

MLP 處理視覺任務

MLP Mixer : https://arxiv.org/pdf/2105.01601.pdf

對圖片的處理類似ViT。

首先如ViT中一樣處理圖片,分成不同的patch,壓扁,進行線性變換得到指定的通道數(shù)。不同的patch用不同顏色表示。核心部分mixer layer只使用了全連接層,輔以GeLU激活函數(shù),歸一化方法和跳躍連接。實現(xiàn)起來也很簡單,只不過需要的訓練數(shù)據(jù)有億點點大,比如說有3億圖片的JFT-300M。

在詳細看mix layer之前,不妨回顧一下MLP和CNN的特點和區(qū)別。

MLP 和 CNN的區(qū)別

全連接層和卷積層都是簡單的加權(quán)求和,但是全連接的結(jié)果來自于上一層所有神經(jīng)元,卷積的結(jié)果來自于上一層所有通道的局部的神經(jīng)元。如果單單從特征融合這個角度來觀察,全連接層中,融合的是一個維度中各個位置的特征,而在卷積層中,進行了局部的不同位置上的特征融合,又進行該局部的不同通道上的特征融合。

而只能在一個維度上進行的全連接,有沒有辦法做到和卷積層一樣的效果呢,可以的,分兩次進行就好啦。

( 注意力機制也可以同時進行兩者。)

Mixer Layer

那就是這篇論文的主角 Mixer Layer的策略:

先看輸入部分,通過線性變換我們得到一個二維矩陣,一維是channel,另一維是patch,每個patch的長度是之前壓扁的二維圖像。既然MLP只能在一個維度上進行,作者就通過矩陣轉(zhuǎn)置,讓MLP在每個通道的不同位置進行一次,再在同一個patch的不同通道進行一次。

MLP1和2分別被稱為 token-mixing 和 channel-mixing。

Mixer Layer : 先在同一通道中的不同patch中進行 (token-mixing MLP),再在同一patch的不同通道中進行 (channel-mixing MLP)。

雖然說MLP-Mixer表示不使用卷積,然而官方實現(xiàn)的第一步就是用的卷積操作。。。正如LeNet作者LeCun的twitter所抱怨的,其實就是個核的大小和步長都等同于patchsize的卷積罷了。 至于后面的全連接操作,同樣也可以用1*1卷積來實現(xiàn)。

LeNet解釋卷積的關鍵在于局部連接和共享參數(shù),MLP Mixer通過劃分patch達到了局部連接的目的,由于MLP的參數(shù)共享,所以這個關鍵也算達成了。MLP Mixer的論文表示,MLP可以干CNN的活,然而這個MLP在實現(xiàn)中用的又是卷積的函數(shù)。其實叫全連接或者卷積并不重要,畢竟矩陣乘法表示,相煎何太急。

其他

LN比起B(yǎng)N可以保持樣本之間的獨立性,
如果在數(shù)據(jù)集不夠大,使用dropout之類的正則化技術也能煉成比較理想的模型。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容