確率的勾配降下法(SGD)
-
最適化>SGDも参照のこと
-
誤算関数$E(\bold{w})$を最小化するパラメータ$\bold{w}$を求める
- バッチ学習よりオンライン学習のSGD
- 更新のたびに目的関数が変わるので,局所解に陥いって抜け出せないということを防げる
- 途中経過を監視できる
- データを途中で増やせる
- ミニバッチ
- 重みの更新をサンプル数1ではなく,複数サンプル(ミニバッチ)で行う
- 更新の重みを平準化するため,多クラス分類だと各クラスから1つ以上サンプルを入れるのが理想
- 大きすぎるバッチサイズはSGDのよさを損なう
過学習の緩和(正則化)
- 重み減衰
- 誤差関数に重みの2乗話を加え,それを最小化する
- 通常ネットワークの重みのみに適用し,バイアスには適用しない
- 重み上限
- 重みの大きさの上限を制約する
- ドロップアウト
- 学習に使うユニットを確率$p$で選び,一部のユニットを使わない(強制的に自由度を下げる)
- $p$は層で異なっていても良い
- ユニットの選出は重み更新ごとに行う
- 学習終了後に推論に使うときは,無効化の対象とした層の出力を一律$p$倍し,全てのユニットを使う
学習のトリック
- データの正規化
- データ拡張
- 複数ネットの平均
- 学習係数
- 最初は大きい係数で,小さくしていく
- 層ごとに異なる値を使う
- モメンタム
- 重みの初期値の事前学習
- サンプルの順序の調整