機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Understanding the Effective Receptive Field in Deep Convolutional Neural Networksを読んだのでメモ

はじめに

Understanding the Effective Receptive Field in Deep Convolutional Neural Networksを読んだのでメモ.

気持ち

CNNにおけるreceptive fieldをちゃんと解析しようというもの.ここではeffective receptive field(ERF)という上位の概念を導入する.ERFは通常のreceptive fieldの考え方と違い,出力にどれだけ貢献しているかに着目してreceptive fieldの大きさを考える.

Effective receptive field

p番目の層の特徴マップの位置(i,j)の値をx_{i,j}^pとし,入力をx_{i,j}^0,出力をy_{i,j}=x_{i,j}^nとする.ただし,中心ピクセル(0,0)とする.ERFは出力に影響を与えた入力の領域として定義する.ここでの影響は出力の中心ピクセルの入力に対する勾配\partial y_{0,0}/\partial x_{i,j}^0によって測る.議論を簡単にするためここでは,任意の損失関数lに対して,\partial l/\partial y_{0,0}=1,\partial l/\partial y_{i,j}のように,出力の中心ピクセル以外は勾配を考えないものとする.また,g(i,j,p)p層目の特徴マップの(i,j)ピクセルの勾配\partial l/\partial x_{i,j}^pとする.

まず単純なケースとしてカーネルサイズk\times kの畳み込み層n層からなるモデルを考える.つまりプーリングや活性化関数はないものとする.さらに特殊な場合として全ての重みが1でバイアスがないものとする.するとこの場合は重み行列がランク落ちするため1Dの畳み込みに分解可能.なので以下1Dの畳み込みとして考える.初期の勾配(中心のみ1でその他0)をu(t),畳み込みフィルタをv(t)とすると畳み込みはデルタ関数を使って

