1. 从优化问题到正则化约束
在机器学习模型的训练过程中,我们本质上是在解决一个优化问题:找到一组参数θ,使得损失函数L(θ)的值最小。当没有任何限制时,这个优化问题的解可能会出现过拟合现象——模型在训练集上表现极好,但在新数据上泛化能力很差。
正则化技术的核心思想就是在原始损失函数中添加一个惩罚项,这个惩罚项会限制参数θ的大小。L1和L2正则化是最常用的两种形式:
-
L2正则化(岭回归):在损失函数中添加参数向量的L2范数平方
math复制L(\theta) + \lambda||\theta||_2^2 -
L1正则化(Lasso回归):在损失函数中添加参数向量的L1范数
math复制L(\theta) + \lambda||\theta||_1
这里的λ是正则化系数,控制着正则化项的权重。λ越大,对模型复杂度的惩罚就越重。
注意:正则化项通常不包括偏置项(bias term),因为偏置项的大小与模型的复杂度关系不大。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 几何视角下的约束空间
2.1 约束条件的几何表示
从几何角度看,正则化相当于给优化问题添加了一个约束条件。我们可以将优化问题重新表述为:
在满足||θ|| ≤ C的条件下,最小化L(θ)
其中C是一个常数,||·||表示某种范数。这个约束条件定义了一个"可行区域":
- 对于L2正则化,可行区域是一个球体(高维空间中的超球面)
- 对于L1正则化,可行区域是一个菱形(高维空间中的超立方体)
2.2 优化问题的几何解释
考虑一个简单的二维情况(θ=[θ₁,θ₂]),我们可以绘制出损失函数的等高线和约束区域:
- 损失函数的等高线是一系列同心椭圆(假设损失函数是凸的)
- L2约束是一个圆
- L1约束是一个菱形
最优解出现在等高线与约束区域的切点处。由于L1和L2约束的形状不同,它们的切点位置也会不同,这导致了两种正则化方法的不同性质。
3. L2正则化的几何特性
3.1 圆形约束与参数收缩
L2正则化的约束区域是一个圆(高维中是球体),这意味着所有方向的约束都是均匀的。从几何上看:
- 当没有约束时,最优解在损失函数的最小值点(椭圆中心)
- 添加L2约束后,解被"推"向原点,但保持方向不变
- 最终解是原始解向原点的收缩版本
这种均匀收缩导致:
- 所有参数都会按比例缩小
- 但很少会将参数精确压缩到零
- 适合处理参数间相关性较强的情况
3.2 数学性质与解析解
L2正则化问题通常有解析解。对于线性回归,正则化后的解为:
math复制\hat{\theta} = (X^TX + \lambda I)^{-1}X^Ty
这个解在数值上更稳定,因为即使X^TX不可逆,(X^TX + λI)也总是可逆的。
4. L1正则化的几何特性
4.1 菱形约束与稀疏性
L1正则化的约束区域是一个菱形(高维中是交叉多面体),其特点是:
- 在坐标轴上有"尖角"
- 等高线与这些尖角相交的概率很高
- 在尖角处,某些坐标恰好为零
这导致了L1正则化的关键特性——稀疏性:
- 许多参数会被精确压缩到零
- 自动实现了特征选择
- 适合处理高维数据中有大量无关特征的情况
4.2 数学特性与计算
L1正则化问题通常没有解析解,需要使用迭代算法求解:
- 坐标下降法
- 近端梯度法
- 交替方向乘子法(ADMM)
这些算法利用了L1正则化的特殊结构,能够高效地找到稀疏解。
5. 实际应用中的选择考量
5.1 何时选择L1或L2
根据几何特性,我们可以得出一些实用指南:
选择L2正则化当:
- 所有特征都可能与输出相关
- 特征数量不多于样本数量
- 需要处理多重共线性问题
选择L1正则化当:
- 只有少量特征真正重要
- 特征维度远高于样本数量
- 需要模型的可解释性和特征选择
5.2 Elastic Net:两全其美
有时可以结合L1和L2的优点,使用Elastic Net正则化:
math复制L(\theta) + \lambda_1||\theta||_1 + \lambda_2||\theta||_2^2
这种组合:
- 保留了L1的稀疏性
- 继承了L2处理相关特征的能力
- 在特征高度相关时表现更好
6. 几何直观的扩展理解
6.1 高维空间中的行为
虽然我们主要用二维例子说明,但几何直观可以推广到高维:
- L2约束的球面在高维空间中"体积"主要集中在赤道附近
- L1约束的多面体在高维中"尖角"更多,稀疏性更强
- 随着维度增加,L1和L2的区别会更加明显
6.2 与其他正则化的关系
其他正则化方法也有类似的几何解释:
- 核范数正则化(矩阵完成):约束矩阵的奇异值
- 组Lasso:对参数组进行约束
- 弹性网络:结合L1和L2约束
每种方法都对应着不同的约束几何形状,从而产生不同的归纳偏好。
7. 实现中的注意事项
7.1 参数缩放的重要性
由于正则化对参数大小敏感,实施前必须:
- 标准化所有特征(均值为0,方差为1)
- 或者至少将特征缩放到相似范围
- 否则正则化效果会不公平地偏向某些特征
7.2 正则化系数的选择
λ的选择至关重要,实践中:
- 使用交叉验证确定最佳λ
- 可以尝试对数间隔的值(如0.001,0.01,0.1,1,10)
- 对于Elastic Net,还需要平衡λ1和λ2
7.3 计算效率考量
- L2正则化通常计算更高效
- L1正则化可能需要特殊算法
- 对于大规模问题,随机方法可能更合适
我在实际项目中发现,对于特征数量在1000以下的模型,L1正则化的计算开销通常可以接受。但当特征维度达到数万时,就需要考虑使用专门的优化算法或分布式计算了。
