Vision-Transformer 資料&コードまとめ


はじめに

最近Vision-Transformer(ViT)について実験を始めたumeboshiです! ViTとは2020年にAlexey Dosovitskiyらによって発表された,Transformerを用いることでで畳み込み構造を完全に排除したモデルのことです。ImageNet/CIFAR-100/VTABなどのタスクでSoTAモデルのCNNを同程度または上回る性能を達成しており、SoTAモデルであるBiTやNoisyStudentと比べて計算コストも1/15程度まで削減されています。

この記事ではViTについて 理解を深めたい/とりあえず実験をしたい という方を対象に,読むべき論文/解説記事とおすすめの学習用コードのリンクをまとめています。

論文まとめ

Vision-Transformer解説まとめ

Attention解説記事まとめ

Transformerの改善/派生モデル

サーベイ論文

github Repository

  • jeonsworld/ViT-pytorch
    • Vision-Transformerモデルの事前学習,Finetuneが出来る。AttentionMapの可視化コード付き

このリポジトリのtrain.pyはTrainAccを計算していません。ValidAccと同じように出力したい場合は注意が必要です。 Validデータセットに適用する画像前処理と比べ, Trainデータセットに適用する前処理はより複雑で,画像分類の問題設定を難しくしています。ですので,このままのTrainデータセットに対してTrainAccを出力しようとするとValidAccより低い値が出力されます。

学習用に使用するTrain画像とは別に用意した, Validデータセット用の画像前処理を適用したTrainデータセットに対してTrainAccを計算しましょう。