Deep Learning(An MIT Press book) の要点メモシリーズ。
今日の範囲はコスト関数について。なんで neural networks は損失関数に cross-entropy を使うの?って話です。
Chapter 6 Deep Feedforward Networks
6.2 Gradient-Based Learning
- neural networks は非線形性のために損失関数が非凸になるという点が線形モデルと異なる
- gradient-based optimizer(広域最適解への収束が保証されておらず、初期値依存性がある)を使う
- feedforward neural networks では重みを小さな乱数で、バイアス項をゼロか小さな正値で初期化する
- neural networks 以外でも訓練データが大きい時は gradient descent を使う
6.2.1 Cost Functions
- 多くの場合コスト関数は訓練データと予測値の cross-entropy を使う
- y の分布を予測せずに、x が与えられたときの y の何らかの統計量を予測することがある
- 正則化項や weight decay も deep neural networks に適用できる
6.2.1.1 Learning Conditional Distributions with Maximum Likelihood
- 多くの modern neural networks のコスト関数は「モデル分布の負の対数尤度」の「訓練データに関する期待値」をとったもの
- コスト関数に最尤推定を使うと、モデル分布が決まることで自動的にコスト関数も決まる利点がある
- コスト関数の勾配は十分に大きく、 predicable でないといけない
- いくつかの output units は exp を含むので、大きな負値を受け取ると saturate (勾配が0)する
- コスト関数に負の対数尤度を使うことで、いくつかの exp を打ち消すことができる
- cross-entropy コスト関数は最小値にならないという変わった性質がある
- 出力が離散値の場合、ロジスティック回帰のように0や1に漸近するが0や1そのものは取らない
- 出力が実数値の場合、正解となる点に極端に高い確率密度が設定されてしまうので cross-entropy は負の無限大になる