Attention Augmented Convolutional Networks
スポンサーリンク
論文URL
https://arxiv.org/pdf/1904.09925.pdf
2019年4月公開
ポイント
- 画像の特徴量マップを算出するAttention Augmentation(AA)ブロックをGoogle Brainが提案
- 機械翻訳等のシーケンスデータを扱うTransfomerに、空間並進普遍性を考慮する項を追加
- Transformerでは注意を向けるべき場所を抽出する辞書(クエリ、キー、バリュー)を学習を通して構築する
- SE blockのような従来型の注意機構では、畳み込み層の出力特徴量マップの補正重みを計算していたのに対し、AAブロックでは特徴量マップそのものを出力する
- 論文中の実験では、畳み込み層とAAブロックの両方の特徴量マップをconcatして使用する方が高精度となっていたが、AAブロックのみで画像分類することも可能
- 機械翻訳等のシーケンスデータを扱うTransfomerに、空間並進普遍性を考慮する項を追加
- 性能
- ResNet50によるImageNet画像分類では精度が1.3%改善
- RetinaNetによるCOCO物体検出ではmAPが1.4%改善
- モデルのパラメータ数や計算コストはオリジナルのResNetと同程度
- 特徴量マップのチャンネル数を変えない場合、畳み込み層のチャンネルを減らしAAブロックの特徴量を増やすほどパラメータ数と計算コストを減らすことができる
- AAブロックのメモリ使用量は大きい
- に比例している
Attention Augmentation(AA)ブロック
- 数式に用いる変数
- : 入力特徴量マップのバッチサイズ、行数、列数、チャンネル数
- : ヘッドの個数。ヘッドごとに異なるクエリ、キー、バリューを計算する。
- : 番目ヘッドのクエリおよびキー特徴量の深さ(=チャンネル数)
- : 番目ヘッドのバリュー特徴量の深さ
- : 入力テンソル。サイズは
- : 番目ヘッドのクエリ、キー、バリュー
- : 番目ヘッドの行方向、列方向の空間並進普遍性考慮項
- : 番目ヘッドの出力特徴量マップ
- : multihead-attention 。AAブロックの出力特徴量マップ
- 補足
- 論文ではヘッドごとに異なる項の一部にしかが付記されていないが、明確化のため関連する全ての項にを追加
- クエリの計算
-
- : をクエリ特徴量に変換する学習パラメータ。サイズは
- 特徴量マップのチャンネル数を変換する演算となっており、1x1の畳み込みで計算できる
- のサイズは
-
- キーの計算
-
- : をキー特徴量に変換する学習パラメータ。サイズは
- のサイズは
-
- バリューの計算
-
- : をバリュー特徴量に変換する学習パラメータ。サイズは
- のサイズは
-
- 行方向の空間並進普遍性考慮項
-
- : 空間位置。行列方向成分をflat化したベクトル上のインデックスと考えれば良い。
- : 位置に対する相対行。相対行の範囲は
- : の位置における成分
- : におけるクエリ補正項。学習パラメータ。
- サイズは
- 全ヘッドの全列で共通の補正項となっている
- の計算時に画像範囲外となるは使用しない
- 例:一行目画素であれば、相対行の成分が使用される
- のサイズは
- 全画素について他の画素との相対的位置に基づく補正量が保持されている
-
- 列方向の空間並進普遍性考慮項
- 上記、行方向の普遍性考慮項において行と列を入れ替えて考えれば良い
- ヘッドの出力特徴量マップ
-
- 上記の式からを取り除くとTransformerと同じ形式のブロックになる。
- 項のサイズは
- のサイズは
-
- AAブロックの出力特徴量マップ
-
- : サイズがの学習パラメータ
- のサイズは
-
AA-ResNetによるImageNet画像分類性能
- オリジナルのResNetに対してはもちろんAttentionを行っているSE-ResNetよりも高性能