正则化(regularization)和归一化(normalization)

发布时间 2023-06-05 16:21:48作者: stardsd

正则化:批量归一化和dropout

批量归一化和dropout作为正则化器来克服深度学习模型中的过度拟合问题。

来源

您遇到过导致过拟合的大型数据集吗?

过度拟合的原因之一是网络中的权重很大。具有较大网络权重的网络可能是网络不稳定的标志,其中输入的微小变化可能导致输出发生较大变化。这个问题的解决方案是更新学习算法以鼓励网络保持较小的权重。这称为正则化。

在本文中,我们将发现权重正则化如何帮助更快地训练网络、减少过度拟合以及使用深度学习模型做出更好的预测。

下面提到了一些用于正则化的技术

  • 批量归一化
  • 丢弃层

让我们先谈谈批量归一化,

批量归一化

批归一化是一种用于提高人工神经网络的速度、性能和稳定性的技术,也称为批归一化。这个想法是以这样一种方式对每一层的输入进行归一化,使得它们具有平均激活输出零和单位标准差。

为什么要规范化输入?

假设我们有二维数据 X1 和 X2。X1 特征在 200 到 -200 之间的分布范围非常广,而 X2 特征的分布范围非常窄。左图显示了具有不同范围的数据的方差。右图显示数据介于 -2 到 2 之间,并且呈正态分布,均值和单位方差为 0。

来源

本质上,通过归一化缩放输入使误差表面更像球形,否则它会是曲率非常高的椭圆。具有高曲率的误差表面将意味着我们采取许多不一定在最佳方向上的步骤。当我们缩放输入时,我们减少了曲率,这使得像梯度下降这样忽略曲率的方法工作得更好。当误差表面为圆形或球形时,梯度恰好指向最小值。

由于目标景观的高曲率区域,梯度下降的振荡很大
来源
由于目标景观的球形区域,梯度下降的振荡是适度的
来源

为什么叫批量归一化?

在 Batch normalization 中,就像我们对输入进行标准化一样,我们对所有层的激活进行标准化的方式相同,因此在每一层我们都有 0 均值和单位标准差。

这就是我们如何标准化所有层的激活。

最终激活层将是,

在参数 γ 和 β 与网络的其他参数一起学习的情况下,它也会导致损失,因为 h_final 取决于 γ 和 β,这也会导致损失。

现在,如果 γ(gamma) 变为 σ(标准偏差) 并且 β(beta) 变为 μ(均值),则等式变为,

σ = 1 且 μ = 0 那么我们可以说,

所以网络在两个方向上都具有灵活性,

  • 如果归一化有助于减少误差损失,则输入为 (gamma)γ = 1 和 (beta)β = 0。
  • 否则,可学习参数 γ 和 β 将学习这样一种方式,即整体损失将减少。

批量归一化如何作为正则化器工作?

所以我们计算的是小批量的均值和标准差,而不是整个数据。所以在每一层,我们都在添加噪声,噪声具有非零均值和非单位方差,并且是为每一层随机生成的。然后将其添加到批量归一化层之后,以故意将协变量转移引入激活,它充当正则化器。因此,在信息较少的情况下,网络必须预测正确的标签。并且还使模型更加健壮。

集成方法:

集成学习通过组合多个模型来帮助改进机器学习结果。集成方法是一种元算法,它将多种机器学习技术结合到一个预测模型中,以减少方差(装袋)、偏差(提升)或改进预测。

Dropout的思想

在数据上训练一个具有大参数的深度神经网络可能会导致过度拟合

我们能否在同一数据集上训练具有不同配置的多个神经网络并取这些预测的平均值?

来源

但是众所周知,具有不同模型配置的神经网络集合可以减少过度拟合,但需要额外的计算费用来训练和维护多个模型。

所以图片中出现了drop out层,

通过在训练期间随机丢弃节点,可以使用单个模型来模拟具有大量不同网络架构。这称为 dropout,它提供了一种计算成本非常低且有效的正则化方法,以减少过度拟合并改善泛化误差。

来源

在训练期间,一些层输出以一定的概率 p 被丢弃。这具有使该层看起来和被视为具有不同节点数和与前一层的连接性的层的效果。在训练期间对层的每次更新都是使用配置层的不同视图执行的。

结论

  1. Batch normalization 规范化从干扰到异常值的梯度,并在小批量范围内流向共同目标(通过规范化它们)。从而加快了学习过程。
  2. dropout 是一种神经网络正则化方法,有助于减少神经元之间的相互依赖学习。

原文链接:https://medium.com/analytics-vidhya/everything-you-need-to-know-about-regularizer-eb477b0c82ba