过拟合是机器学习或统计模型为特定的机器学习数据集而定制,无法泛化到其他数据集时发生的现象。 这通常发生在复杂的机器学习模型中,如深度神经网络。
规范化是为了防止过度拟合而引入附加信息的过程。 本文的重点是L1和L2的正则化。
有很多有点太抽象的说明,这篇文章分享一下为什么L1和L2的使用梯度下降的直觉。 坡度下降只是利用坡度值通过迭代更新来查找“正确”系数的方法。
L1和L2
L1和L2正则化的名称分别来自向量w的L1和L2范数。 这是一本关于规范的入门书:
1-norm (也称为L1范数) ) )。
2-norm (也称为L2范数或欧几里得范数) () ) ) ) ) ) )。
p -纳米
将进行正则化的L1范数的线性回归模型称为套索回归(lasso regression ),将进行正则化的L2范数的线性回归模型称为岭回归)。 请注意,线性回归模型不会更改以实现这两个目标。
但是损失函数的计算中包含了这些正则化项:
非规范化损失函数
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推开。