5分鐘就能學會的簡單結構 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021

忽逢桃林發表於2021-06-07
  • 文章轉自:微信公眾號「機器學習煉丹術」
  • 作者:煉丹兄(歡迎交流,共同進步)
  • 聯絡方式:微信cyx645016617
  • 論文名稱:「MLP-Mixer: An all-MLP Architecture for Vision」
  • 論文連結:https://arxiv.org/pdf/2105.01601v1.pdf

「前沿」:最近忙各種各樣的事情,更新慢了。抽空寫一點。這一篇內容很簡單,只需要5min就可以學完。

正文開始

我們提供了MLP-Mixer架構,之後簡稱Mixer。這是一個有競爭力,但是概念和技術都很簡單的結構,並且沒有用到卷積和自注意力

類似於transformer,Mixer模型的輸入依然是圖片的Patch經過線性對映之後的序列,簡單的說就是embedding。是一個形狀如同“patches x channels” 這樣的一個特徵。其中,我們把圖片embedding之後的序列,叫做token

下圖是Mixer的巨集觀結構圖:
image.png

Mixer利用了兩種MLP層:

  • channel-mixing MLPs:允許不同channels特徵之間的交流;
  • token-mixing MLPs:允許不同空間位置之間的交流。
  • 這兩個MLP層是交錯的。

「圖解讀」

  • 從圖中caption部分可以看到。“Per-patch Fully-connected”我認為就是embedding層,比方說把一個32x32x3的彩色patch圖片,全連線對映到128維度的序列。
  • Mixer Layer就是文章提出的主要創新結構。其中,每一個Mixer Layer包含一個token-mixing MLP 和一個channel-mixing MLP,這兩個結構都是由兩個全連線層和GELU啟用函式組成。
  • 我們再來看上圖的上面部分,體現了Mixer Layer的細節:首先,假設一個圖片被分成了9個patch,然後每一個patch經過embedding,變成了一個128的向量。那麼原圖經過embedding,最終得到的是9x128這樣的一個矩陣。
    1. 這個矩陣先經過LayerNorm,相當於是在128這個維度上進行歸一化;
    2. 然後矩陣經過轉置,變成128x9的樣式;
    3. 經過第一個全聯接層,這個MLP應該就是channel-mixing了,因為是對9這個patch維度進行計算;
    4. 然後再轉置成9x128,再進行layer norm;
    5. 然後token-mixing channels,在128這個spatial維度上進行計算;
    6. 中間加了兩個skip connection。

「這裡,我們可以發現,整個結構確實非常簡單,回頭試試效果去。」

相關文章