オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Swin Transformer V2 #アルゴリズム編

yhayato1320.hatenablog.com

Index

Swin Transformer V2

Swin Transformer を改善して、大きなサイズの入力に対応し、モデルの大きさをスケールアップした.

yhayato1320.hatenablog.com

自然言語分野との対比

Transformer を用いた言語モデルは、モデルのスケールアップに成功し、精度を向上させている.
(530 bilion ものパラメータ.)

しかし、一方、画像分野でのモデルのスケールアップは難しく、1 ~ 2 biliom 程度のパラメータまでしか、スケールアップできていない.

画像分野における課題

画像分野における課題として以下のようなものがある.

  1. 画像分野でのモデルの学習では、不安定性がある.
    • Post Norm
    • Scaled Cosine Attention
  2. 画像のタスクである、セグメンテーションや物体検出では、高解像度な入力が必要とされる.
    • Log-CPB

Swin Transformer の課題

  1. モデルのスケーリング
  2. 入力の解像度

モデルのスケーリング

モデルの大きさをスケールアップすると学習が不安定になる.

入力の解像度

入力の解像度が大きくなると精度が低下する.

改善点

モデルのスケーリングへの対応

  • Post Norm
  • Scaled Cosine Attention

Post Norm

Swin Transformer では、Vision Transformer を継承するように、Pre Norm を採用してる.

それを、Post Norm に変更.

yhayato1320.hatenablog.com

Scaled Cosine Attention

Self Attention では、スコア関数 (Query と Key の類似度 / 関連度) の計算に ベクトルの内積を利用する.

 Attention(Q,\ K,\ V)\ =\ Softmax \left( \displaystyle \frac{Q\ K^{T}}{\sqrt{d}} \right) V



この計算を利用した Attention を Scaled Dot Product Attention と呼んでいる.



yhayato1320.hatenablog.com

Swin Transformer では、Scaled Dot Product Attention 同様に ベクトルの内積 (Dot Product) を Query と Key の類似度 / 関連度とみなしていた.

 Sim(Q,\ K)\ =\ \displaystyle \frac{Q\ K^{T}}{\sqrt{d}}



しかし、それでは、ある入力同士の類似度 / 関連度が大きくなりすぎてしまうことがある.

類似度しての利用方法は問題ないが、その類似度の比較という面では、よくない様子.



この問題を緩和するために、Scaled Cosine Attention を導入する.

 Sim(q_{i},\ k_{j})\ =\  \displaystyle \frac{cos(q_{i},\ k_{j})}{\tau}\ +\ B_{i,\ j}



yhayato1320.hatenablog.com

高解像度への対応

  • Continuous Relative Position Bias / CPB
  • Log-Spaced Coordinates

Continuous Relative Position Bias / CPB

Swin Transformer では、Relative Position Bias を
ディープニューラルネットワークでのバイアスパラメータのようにを直接最適化していた.

直接最適化するのではなく、ニューラルネットワークを利用して、変換するアプローチをとる.

 B(\Delta x,\ \Delta y)\ =\ G(\Delta x,\ \Delta y)

Log-Spaced Coordinates

Window のサイズが大きく変化する場合に、適用するため、相対座標に対数を適用する.

 \hat{\Delta x}\ =\ sign(x)\ \cdot\ \log(1\ +\ |\Delta x|)
 \hat{\Delta y}\ =\ sign(y)\ \cdot\ \log(1\ +\ |\Delta y|)

Log-Spaced CPB

CPB の入力に、Log-Spaced Coordinates を行った出力を利用する.

GPU への実装の工夫

  • Zero-Redundancy Optimizer / ZeRO
  • Activation check-pointing
  • Sequential self-attention computation

Self Supervised / 自己教師ありの工夫

モデルを大きすると、その分、大規模なデータセットが必要になる.

参考

  • Swin Transformer V2: Scaling Up Capacity and Resolution
    • [2021]
    • Abstract
    • 1 Introduction
    • 3 Swin Transformer V2
      • 3.1 A Brief Review of Swin Transformer
      • 3.2 Scaling Up Model Capacity
      • 3.3 Scaling Up Window Resolution
      • 3.4 Other Implementation
    • arxiv.org

Web サイト

  • 【論文5分まとめ】Swin Transformer V2: Scaling up capacity and resolution

  • [論文メモ] Swin Transformer V2: Scaling Up Capacity and Resolution