Upgrade to Pro — share decks privately, control downloads, hide ads and more …

近年のHierarchical Vision Transformer

Avatar for yu4u yu4u
June 01, 2022

近年のHierarchical Vision Transformer

物体検出やセグメンテーションタスクに利用可能な階層的Vision Transformerのサーベイ

Avatar for yu4u

yu4u

June 01, 2022
Tweet

More Decks by yu4u

Other Decks in Technology

Transcript

  1. 2 ▪ ViT [1] の流行 ▪ 画像もTransformer!でも大量データ(JFT-300M)必要 ▪ DeiT [2]

    ▪ ViTの学習方法の確立、ImageNetだけでもCNN相当に ▪ MLP-Mixer [3] ▪ AttentionではなくMLPでもいいよ! ▪ ViTの改良やattentionの代替(MLP, pool, shift, LSTM) 乱立 背景 [1] A. Dosovitskiy, et al., "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale," in Proc. of ICLR, 2021. [2] H. Touvron, et al., "Training Data-efficient Image Transformers & Distillation Through Attention," in Proc. of ICLR'21. [3] I. Tolstikhin, et al., "MLP-Mixer: An all-MLP Architecture for Vision," in Proc. of NeurIPS'21.
  2. 4 ▪ Stage1, 2ではMBConv (MobileNetV2~やEffNetのメイン構成要素) を利用、Stage3, 4ではattention(+rel pos embedding)を利用 ▪

    MBConvはstrided convで、attentionはpoolでdownsample 初期の改良例: CoAtNet Z. Dai, et al., "CoAtNet: Marrying Convolution and Attention for All Data Sizes," in Proc. of NeurIPS'21. identity residual
  3. 5 ▪ 当然ViTを物体検出やセグメンテーションにも適用したくなる ▪ CNNは入力画像の1/4から1/32までの複数解像度の特徴マップを生成 ▪ ViTは1/16のみ、小さい物体検出や細かいセグメンテーションには不向き ▪ 高解像度の特徴マップも扱いたい! ▪

    この課題をクリアしたVision Transformerをみんなが考えた結果… 背景 B. Heo, et al., "Rethinking Spatial Dimensions of Vision Transformers," in Proc. of ICCV'21. そして次に⾼速化 とかが流⾏る
  4. 7 最近のVision Transformerたち(全部同じじゃないですか!? Swin Trasnformer PoolFormer ShiftViT AS-MLP Shunted Transformer

    CSWin Transformer ResT SepViT Lite Vision Transformer Pyramid Vision Transformer 今⽇この資料で ちがいますよー︕ ⾔えるようになる
  5. 8 ▪ 物体検出やセマンティックセグメンテーションに適用可能な 階層的なVision Transformerバックボーンの紹介 ▪ ViTではなく、transformerをビジョンタスクに適用した的なモデル一般を 本資料ではVision Transformerと呼ぶ ▪

    DETR等、attentionをタスクを解く部分に利用する手法には触れない ▪ Attention layerは何となく分かっている前提 ▪ 入力を線形変換してQ, K, V作って ▪ softmax(Q KT) から重みを算出して、Vの重み付け和を出力する ▪ それが並列に複数ある(multi-head)くらいでOK! ▪ 図で理解するTransformer 読みましょう! この資料で扱う範囲
  6. 9 ▪ 紹介するVision Transformerはほぼこの形で表現可能 ▪ Transformer blockのtoken mixerが主な違い ▪ MLP-Mixer,

    PoolFormer, ShiftViT等のattentionを使わないモデルも token mixerが違うだけのViTと言える ▪ この構造を [1] ではMetaFormerと呼び、この構造が性能に寄与していると主張 階層的Vision Transformerの一般系(CNN的な階層構造) Transformer Block [1] W. Yu, et al., "MetaFormer is Actually What You Need for Vision," in Proc. of CVPR’22. !! × # 4 × % 4 Stage 1 !" × # 8 × % 8 Stage 2 !# × # 16 × % 16 Stage 3 !$ × # 32 × % 32 Stage 4 3×#×% Input Norm Token Mixer FFN Norm + + Patch Embedding Transformer Blocks Patch Merging Transformer Blocks Patch Merging Transformer Blocks Patch Merging Transformer Blocks
  7. 10 ▪ Patch embedding:画像をパッチに分割しtoken化 ▪ Positional encoding:tokenに位置情報を付加 ▪ Patch merging:空間解像度を半分にし、チャネル数を増加させる

    ▪ Transformer block:token mixer (attention) とFFNによる特徴抽出 階層的Vision Transformerの構成要素 Transformer Block !! × # 4 × % 4 Stage 1 !" × # 8 × % 8 Stage 2 !# × # 16 × % 16 Stage 3 !$ × # 32 × % 32 Stage 4 3×#×% Input Norm Token Mixer FFN Norm + + Patch Embedding Transformer Blocks Patch Merging Transformer Blocks Patch Merging Transformer Blocks Patch Merging Transformer Blocks
  8. 11 ▪ 画像を小さなパッチに分割し、高次元のtokenに変換する ▪ ViTでは16×16 ▪ 階層的Vision Transformerでは4×4が一般的 ▪ 実装は

    ▪ rearange (einops) -> linear or ▪ Conv2D (kernel size = stride = パッチサイズ) ▪ オーバーラップして分割するモデルも存在 ▪ CNNのように複数のConv2Dを利用して ダウンサンプルするモデルも存在 ▪ Layer normがあったりなかったり Patch Embedding
  9. 12 ▪ Transformer (attention) 自体は集合のencoder (decoder) ▪ Positional encodingにより各tokenに位置情報を付加する必要がある ▪

    色々なアプローチがある ▪ Relative or absolute × 固定(sinusoidal) or learnable [1] ▪ Conditional positional encodings [2](面白いので本資料のappendixで紹介) ▪ FFNのconvで暗にembedする [3] ▪ Absolute positional encodingは入力のtokenに付加する ▪ オリジナルのViTはこれ ▪ Relative positional encodingはattentionの内積部分に付加 Positional Encoding [1] K. Wu, et al., "Rethinking and Improving Relative Position Encoding for Vision Transformer," in Proc. of ICCV'21. [2] X. Chu, et al., "Conditional Positional Encodings for Vision Transformers," in arXiv:2102.10882. [3] Enze Xie, et a., "SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers," in Proc. of NeurIPS'21.
  10. 14 ▪ Layer norm, token mixer (=self-attention), feed-forward network (FFN)

    (=MLP), skip connectionで構成 ▪ Self-attention部分がポイント ▪ Attention 𝑄, 𝐾, 𝑉 = softmax 𝑄𝐾T/ 𝑑 𝑉 ▪ 𝑄 = 𝑊𝑞𝑋, 𝐾 = 𝑊𝑘𝑋, 𝑉 = 𝑊𝑣𝑋 Transformer block !! × # 4 × % 4 Stage 1 !" × # 8 × % 8 Stage 2 !# × # 16 × % 16 Stage 3 !$ × # 32 × % 32 Stage 4 Norm Token Mixer FFN Norm + + Transformer Blocks Patch Merging Transformer Blocks Patch Merging Transformer Blocks Patch Merging Transformer Blocks
  11. 15 ▪ Self-attentionの計算量が系列長の二乗に比例する(𝑄𝐾Tの内積) ▪ 画像の場合は系列長=画像サイズ(特徴マップのH×W) ▪ ViTの場合は入力画像サイズ224で14x14(入力の1/16)の特徴マップ ▪ 画像サイズを大きくして(e.g. 1280)、高解像度化(e.g.

    入力の1/4) すると大変なことになる ▪ この課題をどう解決するかが各手法の違い ▪ Attentionの範囲を局所的に制限するwindow (local) attention ▪ K, Vの空間サイズを小さくするspatial-reduction attention(Qはそのまま ▪ 実はほぼ上記の2パターン(ネタバレ) ▪ 上記の2つを組み合わせたり、spatial-reductionをマルチスケールでやったり、 windowの作り方が違ったり… 高解像度の特徴マップを利用しようとした際の課題
  12. 16 ▪ Vision Transformerを物体検出やセグメンテーションタスクの バックボーンとすべく階層的なVision Transformerが提案されている ▪ これらは共通の構造を持っており下記のモジュールから構成 ▪ Patch

    embedding:画像をパッチに分割しtoken化 ▪ Positional encoding:tokenに位置情報を付加 ▪ Patch merging:空間解像度を半分にし、チャネル数を増加させる ▪ Transformer block:token mixer (attention) とFFNによる特徴抽出 ▪ Transformer blockのattention部分の計算量削減がポイント ▪ Window (local) attentionとspatial-reduction attentionに大別される ▪ 以降では各モデルのtoken mixer (attention) 部分をメインに 雑に解説! ここまでのまとめ
  13. 17 ▪ Token mixer: Shifted Window-based Multi-head Self-attention Swin Transformer

    Two Successive Swin Transformer Blocks ココがポイント Z. Liu, et al., "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows," in Proc. of ICCV'21. Swin Transformer (ICCV'21 Best Paper) を 完璧に理解する資料 も見てネ!
  14. 18 ▪ 特徴マップをサイズがMxMのwindowに区切り window内でのみself-attentionを求める ▪ hxw個のパッチが存在する特徴マップにおいて、 (hw)x(hw)の計算量が、M2xM2 x (h/M)x(w/M) =

    M2hwに削減 ▪ M=7 (入力サイズ224の場合) ▪ C2(stride=4, 56x56のfeature map)だと、8x8個のwindow Window-based Multi-head Self-attention (W-MSA) per window window数 パッチ数の2乗
  15. 21 ▪ チャネルを2等分して、縦横のstripeでのself-attention CSWin Transformer X. Dong, et al., "CSWin

    Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows," in Proc. of CVPR’22.
  16. 22 ▪ でっかいモデルをGPUになんとか押し込みました! ▪ post-normになってる… Swin Transformer V2 Ze Liu,

    et al., "Swin Transformer V2: Scaling Up Capacity and Resolution," in Proc. of CVPR’22.
  17. 23 ▪ Token mixer: Spatial-Reduction Attention (SRA) Pyramid Vision Transformer

    (PVT) W. Wang, et al., "Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions," in Proc. of ICCV, 2021. Spatial-Reduction Attention (SRA) がポイント
  18. 24 ▪ K, V(辞書側)のみ空間サイズを縮小 ▪ 実装としてはConv2D -> LayerNorm ▪ Qはそのままなので

    出力サイズは変わらない ▪ 各stageの削減率は8, 4, 2, 1 と 特徴マップの縮小率と整合させる Spatial-Reduction Attention (SRA)
  19. 25 ▪ SRAのdown samplingをaverage poolに ▪ Patch embeddingにconvを使いoverlapさせる ▪ FFNにdepthwise

    convを挿入し、 positional embeddingを削除 (暗黙的なpositional encoding) PVTv2 W. Wang, et al., "PVTv2: Improved Baselines with Pyramid Vision Transformer," in Journal of Computational Visual Media, 2022.
  20. 26 ▪ 動画認識がメインタスクのモデル ▪ PVTと同様にK, Vをpoolingしたattention ▪ pool関数としてmax pool, average

    pool, stride付きdepthwise convを比較して depthwise convが精度面で良い結果 ▪ PVT→PVTv2ではconv→average poolに変更 ▪ PVTはdepthwiseではない通常のconvだった ▪ Patch merging (downsample) を、 Qをdownsampleすることで 行っているのが面白い Multiscale Vision Transformers (MViT) H. Fan, et al., "Multiscale Vision Transformers," in Proc. of ICCV'21.
  21. 27 ▪ residual pooling connectionの追加 ▪ decomposed relative position embedding

    E(rel) の追加 ▪ H×W×Tのテーブルを持たず独立を仮定して次元毎に持つ MViTv2 Y. Li, et al., "MViTv2: Improved Multiscale Vision Transformers for Classification and Detection," in Proc. of CVPR'22.
  22. 28 ▪ Patch embeddingにCNNのようなstem convを利用 ▪ Positional encodingにconvolutional token embeddingを利用

    ▪ Q, K, Vの作成にdepthwise separable convを利用 (K, V縮小) CvT H. Wu, "CvT: Introducing Convolutions to Vision Transformers," in Proc. of ICCV'21.
  23. 29 ▪ Efficient multi-head self-attention ▪ PVTと同じでK, Vを縮小 ▪ DWConvで縮小しているのが違い

    ResT Q. Zhang and Y. Yang, "ResT: An Efficient Transformer for Visual Recognition," in Proc. of NeurIPS'21.
  24. 30 ▪ これもspatial-reduction attention ▪ Head毎に異なる縮小率のK, Vを利用 ▪ 右の図が分かりやすくて素敵 Shunted

    Transformer S. Ren, et al., "Shunted Self-Attention via Multi-Scale Token Aggregation," in Proc. of CVPR'22. Shunted Transformer
  25. 32 ▪ LSAとGSAを繰り返すアーキテクチャ ▪ Locally-grouped self-attention (LSA):Swinのwindow attention ▪ Global

    sub-sampled attention (GSA):PVTのspatial-reduction attention Twins X. Chu, et al., "Twins: Revisiting the Design of Spatial Attention in Vision Transformers," in Proc. of NeurIPS'21.
  26. 34 ▪ Two levelでほぼlocalとglobal attention ▪ “For the focal self-attention

    layer, we introduce two levels, one for fine- grain local attention and one for coarse-grain global attention” Focal Transformer(現実) J. Yang, et al., "Focal Self-attention for Local-Global Interactions in Vision Transformers," in Proc. of NeurIPS'21. Level数を L と⼀般化して 図も L=3 なのに実際は 2 levelのみ…
  27. 35 ▪ SDA (window attention) と、特徴マップを空間的にshuffleしてから window attentionするLDAの組み合わせ ▪ 空間shuffleは

    [2] でも利用されている ▪ 古くはCNNにShuffleNetというものがあってじゃな… CrossFormer [1] [1] W. Wang, et al., "CrossFormer: A Versatile Vision Transformer Based on Cross-scale Attention," in Proc. of ICLR'22. [2] Z. Huang, et al., "Shuffle Transformer: Rethinking Spatial Shuffle for Vision Transformer," in arXiv:2106.03650.
  28. 37 ▪ MobileNetと並列にglobal tokenの streamを配置 ▪ 本体はCNN ▪ cross-attentionで情報をやりとり Mobile-Former

    Y. Chen, et al., "Mobile-Former: Bridging MobileNet and Transformer," in Proc. of CVPR'22. MobileNetの stream Global tokenの stream cross- attention cross- attention
  29. 38 ▪ Attentionの代わりにshift operation ▪ 空間方向(上下左右)に1 pixelずらす ▪ なのでZERO FLOPs!!!

    ▪ S2-MLP [2] や AS-MLP [3] といった 先行手法が存在するが ShiftViTは本当にshiftだけ ShiftViT [1] [1] G. Wang, et al., "When Shift Operation Meets Vision Transformer: An Extremely Simple Alternative to Attention Mechanism," in Proc. of AAAI'22. [2] T. Yu, et al., "S2-MLP: Spatial-Shift MLP Architecture for Vision," in Proc. of WACV'22. [3] D. Lian, et al., "AS-MLP: An Axial Shifted MLP Architecture for Vision," in Proc. of ICLR'22.
  30. 39 ▪ Attentionの代わりにpool operation! ▪ (MetaFormer論文) PoolFormer W. Yu, et

    al., "MetaFormer is Actually What You Need for Vision," in Proc. of CVPR’22.
  31. 40 ▪ 近年の階層的なVision Transformerを紹介した ▪ これらは共通の構造を持っており下記のモジュールから構成 ▪ Patch embedding:画像をパッチに分割しtoken化 ▪

    Positional encoding:tokenに位置情報を付加 ▪ Patch merging:空間解像度を半分にし、チャネル数を増加させる ▪ Transformer block:token mixer (attention) とFFNによる特徴抽出 ▪ Transformer blockのattention部分の計算量削減がポイント ▪ Window (local) attentionとspatial-reduction attentionに大別される ▪ これらの組み合わせもある。1 blockで両方 or 連続したblockで個別に ▪ Position encodingはなくしてFFNにDWConvが良さそう(個人の意見です ▪ cls tokenはなくしてglobal average poolingを使う流れ まとめ
  32. 41 まとめ(ICCV‘21, NeurIPS’21で流行、CVPR’22で完成?) Model Name Paper Title Published at Attention

    Type HaloNet Scaling Local Self-Attention for Parameter Efficient Visual Backbones CVPR'21 overlapped window Swin Transformer Swin Transformer: Hierarchical Vision Transformer using Shifted Windows ICCV'21 window + shifted window PVT Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions ICCV'21 spatial reduction MViT Multiscale Vision Transformers ICCV'21 spatial reduction CvT CvT: Introducing Convolutions to Vision Transformers ICCV'21 spatial reduction Vision Longformer Multi-Scale Vision Longformer: A New Vision Transformer for High-Resolution Image Encoding ICCV'21 window + global token CrossViT CrossViT: Cross-Attention Multi-Scale Vision Transformer for Image Classification ICCV'21 global CeiT Incorporating Convolution Designs into Visual Transformers ICCV'21 global CoaT Co-Scale Conv-Attentional Image Transformers ICCV'21 factorized ResT ResT: An Efficient Transformer for Visual Recognition NeurIPS'21 spatial reduction Twins Twins: Revisiting the Design of Spatial Attention in Vision Transformers NeurIPS'21 window + spatial reduction Focal Transformer Focal Self-attention for Local-Global Interactions in Vision Transformers NeurIPS'21 window + spatial reduction CoAtNet CoAtNet: Marrying Convolution and Attention for All Data Sizes NeurIPS'21 global SegFormer SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers NeurIPS'21 spatial reduction TNT Transformer in Transformer NeurIPS'21 window + spatial reduction CrossFormer CrossFormer: A Versatile Vision Transformer Hinging on Cross-scale Attention ICLR'22 window + shuffle RegionViT RegionViT: Regional-to-Local Attention for Vision Transformers ICLR'22 window + regional token PoolFormer / MetaFormer MetaFormer is Actually What You Need for Vision CVPR’22 pool CSWin Transformer A General Vision Transformer Backbone with Cross-Shaped Windows CVPR’22 cross-shaped window Swin Transformer V2 Swin Transformer V2: Scaling Up Capacity and Resolution CVPR’22 window + shifted window MViTv2 MViTv2: Improved Multiscale Vision Transformers for Classification and Detection CVPR'22 spatial reduction Shunted Transformer Shunted Self-Attention via Multi-Scale Token Aggregation CVPR'22 spatial reduction Mobile-Former Mobile-Former: Bridging MobileNet and Transformer CVPR'22 global token Lite Vision Transformer Lite Vision Transformer with Enhanced Self-Attention CVPR'22 conv attention PVTv2 Improved Baselines with Pyramid Vision Transformer CVMJ'22 spatial reduction
  33. 43 ▪ Self-attention自体は単なる集合のencoder ▪ Positional encodingにより系列データであることを教えている ▪ SwinではRelative Position Biasを利用

    ▪ Relativeにすることで、translation invarianceを表現 Relative Position Bias Window内の相対的な位置関係によって attention強度を調整(learnable)
  34. 45 ▪ On Position Embeddings in BERT, ICLR’21 ▪ https://openreview.net/forum?id=onxoVA9FxMw

    ▪ https://twitter.com/akivajp/status/1442241252204814336 ▪ Rethinking and Improving Relative Position Encoding for Vision Transformer, ICCV’21. thanks to @sasaki_ts ▪ CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows, arXiv’21. thanks to @Ocha_Cocoa Positional Encodingの議論
  35. 46 ▪ 入力token依存、画像入力サイズに依存しない、translation- invariance、絶対座標も何となく加味できるposition encoding (PE) ▪ 実装は単に特徴マップを2次元に再構築してzero padding付きのconvするだけ ▪

    Zero pad付きconvによりCNNが絶対座標を特徴マップに保持するという報告 [2] ▪ これにinspireされ、PVTv2ではFFNにDWConvを挿入、PE削除 Conditional Positional Encoding (CPE) [1] [1] X. Chu, et al., "Conditional Positional Encodings for Vision Transformers," in arXiv:2102.10882. [2] M. Islam, et al., "How Much Position Information Do Convolutional Neural Networks Encode?," in Proc. of ICLR'20.