詳細解釋
Dropout是防止神經網絡過擬合的正則化技術,訓練時隨機丟棄(設為零)一部分神經元,強制網絡學習魯棒的特徵表示。
工作原理:
- 訓練時:以概率p(通常0.5)隨機丟棄神經元
- 推理時:使用所有神經元,權重乘以(1-p)
- 解釋:訓練多個「子網絡」,推理時平均集成
為何有效:
- 共適應減少:神經元不能依賴特定其他神經元
- 特徵魯棒:必須學習獨立有用的特徵
- 集成學習:隱式訓練指數級數量的子網絡
- 稀疏激活:鼓勵稀疏表示
變體:
- 標準Dropout:全連接層的隨機丟棄
- Spatial Dropout:CNN中整個特徵圖丟棄
- DropConnect:隨機丟棄權重而非神經元
- Monte Carlo Dropout:推理時也dropout,估計不確定性
- DropBlock:結構化的空間丟棄
現代觀點:
- 大模型時代:大模型+早停可能不需要dropout
- CNN:批次正規化減少了對dropout的需求
- Transformer:通常不使用dropout(除嵌入層)
- 正則化選項:多種正則化方法的組合
與其他技術:
- Batch Norm:都可視為正則化,但BN允許減小dropout
- 數據增強:數據層面的正則化
- 權重衰減:權重層面的正則化
歷史:
- 2012年:Hinton等人提出
- 早期:深度學習的標準組件
- 演變:隨著其他技術發展,使用場景變化
實踐建議:
- 全連接層:輸入層0.2,隱藏層0.5
- CNN:空間dropout優於標準dropout
- 小數據集:dropout更重要
- 大數據集:可能不需要
Dropout是深度學習的經典正則化技術。