ドロップアウト
読み: どろっぷあうと
学習時にニューロンの一部をランダムに無効化することで、特定のニューロンへの過度な依存を防ぎ、過学習を抑制する正則化手法。
ドロップアウト (Dropout) は、ニューラルネットワークの学習時に各ニューロンを一定の確率 (ドロップ率) でランダムに無効化する正則化手法である。2014 年に Srivastava らによって提案され、過学習の抑制に極めて有効であることが実証された。無効化されたニューロンは順伝播・逆伝播の両方で計算から除外される。
直感的には、毎回異なるサブネットワークで学習することに相当し、多数のモデルのアンサンブル効果を 1 つのネットワークで近似していると解釈できる。推論時にはすべてのニューロンを使用し、出力に (1 - ドロップ率) を乗じてスケーリングする (または学習時に逆スケーリングを行う Inverted Dropout)。
- ドロップ率の設定: 全結合層では 0.5、畳み込み層では 0.1〜0.3 が一般的な初期値。タスクやデータ量に応じてチューニングする。データが少ないほど高いドロップ率が有効な傾向がある
- Spatial Dropout: 畳み込み層向けに、個々のニューロンではなくチャンネル全体を丸ごとドロップする手法。空間的な相関を考慮した正則化が可能
- DropPath (Stochastic Depth): ResNet や Vision Transformer で使われる手法で、残差ブロック全体をランダムにスキップする。深いネットワークの学習を安定化させる
バッチ正規化の普及により、CNN ではドロップアウトの使用頻度が減少したが、全結合層や Transformer の学習では依然として標準的に使用される。近年は DropKey (アテンション重みへの適用) や R-Drop (出力分布の一貫性を強制) など、ドロップアウトの発展形も提案されている。