ドロップアウトは学習時の正則化
正解
学習時にユニットをランダムに無効化し、推論時は原則として無効化しない(必要ならスケーリングする)。
正解になる理由
ドロップアウトは学習時にユニットを確率的に落とすことで、特定の経路への依存を減らします。推論時はすべてのユニットを使います。ドロップ率を p とすると、PyTorch や Keras などの主要なフレームワークは、学習時に残ったユニットの出力を 1/(1−p) 倍しておく方式(inverted dropout)を採っています。この方式では推論時に何もする必要がありません。元の論文の方式では、代わりに推論時に出力を (1−p) 倍してそろえます。学習時と推論時で振る舞いが違う点が重要です。
各誤答がなぜ誤りか
- 選択肢4: 学習と推論が逆です。推論でランダムに落とすと予測が不安定になります。
- 選択肢1: 入力を全ゼロにすると学習になりません。
- 選択肢3: 損失関数の種類はドロップアウトの定義ではありません。