真实面经题目 · 原创解析
L1 和 L2 正则化的区别是什么?
L1 和 L2 正则化都是限制模型复杂度、缓解过拟合的方法。L1 加的是参数绝对值和,容易产生稀疏权重;L2 加的是参数平方和,会平滑地压小权重,也常被称为权重衰减。
真实面经题目 · 原创解析
L1 和 L2 正则化都是限制模型复杂度、缓解过拟合的方法。L1 加的是参数绝对值和,容易产生稀疏权重;L2 加的是参数平方和,会平滑地压小权重,也常被称为权重衰减。
L1 正则是在损失里加 lambda 乘以参数绝对值和,几何上会让最优解更容易落在坐标轴上,所以很多权重变成 0,适合做特征选择和稀疏模型。L2 正则是在损失里加 lambda 乘以参数平方和,会持续惩罚大权重,让参数更平滑地变小,一般不容易精确为 0,适合提升模型稳定性和泛化。两者都通过限制模型容量缓解过拟合,lambda 越大约束越强,但过大也会欠拟合。
L1 正则惩罚参数绝对值和,L2 正则惩罚参数平方和。它们都会把原始经验损失和模型复杂度结合起来,避免模型为了拟合训练集而使用过大的权重。
L1 的绝对值函数在 0 点不可导,优化时更容易把部分参数压到精确 0,因此有特征选择效果。L2 的平方惩罚是平滑的,通常会把权重变小但不直接变成 0。
从约束空间看,L1 的约束区域有尖角,损失等高线更容易在坐标轴尖角处相切;L2 的约束区域更圆滑,解更倾向于分散在多个小权重上。
当特征很多且希望自动筛掉无效特征时,L1 更有吸引力;当特征普遍有弱信号、希望参数平滑稳定时,L2 更常用。深度学习里的 weight decay 通常接近 L2 思路。
正则强度 lambda 需要用验证集选择。太弱无法缓解过拟合,太强会让模型欠拟合。特征尺度也会影响正则效果,线性模型中通常要先做标准化。
L1 的约束区域有尖角,优化解更容易落在坐标轴上;同时绝对值惩罚对小权重有持续拉向 0 的作用,因此很多参数会变成 0。
在普通 SGD 下二者形式很接近,都会让权重衰减;但在 Adam 等自适应优化器里,耦合 L2 和解耦 weight decay 的更新并不完全等价。
不同特征尺度会让同样大小的权重含义不同,正则惩罚会偏向惩罚某些尺度下的参数,标准化能让惩罚更公平。