[論文メモ] Visual Attention Network

arxiv.org
github.com

画像系タスクに合わせたAttentionとしてLarge Kernel Attention(LKA)を提案

f:id:Ninhydrin:20220302091926p:plain

空間的に離れた情報同士を扱う方法として大きく2つの方法がある。
1爪がNLPで使われていたSelf-Attention(SA)を使う方法で、画像をパッチに分割しトークン列として処理するが

  • 画像を1Dとして扱うため元の2D構造が無視される
  • 解像度が大きいと計算量が膨大になる
  • 空間方向を考慮したAttentionなので、画像にとって大切なチャンネル方向が考慮されていない

といった問題がある。
2つ目に画像全体をカバーする大きいカーネルサイズのConvolutionを使う方法がある。これは計算量が大きく、パラメータも多くなってしまう。

手法

提案するLKAは図2のように大きいカーネルサイズのConvolutionをDepth-wise Dilation Conv(DW-D-Conv)とDepth-wise Conv(DW-Conv)と Point-wise Conv(PW-Conv)に分解する。
カーネルサイズ K \times KのConvolutionはカーネルサイズ \frac{K}{d} \times \frac{K}{d}でdilation dのDW-D-Convとカーネルサイズ (2d - 1) \times (2d-1)のDW-Convと 1 \times 1のPW-Convとなる。
これによりSAと同じように離れた点同士の関係を低コストで計算できる。あとはこれをAttention Mapとして計算する(下記の式1, 2)。
f:id:Ninhydrin:20220302092555p:plain

 F \in \mathcal{R}^{C \times H \times W}は入力特徴量。

LKAは表1のようなConvolutionとAttentionの両方のアドバンテージを持つ
f:id:Ninhydrin:20220302093948p:plain

LKAを使ったネットワーク、Visual Attention Network(VAN)について。
VANはピラミッド構造で解像度が異なる4ステージからなる。
各ステージは図3(d)の構造。
f:id:Ninhydrin:20220302094815p:plain

各ステージ毎のチャンネル数や解像度は表2を参照
f:id:Ninhydrin:20220302094919p:plain

パラメータ数とFLOPs
f:id:Ninhydrin:20220302095105p:plain

実験・結果

ImageNet-1Kのクラス分類、COCOのObject Detecf:id:Ninhydrin:20220302100241p:plaintion、ADE20KのSemantic Segmentation。
f:id:Ninhydrin:20220302100014p:plain
f:id:Ninhydrin:20220302100044p:plain
f:id:Ninhydrin:20220302100107p:plain
f:id:Ninhydrin:20220302100130p:plain


Grad-CAMで可視化
f:id:Ninhydrin:20220302100204p:plain

Ablation study
f:id:Ninhydrin:20220302100402p:plain

所感

なんかすでにどこかで見たことあるようなアーキテクチャ。ありそうでなかった?Mobile-Netは近いけど、大域をカバーするわけではなかった。
最近のMLPもそうだしAttentionというか、Localな特徴とGlobalな特徴をどうやって共存させつつも統括するかの問題な気がする(注意とかではなく)。
だから単純にずらすだけのShift Operationも効果があるしで、Softmaxして重み(注意)が〜とかそのあたり意味が無いのでは?
Localな情報のみを扱えるConvolutionとそれらのLocalな情報を相互作用できる何かしらGlobalなオペレーションで十分そう。