Deep Learning(An MIT Press book) 6.2.1

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 のコスト関数は「モデル分布の負の対数尤度」の「訓練データに関する期待値」をとったもの
    • 訓練データとモデル分布の cross-entropy と同じ
    • モデル分布が正規分布の場合、コスト関数は mean squared error と同じになる
      • 正規分布の平均が線形モデルでない場合もこれは成り立つ
  • コスト関数に最尤推定を使うと、モデル分布が決まることで自動的にコスト関数も決まる利点がある
  • コスト関数の勾配は十分に大きく、 predicable でないといけない
    • いくつかの output units は exp を含むので、大きな負値を受け取ると saturate (勾配が0)する
    • コスト関数に負の対数尤度を使うことで、いくつかの exp を打ち消すことができる
  • cross-entropy コスト関数は最小値にならないという変わった性質がある
    • 出力が離散値の場合、ロジスティック回帰のように0や1に漸近するが0や1そのものは取らない
    • 出力が実数値の場合、正解となる点に極端に高い確率密度が設定されてしまうので cross-entropy は負の無限大になる

6.2.1.2 Learning Conditional Statistics

  • コスト関数をコスト汎関数と捉えて、変分法を適用することで以下が得られる
    • mean squared error は y の p_{data}(y|x) に関する期待値となる
    • mean absolute error は y の p_{data}(y|x) に関する中央値となる
  • mean squared error あるいは mean absolute error をコスト関数に使った場合、 saturate した output units は勾配がとても小さくなる
    • p(y|x) が必要でないときもあえて cross-entropy を使うのはこのため