hiden-cubistのブログ

機械学習などの技術や投資に関する情報を記事にしています。

深層学習第2章

引き続き、深層学習(機械学習プロフェッショナルシリーズ、岡谷貴之)の第2章のメモです。第2章のテーマは順伝播型ネットワークです。 大体はすんなり読めましたが、初めてTexを使って入力したので手間取ってしまいました。少しずつ慣れていきたいところです。

順伝播型ネットワーク(feedforward neural network)

ユニットが隣接層間でのみ結合した構造を持ち、情報が入力側から出力側に一方向にのみ伝播するニューラルネットワーク


\displaystyle u_{j} = \sum_{i=0}^I w_{ji} x_{i} + b_{j}


z_{j} = f(u_{j})

 w重み(weight) bバイアス(bias) f活性化関数(activation function)

活性化関数

ロジスティックシグモイド関数(logistic sigmoid function)


\displaystyle f(u) = \frac{1}{1 + e^{-u}}

双曲線正接関数


f(u) = tanh(u)

などが多く使われる。近年これらの関数より単純で計算量が小さく、学習が速い正規化線形関数(rectified linear function)も良く使われている。


f(u) = max(u, 0)

多層ネットワーク

 l+1の出力 z^{(l+1)}は、層 lの出力 z^{(l)}から、


u^{(l+1)} = W^{(l+1)} z^{(l)} + b^{(l+1)}


z^{(l+1)} = f(u^{(l+1)})

と計算される。なお、入力、出力、重み、バイアスはベクトル、行列表示している。

誤差関数(error function)

問題によって、活性化関数と誤差関数を使い分ける。

回帰(regression、連続値を取る関数を対象とする)

活性化関数・・・恒等写像

誤差関数・・・二乗誤差


\displaystyle E(w) = \frac{1}{2} \sum_{n=1}^N ||d_{n} - y(x_{n}; w)||^{2}

 dは目標出力、 yはネットワークの出力。

二値分類

活性化関数・・・ロジスティック関数

誤差関数・・・


\displaystyle E(w) = - \sum_{n=1}^N [d_{n} \log y(x_{n}; w) + (1 - d_{n})
\log \{1 - y(x_{n}; w)\}]

これは、 wのデータに対する尤度(likelihood)


\displaystyle L(w) = \prod_{n=1}^N \{y(x_{n};w)\}^{d_{n}} \{1 - y(x_{n}; w)\}^{1-d_{n}}

を最大化することに相当する。

多クラス分類

活性化関数(出力層)・・・ソフトマックス関数(softmax function)


\displaystyle y_{k} = \frac {exp(u_{k}^{(L)})} { \sum_{j=1}^K exp(u_{j}^{(L)})}

これは、この層の全部のユニットに依存していることに注意。また、 y_{k}は、入力 xがクラス C_{k}に属する確率であると解釈する(出力の総和は1となっている)。

誤差関数・・・交差エントロピー(cross entropy)


\displaystyle E(w) = - \sum_{n=1}^{N} \sum_{k=1}^{K}d_{nk} \log y_k(x_n; w)

これは、 wの尤度


\displaystyle L(w) = \prod_{n=1}^N \prod_{k=1}^K (y_k(x_n;w))^{d_{nk}}

を最大化することに相当する。また、ソフトマックス関数は、入力に一律に定数を加算しても出力が変化しない、すなわち、重みが一つに定まらない冗長性があるので、正則化によって重みを減衰させるのが良い。

深層学習 (機械学習プロフェッショナルシリーズ)

深層学習 (機械学習プロフェッショナルシリーズ)