[論文メモ] Improved Multiscale Vision Transformers for Classification and Detection
FAIR
Technical report
クラス分類、物体検出、動画の認識のためのMultiscale Vision Transformer(MViT)の改善
MViT
高解像度・低解像度のマルチステージを持つViT。以下の論文で提案(著者はほぼ同じ)。
arxiv.org
Pooling Attention(PA)が提案されている。
ViTは入力画像をパッチに分けそれをシーケンス として扱うが、PAではに対して普通のPoolingを実行することでシーケンス長をからに縮小していく。
手法
主にPAの改善
Decomposed relative position embedding
なお、動画関係を扱うため入力次元はではなくになる。
MViTではabsolute positional enmbedding(APE)を使っていたのでpoolingが位置に対して不変でなかった。
それを回避するためにAPEからrelative positional embedding(RPE)に変更。ただ単に採用するとPREはのサイズになり計算コストがかかる。
なので各方向(時間、縦、横)毎に独立したPEを利用する。これによりに抑えられる。
図2の真ん中辺りがそれ。
なおembeddingなので学習対象になることに注意(固定ではない)。
Residual pooling connection
attentionのKeyとValueに関しては大きめのstrideを利用し、Queryに関しては必要に応じたdownsamplingを適用していた。
Queryのサイズは基本変わらないので、Residual connectionを導入し情報を増やす and attentionの学習を容易にさせる。
図2の右側の赤い矢印がそれ。
MViT for Object Detection
MViTをバックボーンとした物体検出への拡張。
よくあるようにFeature Pyramid Networks(FPN)を追加(図3参照)。
self-attention(SA)はただでさえ計算コストが高く、物体検出では入力解像度が高いのでなおのことコストが高い。
Swin Transformerで使われたwindow attentionはパッチすべてを入力するのではなくwindowに区切って、そのwindow内でattentionを行う。なのでlocalなattentionといえる。
それに対してPAはpoolingをして周辺パッチを集約させるという意味ではローカルだが、attention自体はパッチすべてを扱うのでglobalといえる。
window attentionはwindow間でのやり取りができない問題をshifted windowを行うことで解決していた。
ここではHybrid window attention (Hwin)を提案。
最後の3ステージに関して、最後のブロック以外でwindow attentionを行う。
Positional Embeddingに関してはクラス分類と違って入力サイズが可変なので、ImageNetクラス分類で学習したPositional Embeddingを元に補完して利用する。
MViT for Video Recognition
vision用との違いは3つ
1) projectionが2Dから3Dになる
2) poolingが時間方向も含める
3) relative positional embeddingが時間方向も含める
実験結果
表1に示すように複数のMViTを用意。
詳しい実験内容・結果は論文を参照。一応表だけ載せておく。
Positional Embeddingのablation
Residual pooling connectionのablation
所感
ViTでPoolingを採用する方法があるのを知らなかった。
paddingを利用しないと解像度が変化、つまりシーケンス長が変化するので特定のタスクでは利用が難しそう。
QueryをAttention後にResidual Connectionで足し合わせるというのは初めて見たかもしれない。計算コストやメモリの大幅な増加は無いので問題は無いが、ここにconnectionを追加してもいいのだろうかという気持ちがある。一応ablationで問題ないことは示されてはいる。