Deep Learning(An MIT Press book) 7.12

Deep Learning(An MIT Press book) の要点メモシリーズ。

Chapter 7 Regularization for Deep Learning

7.12 Dropout

  • dropout
    • 多数の大きなネットワークのbaggingを近似したもの
      • 普通にやると計算量とメモリがやばいので
    • いくつかのユニットの出力にゼロをかけて消す
  • ミニバッチごとにdropoutするユニットを変える
    • 各ユニットがdropoutするかどうかのバイナリ値μはベルヌーイ分布に従う
      • μはdropoutしないなら1、するなら0
      • ハイパーパラメータは入力ユニットが0.8、隠れユニットが0.5というのがよく使われる
  • モデル間でパラメータを共有する(ここが近似)
    • baggingは各モデルが独立
  • predict
    • サンプリングしたμについて平均をとる(モンテカルロ近似)
      • 算術平均よりも幾何平均のほうがいいらしい
    • weight scaling inference rule(weight scaling近似)
      • ユニットの重みをμのハイパーパラメータ倍することで平均を取るのと同じ効果を得られる
      • モデルが非線形なユニットを持っていない場合は幾何平均と完全に一致する
    • どちらの近似がいいかは問題による
  • weight decayなどの他の正則化よりも効果的
    • それらと組み合わせて使うこともある
  • ユニット数に線形のコスト(各ユニットにバイナリ値をかける)しかかからないので低コスト
    • weight scalingするならpredict時は追加コストなし
  • 分散表現とSGDを使う任意のモデルに使える
  • モデルの表現力が減ったら適当にモデルを大きくしてバランスを取る
  • データセットが大きい場合はdroppoutはそんなに効果がない
  • ラベルありデータが少ない場合は効果が薄い
    • かわりにラベルなしデータがたくさんあるならベイズの方がいい
  • 線形回帰の場合、L2 weight decayと等価
  • 亜種
    • fast dropout
      • 確率的な近似ではなく解析的な近似
      • 小さいモデルじゃないとうまくいかない
    • dropout boosting
      • dropoutがbaggingのアナロジーなのに対して、こちらはboostingのアナロジー
      • アンサンブルの各モデルが独立(boostitng)じゃないと正則化の効果がないことを示した
        • つまりdropout boosting自体はよい手法ではない
  • μはバイナリ値でなくてもよい
    • 平均1、分散Iの正規分布に従う値を使う方法もある
      • 平均が1なのでweight scaling不要