原論文
LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference
https://arxiv.org/abs/2104.01136
関連研究
Vison Transformerの解説
https://qiita.com/wakanomi/items/55bba80338615c7cce73
CNN+ViTモデルの傾向【サーベイ】
https://qiita.com/wakayama_90b/items/96bf5d32b09cb0041c39
結論
SA内に畳み込みやノルムや活性化関数を導入.ダウンサンプリング方法が個性的.DeiTを上回る性能
概要
ViTをResNetのような階層型を採用する.階層型ViTモデルは数多く採用されている.多くの場合,ダウンサンプリングには線形射影や畳み込み,近傍4画素を連結されるような処理が採用されている.LeViTはSAのクエリ(Q)をダウンサンプリングすることでSAの出力をダウンサンプリングさせる処理を採用する.
モデル構造
モデル構造は以下に示す.3ステージの階層型でSAとMLPを交互に処理する構造である.
CNN構造を組み込んだSA
通常のSAを左,ダウンサンプリングするSAを右に示す.ここの入力は3次元の特徴量を入力とする.(通常のViTは2次元)SAの計算を実現するために,1x1畳み込みをQ,K,Vでそれぞれ行う.畳み込み後はBatchNormを通す.最後に1x1で特徴量を3次元に戻す.下図のHard wishは活性化関数の一種である.CNNはノルムや活性化関数を乱用するが,ViTはSAの後,MLPの後のLayerNormのみである.ViT内のSAにノルムや活性化関数を採用することで性能向上を期待する.
また,ダウンサンプリングするSAを右に示す.左と異なるのは,クエリの特徴量をダウンサンプリングするかである.SAの出力サイズはクエリに依存するため,クエリのサイズを小さくすることで出力サイズを小さくする.
実験
ImageNetでDeiTを上回る精度を達成した.
まとめ
今回は,ViTのSAにCNN構造を組み込むLeViTについて解説した.SA内に畳み込みやノルムや活性化関数を導入することで精度向上を達成した.