L1 正则化通过惩罚权重的绝对大小来优化权重。这种方法与其他惩罚权重平方大小的技术不同,它具有显著的特性:L1 正则化促进权重向量的稀疏性,即它促使许多权重变为精确的零。L1 惩罚机制类似于 L2,L1 正则化向原始损失函数 $L_{original}(\mathbf{W})$ 添加一个惩罚项。总损失函数 $L_{total}$ 变为:$$ L_{total}(\mathbf{W}) = L_{original}(\mathbf{W}) + \lambda \sum_{i} |w_i| $$这里,$\mathbf{W}$ 表示网络中的所有权重,$w_i$ 是单个权重,$\lambda$ 是控制惩罚强度的正则化超参数。项 $\sum_{i} |w_i|$ 是权重向量的 $L_1$ 范数。在反向传播过程中,每个权重 $w_i$ 的梯度计算将包含一个来自 L1 惩罚的附加项。对于非零权重,这个项就是 $\lambda \cdot \text{sign}(w_i)$,其中当 $w_i$ 为正时,$\text{sign}(w_i)$ 为 +1;当 $w_i$ 为负时,为 -1。这意味着 L1 惩罚在每次更新期间会对正权重施加常数减法 ($\lambda$),对负权重施加常数加法 ($\lambda$),有效地将它们推向零。L1 为什么导致稀疏性L1 和 L2 正则化之间的主要区别在于它们如何影响优化过程。可以想象,在权重大小受限的情况下尝试最小化原始损失函数,其中“大小”由 L1 或 L2 范数定义。L2 约束:L2 惩罚对应于一个约束条件,即权重的平方和必须小于某个值 ($ \sum w_i^2 \le C $)。从几何上看,这形成一个超球体(在二维空间中是一个圆)。L1 约束:L1 惩罚对应于一个约束条件,即权重的绝对值之和必须小于某个值 ($ \sum |w_i| \le C $)。从几何上看,这形成一个超菱形(在二维空间中是一个菱形)。从视觉上考虑优化过程。最佳权重出现的位置是原始损失函数的等高线首次触及正则化惩罚定义的约束区域。{"layout": {"xaxis": {"title": "权重 1 (w1)", "range": [-2, 2], "zeroline": false}, "yaxis": {"title": "权重 2 (w2)", "range": [-2, 2], "scaleanchor": "x", "scaleratio": 1, "zeroline": false}, "title": "L1 与 L2 正则化约束的比较", "shapes": [{"type": "circle", "xref": "x", "yref": "y", "x0": -1.5, "y0": -1.5, "x1": 1.5, "y1": 1.5, "line": {"color": "#339af0", "width": 2}, "name": "L2 (圆形)"}, {"type": "path", "path": "M 0,1.5 L 1.5,0 L 0,-1.5 L -1.5,0 Z", "line": {"color": "#f06595", "width": 2}, "name": "L1 (菱形)"}], "annotations": [{"x": -0.5, "y": -0.5, "text": "损失等高线", "showarrow": true, "ax": -60, "ay": -40}, {"x": 1.7, "y": 1.2, "text": "L2", "showarrow": false, "font": {"color": "#339af0"}}, {"x": 1.2, "y": 1.7, "text": "L1", "showarrow": false, "font": {"color": "#f06595"}}], "width": 450, "height": 450, "showlegend": false, "images": [{"source": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBzdHJva2U9IiNhZGI1YmQiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIvPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjIwIiBzdHJva2U9IiNhZGI1YmQiIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==", "xref": "paper", "yref": "paper", "x": 0.35, "y": 0.35, "sizex": 0.3, "sizey": 0.3, "xanchor": "center", "yanchor": "middle", "opacity": 0.5}]}, "data": []}L1(菱形,粉色)与 L2(圆形,蓝色)约束边界在固定惩罚预算下的比较。优化寻求一个点,在该点,损失等高线(灰色椭圆,表示中心处的损失更低)首次触及约束边界。因为 L1 边界具有与坐标轴对齐的尖角,接触点通常位于某个坐标轴上,这意味着其中一个权重恰好为零。L2 边界的平滑性使得这种精确为零的结果不太可能发生。L1 菱形的“角”位于坐标轴上(其中一个权重为零,其他权重确定该点)。因为损失函数等高线通常是椭圆形的,它们更可能首先触及 L1 菱形的这些角之一,而不是触及光滑的 L2 圆形上没有权重为零的点。L1 梯度恒定的减法/加法特性也强烈地将小权重推向零并保持在那里。稀疏性作为特征选择当连接到输入特征 $x_i$ 的权重 $w_i$ 恰好变为零时,该特征不再对神经元的输出做出贡献 ($w_i x_i = 0$)。实际上,L1 正则化执行一种自动的特征选择,识别并消除不重要特征的影响。这在具有高维输入数据的情形中特别有用,其中许多特征可能不相关或冗余。通过强制不相关特征的权重为零,L1 正则化可以:简化模型:更简单的模型通常对未见过的数据有更好的泛化能力,从而减少过拟合。提高可解释性:识别哪些特征被认为是重要的(非零权重)可以提供对数据的理解。然而,如果所有输入特征都预计至少会有一定贡献,L1 激进的特征选择可能不利,并且 L2 正则化(它收缩权重但不一定将它们置零)可能更受欢迎。L2 通常在深度学习中作为默认的正则化技术更常用,而 L1 则在稀疏性是特定目标时予以考虑。在深度学习框架中实现 L1 正则化通常很简单,通常涉及在层定义或优化器中设置一个参数,正如我们将在实践部分看到的那样。