原論文
Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions
https://arxiv.org/abs/2102.12122
関連研究
Vison Transformerの解説
https://qiita.com/wakanomi/items/55bba80338615c7cce73
CNN+ViTモデルの傾向【サーベイ】
https://qiita.com/wakayama_90b/items/96bf5d32b09cb0041c39
PVTv2(改良モデル)
https://qiita.com/wakayama_90b/items/f3a48a2fb54db33614eb
結論
ViTのキーとバリューをダウンサンプリングして計算量削減した.
概要
ViTの問題点の一つとして,計算量が膨大である問題点がある.この問題点をキーとバリューをダウンサンプリングで解決しようとする.この考え方は,その後に提案される様々なViT派生モデルで採用されることになる.
モデル構造
PVTのモデル構造はResNetやSwinのようなステージ4の階層型を採用する.従来の階層型モデルの傾向と同様にステージ3を深く設定する(下表のTransformer Encoderの繰り返し回数).ステージ内ではパッチ特徴量変換(Patch Embedng)を行い,Transformer EncoderがL回繰り返させる.
ステージ間のダウンサンプリング
ステージ間のダウンサンプリングで空間の縦横のサイズは半分,チャンネル数を倍にする.
これをパッチ特徴量変換の線形射影で実行される.具体的には,入力画像を一定の小領域(パッチ)に分割し,1次元化(flatten)する.1次元かされたパッチの特徴($1 \times 1 \times c$)は線形射影で($1 \times 1 \times c/p$)に変換される.ここでpは下表で示される各ステージのPatch Embeddingで定義されているダウンサンプリング値である.
キーとバリューのダウンサンプリング
ViTの計算量削減のために,キーとバリューを入力特徴量変換の前にダウンサンプリングする.Multi-Head Attention(Self-Attention(SA))を計算するために,線形射影を使用してQ,K,Vを作成する.線形射影とは,行列(w)をかけて特徴量を変換することである.SAの出力する特徴マップはクエリの大きさに依存するため,キーとバリューのサイズをダウンサンプリングしても,出力のサイズに影響ない.
ダウンサンプリングの式
SR(x) = Nrom(Reshape(x,R)W)
クエリ,キーバリューの変換
Q = xW_q \\
K=SR(x)W_k \\
V=SR(x)W_v
ダウンサンプリングされたSA(SRA)の計算
SRA(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d}})V
実験結果
画像分類,物体認識,セグメンテーションで計算量を削減したけど良くなったよ.
まとめ
今回は,ViTのキーとバリューを小さくして計算量削減するPvTについて解説した.計算量を削減しても精度は低下しなかった.