外观
L2 正则化不仅仅用于正则化
L2 Regularization is Not Just Used for Regularization
我见过的几乎每一篇提到 L2 正则化(L2 regularization)的教程、课程或博客都只讲一件事:L2 正则化是一种正则化(regularization)技术,它通过惩罚较大的权重(weights)来防止过拟合,从而降低方差、避免模型学习数据中的噪声,让模型不会过于复杂,进而提升泛化能力,并使训练更稳定。当然,这些说法本身没错,我也不否认。事实上,我们也可以从下图加以验证:

在上图中,随着我们向右移动,正则化参数不断增大,模型在全部 5 个数据集上都产生了更简单的决策边界。414
然而,最让我失望的是:绝大多数资料都没有指出,L2 正则化是解决多重共线性(multicollinearity)的绝佳良方。当两个(或更多)特征高度相关,或者两个(或更多)特征能够预测另一个特征时,就会出现多重共线性:

当我们在线性回归中使用 L2 正则化时,该算法也被称为岭回归(ridge regression)。

那么 L2 正则化究竟是如何消除多重共线性的呢?在本章中,让我们为这个主题建立一种直观的理解,这也将解释为什么“岭回归”会被叫做“岭回归”。
出于演示目的,来看下面这个包含两个特征(feature)的虚拟数据集:

如上所示,我们刻意让 featureB 与 featureA 高度相关。这就得到了一个可供我们使用的虚拟数据集。接下来,让梯度(gradient)不对模型产生干扰。
在回归建模中,目标是确定那些特定的参数 θ(θ₁, θ₂),使其最小化残差平方和(RSS):

那么我们不妨这样做:
- 我们为许多不同的 (θ₁, θ₂) 参数组合绘制 RSS 值,这将得到一个三维图:
- x 轴 → θ₁
- y 轴 → θ₂
- z 轴 → RSS 值
- 然后,我们通过观察这张图来找到那些能使 RSS 最小化的特定参数 (θ₁, θ₂)。
我们这就来试试。在没有 L2 惩罚项的情况下,我们得到下图(其实是同一张图,只是从不同角度观看):

你注意到什么了吗?这个三维图有一个谷底。存在多组参数取值 (θ₁, θ₂) 都能使 RSS 达到最小。因此,要想得到唯一一组使 RSS 最小化的参数 (θ₁, θ₂) 是不可能的。
当使用 L2 惩罚项时,目标是最小化下式:

像前面那样再次绘制同样的图,我们得到:

这次你注意到有什么不同了吗?如上图所示,使用 L2 正则化消除了我们先前看到的谷底,并为 RSS 误差提供了一个全局最小值。现在,得到唯一一组使 RSS 最小化的参数 (θ₁, θ₂) 就成为可能了。L2 正则化就这样在不知不觉中帮我们消除了多重共线性。
事实上,“岭回归”也正是由此得名——它消除了使用 L2 惩罚项时似然函数中的“岭”。

当然,在前面的演示中我们看到的是一个谷底,而不是一道山脊。但那种情况下,我们考虑的是残差误差平方和——一种需要被最小化以获得最优参数的量,因此误差函数自然会形成一个谷底。如果我们改用似然——一种需要被最大化的量,那么(在某种程度上)会把图形上下颠倒,从而形成一道山脊:

显然,在给该算法命名时,人们参考的是似然函数。这就是它被命名为“岭回归”的原因。几年前我第一次了解到这一点时,完全没想到“岭回归”这个命名背后竟然蕴含着如此深刻的思考。