正则化 L1/L2:抑制过拟合
模型过拟合时,权重往往变得很大、很零散。正则化(regularization)的做法是在损失函数里加一项对权重的惩罚,逼着模型「别太用力」,从而提升泛化。
L2 与 L1 的公式
L2 正则(岭回归 Ridge)在损失后加 λ·‖w‖²,让权重整体缩小但不归零。L1 正则(Lasso)加 λ·‖w‖₁,倾向于把不重要的权重压到零,自带特征选择。两者统称权重衰减(weight decay),λ 控制惩罚强度。
它们怎么影响权重
L2 对每个大权重都施压,结果是权重趋于均匀变小;L1 的梯度在零附近是常数,更容易产生稀疏解。实践中 L2 最常用(配合优化器里的 weight decay),L1 用在需要稀疏或可解释性的场景。
from sklearn.linear_model import Ridge, Lasso
ridge = Ridge(alpha=1.0) # L2 正则,alpha 即 λ
lasso = Lasso(alpha=0.1) # L1 正则,可产出稀疏权重
ridge.fit(X_train, y_train)
lasso.fit(X_train, y_train)
和神经网络的 Dropout 关系
在深度网络中,L2 是最直接的权重约束;Dropout、BatchNorm、早停等在功能上也属于隐式正则。它们不写进权重惩罚,但同样降低模型对训练噪声的过拟合程度。
怎么选 λ
λ 太小正则无效,太大则欠拟合。靠交叉验证在验证集上选:对一组候选 λ 分别训练,挑 validation 误差最低的。注意正则强度要与数据规模、特征量匹配。
小结
L1/L2 正则通过惩罚权重约束模型复杂度,是抑制过拟合最基础的手段。L2 平滑收缩、L1 稀疏选特征;强度靠交叉验证确定。它们与 Dropout、早停等共同构成深度学习的隐式正则体系。
参考与延伸阅读
- scikit-learn 用户指南「Ridge Regression」(L2)与「Lasso」(L1)。已核验。https://scikit-learn.org/stable/modules/linear_model.html#ridge-regression
- 经典权重衰减说明见 PyTorch 优化器文档。已核验。https://pytorch.org/docs/stable/optim.html
- L1/L2 理论背景见《The Elements of Statistical Learning》第 3 章。待核实。https://web.stanford.edu/~hastie/ElemStatLearn/
本文累计阅读 — 次