[論文メモ] QUADTREE ATTENTION FOR VISION TRANSFORMERS
ICLR2022
Vision Transformer(ViT)のAttentionに四分木を導入して計算コストを下げた。
手法
ピラミッド構造にし、予測に影響しない(attention scoreが低い)箇所はそのまま、予測に影響する部分のみ深堀りしていくことで情報のロスの抑えつつ効率化を図る
特徴マップをダウンサンプリング(avarage pooling)することで、層のピラミッド構造を用意する。
一番粗い層から処理をしていく。
ある層に対してattentionを行いattention scoreを計算する。
そしてattention scoreにが高い上位個のトークンを選択し、次の層にでは層で選ばれたトークンをそれぞれ4分割し再度そのトークン間でattentionを計算する。
図2は、のときで、層1で選択された右2つのトークンが4分割され、層2でattentionに利用されている。
この処理を一番細かい層(元のトークンサイズ)になるまで繰り返す。
こうして出来上がった各層の粗さの異なるトークンを集約する必要があり、その手法としてQuadTree-AとQuadTree-Bの2つを提案。
QuadTree-A
すべての層から集約するパターン。
一番細かい層のあるあるクエリトークンをに対応する出力(ここではメッセージと呼ぶ)について考える(図2(a)のQのlevel 3にある)。
QuadTree-Aではを各層から計算される部分メッセージの和とする。
層の上位個のトークンが所属する領域をとする(図2(c)を参照)。ただしは画像全体。
そしてとする(図2(b)を参照)。
部分メッセージは領域内のトークン間で計算される
はバリュー、では対応する親のクエリとキーのスコア(attention の的な)で 。
は分割された2x2のトークンによるattention後の値。
図2の(b)がメッセージの例で、緑の領域はに関係ある部分で細かく、赤い箇所は関係ない部分で粗くなっている。
QuadTree-Aではクエリ・キー・バリューはaverage poolingでダウンサンプリングする。
実験・結果
例の如く省略。
Image classificationだけ。
意外と精度は高いが、計算効率的に微妙な...