ドロップアウト
学習中は毎ステップ違うニューロンをランダムに「落として」生き残った経路だけで計算し、推論時は全員を使ってスケール補正する ŷ_test = (1−p)·全結合
0.50
1.0×
隠れ層の生存ユニット
—
この経路の信号到達率
—
スケール係数
—
状態
—
出力の期待スケール(補正のしくみ)
学習時:1ステップの出力
推論時:補正後
ネットワーク図:グレーのユニットは今ドロップ中(生きた経路だけ順伝播)
生きているユニット
ドロップ中
入力/出力(落とさない)
ドロップアウトは過学習を防ぐ手法のひとつですが、正則化のような損失へのペナルティ項ではなく、順伝播そのものを毎回ランダムに間引くのが特徴です。
学習の各ステップで、隠れ層の各ニューロンを確率
ただし落とすと出力の合計が平均で
学習の各ステップで、隠れ層の各ニューロンを確率
p で一時的に 0 にします(マスク)。毎回ちがう小さなネットワークが学習されるので、特定のニューロンに頼り切る「共適応」が起きにくく、汎化しやすくなります。ただし落とすと出力の合計が平均で
(1−p) 倍に縮むため、推論時はすべてのニューロンを使いつつ重みを (1−p) 倍してスケールを合わせます(または学習時に 1/(1−p) 倍する「逆ドロップアウト」)。p を上げ過ぎると生き残る経路が足りず、学習が壊れます。
いま何が起きている?
ここがポイント
- 毎ステップ別のマスク ── 学習中は確率 p でニューロンを 0 にし、生きた経路だけで順伝播・逆伝播する。
- 共適応を防ぐ ── 特定ユニットへの依存が崩れ、アンサンブル的に頑健な表現が学べる(過学習対策)。
- 推論時はスケール補正 ── 全ユニットを使い重みを
(1−p)倍。学習時に1/(1−p)倍する逆ドロップアウトでも等価。 - p は上げ過ぎ注意 ── 0.2〜0.5 が定番。高すぎると生存経路が足りず信号が消え、学習が進まなくなる。