MLエンジニアへの道 #53 - ViT 続

Last Edited: 4/19/2025

このブログ記事では、コンピュータビジョンにおけるViTの改良点について紹介します。

ML

DEFRに関する以前の記事では、ResNet50のような畳み込みバックボーンを前提として、エンコーダー、デコーダー、クエリ選択、 損失関数に対するいくつかの改良について議論し、性能を大幅に向上させました。しかし、RoboflowのRF-DETRが示すように、 バックボーンとしてトランスフォーマーベースのモデルを使用することも可能です。RF-DETRは、バックボーンとしてMetaが事前学習した巨大なViT、 DINOを活用したDeformable DETRです。以前議論したDETRモデルに関するいくつかの論文でも、ViTバックボーンを用いて実験し、高い性能を観察しています。 バックボーンは物体検出以外のほぼすべての画像タスクで使用できることを考えると、バックボーンの改良は極めて重要です。 そのため、この記事ではViTに対する改良について議論します。

Swin Transformers

ViTは計算を扱いやすくするために画像パッチにセルフアテンションを適用しますが、すべてのパッチが互いにアテンションを払う必要があるため、 依然として二次関数的にスケールします。また、ViTはグローバルにアテンションを適用するため、階層的なアーキテクチャを持ちません。 これにより、帰納的バイアスが少なく、初期の受容野が広くなる為、潜在的な性能向上を期待できますが、計算コスト、 収束の遅さ、より多くのデータ要件、階層的な特徴マップを利用する物体検出器との非互換性という多くの代償を伴います。

Swin Layers

そこで、Swin(shifted window)Transformerは、ウィンドウベースのマルチヘッドセルフアテンション(W-MSA)を導入し、 同じウィンドウ内のパッチ間にアテンションを制限することで、局所性の帰納的バイアスを再導入し、計算複雑性を線形に削減します。 異なるウィンドウにある隣接パッチが互いにアテンションを払えるように、CNNの動作と同様に、ウィンドウはある程度シフトされます(SW-MSA)。 さらに、同じウィンドウサイズを維持しながら、パッチを徐々に統合(隣接する4つのパッチを連結してDense層に渡す)することで、 ウィンドウの数を効果的に減らし、より多くのパッチをカバーできるようにします。これはCNNがダウンサンプリングする方法に類似しており、 局所的なアテンションからグローバルなアテンションまでの特徴を持つ階層的な特徴マップの作成を可能にします。

Swin-T

Swin Transformerはパッチを統合するため、W-MSAとSW-MSA層は絶対位置ではなくパッチの相対位置に依存する必要があります。 そのため、学習可能な相対位置バイアス B^R(2H1)(2W1)\hat{B} \in \text{R}^{(2H-1)(2W-1)} を適用し、すべてのパッチペア BRM2B \in \text{R}^{M^2}MM はウィンドウの辺の長さ)に投影してアテンションの重みに追加します(Softmax(QKTd+B)V\text{Softmax}(\frac{QK^T}{\sqrt{d}} + B)V)。 また、循環シフトを実行するために roll 関数(TensorFlowとPyTorchの両方で利用可能)を使用し、 シフトされたパッチへのアテンションを制限するためのアテンションマスクを適用することで、適切かつ効率的なSW-MSAを実現します。

畳み込み層によるパッチ埋め込みの作成、データ拡張、確率的深さ(残差接続のみを通じてランダムに伝播を選択)などのテクニックを活用することで、 Swin Transformerは画像分類、セマンティックセグメンテーション、物体検出においてSOTAの結果を達成しました。 実際、DINO DETRはResNet50ではなく、Swin-L(大型Swin Transformer)バックボーンで最良の結果を観察しました (ただし、CoDETRは意外にもViT-Lバックボーンでより良い性能を示しました)。

DAT

Swin Transformerはデータに依存しないアテンション機構を適用しており、アテンション機構はデータによって変化しません。 固定サイズのウィンドウを使用してアテンションを計算します。そのため、シフトウィンドウメカニズムがあっても、 少し離れた重要なパッチにアテンションを向けられず、意味のないパッチにアテンションを向けてしまう場合があります。 これは局所的なアテンションを捉えることを目的とした初期ブロックでは問題ではありませんが、後半のブロックでは問題になる可能性があります。 そのため、Deformable Attention Transformers (DAT)は、最後の数ブロックのデータに依存しないSW-MSA層を、 データから計算されたオフセットを使用して事前定義された参照点を変形させるデータ依存型の変形可能なアテンション機構に置き換えています。

DAT

上記はDATで使用される変形可能なアテンション機構を説明しています。Deformable DETRで使用される変形可能なアテンション機構は、 各クエリに対していくつかのオフセット(通常4つ)を計算し、キーを導出せずにアテンションの重みを計算します (これはアテンション機構よりも畳み込み操作に近いと考えられます)。一方、DATは多くのクエリに依存しないオフセットを計算して、 セルフアテンションのための値とキーの両方を取得します。これはグローバルなアテンションがクエリによってあまり変化しないという観察に基づいており、 すべてのクエリに対してオフセットを計算する必要がなく、より効率的に多くのオフセットを計算し、バックボーンとしてより多くの特徴を保持することができます。

効率的なオフセット生成のために、ストライドrrを持つ深さ方向の畳み込み(各チャンネルに対して(H×W×1)(H \times W \times 1)カーネルを使用)と、 チャンネル次元2のポイントワイズ(1×11 \times 1)畳み込みを持つオフセットネットワークを使用します。 参照点は線形に配置された2D座標{(0,0),...,(H/r1,W/r1)}\{(0,0),...,(H/r - 1, W/r - 1)\}で、[1,1][-1, 1]の範囲に正規化されています(サンプリング時に非正規化されます)。 Swin Transformerと同様に、DATは学習可能なバイアステーブルからの相対位置バイアスを適用しますが、すべての可能なオフセット値に対応するために、 クエリとキー間の連続的な相対変位RR[1,1][-1, 1]の範囲)を取るパラメータ化されたバイアステーブルϕ(B^;R)\phi(\hat{B}; R)を使用する必要があります (オフセットによりキーがどこに配置されるかを事前に知ることができないため)。

最後の数層に変形可能なアテンションモジュールを導入することで、原論文ではDATがSwin Transformerを画像分類(ImageNet)、 セマンティックセグメンテーション(ADE20K)、物体検出、インスタンスセグメンテーション(COCO)において一貫してわずかに上回ることを示しました。 階層的な特徴マップを生成するため、これまで議論してきた物体検出器とも互換性があります(ただし、私の知る限り、Swinとは異なり、 DATのアクセシビリティが低いことと報告されている性能向上が比較的小さいことからか、この互換性は広範に実験されていません)。

結論

この記事では、ViTバックボーンにおけるアークテクチャの改良について、SwinとDATによって導入された高性能化、複雑性の改善、 階層的特徴マップを利用する物体検出器や他のビジョンモデルとの互換性向上について議論しました。 ただし、これらのモデルはViTよりも高い帰納的バイアスを持っており、より多くの計算リソースとデータが利用可能になった場合には、 性能が低下する可能性があることを留意することが重要です(これはRF-DETRとCoDETRがViTバックボーンを使用しながら、より良い性能を発揮している理由かもしれません)。

リソース