趋近智
L1正则化通过添加一个惩罚项来修改标准损失函数,该惩罚项与网络中所有权重的绝对值之和成比例。
回想一下,在训练过程中,我们的目标通常是最小化一个数据损失函数,我们称之为 Ldata(W),它衡量在给定当前权重 W 的情况下,模型的预测与实际目标值匹配的程度。使用L1正则化时,我们在这个目标函数中添加一个新项:
Ltotal(W)=Ldata(W)+λi∑∣wi∣让我们分析这个新项:
与L2正则化相比,主要区别在于使用了绝对值 ∣wi∣ 而不是平方值 wi2。这种看似微小的变化对优化过程有显著影响。
在反向传播过程中,我们需要计算总损失 Ltotal 相对于每个权重 wj 的梯度以更新它。L1惩罚项相对于特定权重 wj 的梯度为:
∂wj∂(λi∑∣wi∣)=λ⋅∂wj∂∣wj∣绝对值函数 ∣x∣ 的导数是 sign(x),即:
因此,总损失的梯度变为:
∂wj∂Ltotal=∂wj∂Ldata+λ⋅sign(wj)对于 wj=0这意味着L1惩罚项会向数据损失的梯度添加一个常数值(λ 或 −λ),将权重推向零,无论权重的当前大小如何(只要它不为零)。这种恒定的推动力就是促使权重变为精确零的原因。将其与L2正则化进行比较,L2正则化中惩罚项对梯度的贡献(λ⋅2wj)随着权重变小而减小,使其不太可能精确地达到零。
当 wj=0 时会发生什么?绝对值函数在这一点上不可微。在实践中,优化算法通过使用与次梯度下降或近端梯度方法相关的技术来处理这种情况。∣wj∣ 在 wj=0 处的次梯度是区间 [−1,1]。一种常见的实际方法是,如果权重已经为零,则将L1项的梯度贡献简单地设置为零,或者在更新步骤中应用“软阈值”操作,这种操作会检查更新是否会越过零点,如果会,则将权重设置为零。大多数深度学习框架的优化器在内部处理这个细节。
核心要点是,L1惩罚项为非零权重提供了一个恒定的“推力”使其趋近于零,这使得它在生成许多权重变为精确零的稀疏模型方面非常有效。
L1惩罚项呈“V”字形,对非零权重施加恒定的梯度大小(斜率),无论其大小如何。L2惩罚项呈抛物线形,梯度随着权重接近零而减小。
这种数学结构直接导致了前面讨论的稀疏性诱导特性。在接下来的部分中,我们将更直接地比较L1和L2,并查看如何在代码中实现它们。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造