「ゼロから作るDeep Learning」でわかったことをメモ
#損失関数(loss function)
ニューラルネットワークの性能の悪さの指標
ニューラルネットワークの学習は,勾配を手掛かりにパラメータの更新を行う.
##二乗和誤差(mean squared error)
$y_k$はニューラルネットワークの出力数,$t_k$は教師データ,$k$はデータの次元数
ニューラルネットワークの出力は確率として解釈できる.$(0 \leq y_k \leq1)$
また$t_k$はone-hot表現.
E = \frac{1}{2}\sum_{k}(y_k-t_k)^2
##交差エントロピー誤差(cross entropy error)
$\log$は底が$e$である.
$y_k$と$t_k$は二乗和誤差と同様.
出力$y_k$が1に近いほど誤差エントロピーは小さくなる.
E = -\sum_{k}t_k\log y_k
#ミニバッチ学習
訓練データから一定数選び出した塊 = ミニバッチ
このミニバッチごとに学習を行う.
#勾配法(gradient method)
勾配を利用して損失関数の最小値を探す.
現在の場所から,勾配方向に一定の距離進むということを繰り返して,関数の値を減らす.
正確には勾配降下法(gradient descent method)と呼ぶ.
x = x - \eta \frac{\partial f}{\partial x_0}
$\eta$は更新の量であり,学習率と呼ばれる.
このような人の手によって調整されるパラメータをハイパーパラメータと呼ぶ.
#確率的勾配降下法(Stochastic Gradient Descent)
ミニバッチとして無作為に選んだデータに対して行う勾配降下法.
##学習手順
###0. 前提
適応可能な重みとバイアスが存在する.この重みとバイアスを訓練データに適用することが「学習」
###1. ミニバッチ
訓練データの中からランダムにデータを一部取り出す.ミニバッチの損失関数の値を減らす.
###2. 勾配の算出
ミニバッチの損失関数を求めるために,各重みパラメータの勾配を求める.
###3. パラメータの更新
重みパラメータを勾配方向に更新する.
###4.反復
1~3を繰り返す.
次回は,二層のニューラルネットについて実装を行う