External Memory

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

畳み込みネットワーク(CNN)の構造例2-Network in NetworkとMaxout networks

NiN(Network in Network)

http://arxiv.org/abs/1312.4400

従来のCNNの畳み込みフィルターは一般化線形モデル(GLM)であり、
潜在的概念が線形に分離可能であるという仮定を暗黙的に行う。
しかし、GLMは抽象化能力が低く、同じ概念のデータは非線形多様体上に存在することが多いため、これらの概念を把握のための表現は一般に入力の高レベルの非線形関数である。

NINでは、GLMを一般的な非線形関数近似器である"micro network"構造に置き換える。
非線形関数近似器は局所モデルの抽象化能力を高めることが出来る。

micro networkとして多層パーセプトロンを用いる。
この多層パーセプトロン(MLP)は非線形の活性化関数を持つ複数の全結合層である。
このような構造をmlpconvと呼んでいる。

mlpconvはCNNのように局所受容野からスライドしながらMLPへ入力を行い、特徴ベクトルに出力マッピングする。
また最後のmlpconv層は従来のCNNのような全結合層の代わりにglobal average pooling層を介して出力する。
これは特徴マップと分類の対応の把握がしやすい他、全結合層のような過学習を防ぐことができる正則化機能を持つ。

MLP Convolution Layers

MLPは潜在概念の抽象表現を近似可能なユニバーサル関数近似器の性能を有する。
後で述べるmaxoutよりもnon-convex対応の面で優れたユニバーサル関数近似器である。

著者がMLPを選択したのは、逆伝播を使って学習する畳み込みニューラルネットワークと両立することと、MLP自体が深いモデルであり、特徴の再使用の精神と一貫しているからである。(この辺言っている意味がいまいちわからない)

MLP内の活性化関数はReLUであり、max-pooling層を有する。
この構造はクロスチャンネルプーリングの観点からcascaded cross channel parametric poolingと見なしている。
これはまるで各チャンネルの特徴マップ上で重みありの線形再結合を行っているようであるからである(Figure 1,2)。
または、1*1サイズのカーネルを持つ畳み込み層と見なす(等価)ことが出来る。
この構造はクロスチャンネル情報の複雑で学習可能な相互作用を可能にすると述べている。

Global Average Pooling

前述したとおり、全結合層はオーバーフィッティング(過学習)する傾向にあり、ネットワーク全体の汎化能力を妨げる。
最後のmlpconv層の分類タスクに対応するカテゴリーごとに1つずつ特徴マップを生成し、各特徴マップの平均をsoftmaxに直接送り込む。これにより特徴マップと分類の対応を強制し、特徴マップはカテゴリ信頼マップとして解釈できる。
また、パラメータ数が増えることがないため過学習を回避する。
このことは、カテゴリ信頼特徴マップが構造的な正則化としてみることが出来る。
また、GLMよりも信頼マップのよりよい近似が可能である。

Network In Network Structure

CIFAR-10の場合、mlpconv層は3層である。
また、mlpconv層間にsub-sampling層を挿入することが出来る。ここではmax-pooling層である。
最後のmlpconv層以外にドロップアウトが適用される。


Maxout(Maxout networks)

https://arxiv.org/pdf/1302.4389.pdf

Maxoutモデルは多層パーセプトロンや畳み込みニューラルネットワークといった従来のFF構造でmaxout unitと呼ばれる活性化関数を用いる。

maxout hidden layerで実行される関数は以下のように表される。
h_i(x)=max_{j∈[1,k]}z_{ij}
z_{ij}=x^TW_{...ij}+b_{ij}\ \ W∈R^{d\times m\times k},\ b∈R^{m\times k}

畳み込みネットワークにおいてはmaxout特徴マップはk個のアフィン特徴マップで最大値を取り出すことで構築することが出来る。
すなわち、チャネル間と空間位置にわたるプーリングを行う。

文献中Figure 1のように単一のmaxout unitは任意の凸関数の区分線形近似を行うと解釈できる。

maxoutネットワークは隠れunit間の関係だけでなく、隠れunitの活性化関数も学習するのである。これがこのネットワークの一番の特徴と思える。

NiNで述べたようにMLPはユニバーサル関数近似器であり、maxoutもそうである。
個々のmaxout unitが任意に多くのアフィン要素を持てば、
ちょうど2つの隠れunitを持つmaxoutモデルはFigure 3-Proposition 4.1、4.2で証明されるように任意の連続関数gを近似することが出来る。

Proposition4.2

任意の入力v∈C⊂R^nに対して
g(v)=h_1(v)-h_2(v)
とすると、ある実数ε>0が存在し
|f(v)-g(v)|<\epsilon
とできる関数gが存在する。

kが大きければ近似誤差εは小さくなるが、凸の区分連続関数に適用されるので、non-convexには当てはまらないだろう。
この点において構造や概念的に若干似ているNiNとは異なる。
以下のURLにあるコードによると
http://www-etud.iro.umontreal.ca/~goodfeli/maxout.html
kはnum_pieces変数として設定されており2-5程度である。