正則化是機器學習中防止模型過擬合、提升泛化能力的核心技術。Weight Decay、Dropout和LayerNorm是三種最常用的方法,但它們的工作原理和首要目標截然不同。下面的流程圖揭示了它們的核心區別與聯系:
盡管目標有交叉,但三者的工作原理截然不同。下面我們進行詳細的解析。
1. Weight Decay (權重衰減) - 模型復雜度的約束者
- 要解決的核心問題: 模型過于復雜,學習到了數據中的噪聲和異常點,導致泛化能力差。
- 工作原理: 它是一種顯式正則化方法,通過直接修改損失函數來工作。它在原始損失函數(如交叉熵)上增加了一個懲罰項(通常是所有權重的平方和,即L2范數),鼓勵模型參數趨向于更小的值。
- 最終損失函數:L′(θ)=L(θ)+λ2∥θ∥22L'(\theta) = L(\theta) + \frac{\lambda}{2} \|\theta\|_2^2L′(θ)=L(θ)+2λ?∥θ∥22?
- 其中,λ\lambdaλ 是超參數,控制懲罰力度。λ\lambdaλ 越大,模型越簡單。
- 效果: 約束了模型的函數空間,迫使模型學習更平滑、更簡單的函數,從而有效防止過擬合。
- 實踐提示:
- 在優化器中(如SGD、AdamW)直接設置
weight_decay
參數。 - 注意: 對于Adam優化器,應使用 AdamW 來實現真正的權重衰減,否則效果可能不理想。
- 常見值范圍在
1e-2
到1e-5
之間,需要仔細調優。
- 在優化器中(如SGD、AdamW)直接設置
2. Dropout (隨機失活) - 神經元共適應的破壞者
- 要解決的核心問題: 神經元之間的“共適應”(Co-adaptation),即某些神經元過度依賴于其他特定神經元的存在,導致模型過于脆弱和 specialized,泛化能力弱。
- 工作原理: 它是一種隱式正則化方法,在訓練階段的每次前向傳播中,隨機將一層中一定比例(如50%)的神經元輸出置零(“丟棄”)。每次迭代都丟棄不同的神經元子集。
- 訓練時: 激活值需要除以保留概率(如
/0.8
),以確保數據尺度大致不變( inverted dropout)。 - 測試時: 不使用Dropout,所有神經元都參與計算,無需縮放。
- 訓練時: 激活值需要除以保留概率(如
- 效果:
- 防止過擬合: 打破神經元間的復雜依賴關系,迫使每個神經元都能獨立地學到有用的特征。
- 模型集成: 相當于訓練了指數多個共享參數的子網絡,并在測試時將這些“模型”集成為一個強大的預測模型。
- 實踐提示:
- 通常作為一層網絡添加在激活函數之后(如
nn.Dropout(p=0.5)
)。 - 丟棄率
p
是超參數,隱藏層通常從0.5
開始嘗試,輸入層可以更低(如0.1
或0.2
)。 - 在模型容量大、數據量小的情況下效果尤其明顯。
- 通常作為一層網絡添加在激活函數之后(如
3. Layer Normalization (層歸一化) - 訓練過程的穩定器
- 要解決的核心問題: 內部協變量偏移(Internal Covariate Shift, ICS)——由于前面層參數的更新,導致當前層輸入數據的分布發生劇烈變化,使得訓練變得困難,需要更小的學習率和謹慎的參數初始化。
- 工作原理: 它不改變損失函數,也不改變網絡結構,而是改變數據的分布。它對單個樣本在某一層的所有神經元激活值進行標準化,使其均值為0,方差為1,然后再進行縮放和平移。
- 公式:對于輸入 xxx,計算 μ=1H∑i=1Hxi\mu = \frac{1}{H}\sum_{i=1}^{H} x_iμ=H1?∑i=1H?xi?, σ=1H∑i=1H(xi?μ)2+?\sigma = \sqrt{\frac{1}{H}\sum_{i=1}^{H} (x_i - \mu)^2 + \epsilon}σ=H1?∑i=1H?(xi??μ)2+??
- 標準化和變換:yi=γxi?μσ+βy_i = \gamma \frac{x_i - \mu}{\sigma} + \betayi?=γσxi??μ?+β
- 其中 γ\gammaγ 和 β\betaβ 是可學習的參數,用于恢復模型的表達能力。
- 效果:
- 穩定訓練,加速收斂: 大大減輕了ICS問題,允許使用更大的學習率。
- 改善梯度流動: 緩解梯度消失/爆炸問題。
- 對批次大小不敏感: 其計算不依賴批次內其他樣本,因此在NLP(序列長度不一)、小批次等場景中表現穩定,這是它相對于BatchNorm的巨大優勢。
- 間接正則化: 其帶來的訓練穩定性間接有助于模型找到更優的解,但正則化效果是其副作用,并非主要目的。
- 實踐提示:
- 在Transformer和RNN中無處不在。
- 通常放在殘差連接之前(Pre-LN:
LayerNorm -> Sublayer -> Add
)或之后(Post-LN),Pre-LN通常是更穩定、更主流的現代選擇。
總結與協同使用
特性 | Weight Decay | Dropout | LayerNorm |
---|---|---|---|
核心角色 | 約束者 | 破壞者 | 穩定器 |
主要目標 | 降低模型復雜度 | 打破神經元共適應 | 穩定訓練,加速收斂 |
工作階段 | 訓練與測試 | 僅訓練 | 訓練與測試 |
機制 | 修改損失函數 | 隨機丟棄神經元 | 標準化激活值 |
超參數 | 衰減系數 λ\lambdaλ | 丟棄率 p | 通常無需調參 |
在現代深度架構(如Transformer)中,三者完美協同:
- LayerNorm 是每個子層(自注意力、前饋網絡)的基石,用于穩定訓練。
- Dropout 被廣泛添加在注意力權重計算后、前饋網絡的激活函數后,用于防止過擬合。
- Weight Decay (通常通過AdamW優化器) 在整個訓練過程中約束所有參數,確保模型的簡潔性。
它們從不同維度共同作用,造就了強大、穩定且泛化能力極強的現代深度學習模型。