\displaystyle
y(t)=\delta (t),\ v(t)=\sum_{m=0}^{k-1}\delta(t-m),\ \mathrm{where}\:\delta(t)=\left\{\begin{matrix}1,\ t=0\\ 0,\ t\neq 0\end{matrix}\right.

と表現できる.ただし,t=0,1,-1,2,-2ピクセルのインデックスを表す.今畳み込み層のみで構成されたモデルを考えているため入力に対する勾配はo=u\ast v\ast\dots\ast vとして畳み込みの繰り返しを使って表現できる.この畳み込みは離散時間フーリエ変換

\displaystyle
U(\omega)=\sum_{t=-\infty}^\infty u(t)e^{-j\omega t}=1,\ V(\omega)=\sum_{t=-\infty}^\infty v(t)e^{-j\omega t}=\sum_{m=0}^{k-1}e^{-j\omega m}

を使って,重畳積分定理から次のように周波数空間で計算できる.

\displaystyle
\mathcal{F}(o)=\mathcal{F}(u\ast v\ast\dots\ast v)(\omega)=U(\omega)\cdot V(\omega)^n=\left(\sum_{m=0}^{k-1}e^{-j\omega m}\right)^n

これを逆フーリエ変換すれば欲しい勾配が計算可能.

\displaystyle
o(t)=\frac{1}{2\pi}\int^\pi_{-\pi}\left(\sum_{m=0}^{k-1}e^{-j\omega m}\right)^ne^{j\omega t}d\omega\\
\frac{1}{2\pi}\int^\pi_{-\pi}e^{-j\omega s}e^{j\omega t}d\omega=\left(
\begin{matrix}
1,\ s=t\\
0,\ s\neq t
\end{matrix}\right.

k=2の場合ではこの勾配は2次元ガウス分布に従う値となり,k\lt 2の場合にもガウス分布のような分布になる.細かいことは別な文献に譲っていたのでここでは割愛.

次に重みの値がランダムな場合を考える.この時勾配は次のようにかける.

\displaystyle
g(i,j,p-1)=\sum_{a=0}^{k-1}\sum_{b=0}^{k-1}w_{a,b}^pg(i+a,i+b,p)

w_{alb}^pp層目の位置(a,b)の重みを表す.初期の重みは平均0,分散Cの固定の分布から独立にサンプリングされているものとし,勾配gは重みと独立であると仮定する.この仮定は非線形関数のないモデルだから成り立つ仮定で一般的ではないことに注意.重みの平均が0,勾配と重みが独立であるという仮定から勾配の期待値は

\displaystyle
\mathbb{E}_{w,input}[g(i,j,p-1)]=\sum_{a=0}^{k-1}\sum_{b=0}^{k-1}\mathbb{E}_w[w_{a,b}^p]\mathbb{E}_{input}[g(i+a,i+b,p)]=0,\forall p

となる.また,分散は

\displaystyle
\mathrm{Var}[g(i,j,p-1)]=\sum_{a=0}^{k-1}\sum_{b=0}^{k-1}\mathrm{Var}[w_{a,b}^p]\mathrm{Var}[g(i+a,i+b,p)]=C\sum_{a=0}^{k-1}\sum_{b=0}^{k-1}\mathrm{Var}[g(i+a,j+b,p)]

となる.つまり,receptive fieldはガウス分布の形を取る.また,分散の値を見ればn層の場合には分散の値がC^nとなる.

さらに一般的な状況として,各重みが異なる値,異なる分散を持つとする.ここでは再び1次元の畳み込みv(t)=\sum_{m=0}^{k-1}w(m)\delta(t-m)を考える.ここでは一般性を失わず重みが\sum_mw(m)=1と正規化されているとする.

先ほどと同様フーリエ変換と重畳積分定理から

\displaystyle
U(\omega)\cdot V(\omega)\dots V(\omega)=\left(\sum_{m=0}^{k-1}w(m)e^{-j\omega m}\right)^n

が得られる.これは一番単純なケースでの解析に対して重みw(m)がかかっただけの違い.w(m)が正規化されている場合,o(t)p(S_n=t)という確率に等しくなるらしい.ただし,S_n=\sum_{i=1}^nX_iの関係を満たし,X_iw(m)に関するi.i.dなmultinomial variable.この辺りも詳しいことは参考文献に譲っているため細かいことは割愛.重要な点は重みがp(S_n=t)という分布に従い,これは中心極限定理から層の数が増えればガウス分布\mathcal{N}(0,\mathrm{Var}[X])として表現できるということ.するとこのガウス分布は次のような平均と分散を持つ.

\displaystyle
\mathbb{E}[S_n]=n\sum_{m=0}^{k-1}mw(m),\ \mathrm{Var}[S_n]=n\left(\sum_{m=0}^{k-1}m^2w(m)-\left(\sum_{m=0}^{k-1}mw(m)\right)^2\right)

ここで面白いのは,effective receptive fieldはこの分布の標準偏差だけ広がると考えるとERFのサイズは\mathcal{O}(\sqrt{n})のオーダーになるということ.通常のreceptive fieldが層の数に線形,すなわち\mathcal{O}(n)に従って広がることを考えるとERFのサイズは1/\sqrt{n}だけ小さくなっていることがわかる.

ここで重みがw(m)=1/kと一様である場合にはERFの大きさは\mathcal{O}(k\sqrt{n})になる.

さらに非線形関数を導入した場合を考える.任意の非線形関数を\sigmaで表現する.ここでは一般的でないが解析のしやすさから,非線形関数を通ったのち畳み込みという順番で処理が進むとする.すると勾配は次のように計算できる.

\displaystyle
g(i,j,p-1)=\sigma_{i,j}^p\:'\sum_{a=0}^{k-1}\sum_{b=0}^{k-1}w_{a,b}^pg(i+a,j+b,p)

ただし\sigma_{i,j}^p\:'p層目のi,jピクセルに対する非線形関数の微分を表す.ReLUの場合には指示関数を使って\sigma_{i,j}^p\:'=\mathbf{I}[x_{i,j}^p\lt 0]と表すことができる.さらなる仮定としてx_{i,j}^p\:'が平均0で分散が1の対象な分布に従うとし,\sigma'は重みと上の層の勾配gに独立であるとする.すると,分散は

\displaystyle
\mathrm{Var}[g(i,j,p-1)]=\mathbb{E}[\sigma_{i,j}^p\:'^2]\sum_a\sum_b\mathrm{Var}[g(i+a,j+b,p)]

となる.また,\mathbb{E}[\sigma_{i,j}^p\:'^2]=\mathrm{Var}[\sigma_{i,j}^p\:']=1/4と定数になる.

Experiments

基本的には解析結果と一致して導出したガウス分布に従うERFを持つ.ただし,ReLUを使った場合にはERFがガウス分布に従わないという結果が得られたが,これはReLUにより値が0になった部分は勾配を伝えないことに起因するという.また,cifar10等で実験した場合,receptive fieldは画像サイズより大きくなるはずがERFは画像サイズ未満の領域しか持たないことも確認した.興味深いのは学習が進むにつれてERFが広がっていくらしい.

解析結果から新しい初期化方法として畳み込みカーネルの中心に比べ周りの値を大きくするという初期化方法を実験的に検証.条件次第では学習速度が速くなるらしいが基本的にはそんなに恩恵はないとのこと.

まとめ

一部の細かい議論が参考文献に投げているのと自分の数学力のなさから少しわかりにくかった.解析的に出力への依存が高い領域を求めていて,なかなか一般的な状況までは解析できていなくとも非常に有用な内容だった.特にERFが層の数の平方根に比例するというのは興味深い知見.