09 - Dropout 係乜東東?
喺深度學習入面,Dropout 係一招超簡單又好用嘅正則化武功。練咗佢,模型就唔易「死背」訓練數據。招式要義:
訓練時,隨機「熄」一批神經元(好似學生輪流請假)。
每個 mini-batch 重抽一次,模型每堂課都用唔同班底上堂。
測試時全員歸位,保證輸出穩定。
目的就係迫網絡唔好依賴任何一撮同學,人人都要獨立撐得起場面 → 泛化力大增。
✨ 佢點運作?
喺某隱藏層設 keep_prob(通常 0.5–0.8)。
前向傳播時,用伯努利分布抽 Mask:
抽中 = 保留;抽唔中 = 直接設 0,唔參與計算。
用 Inverted Dropout:保留下來嘅輸出除以 keep_prob,確保期望值唔變。
反向傳播重用同一個 Mask,淨係更新「未被熄燈」嘅權重。
咁做就似同一份教材,同時訓練幾百個「子網絡」,最終集思廣益。
💡 點解有效?
多模型集成每次熄燈組成一個新網絡,最後等於平均咗大量模型嘅決策。集成天生就抗過擬合。
打散 Feature 依賴神經元唔知邊個隊友下堂會消失,只好自己「自強不息」,唔再黐實某個特徵。
變相 L2 正則化數學上可證 Dropout ≈ 權重加噪聲 ≈ 類似 L2,令 weight 唔會爆大。
⚙️ 用 Dropout 要留意乜?
只喺訓練用,推斷時一定要 keep_prob = 1。
Mask 要 cache,否則 Backprop 唔知邊條線被熄咗。
Loss 會跳:出現大波動唔一定壞事,先關掉 Dropout 試清楚。
唔好亂放:
‣ 輸入層通常唔熄,影像/語音少咗像素會好傷。
‣ 隱藏層最啱用;複雜層可較低 keep_prob。
‣ 輸出層唔建議熄,最後一步要穩定。
📚 真實例子
手機人臉解鎖
問題:光線、角度多變,模型易背住室內自拍嘅樣子。
做法:隱藏層設 Dropout 0.6,令特徵抽象化 → 室外背光都認到。
串流平台推劇集
過擬合:模型過度依賴「最近點擊」搞到清一色推熱播。
Dropout:熄咗部分行為特徵神經元,推薦榜終於出現冷門佳作。
信用卡交易反詐
交易特徵有 200+ 個,模型記住假陽性樣式。
用 0.5 Dropout + L2,Test AUC 由 0.82 升到 0.89。
健身鏡頭姿勢糾正
同一位教練錄片訓練,去到肥仔或細路角度全錯。
隱藏層 Dropout 0.7,另外做些角度旋轉增量,泛化到唔同身材。
自動駕駛交通標誌識別
美國路標學得掂,轉去歐洲「Give Way」就懵。
圖像 CNN 每層 drop 0.3,配合顏色抖動增量,跨國準確率升 10%。
🧪 快速測試小撇步
關掉 Dropout → 曲線平滑?說明基礎 OK。
開回 Dropout → Val Loss 開始下降、Train Loss 稍升但 Gap 變細,即係見效。
Grid Search keep_prob:0.5、0.6、0.7 試晒,揀 Val Acc 最高果個。
✅ 結語:Dropout = AI 嘅「輪流放假制」
• 隨機熄燈,訓練一堆子網絡 → 集 體智慧抗過擬合。• 打散依賴,任何特徵缺席都頂得住 → 強化韌性。• 訓練開,測試關 → 實裝零成本。
學識用 Dropout,好似教班學生輪流發言,唔使驚有啲同學打尖,有啲永遠唔出聲。最終全班都學到嘢,AI 喺陌生環境一樣穩如老狗!🚀