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

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

SHADE: INFORMATION-BASED REGULARIZATION FOR DEEP LEARNINGを読んだのでメモ

はじめに

SHADE: INFORMATION-BASED REGULARIZATION FOR DEEP LEARNINGを読んだのでメモ.ICIP2018のベストペーパーに選ばれた論文.(調べてみるとICLR2018にrejectされてた)

SHADE: SHAnnon DEcay

まずX\in\mathcal{X}を入力の変数,C\in\mathcal{C}を出力の変数,wをモデルパラメータ,Y=h(w,X)をNNによる変換の表現として定義する.ここでは分類問題を考え,次のような目的関数を最適化する問題を解く.

\displaystyle
\mathcal{L}(w)=\mathbb{E}_{X,C}(l_{cls}(w,X,Y,C)+\beta\cdot\Omega(w,X,Y,C))

ここでは新しい正則化\Omega(w,X,Y,C),shannon decayを提案する.

Conditional entropy-based regularization

条件付きエントロピーH(Y|C)を使ったクラス内の不変性に焦点を当てる.もともとInfromation Bottleneck(IB)と呼ばれる相互情報量I(X,Y)=I(C,Y)+H(Y|C)正則化に使う手法があり,ここではこのH(Y|C)が中間表現にどれほどの不変性を与えるかを考える.学習したDNNがdeterministicであれば,H(Y|X)=0であり,同時にH(Y)=I(X,Y)=H(X)-H(X|Y)が成り立つ.H(X)が固定ならばH(Y)H(X|Y)は負の相関を持つ.H(X)-H(X|Y)は入力の再構成誤差の下限を与えていて,このことから得られた表現Yから入力を復元するのがどれくらい難しいかを測ることができる.すなわち条件付きエントロピーのみを考えれば入力をよく表現する(言い換えれば不変的な)特徴を得ることが可能.

DNNは入力に対しレイヤー数Lの変換を加える.l層目の出力をY_lとすれば次の関係が成り立つ.

\displaystyle
H(Y_l|C)\leq H(Y_{l-1}|C)\leq\dots\leq H(Y_1|C)\leq H(X|C)

ある層の条件付きエントロピーはその後に続く層の条件付きエントロピーの上界を与えることになる.よってここでは全てのレイヤーにH(Y_l|C)を最小化するような正則化を導入する.すなわち正則化項として次の形を与える.

\displaystyle
\Omega_{layers}=\sum_{l=1}^LH(Y_l|C)

さらにlayer-wiseな正則化からunit-wiseな正則化へと議論を広げる.レイヤーlの表現Y_lに対して各座標(ユニット)の表現をY_{l,i}とし,その次元をD_l:Y_l=(Y_{l,1},\dots,Y_{l,D_l}とする.上界H(Y_l|C)\leq\sum_{i=1}^{D_l}H(Y_{l,i}|C)は異なるユニットの独立性を仮定して考えることが可能で,このynit-wiseな条件付きエントロピーの最小化をすることが提案手法のSHADE.最終的な正則化は次のような形で記述される.

\displaystyle
\Omega_{layers}\leq\Omega_{units}=\sum_{l=1}^L\sum_{i=1}^{D_l}H(Y_{l,i}|C)

以下,Y_{l,i}Yとして表現する.

正則化項の定義はできたが問題として条件付きエントロピーをどのように計算するかが残る.基本的にH(Y|C)を計算する上で必要なYの分布が未知であるため計算することができない.[tx:H(Y|C)=\sum_{c\in\mathcal{C}}p(c)H(Y|c)]から条件付き情報量を計算するには|C|個の異なるエントロピーH(Y|c)を計算する必要があり,ImageNetなどの1000クラス分類を考えた時には扱いにくい.

そこで条件付き情報量を計算するためのトリックとして潜在変数Zを導入する.これはY\gg 0の場合にZY\leq 0の場合にZ=0となるような変数で,ベルヌーイ分布に従う確率変数として仮定する.するとC\rightarrow Z\rightarrow X\rightarrow Yのようなマルコフ連鎖を仮定できる.よって定常状態になった時にはH(Y|C)=H(Y|Z)が成り立ち,最終的に条件付きエントロピーを次のように計算できる.

\displaystyle
H(Y|C)=H(Y|Z)=\sum_{z\in\{0,1\}}p(z)H(Y|Z=z)

これはz=0z=1の二つの場合のみについて計算すればいいため扱いやすい.

ただこのままでは,クラス数の増加による計算の扱い難さは解決したが根本のエントロピーの計算ができない点については解決していない.そこでエントロピーそのものではなくH(Y|Z)\leq\frac{1}{2}\ln(2\pi e\mathrm{Var}(Y|Z))という上界を利用して計算する.これは任意の連続な分布Yについて成り立ち,もし分布がガウシアンであれば等号が成り立つ.

以上をまとめれば最終的に提案手法であるSHADEの正則化は次のようになる.

\displaystyle
\Omega_{SHADE}=\sum_{l=1}^L\sum_{i=1}^{D_l}\sum_{z\in\{0,1\}}p(Z_{l,i}=z|Y)\mathrm{Var}(Y|Z_{l,i}=z)

ただし,あるレイヤーのあるユニットに関する\mathrm{Var}(Y|Z)は次のように計算される.

\displaystyle
\mathrm{Var}(Y|Z)=\int_\mathcal{Y}p(y)\int_\mathcal{Z}p(z|y)(y-\mathbb{E}(Y|z))^2dzdy\\ \displaystyle
\approx\frac{1}{K}\sum_{k=1}^K\left[\int_\mathcal{Z}p(z|y^{(k)})(y^{(k)}-\mathbb{E}(Y|z))^2dz\right]

ようはミニバッチを使って近似しようというもの.ここでp(Z|y)\sigma(y)=1-e^{-\mathrm{ReLU}(Y)}を使って次のように計算する.

\displaystyle
p(Z=1|y)=\sigma(y),\:p(Z=0|y)=1-\sigma(y)

また,\mu^z=\mathbb{E}(Y|z)移動平均を使って推定精度を高める(詳細は論文のAlgorithm 1).よって以上の議論を踏まえればSHADEは次のように書き直せる.

\displaystyle
\Omega_{SHADE}=\sum_{l=1}^L\sum_{i=1}^{D_l}\sum_{k=1}^K\sum_{z\in\{0,1\}}p\left(Z_{l,i}=z|y_{l,i}^{(k)}\right)\left(y_{l,i}^{(k)}-\mu_{l,i}^z\right)^2

まとめ

ギリシャからの帰りの乗り換え時間を利用して論文読んだけど疲れと睡魔から読み違いをしていそうで怖い.実験結果は劇的に良くなるという結果ではないものの安定して精度向上している感じ.ただICIPの論文は4ページと書ききれないことが多々ある気がするのでICLRに投稿された方も少し読んでみたい.