L1和L2正则化分别是什么,什么场景适合使用呢
1️⃣ 考察意图
面试官想考察你对正则化原理的工程理解深度,而非背诵公式。表面是概念题,实际是工程取舍题:你是否清楚L1和L2在优化、稀疏性、可导性上的本质差异,以及在不同场景(高维稀疏 vs 低维稠密、传统ML vs 深度学习)下的选择逻辑。刁钻点在于:很多人只会说“L1做特征选择,L2防过拟合”,但说不出为什么L1能产生稀疏解(几何解释 vs 贝叶斯先验),以及在深度学习里为什么几乎只用L2(weight decay)而不用L1。答好了能展示你对优化理论、模型容量控制和实际调参的硬实力。
2️⃣ 标准答
1. 数学定义与优化差异
- L1正则化(Lasso):在损失函数后加 λ∑|w|。优化时,梯度在w=0处不连续(次梯度),导致解倾向于落在坐标轴上,产生稀疏解(很多权重为0)。
- L2正则化(Ridge):加 λ∑w²。梯度连续,解是权重均匀缩小(所有权重按比例衰减),不会产生精确0值。
- 几何解释:L1的约束区域是菱形(顶点在坐标轴),L2是圆形。菱形顶点更容易与损失函数的等高线相切,从而产生稀疏解。
2. 适用场景与工程取舍
- L1适用场景:
- 高维特征选择:如文本分类(词袋模型,特征数>10万),L1自动剔除无关特征,提升可解释性。
- 稀疏模型部署:移动端或IoT设备,模型大小受限,L1可压缩参数数量。
- 坑:L1不可导导致优化不稳定,尤其在深度学习里,SGD+次梯度收敛慢,且容易跳过最优解。实际解法:用Proximal Gradient Descent或Adam+权重裁剪替代纯L1。
- L2适用场景:
- 防止过拟合:几乎所有深度模型(CNN、RNN、Transformer)默认用L2(即weight decay,λ通常设1e-4到5e-4)。
- 低维稠密特征:如图像识别(像素特征,维度<1万),L2均匀缩小权重,避免过拟合且不破坏特征结构。
- 优势:L2梯度连续,优化稳定,与Adam/LAMB等优化器天然兼容。
- Elastic Net(L1+L2):当特征高度相关时,L1会随机选一个,L2会均匀缩小,Elastic Net结合两者(如α=0.5),在基因表达数据中效果更好。
3. 深度学习中的实际落坑与解法
- 坑1:weight decay不等于L2。在Adam中,weight decay实现方式不同(解耦weight decay vs 直接加L2梯度),直接加L2会导致学习率与正则化耦合,调参困难。解法:用AdamW(解耦weight decay),λ独立于学习率。
- 坑2:L1在Transformer中几乎不用。因为注意力机制本身有稀疏性(softmax输出接近one-hot),再加L1会导致梯度消失。解法:用Dropout或Stochastic Depth替代。
- 坑3:L2的λ过大导致欠拟合。在ResNet-50上,λ从1e-4提到1e-3,验证集准确率下降2-3%。解法:用学习率预热+余弦退火,λ设为1e-4,先让模型收敛再微调。
4. 贝叶斯视角(加分项)
- L1等价于权重服从拉普拉斯先验(p(w)∝e^{-λ|w|}),鼓励稀疏。
- L2等价于权重服从高斯先验(p(w)∝e^{-λw²}),鼓励小权重。
- 这个视角解释了为什么L1在特征选择上更强:拉普拉斯分布峰值在0,先验概率密度更高。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从数学原理、工程取舍、深度学习实践三个层面回答。数学上,L1加绝对值产生稀疏解(特征选择),L2加平方使权重均匀缩小(防过拟合)。工程上,L1适合高维稀疏场景(如文本分类),但优化不稳定;L2适合低维稠密场景(如图像),且与AdamW兼容。深度学习里几乎只用L2(weight decay),因为L1的次梯度收敛慢且容易破坏注意力稀疏性。总结一句:选L1看稀疏性需求,选L2看优化稳定性,两者结合用Elastic Net。”
4️⃣ 高频追问 & 应对
追问 1:为什么L1能产生稀疏解,而L2不能?从几何或优化角度解释。
几何上,L1的约束区域是菱形,顶点在坐标轴;L2是圆形,边界光滑。损失函数的等高线(椭圆)与约束区域相切时,菱形顶点更容易被切到(因为顶点处梯度方向突变),导致解落在坐标轴上(权重为0)。优化上,L1的梯度在w=0处不连续(次梯度),SGD更新时,如果梯度方向与符号相反,权重会直接跳到0;L2梯度连续,权重只会逐渐衰减但不会精确归零。
追问 2:在LLM训练中,你用过L1正则化吗?为什么不用?
没用过。LLM(如GPT-4、Llama)参数规模百亿级,L1的稀疏性会破坏注意力头的冗余结构(注意力头本身有稀疏性,再加L1会导致梯度消失)。而且L1的次梯度优化在分布式训练中不稳定(all-reduce后梯度符号不一致)。实际做法是用L2(weight decay,λ=0.1-0.3)配合AdamW,再加Dropout(p=0.1)和Stochastic Depth(drop rate=0.1-0.2)防止过拟合。
追问 3:如果特征高度相关(如基因表达数据),L1和L2各自有什么问题?怎么解决?
L1会随机选择其中一个相关特征,导致模型不稳定(不同训练集选不同特征)。L2会均匀缩小所有相关特征的权重,但不会剔除冗余特征。解法是用Elastic Net(L1+L2),比如α=0.5,L1做特征选择,L2让相关特征权重更稳定。实际调参时,用交叉验证选λ和α,在基因数据上Elastic Net的AUC比纯L1高3-5%。
5️⃣ 避坑 · 常见错误答法
- ❌ “L1和L2的区别就是公式不同,一个加绝对值一个加平方。” → ✅ 必须讲清楚为什么公式差异导致稀疏性差异(几何/优化/贝叶斯视角),以及工程取舍(L1优化不稳定,L2更稳定)。
- ❌ “深度学习里L1和L2都用,看情况。” → ✅ 深度学习里几乎只用L2(weight decay),L1极少用(除非做特征选择或模型压缩)。要给出具体原因(次梯度、注意力稀疏性、AdamW兼容性)。
- ❌ “L2正则化就是weight decay。” → ✅ 在Adam中,weight decay和L2不等价(解耦weight decay vs 直接加L2梯度),要区分实现方式(AdamW vs Adam+L2)。
6️⃣ 简历呼应
- 如果你有深度学习项目(如图像分类、NLP):从实际调参切入,比如“在ResNet-50上,我用L2(weight decay=1e-4)配合AdamW,验证集准确率比不加正则化高2%”,并解释为什么不用L1(优化不稳定)。
- 如果你有传统ML项目(如Kaggle竞赛、特征工程):从特征选择切入,比如“在房价预测中,特征数>500,我用Lasso(L1)自动筛选出50个关键特征,模型可解释性提升”,并对比Ridge(L2)的效果。
- 如果你是校招无项目:从理论推导切入,比如“我复现了L1和L2的贝叶斯解释(拉普拉斯先验 vs 高斯先验),并在MNIST上对比了稀疏度和准确率”,展示对优化和概率论的理解。
- 《The Elements of Statistical Learning》第3章(Lasso、Ridge、Elastic Net的数学推导)
- 《Deep Learning》(Goodfellow)第7章(正则化在深度学习中的实践)
- 论文:
AdamW: Decoupled Weight Decay Regularization(Loshchilov & Hutter, 2019) - 博客:
An Overview of Regularization Techniques in Deep Learning(by Sebastian Raschka) - 工具:scikit-learn的
LassoCV、RidgeCV、ElasticNetCV(自动调参λ)