LoginSignup
1
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

SA内に畳み込みやノルムや活性化関数を導入【LeViT】

Last updated at Posted at 2023-06-28

原論文
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を交互に処理する構造である.

スクリーンショット 2023-06-28 21.10.03.png

スクリーンショット 2023-06-28 21.10.33.png

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の出力サイズはクエリに依存するため,クエリのサイズを小さくすることで出力サイズを小さくする.

スクリーンショット 2023-06-28 21.10.23.png

実験

ImageNetでDeiTを上回る精度を達成した.

まとめ

今回は,ViTのSAにCNN構造を組み込むLeViTについて解説した.SA内に畳み込みやノルムや活性化関数を導入することで精度向上を達成した.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0