原論文
Pay Attention to MLPs
https://arxiv.org/pdf/2105.08050.pdf
日本語解説
Attentionは不要!?Google BrainによるTransformer型モデルに対抗できるgMLPを詳細解説!
https://deepsquare.jp/2021/05/gmlp/
結論
ViTのSAをゲート付きMLPで認識すると性能向上する.
概要
画像認識のスタンダードモデルにはCNNやViTがあるが,その成功の秘訣はCNNやViTにあるのか??ViTのSAをゲートを使用したMLPで特徴量の空間方向の認識を行う.
その理由として,MLPは普遍的な近似器であることが知られており,理論的には,その静的なパラメータの決定により,どんな関数でも表現できるはずだと考えられる.
ViTはグローバルで動的なパラメータ,CNNはローカルで静的なパラメータである.ViTとCNNは2つの異なる部分がある.MLPはグローバルで静的なパラメータであり,ViTとCNNの間のような役割がある.
これにより,DeiTと同程度の精度を達成する.
モデル構造
主にViTのモデル構造を使用し,Encorderの部分を以下に示す.紫のチャンネル認識MLPで空間認識のSpatial Gating Unitを挟む構造であり,チャンネル→空間→チャンネルの認識である.ちなみに,ViTは空間→チャンネルの認識である.Activationは活性化関数を示す.
以下の式に示す.
\begin{align}
Z = σ(XU), \tilde{Z} = s(Z), Y = \tilde{Z}V
\end{align}
入力XでUは1つ目のチャンネルMLP,σは活性化関数のGELU,s()はSpatial Gating Unit,Vは2つ目のチャンネルMLPを示す.左から順番に進行しているとみたら分かりやすいと思う.
Spatial Gating Unit
Spatial Gating Unitの最初の処理として,特徴量をチャンネル方向に2分割する.その片方を上図の右ルートに入力する.Spatial Projでは下式に示す$f_{W,b}$で空間認識MLPをする.この計算した特徴量と計算していない特徴量の要素積をとることでゲート付きMLPになる.例えば,以下の式で,重みWを0に非常に近い値,bを1に等しくすると,s()の出力は入力値とほとんど変化せずに恒等関数の役割をして学習が安定する.
学習初期段階では,重みが変更されず,空間認識で恒等関数の状態が続き,2つのチャンネル認識MLPのみ機能し,各トークンは独立して処理される.学習過程で空間認識が徐々に注入される.
また,特徴量を分割して処理する理由としては,実験的に有効であったためである.本来の目的として,特徴量の重みつけであるためSENetと似た手法である(SENetはチャンネル方向の重みつけであるが,gMLPは空間方向の重み付けであることに注意).
\begin{align}
f_{W,b}(Z) = W Z + b \\
s(Z) = Z \odot f_{W,b}(Z)
\end{align}
↓雑だけど,Spatial Gating Unitのイメージ図
結果
ImageNet-1kの画像分類精度はDeiTと同程度の精度,従来のMLP手法を超える精度を達成した.
また,空間MLPの行列の可視化を以下に示す.結果はCNNと同様に浅い層で局所的な認識,深い層で大局的な認識に重点を置いている傾向にある.また,CNNと異なり,正方形ではないカーネルの使用で汎用性の高い構造をMLPは持つ.
まとめ
今回は,ViTのSAをゲート付きMLPで認識するモデルについて説明した.空間認識はSAでも畳み込みでもないMLPでも可能であることが分かった.今後,MLPモデルが成功する未来があるかもしれない.