Dropout
Dropout は訓練時の正則化で、各例の隠れ活性を一部ランダムに遮断します。いつも同時に働く経路へ過度に依存し、訓練例だけへ合わせることを難しくします。
固定の雑音付き two-moons では、なしの訓練 BCE は 0.0006 まで下がる一方、保持 BCE は 1.5929 へ上がります。p = 0.25 は訓練 0.2998、保持 0.3464。訓練値だけでなく、保持結果で強さを選びます。
Dropout の仕組み
隠れ単位 j の活性を hⱼ、遮断確率を p とすると、訓練で独立に抽出します。
mⱼ ~ Bernoulli(1 − p)
使用する活性は
h̃ⱼ = mⱼhⱼ / (1 − p)
mⱼ=0 はその例の順伝播への寄与と、遮断経路を通る損失勾配がゼロです。mⱼ=1 は保持確率で割ります。Inverted dropout により元の活性を条件とする期待値は
E[h̃ⱼ] = (1 − p)hⱼ / (1 − p) = hⱼ
となります。個別活性の期待値を保つのであって、非線形ネットワーク全出力の期待値が必ず不変ではありません。評価ではマスクを外し、追加スケーリングなしで全単位を使います。通常の決定的推論でマスクを採ると別の処理を評価することになります。
パラメーターを削除しません。今回外れた単位も後のマスクで戻り得て、普通の推論では全部使います。
Dropout のステップ
初期設定は { dropoutRate: 0.25, hidden: 16 }。40 訓練例に固定の誤ラベル 8 件、正しいラベルの保持例 400 件、同じ初期重みを使います。full-batch Adam、学習率 0.01、5,000 epoch も共通です。左は p=0、右は dropout だけ変えます。
同じネットワークから開始。 epoch 0 の 2→16→1 は両方同じ損失です。後の差をデータ、初期値、最適化器、予算の違いに帰せません。
マスクを抽出。 p=0.25 は保持 0.75、期待数 16 × 0.75 = 12。1 回の数は 12 より多くも少なくもなります。
マスク付き更新。 遮断経路の当該例の損失勾配はゼロ、保持活性は 1 / 0.75 倍です。ただし全バッチの他例、Adam の過去モメンタム、別の正則項があるため、そのパラメーターが絶対に動かない意味ではありません。例・epoch ごとに再抽出し、共有重みの重なる部分網を使います。
測定では全網を復元。 訓練指標も保持指標も推論モードで測り、マスクを使いません。実線と破線の条件をそろえます。
曲線の分離。 500、2,000、5,000 epoch で止まります。なしの訓練 BCE は 0.222、0.010、0.0006、保持は 0.495、1.202、1.5929。8 誤ラベルへの適合が強くなります。
p=0.25 は最終訓練 0.2998 で対照ほど低くありませんが、保持 0.3464。対照の保持値は約 4.60 倍です。保持精度は 86.75% 対 76.75% になります。
このデータと初期値・設定の結果であり、0.25 の普遍的最適性は示しません。
率と幅を選ぶ
p は既存単位が使えない頻度、H は元の隠れ容量です。別の軸です。
- No dropout、p=0。 両レーンが一致し、同じ記憶化を再生します。別実装ではありません。
- Sweet spot、p=0.25、H=16。 名前付きプリセット中で最終保持損失が最小です。訓練への適合を一部抑えます。
- Too much、p=0.8。 平均
16 × 0.2 = 3.2単位しか残りません。訓練 BCE 0.5676、保持 0.4659。対照を改善しても、不足適合になります。 - Too narrow、p=0.25、H=2。 最終保持 BCE 0.4571。正則化は、幅が足りず表せない特徴を作れません。
実際はデータ追加、拡張、weight decay、早期停止、正規化、適切な規模も比較し、層ごとに選択的に使います。保持集合で繰り返し設定を選ぶなら検証集合であり、最終テストは別に残します。
境界条件
- p=0。 マスクと倍率がすべて 1 で、対照と同じです。
- p=1。 この式はゼロ除算なので教材から除外します。ライブラリー独自の約束は別です。
- 高い有効率。 有用経路が少なすぎれば雑音が増え、不足適合になります。
- 狭い隠れ層。 強い遮断は容量不足を補わず、使える容量をさらに減らし得ます。
- 保持数が少ない抽出。
(1−p)Hは期待値で、毎回の指定数ではありません。 - 評価時に有効。 Monte Carlo dropout は不確実性推定のため意図的に推論でも抽出します。通常の決定的評価と区別します。
よくある間違い
- ニューロン削除と呼ぶ。 訓練の活性を一時的に隠すだけで、保存パラメーターは残ります。
- 二重スケーリング。 訓練中に保持率で割ったので、評価で同じ倍率を追加しません。
- 訓練損失だけを選ぶ。 対照の 0.0006 は最良訓練値で、初期比較の最終保持値は最悪です。
- 多いほど安全と思う。 p=0.8 は不足適合で、一方向の品質ダイヤルではありません。
- 遮断率と保持率を混同。 p=0.25 の保持は 0.75 です。
- 期待数を毎回要求。 各マスクはランダム抽出です。
- 初期値や予算の違いを無視。 原因を比べるため、データ、初期化、最適化器、epoch を固定します。
モデルの簡略化
合成 two-moons、隠れ層 1 個、固定 Adam と乱数シードです。40 点中 8 ラベルを意図的に変え、短い再生で記憶化を見せます。部分網は共有パラメーターの重なる見方で、独立訓練したアンサンブルではありません。
実網はデータ、正規化、拡張、weight decay、早期停止を組み合わせます。バッチ正規化、残差、再帰状態、注意、構造化 dropout は適切な位置を変えます。全層へ同じ率を付ける処方ではなく、1 条件を分けた比較です。
続けて学ぶ
同じ手法につながるレッスンや、次の概念への入口です。
鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。
誤りや気になる点を見つけましたか? フィードバックを送る。