Deep Learning(An MIT Press book) の要点メモシリーズ。
Chapter 7 Regularization for Deep Learning
7.12 Dropout
- dropout
- 多数の大きなネットワークのbaggingを近似したもの
- 普通にやると計算量とメモリがやばいので
- いくつかのユニットの出力にゼロをかけて消す
- 多数の大きなネットワークのbaggingを近似したもの
- ミニバッチごとにdropoutするユニットを変える
- 各ユニットがdropoutするかどうかのバイナリ値μはベルヌーイ分布に従う
- μはdropoutしないなら1、するなら0
- ハイパーパラメータは入力ユニットが0.8、隠れユニットが0.5というのがよく使われる
- 各ユニットがdropoutするかどうかのバイナリ値μはベルヌーイ分布に従う
- モデル間でパラメータを共有する(ここが近似)
- baggingは各モデルが独立
- predict
- weight decayなどの他の正則化よりも効果的
- それらと組み合わせて使うこともある
- ユニット数に線形のコスト(各ユニットにバイナリ値をかける)しかかからないので低コスト
- weight scalingするならpredict時は追加コストなし
- 分散表現とSGDを使う任意のモデルに使える
- モデルの表現力が減ったら適当にモデルを大きくしてバランスを取る
- データセットが大きい場合はdroppoutはそんなに効果がない
- ラベルありデータが少ない場合は効果が薄い
- かわりにラベルなしデータがたくさんあるならベイズの方がいい
- 線形回帰の場合、L2 weight decayと等価
- 亜種
- μはバイナリ値でなくてもよい
- 平均1、分散Iの正規分布に従う値を使う方法もある
- 平均が1なのでweight scaling不要
- 平均1、分散Iの正規分布に従う値を使う方法もある