LoginSignup
1
2

More than 3 years have passed since last update.

【論文メモ】Attend and Rectify: a gated attention mechanism for fine-grained recovery

Posted at

注意:この文書は荒いメモなので、細かい内容に関してはご自身で元論文に当たってください。

概要

CNNにAttentionの仕組みを導入して、Fine-grained recognitionを実現する手法。
CNNの各段階(入力層に近い段階から、出力層に近い段階まで)の各段階でAttention機構を導入し、入力層に近い段階ではテクスチャのような情報を、出力層に近い段階では大域的な情報を抽出して、分類に役立てる。
また、各段階で得られた情報のうちどれを重視するのかも、Attention機構によって重みつけして処理している。

image.png

以下の4点が、本手法の利点として挙げられている。

  • 全ての段階に適用する処理は同一のものであるため、モジュール化し使いまわせる
  • 任意のベースアーキテクチャに適用可能
  • ベースアーキテクチャに追加で必要なメモリと計算コストが少ない
  • 実装が簡単

手法

本手法では、以下の3つのサブモジュールが、ローカル(CNNの段階)でも、グローバルでも使われる。

  • attention head $\mathcal{H}$: 特徴量マップから複数のAttentionマップを作成する
  • output head $\mathcal{O}$: 特徴量マップとAttentionマップから、仮説(分類のスコア)を計算
  • confidence gates $\mathcal{G}$: 複数のAttentionマップの信頼性を計算して重み付けし、最終的な仮説とする。

いずれのサブモジュールも1層のConv層とAvgPooling、内積計算などからなる単純な計算しか含んでおらず、パラメータ数も多くは無い。

ローカルな仮説の算出

以下にCNNの各段階に対する処理のうちの、1つの段階を示す。
image.png

入力されている$Z^l$は、CNNの$l$段階目の特徴量マップという意味である。

  1. Attention head: 入力された特徴量マップを元に$K$枚のAttentionマップが作成される。
  2. Output head: 特徴量マップと$K$個のAttentionマップを元に、それぞれのAttentionマップに対応する$K$個の仮説を算出する。この時、AvgPoolingが行われるので、マップの大きさに依存しない出力結果となる。
  3. Attention gates: 特徴量マップと$K$個のAttentionマップを元に、$K$個のAttentionマップに対する信頼度($K$次元)を計算する。Output headと同様、AvgPoolingによってマップの大きさに非依存の計算となる。
  4. Output headで得られた $K$個の仮説に対して、Attention gatesで得られた$K$次元の信頼度をかけて足し合わせ、$l$段階目の仮説を得る。

なお、$K$をAttention Width(AW)と呼ぶ。

グローバルな仮説の算出

以下にグローバルな分類スコアの算出を示す。
image.png

グローバルな仮説の算出も、ローカルな仮説の算出と同様のサブモジュールから成り立っている。

  • 入力$Z^L$はCNNの最終層で得られる特徴量マップである。
  • output headは存在しないが、代わりに、各段階の仮説とCNNの最後に得られる仮説${output}_{net}$が追加の入力として存在する。

以下に計算手順を示す。

  1. Attention head: ローカルでは$K$枚のAttentionマップを作成するが、グローバルでは$N+1$枚のAttentionマップを作成する。
  2. Global Attention gates: $N+1$個のAttentionマップから、それぞれに対応する$N+1$個の信頼度を作成する。
  3. N個の各段階、およびCNNの最後に得られる仮説の合計$N+1$個の仮説に対して、Global Attention gatesで得られた信頼度による重み付き合計を算出し、最終的な仮説とする。

なお、$N$をAttention Depth(AD)と呼ぶ。

実験

実験では、ベースアーキテクチャとしてWide-ResNetを使用している。
以下にCIFAR-10、CIFAR-100での既存手法との比較を示す。表中の数値はError rateである。なお、訓練はイチから行なっている。

image.png

ベースラインとなっているWRN(Wide-ResNet)とほとんど実行速度に違いが無いが、精度はきっちり上がっている。
比較的浅くても(Depth=28)それなりの精度が出ている。

議論

図.6にAttention Maskの可視化が示されているが、AttentionMaskは色々なところで計算しているので、どの部分の可視化なのかが今ひとつわからない。
image.png

感想

ちょっと前に読んだものをまとめてみた。

1
2
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
1
2