Index
Swin Transformer
画像 (Vision) のタスクに Transformer を対応させた手法.
画像 (Vision) への適応の課題
Transformer を自然言語処理から画像処理へ適応させるときの課題は、
入力が単語から画像パッチへ変わることによる、情報の拡大である.
この問題に対応するために、Swin Transformer では Shifted Window を導入する.
ネットワークアーキテクチャ
以下の 4 つで構成されている.
- Patch Partition
- Linier Embedding
- Swin Transformer Block
- Patch Merging
Hierarchical Feature Map
Vision Transformer (ViT) に比べて、FPN / U-Net のような、階層構造を導入することで
Classification 以外の局所的な特徴が有効であるタスク (Detection etc)での精度の向上を図る.
Vision Transformer
Feature Pyramid Network
U-Net
Patch Partition
ViT 同様、画像をパッチ単位で分割する.
このパッチは、NLP でいうと token に対応する.
この論文での、実装では、 のパッチで、RGB で考えると、.
Linier Embedding
分割したパッチを 次元のベクトルに変換.
Swin Transformer Block
Self Attention の演算を行うブロック. (詳細は後述)
Patch Merging
階層表現を作成するために、ネットワークが深くなるにつれて、
パッチをマージすることで、パッチの数が減り、チャネル数が増える.
例えば、最初のマージでは、 の隣接するパッチを連結し、 次元のベクトルを作成する.
Swin Transformer Block
ViT で利用されている Multi Head Self Attention (MSA) を改善している.
Normalization
各主要な処理の前 (Pre Norm)に、Layer Normalization を施す.
Pre Norm
Layer Normalization
MLP Layer
W-MSA / SW-MSA
冒頭にも挙げたように、Transformer を画像分野に適用させるときの問題
(正確には、入力データが大きくなってしまうときの問題) に対応する.
この問題は、Self Attention の特徴によるもので、学習のためのパラメータが、入力サイズに対して 2 次関数的に増えてしまうことである
(1 つのパッチ (トークン) / Query に対し、Key / Value の 2 つの情報を持たなければならない)
この問題に、効率的に入力を工夫することで対応する.
SW-MSA : Shifted Window-based Multi-head Self-Attention
Window の導入
Patch をまとめて、1 つの Window というものを作る.
例えば、 個の Patch から構成されている画像あるとする.
この Patch を 個の Window になるように Patch をまとめる.
Window をまとめることで、計算量を削減する.
Shifted Windowの工夫
W-MSA では、Windows 間の繋がりの情報がないとい問題もある.
そこで、この問題に対応したSW-MSA を導入し、
Swin Transformer Block の内部で交互に構成する.
SW-MSA は、W-MSA とは異なる (Shifted した) 分割方法で、Window を作成する.
上の図では、 だけ W-MSA で作成した Window をずらすことで、
SW-MSA で入力する Window を作成する.
SW-MSA を導入することで、「Window 間の繋がりの情報」を持たせる.
Relative Position Bias
Self Attention のスコア関数は、Scaled Dot Product Attention の計算に Bias を加える工夫を施す.
- Scaled Dot Product Attention
上が、Transformer / Vision Transformer のスコア関数として利用されているいる、
Scaled Dot Product Attention である.
そこに、Bias として を以下のように追加する.
参考
- Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
- [2021]
- Abstract
- 1 Introduction
- 3 Method
- 3.1 Overall Architecture
- 3.2 Shifted Window based Self-Attention
- arxiv.org
Web サイト
SwinTransformerでCIFAR-10を一から訓練する
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料