External Memory

プログラミング周辺知識の備忘録メイン

畳み込みネットワークの構造例3 All-CNN,Highway Network

All-CNN

(http://arxiv.org/abs/1412.6806)


著者らは畳み込み、max-pooling、全結合層といった異なる要素の混在に対してそれぞれの要素の必要性について、例えばmax-poolingは画像認識のベンチマークの精度を損なうことなく、ストライドの大きな畳み込み層に置き換えることが出来ることを見出している。
ネットワーク構造として畳み込み層のみで構成された構造を提案し、CIFAR-10,100,ImageNetなどで高いデータ識別精度が得られている。

また、Deconvolutionの変種を導入し、ネットワーク分析を行っている。
個人的には、むしろDeconvolutionのためのAll-CNNのように見える。

pooling層のconv置き換え

p-norm sub-sampling(pooling)とconvolutionを表現する式は以下となる。

sub-samplingを表現する式(1)

\displaystyle s_{i,j,u}(f)=(\sum_{h=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}\sum_{w=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}|f_{g(h,w,i,j,u)}|^p)^{1/p}

convolutionを表現する式(2)

\displaystyle c_{i,j,o}(f)=\sigma(\sum_{h=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}\sum_{w=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}\sum_{u=1}^N\theta_{h,w,u,o}\cdot f_{g(h,w,i,j,u)})

g(h, w, i, j, u) = (r\cdot i + h, r\cdot j + w, u)
k:p-ノルムのサブサンプリングにおけるプーリングサイズ、r:スライド量
p\to\inftyならば、max-poolingを表す。

poolingとconvolutionは前の層の特徴マップと同じ要素に依存することが分かる。
pooling層は活性化関数がp-ノルムに置き換えられた重み1の畳み込みを行うものとみなすことが出来る。これによりpooling操作の性質に関してうまく説明を与えることが出来うる。ここで著者らは3つの推測をしている。

  1. p-ノルムは、CNNにおける表現をより不変にする。
  2. pooling操作による空間的次元削減は、上位層のより大きな部分をカバーする入力を可能にする。
  3. (特徴をmixさせる畳み込みレイヤとは対照的に)poolingの特徴ごとに操作する性質は、最適化を容易にすることができる。

2の推測が性能に重要な要素であると仮定し、
pooling層を削除しながらも次元削減を容易に行える2つの手段をとることが出来る。

  • pooling層を削除し、先行する畳み込み層のスライドを増やす。
  • pooling層を1より大きなスライドを持つ、カーネルサイズとチャンネル数を維持した畳み込み層に置き換える。

前者はpooling層に先行する畳み込み層の重なりを減少させるため、あまり良い精度で認識されないpooling操作となる。
一方後者は全体的なネットワークのパラメータが増加する。

後者の置き換えは特徴間の依存関係を追加し、
つまり"pooling操作の学習"とみなすことが出来る。


ネットワーク構造A,B,C(文献中Table 1)はベースのネットワークとして、top層に1*1のconv層を使用して10個の出力を生成、それらをすべての位置で平均し、softmax関数に送り込む(global average pooling)。全結合層の場合はこれよりも0.5-1%悪化したようである。

また、BについてはAからさらにNetwork in Network構造の変形としてconv層の後に1*1conv層を挿入する。

CはBのconv層をすべて3*3conv層に置き換える。これは前層の特徴マップ3*3の空間近傍で操作されるように統合することと、max-poolingがoverlap conv層に置き換えられた場合の最小のフィルタサイズとすることが目的である。


またネットワーク構造A,B,Cをベースとして派生モデルを構築している(Table 2はCの派生モデルを表す)。

  • max-pooling層を削除し、その先行するconv層をスライド量を1増加させたconv層に置き換え(Strided-CNN-C)。
  • max-pooling層をconv層に置き換え(AllCNN-C)。
  • max-pooling層の前にdense conv層を挿入したモデル(ConvPool-CNN-C)。これは置き換えの効果を確認する比較のためのモデルである。

CIFAR-10に対し、モデルB,CにおいてはAllCNNが一番精度の良い結果が得られている。

All-CNNを用いたconv17層の大規模ネットワーク(Large-All-CNN)においてもCIFAR-10に対してmax-poolingに匹敵する性能を発揮しているが、
複数のfractional max-poolingの方が優れている結果が得られている。

Deconvolution

ネットワーク上のあるunitで最も判別しやすい部分を視覚化するためのDeconvolution Network(deconvnet)を用いる。
狙いの高レベルの特徴マップが与えられると、"deconvnet"はCNNのデータフローを反転させてneuron activationsから画像へ変換される。普通は高レベルの特徴マップにおいて単一のニューロン以外は全てゼロにされて伝播され、得られた再構成の画像は最も強く活性化している入力画像の部分が表現される。
max-pooling層は可逆でないため、pooling領域の最大値(スイッチ)位置を計算するために、再構成にはネットワークの順方向パスを実行する必要がある。
この場合学習された特徴を直接視覚化はしない。
All-CNNの場合max-pooling層はないのでスイッチなしでdeconvolutionを行うことが出来る。

All-CNNでの上位層では上記によって再構成された画像は、鮮明でなく識別しにくい。
これは下位層が限られた量の不変性を持つ普遍的特徴を学習するというという事実と一致し、それらを活性化する単一パターンを再構成できる。
しかし上位層はさらなる不変な表現を学習し、それらのニューロンを最大限に活性化する単一の画像はないので、妥当な再構成を得るためには入力画像の制約が必要となる。

与えられたニューロンを最も活性化する画像の部分を視覚化する代替の方法は、活性化の勾配を計算することである。
逆方向パスは意図的にネットワークの活性化関数とmax-poolingスイッチを通じて画像が部分的な制約となる。
また、deconvolutionと逆伝播法間の関係はReLUにおける逆伝播を扱う方法が異なる。

妥当な再構成を得るためにdeconvolutionを非線形性を伝播するときに、
下位からの入力を無視し上位層からの勾配に基づいて計算される点を修正する。
逆伝播法と組み合わせて、下位の入力と上位からの勾配のどちらかが負の場合にマスキングすることで(guided backpropagation)、視覚化を狙う上位層のunitの活性化が減少させるニューロンに対応する負の勾配の逆流が防止される。
これにより中間層や上位層を視覚化することが出来る。ある意味下位の入力に対しReLU活性化の形状がスイッチの役割を担う。
(Deconvolutionの話は文献中Figure 1が分かりやすい)


Highway Network

(http://arxiv.org/abs/1507.06228)

Highway Networkはニューラルネットワークが深くなればなるほど学習が困難になる問題を克服するための構造である。
Highway Networkによって何百の層があっても単純な勾配降下によって直接学習することが可能になり、情報ハイウェイ上で多くの層をスムーズに流れることが可能になる。
著者らは深いネットワークの問題克服のためLSTMリカレントネットワークから影響を受け、情報の流れを規制するために適応型ゲートunitを使用する。
情報が減衰することなくに多くの層に流れることができる計算パスを可能にする、
LSTMに基づいた適応型ゲーティング機構を情報のHighwayと呼ぶ。

ゲート機構

普通のFFNNの層ごとの出力は
\mathbf{y}=H(\mathbf{x},\mathbf{W_H})
としてバイアスを省いて表されるが、

Highway Networkでは以下のように定義される。

\mathbf{y}=H(\mathbf{x,W_H})\cdot T(\mathbf{x,W_T})+\mathbf{x}\cdot C(\mathbf{x,W_T)}

T,C=1-Tは非線形の変換ゲートとキャリーゲートである。(・)は要素ごとの積を表す。

以下のように変換ゲートTの出力に応じてHighway層はHと入力をそのまま通過させる挙動をスムーズに変化させることが出来る。

\mathbf{y}=\begin{cases}\mathbf{x}& if\ T(\mathbf{x,W_T})=\mathbf{0}\\H(\mathbf{x,W_H}) & if\ T(\mathbf{x,W_T})=\mathbf{1}\end{cases}


Constructing Highway Networks

x,y,H(x,W),T(x,W)はすべて同じ次元である。
中間層のサイズを変更するときは入力xをサブサンプリングもしくはゼロpadding、plain(highway出ない普通の) layerを使う。

畳み込みhighway層はH、Tの両方の変換に対して重み共有と局所受容野を利用する。
block state Hと変換ゲートTの特徴マップの入力サイズが一致するように同サイズの受容野を使用し、ゼロpaddingの使用している。

Training Deep Highway Networks

変換ゲートは以下のように定義される。

T(\mathbf{x})=\sigma(\mathbf{W_T}^T\mathbf{x+b_T})
σ(x)はシグモイド関数である。

Hから独立した単純な初期化のためb_Tは負値で初期化する。
この方法はLSTMネットワークのゲートに始めからバイアスをかけ、
学習のは早い段階で長期の時間依存性を橋渡しするのに役立つ。
深さ10,20,30の畳み込みhighwayネットワークに対して-1,-2,-3のバイアス初期値を勧めている。


層あたりのパラメータ数を約5000程度で全結合plainネットワークとHighway NetworkをMNISTで比較すると、Highwayの方は層が深くなっても分類精度の落ちが小さく、収束が早くなったことが観察されている(文献中Figure 1)。

また、Highway畳み込みネットワーク9層+softmax出力層でフィルターマップ数(多分特徴マップのこと)32個で、つまり少ないパラメータ数でmaxoutやDSNと同等のMNISTに対する性能が得られている。

CIFAR-10,100においてはfitnetをベースとしてdata augmentationを行ったうえで、
最後の全結合層をサイズ1の受容野とglobal average pooling層に置き換えて実験を行っている(Table 3)。


Figure 2よりCIFAR-100において層の深さに関するバイアス値と変換ゲートの平均活動度の関係から、浅い層では負バイアスはゲートを変換ゲートの活動度に対してシャットダウンするのではなくより選択的挙動をとるようにする。
MNISTはCIFAR-100ほど顕著ではない。

Highway Network構造は入力に基づいてルーティングを動的に調整しており、Figure 2の2列目と3列目の比較から、各サンプルについて非常に選択的に少数のブロックを用いて変換が実行されているのが分かる。また分類クラスについてクラス間で平均活動パターンが異なっているのが明確に見て取れる(Figure 3)。


Figure 4のように変換ゲートの出力0の数を変えると分類精度は大きく変化する。
CIFAR-100ではほぼ全てのhighway層を使って学習しているのに対し、
MNISTでは多くの層がアイドル状態を保っている。
このようなディープネットワークにおける振る舞いは一般的には望ましい状態であるが、
プレーンなネットワークの場合はこのようにはならない。