L1和L2正则化的直观解释
过度拟合是当机器学习或统计模型针对特定机器学习数据集定制并且无法泛化到其他数据集时发生的现象。这通常发生在复杂的机器学习模型中,如深度神经网络。
正则化是引入附加信息以防止过度拟合的过程。本文的重点是L1和L2正则化。
有很多解释有点过于抽象,在本文中,我将与您分享一些直觉,为什么L1和L2使用梯度下降。梯度下降只是一种使用梯度值通过(迭代)更新找到“正确”系数的方法。
L1和L2
L1和L2正则化的名称分别来源于向量w的L1和L2范数。。这是关于规范的入门读物:
1-norm (也称为L1范数)
2-norm (也称为L2范数或欧几里德范数)
p -norm
实现正则化的L1范数的线性回归模型称为套索回归(lasso regression),实现正则化的L2范数的线性回归模型称为岭回归(ridge regression)。要实现这两个,请注意线性回归模型保持不变:
但损失函数的计算包含了这些正则化项:
没有正则化的损失函数
L1正则化的损失函数
L2正则化的损失函数
正则化项是“限制”,通过该最小化损失函数时,除了具有以最小化真之间的误差的优化算法必须“坚持” ÿ和预测ŷ。
模型
为简单起见,我们定义一个简单的线性回归模型ŷ与一个独立变量。
在这里,我使用了深度学习惯例w('weight')和b('bias')。
在实践中,简单的线性回归模型不容易过度拟合。如引言中所述,深度学习模型由于其模型复杂性而更容易受到此类问题的影响。
因此,请注意本文中使用的表达式很容易扩展到更复杂的机器学习模型,而不仅限于线性回归。
损失函数
然后我们将损失函数定义为平方误差,其中误差是y(真实值)和ŷ(预测值)之间的差异。我们称这个损失函数为L。
没有正则化的损失函数
假设我们的模型将使用此损失函数进行过度拟合。
L1正则化的损失函数
根据我们的损失函数,在L中加入L1正则化项如下:
其中正则化参数λ > 0被手动调整。注意,除了w=0时,|w|在任何地方都是可微的,如下所示。我们稍后会需要这个。
L2正则化的损失函数
把L2的正则化项加到L中是这样的:
其中,λ > 0。
梯度下降
现在,我们用梯度下降优化法来求w。
求L 、L0、 L1的梯度
L:
L1:
L2:
如何防止过度拟合?
让我们在上面的等式中执行以下替换:
- η = 1,
- H = 2x(wx + by)
因此我们有如下:
L:
L1:
L2:
观察具有和不具有正则化参数λ的权重更新之间的差异。
L vs. {L1和L2}
直觉A:
让我们用等式说明。等式0执行w-H给我们一个导致过度拟合的w值。直观地说,等式1.1-2会减少过度拟合,因为引入的λ。
直觉B:
让我们说一个过度拟合的模型意味着我们有一个非常拟合我们模型的w值。“完美”意味着如果我们在模型中替换数据(x),我们的预测ŷ将非常接近真实的y。当然,这很好,但我们不希望完美。为什么?因为这意味着我们的模型仅适用于我们训练的数据集。这意味着我们的模型将产生远离其他数据集的真实值的预测。所以我们从不完美的角度来解决,希望我们的模型也可以与其他数据进行密切的预测。为了做到这一点,有了等式1.1-2中的λ惩罚项。
直觉C:
请注意,H取决于机器学习模型(w和b)和数据(x和y)。仅根据公式中的模型和数据更新权重。等式0会导致过度拟合,从而导致泛化不佳。另一方面,在等式1.1-2中,w的最终值不仅由模型和数据的影响,还由预定义的参数λ影响。因此,如果我们设置适当的λ值,我们可以防止过度拟合(虽然太大的值会导致模型严重不拟合)。
L1与L2
直觉D:
我们现在将注意力集中在L1和L2上,并重写等式1.1-2(通过重新排列其λ和H项如下):
L1:
L2:
对于L1(公式3.1),如果w为正,则正则化参数λ > 0将通过从w减去λ而将w变得更小。在等式3.2,w为负,则将λ加到w,推动它减去负值。因此,这具有将w推向0的效果。
这在单变量线性回归模型中当然是毫无意义的,但是它将证明在多变量回归模型中“去除”无用变量是非常有用的。您还可以将L1视为减少模型中的特征数量。以下是L1尝试在多元线性回归模型中的示例:
虽然L1取决于W的符号, L2则不管它的符号是什么,只要把w推开。