原論文
Convolutional Gated MLP: Combining Convolutions & gMLP
https://arxiv.org/pdf/2111.03940.pdf
結論
MLPとCNNを組み合わせたら良くなった.
概要
画像認識モデルとしてCNNやViTがあるが,それとは別にMLPのみを使用したMLP系の画像認識モデルが提案されている.MLP系モデルにゲートを組み込んだ「gMLP」がある.これは,MLPのみで構成されているがCNNやViTと同程度の性能を持つ.
また,CNNとViTを組み合わせることによる性能向上するモデル「CvT」は,CNNとViTの異なる認識特性で互いの弱点を補うように機能している.この論文では,CvTにならってMLPと畳み込みを組み合わせる手法「CgMLP」を提案している.下図の最下段がCgMLPである.
モデル構造
最初の処理に2層の畳み込み層を使用する.これにより,特徴マップのダウンサンプリングによる計算量削減,その後のMLPに有効な認識を補助する役割がある.下図では,畳み込み後の特徴マップでは,車の輪郭や形状の特徴を強めており,認識対象の重要な特徴の理解を補助する.畳み込み後は,特徴マップをパッチ分割し,gMLP層の計算をする.また,gMLPはSA同様に位置の保存が不可能であり,位置埋め込みを使用しないため,CNNは位置の保存のような役割もある.
ゲートの役割
このゲートを組み込んだ手法は様々あり,ConViTは,ViTにゲートを組み込み,畳み込みで認識させる?かSelf-Attention(SA)で認識させる?かの並列計算をゲートで制御することによって変化させて精度向上を目指している.これは,畳み込みの認識とSAの認識がお互いに異なる認識特性を持ち,それぞれの弱点を補完しあうように機能している.
この論文が提案する手法では,下図の右のような構造をしている.CNNとMLPが分かりやすく並列になっているのではなく,CNN→gMLPの直列であるが,ConViTのような並列効果がある.
下図の黄色の枠で示す部分を説明する.特徴マップを半分に分割する.右片方にMLPの処理,左片方は何もしない.これは,右にCNN→MLPの処理をした特徴マップ,左にCNNの処理した特徴マップでそれぞれの特徴マップをゲート◉で連結させる.連結する際にどちらのルートの特徴マップを優先させるかを調整する.これは,上図のconvとTranの並列計算が,CNN→MLPとCNNの並列計算に置き換わっているとほぼ同義である.
おわりに
今回は,MLPとCNNを組み合わせるモデル【CgMLP】について解説した.従来のCNN+ViTのようにCNN+MLPでやってもよくなった.ゲートを使用して並列計算を実現して,CNN→MLPとCNNのどちらのルートを優先させるかを学習して導く.今後の画像認識モデルにMLPが有効になるかもしれない.