Screaming Loud

日々是精進

ニューラルネットワークについてまとめてみた。

ニューラルネットワークについてあんまり勉強してなかったので、勉強がてらまとめてみました。

順伝搬型ネットワーク

解くべき問題として、以下3つがあげられます。

  • 回帰
  • 2値分類
  • 多クラス分類

画像認識などは、1カテゴリ1クラスとして画像を多クラス分類する。

学習方法

どうやって学習するか?
誤差関数の出力を最小にする。
誤差関数:正解データとネットワークの出力の差

勾配降下法と確率的勾配降下法

誤差関数を微分して、傾きが0となる最小値を求める

  • 勾配降下法
    訓練データ全てで計算する
  • 確率的勾配降下法
    サンプルをとって、1クラスだけ重みを更新する

注意点

ニューラルネットワーク過学習しやすいから気をつけましょう。

局所解に陥ってしまう。 対処法→正則化する、ドロップアウト(良い)

ドロップアウト:中間層と入力層を確率pでランダムに選出して、その選出したもので学習する

学習係数

学習係数は一番重要。 層ごとにわけて、入力に近いところの学習係数を大きくする。 学習ごとに値を小さくしていく。

重みの初期値

重みの初期値はガウス分布に従うようにすると大体うまく行くことが多い。

バックプロパゲーション

関数の入れ子になったものを出力と比較して計算するのは大変。

y=W(W(Wx +b) +b)x + bと出力xの誤差を計算するのは大変。

出力層の重みから一つずつ計算していく。

誤差関数の微分はバイアス項があって面倒。 そのバイアス項をl-1層の入力1として考えると、掛け算のみになる。

出力層の微分は簡単

学習のアルゴリズム

  1. 重みから計算していき、まず出力の値を求める。
  2. 出力と正解データから重みを学習する。
  3. 上の操作を繰り返し、誤差関数を最小化させる。

以下参考にしてまとめてみました。

相当はっしょってるので、どちらかというと自分用のメモかもしれません。。。

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

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