训练与优化 / 训练目标与正则化 原理笔记入门 3 分钟阅读 查看源文件 ↗

L1 与 L2:参数惩罚怎样改变最优解#

TL;DR#

本页内容7 个部分

1. 背景与问题#

只降低训练误差,可能得到幅度很大或依赖较多特征的参数。参数正则化在任务损失之外加入惩罚,改变“拟合数据”与“限制参数”的取舍。L1 和 L2 都约束参数大小,但前者可能得到精确零解,后者通常连续地收缩参数。

2. 目标与定义#

记待训练参数为 ww,任务损失为 Ltask(w)\mathcal L_{\mathrm{task}}(w),强度为 λ≥0\lambda\ge0。两种目标分别为:

LL1=Ltask+λ∑i∣wi∣,LL2=Ltask+λ2∑iwi2.\mathcal L_{\mathrm{L1}}=\mathcal L_{\mathrm{task}}+\lambda\sum_i|w_i|,\qquad\mathcal L_{\mathrm{L2}}=\mathcal L_{\mathrm{task}}+\frac\lambda2\sum_iw_i^2.

这里只讨论显式参数惩罚,随机化激活由 Dropout单独解释;损失缩放后,同一个 λ\lambda 的相对强度也会变化。[1]

3. 方法与推导#

3.1 两种惩罚提供什么梯度#

非零坐标上,L1 惩罚梯度为 λsign⁡(wi)\lambda\operatorname{sign}(w_i),L2 为 λwi\lambda w_i。L1 对小参数仍施加同量级压力;L2 的压力随参数绝对值减小而减小。L1 在零点不可微,需要次梯度或近端方法。

3.2 在二次损失里求出最优解#

设一个坐标的任务损失为 (w−a)2/2(w-a)^2/2。L2 的驻点满足 (w−a)+λw=0(w-a)+\lambda w=0,因此 w∗=a/(1+λ)w^*=a/(1+\lambda)。

L1 分别检查正、负与零:正区间有 w=a−λw=a-\lambda,要求 a>λa>\lambda;负区间有 w=a+λw=a+\lambda,要求 a<−λa<-\lambda;当 ∣a∣≤λ|a|\le\lambda 时,零点的次梯度包含零。因此:

w∗=sign⁡(a)max⁡(∣a∣−λ,0).w^*=\operatorname{sign}(a)\max(|a|-\lambda,0).

这就是软阈值的来源。它说明合适目标下精确零解怎样出现,不表示普通梯度步总会恰好落在零上。

4. 计算过程#

设任务损失为 [(w1−3)2+(w2−0.1)2]/2[(w_1-3)^2+(w_2-0.1)^2]/2,取 λ=0.5\lambda=0.5,逐坐标使用上面的规则:

坐标 无惩罚最优值 L1 最优值 L2 最优值
w1w_1 3 3−0.5=2.53-0.5=2.5 3/1.5=23/1.5=2
w2w_2 0.1 max⁡(0.1−0.5,0)=0\max(0.1-0.5,0)=0 0.1/1.5≈0.0666670.1/1.5\approx0.066667

L1 将第二个坐标压至零,L2 则缩小两个坐标。几何上,二维 L1 约束为菱形、L2 为圆;前者在坐标轴上的角点提供了稀疏解的直觉,具体解仍取决于任务损失。

5. 比较与边界#

惩罚改变了优化目标,不保证真实任务指标一定改善。稀疏性是否有用、应惩罚哪些参数,需要结合模型和评价方式。

L2 惩罚与直接权重衰减只在相应更新条件下等价。无动量 SGD 可以直接展开;Adam 中正则项会进入矩历史,差别由 AdamW完整解释。

参考资料#

  1. Deep Learning,Chapter 7(2016). 参数范数惩罚:L1、L2 与约束解释;第 3、4 节为可分二次目标的直接推导。

相关阅读路线

完成一次训练更新 ↗