マシンラーニングにおけるオーバーフィッティングと正則化とは?
オーバーフィッティング
トレーニングロスは減っていくが、テストロス(バリデーションロス)が減らない、あるいは増えてしまう現象をオーバーフィッティングover fitting, 過剰適合と呼ぶ。
説明
これとは反対のアンダーフィッティングという言葉もあるが、正直意味がない言葉で、経験上あまり使われない。
機械学習で重要な点は、持っているデータで学習した関数が新しいデータに対してもよく機能しなければならないこと。だから、学習に使わなかったデータに対する性能を言う一般化性能という言葉があり、オーバーフィッティングが起きたということは一般化性能が低いということと同じ。入試で模擬試験を解くのは、結局のところ、大学入試をうまく受けるためで、模擬試験は満点を取り、大学入試をダメにする学生は模擬試験の問題にオーバーフィッティングした学生と見なせる。模擬試験で満点までではなくてもいい成績を取り、大学入試でも同様にいい成績を取る学生は、一般化性能がいいということだ。
レギュラリゼーション
(トレーニングロスではなく)テストロスを減らすためにアルゴリズムを修正するすべての方法をレギュラリゼーションと呼ぶ。1
Goodfellowはレギュラリゼーションを「学習アルゴリズムに対して行う、訓練エラーではなく、一般化エラーを減らすことを目的としたあらゆる修正」と定義している。
つまり、オーバーフィッティングを防ぐためのすべての方法をまとめてレギュラリゼーションと呼ぶ。機械学習やディープラーニングを勉強するときに、最初に接するのは通常ドロップアウトだ。
種類
- $\ell_{1}$ レギュラリゼーション
- $\ell_{2}$ レギュラリゼーション
- Weight decay
- Early stopping
- ドロップアウトdropout
- Batch normalization
- Label smoothing
- データオーグメンテーションdata augmentation
- フラッディング
一緒に見ておくべきこと
Ian Goodfellow, Yoshua Bengio, アンド Aaron Courville. (2016) Deep Learning. MIT Press ↩︎