DropOut(ドロップアウト)の役割
-
ドロップアウト(Dropout)
- ニューラルネットワークの過学習を防ぐために提案されたテクニックで、一定の確率でランダムにニューロンを無視して学習を進める正則化の一種
こうすると一時的に、ニューロンが活性化しなくなり、重みの更新もバックプロパゲーション時にされなくなる。
訓練時にランダムでニューロンを消去していくことで、毎回異なるニューラルネットワークを学習していることになる。
→ アンサンブル学習と同様の効果があり、複数の独立したニューラルネットワークを学習しているとみなすことができる。
Dropoutは、ただ訓練時にランダムでニューロンを選択していくだけなので、手軽にアンサンブル学習できる。
推論時はドロップアウトせずに、すべてのニューロンを使う。
実際には、各ニューロンのウェイトに𝑞=1−𝑝を掛けてやることで、学習時と近い状態にする。
- dropout適用時のコツ
- 控えめなサイズでニューラルネットワークを構築する
- 過学習を起こすまでネットワークのサイズを大きくしていく
- 過学習を起こしたら、入力層にDropout率0.2、隠れ層に0.5を適用する
- パラメータを微調整
- テスト時にはDropoutは使わない
参考サイト