文章目录

  • 1. 泛化与过拟合
  • 2. 通过限制模型容量减少过拟合
  • 3. 神经网络的正则化方法
  • 4. 正则化使用经验



提高模型的泛化能力是深度神经网络亘古不变的话题。

模型容量太小无法从输入空间中学习映射规则;模型容量过大则可能导致过拟合。两种情况都会导致模型的泛化能力很差。提高模型泛化能力的常用方法是使用较大的模型,在训练过程中使用正则化方法来限制模型的权重,提高模型训练速度,减少过拟合风险,进而提高模型性能。


1. 泛化与过拟合

直观地理解,发生的了过拟合就会导致泛化能力很差。

  • 欠拟合模型。无法充分学习问题,在训练数据集上表现在新样本上表现都不佳的模型。
  • 过拟合模型。该模型对训练数据集学习得太好,在训练数据集上表现良好,但在新样本上表现不佳。
  • 良好拟合模型。在训练集和验证集上的表现都很好的模型。

欠拟合模型具有高偏差和低方差。无论训练数据中的特定样本如何,它都无法了解问题。过拟合模型具有低偏差和高方差。该模型学习的训练数据太好,即使训练数据集中添加了噪声,因此在新的样本上的性能与训练数据上的性能差异很大。

可以通过增加模型容量来解决欠拟合问题。容量是指模型适应各种功能的能力;更大的容量意味着模型可以适应更多类型的函数,以将输入映射到输出。通过更改模型的结构,例如在层上添加更多的层或更多的节点,可以轻松实现模型容量的增加。

与欠拟合相比,过拟合是更常出现更需要注意解决的问题。

通过在训练集和保持验证集上对模型进行评估,可以通过监视模型的性能来轻松诊断过拟合模型。在训练过程中绘制模型性能的折线图(称为学习曲线)可以判断模型是否发生了过拟合。例如,在训练和验证数据集上的损失(最小化的目标函数)的曲线图中,训练集的损失曲线下降并可能达到平稳状态,而验证集的损失曲线首先下降,然后下降某个点再次开始上升。


2. 通过限制模型容量减少过拟合

有两种方法可以解决过拟合问题:

  • 扩充数据集。
  • 降低模型容量(模型复杂度)。

深度神经网络的一个优势是:随着喂给模型的数据集越来越大,模型的性能会不断提高。一个使用几乎无数样本训练的模型,可以在网络能够学习的能力方面达到稳定。大部分情况下数据是不足的,因此深度神经网络很容易发生过拟合。过拟合的原因是模型容量过大,减少模型的容量可以降低过拟合风险。

神经网络模型的容量是由节点和层的结构以及权重的参数来定义的。因此,可以通过以下两种方式之一来降低神经网络模型的容量,以减少过度拟合:

  • 调整网络结构(权重数量)。
  • 调整网络参数(权重大小)。

控制模型复杂度的第二种主要方法是通过使用正则化,即在误差函数中增加惩罚项。

常见的方法集中在约束神经网络中权重大小上,可以定义一个比问题所需的容量大得多容量的模型,然后使用正则化限制模型容量,以确保模型不会过拟合。在这种情况下,由于附加功能可以集中在更好地学习问题中的可推广概念上,因此性能甚至可以更好。

花书里说,正则化是我们对学习算法所做的任何修改,旨在减少其泛化误差,而不是其训练误差。正则化是机器学习领域的核心问题之一,它的重要性只有优化才能与之匹敌。


3. 神经网络的正则化方法

在训练过程中,根据权重的大小对模型进行惩罚。该方法鼓励模型使用较小的权重,将输入映射到训练数据集的输出。这种方法称为权重正则化或权重衰减(L2正则化),并且对于简单的线性模型和神经网络,数十年来已证明非常有效。

六种常用的正则化方法:

  • 1.L1L2正则化:在训练过程中,根据权重的大小对模型进行惩罚。
  • 2.激活正规化:在训练过程中根据激活的数量对模型进行惩罚。
  • 3.Dropout:在训练过程中可能会删除输入。
  • 4.权重限制:将权重的大小限制在一定范围内。
  • 5.及时停止:监视验证集中的模型性能,并在性能下降时停止训练。
  • 6.添加噪声:在训练过程中将统计噪声添加到输入中。

4. 正则化使用经验

除非有非常大的数据集(以千万计的示例或更多),否则应始终考虑使用正则化。

具体经验为:

  • 经典方法:使用及时停止和权重衰减(L2正则化)。
  • 替代方案:使用及时停止,添加噪声和权重限制。
  • 现代方法:使用权重限制,及时停止和Dropout。

这些建议将适合多层感知器和卷积神经网络。

对于递归神经网络(RNN)的一些经验包括:

  • 经典方法:使用及时停止,添加权重噪声和最大范数等权重限制。
  • 现代方法:使用及时停止,使用反向传播的时间感知版本和权重约束。

关于正则化没有灵丹妙药,墙裂建议通过实验对比(比如网格搜索,随机搜索)寻找最佳的超参数。