論文読み Non-local Neural Networks
局所的な情報しか扱うことができないCNNやRNNに、大域的な情報を付与することが可能なnon-local blockというモジュールを提案した論文です。traditionalなノイズ除去手法のNon-local Mean Filterを、ニューラルネットワークで表現したような手法です。
Abstract
CNNやRNNでは局所的な情報しか扱うことができない。CNNだとカーネルサイズを大きくするとか方法があるけど、限界があるし小さいカーネルの利点が失われる。 そこで、本論文ではより大域的な情報を扱うことが可能なnon-local operatorを提案する。 non-local operatorはノイズ除去手法のNon-local Mean Filterから着想を得ており、着目点の値を特徴マップ中の全ての点の重み付き和として表現する。 non-local operatorはcomputer vision系の様々な構造のモデルに導入可能であり、導入することで動画像の分類や物体検出、領域分割において性能が向上した。
3. Non-local Neural Networks
3.1. Formulation
Non-local Mean Filterの演算をニューラルネットワーク向けに以下のようなnon local operatorに定式化する。
は特徴マップ中の着目点とある点の類似度、はある点での入力信号の表現を計算する関数を表す。 は正規化係数。
全結合層との違い
non-local operatorにおいて全結合層の重みにあたるは学習パラメータではなく類似度である。また、non-local operatoのr入力サイズは任意でありCNNやRNNに簡単に導入できる。
3.2. Instantiations
はカーネルサイズが1の畳み込みによるembeddingで表現する。類似度を表すには以下のようなものが考えられる。
Gaussian
ユークリッド距離ではなく内積を用いるのは、その方がDeep learningのプラットフォーム上で実装しやすいため。正規化係数はの総和。
Embedded Gaussian
\theta({\bf x}_i)と\phi({\bf x}_j)はembeddingを求める関数でと同様に、カーネルサイズが1の畳み込みで表現する。 正規化係数はGaussianと同様にの総和。
機械翻訳タスクにおいて用いられているself-attention moduleは、Embedded Gaussianを類似度関数に使ったnon-local operatorとして捉えることができる。 Embedded Gaussianを用いるとき、は次元jに沿ってsoftmax関数をかけるのと同じとみなせるため、non-local operatorはと表すことができる。これはself-attention moduleを表す式と同じ。non-local operatorは、シーケンスのみに対応していたself-attention moduleを画像や動画像データにも対応可能なように拡張したものといえる。
self-attention moduleとの関係性とは反対に、softmaxは必ずしも必要ではない。
Dot product
とのembeddingの内積。Embedded Gaussianのガウス関数を除いたもの。
正規化係数はの要素数。の総和を使わないのは、勾配計算を簡単にするため。
Concatenation
visual reasoning(どういうタスク?)用のRelation Networksというモデルで使われている関数。
は連結を表す。はベクトルをスカラーに射影するための重みベクトル。 正規化係数はDot productと同様にの要素数。
3.3. Non-local Block
non-local operatorを既存のモデルに導入するために、ラッパーとしてnon-local blockを用いる。non-local blockは以下の式で表される。
はnon local operatorの出力。はresidual connectionであり、の初期値を0にすることで事前学習済みモデルに対しても、元々の振る舞いを妨げることなくnon-local operationを導入することができる。
5. Experiments on Video Classification
Instantiations.
類似度関数の比較。
non-local blockを追加することで性能が1%改善した。類似度関数間の性能差はほぼ見られない。このことから、self-attention moduleではsoftmaxが重要であるとされていたが、それよりもnon-localな構造の方が性能向上に寄与しているとわかる。
Which stage to add non-local blocks?
ResNetの異なる層にnon-local blockを入れたときの比較。
res2, res3, res4の精度はほぼ同じであるが、res5は少し低い。これはres5のサイズはと小さく、空間的な情報を持っていないため。
Going deeper with non-local blocks.
non-local blcokをより多くの層に導入した結果。
より多くの層に導入した方が良い結果となった。
6. Extension: Experiments on COCO
Mask R-CNNにnon-local blockを導入した結果。
non-local blockを追加することで全ての評価指標が改善した。