LoginSignup
0
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

ViTのキーとバリューを小さくして計算量削減【PvT】

Last updated at Posted at 2023-06-15

原論文
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回繰り返させる.

スクリーンショット 2023-06-02 14.24.02.png

スクリーンショット 2023-06-02 14.23.40.png

ステージ間のダウンサンプリング

ステージ間のダウンサンプリングで空間の縦横のサイズは半分,チャンネル数を倍にする.
これをパッチ特徴量変換の線形射影で実行される.具体的には,入力画像を一定の小領域(パッチ)に分割し,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

スクリーンショット 2023-06-12 14.46.58.png

実験結果

画像分類,物体認識,セグメンテーションで計算量を削減したけど良くなったよ.

まとめ

今回は,ViTのキーとバリューを小さくして計算量削減するPvTについて解説した.計算量を削減しても精度は低下しなかった.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0