正则化

  1. 正则化常用于缓解模型过拟合。过拟合发生的原因是模型的容量过大,而正则化可以对模型施加某些限制,从而降低模型的有效容量。

  2. 目前有多种正则化策略。

    • 有些正则化策略是向模型添加额外的约束,如增加对参数的限制。这是对参数的硬约束。
    • 有些正则化策略是向目标函数增加额外项。这是对参数的软约束。
  3. 正则化策略代表了某种先验知识,即:倾向于选择简单的模型。

  4. 在深度学习中,大多数正则化策略都是基于对参数进行正则化。正则化以偏差的增加来换取方差的减少,而一个有效的正则化能显著降低方差,并且不会过度增加偏差。

  5. 在深度学习的实际应用中,不要因为害怕过拟合而采用一个小模型,推荐采用一个大模型并使用正则化。

一、参数范数正则化

  1. 一些正则化方法通过对目标函数 添加一个参数范数正则化项 来限制模型的容量capacity

    正则化之后的目标函数为

    • 为正则化项的系数,它衡量正则化项 和标准目标函数 的比重。

      • 则没有正则化。
      • 越大则正则化项越重要。
    • 如果最小化 ,则会同时降低 和参数 的规模。

  2. 参数范数正则化可以缓解过拟合。

    如果 设置的足够大,则参数 就越接近零。这意味着模型变得更简单,简单的模型不容易过拟合(但是可能欠拟合)。

    对于神经网络,这意味着很多隐单元的权重接近0,于是这些隐单元在网络中不起任何作用。此时大的神经网络会变成一个小的网络。

    从 零逐渐增加的过程中存在一个中间值,使得参数 的大小合适,即一个合适的模型。

  3. 选择不同的 的形式会产生不同的解,常见的形式有 正则化和 正则化。

1.1 L2 正则化

  1. 正则化通常被称作岭回归或者Tikhonov正则化。

    • 正则化项为 。系数 是为了使得导数的系数为 1。
    • 该正则化形式倾向于使得参数 更接近零。
  2. 假设 参数就是权重 ,没有偏置参数,则:

    对应的梯度为:

    使用梯度下降法来更新权重,则权重的更新公式为: 。即:

    正则化对于梯度更新的影响是:每一步执行梯度更新之前,会对权重向量乘以一个常数因子来收缩权重向量。因此L2 正则化也被称作“权重衰减”。

1.1.1 整体影响

  1. ,它就是无正则化项时使得目标函数最小的权重向量。

    根据极小值的条件,有 。于是在 的邻域内泰勒展开

    其中: 处的海森矩阵; 处的一个邻域。

    的梯度为:

  2. ,它就是有正则化项时使得目标函数最小的权重向量。

    假设 , 即 的一个邻域内,则有:

    根据极小值条件: ,则有:

    时,

  3. 因为 是实对称矩阵,对其进行特征值分解:。 其中特征值组成对角矩阵 ,对应的特征向量组成正交矩阵

    于是有:

    其中:

  4. 正则化对模型整体的影响:沿着 的特征向量所定义的轴来缩放

    • 的第 个特征向量对应的 分量根据 因子缩放。
    • 沿着 特征值较大的方向受到正则化的影响较小。
    • 的方向对应的权重分量将被缩小到几乎为零。

1.1.2 物理意义

  1. 如下所示:实线椭圆表示 的等值线,虚线圆表示正则化项 的等值线。

    点, 取得最小值;在 点(也就是图中的 点), 和正则化项达到平衡(使得二者之和最小)。

    沿着 方向(横向)的 的曲率半径较大;曲率半径越大,曲率越小,特征值越小。

    • 曲率刻画曲线的弯曲程度。弯曲越厉害,则表示曲率半径越小、曲率越大。

      直线的曲率半径为 ,曲率为0。

    • 曲率半径是曲率的倒数。对于椭圆

      • 在左右顶点:沿着 方向(纵向)的曲率半径为
      • 在上下顶点:沿着 方向(横向)的曲率半径为
      • 海森矩阵的特征值为:

  2. 在上图中:

    • 的海森矩阵第一维 ( )的特征值很小。

      所以当从 点水平移动时, 不会增加太多。因为 对这个方向没有强烈的偏好。所以正则化项对于该轴具有强烈的影响:正则化项将 拉向零。

    • 的海森矩阵第二维的特征值较大。

      对于 的变化非常敏感,因此正则化项对于该轴影响较小。

    • 因为沿着水平方向,一个较大的偏移只会对 产生一个较小的变化。因此正则化项倾向于从 点水平向零点移动。

  3. 正则化表明:

    • 只有显著减小目标函数 的那个方向的参数会相对保留下来。
    • 无助于减小目标函数 的方向(该方向上 特征值较小,或者说该方向上 的曲率较小,或者说该方向上 的曲线更接近于直线),因为在这个方向上移动不会显著改变梯度,因此这个不重要方向上的分量会因为正则化的引入而被衰减掉。

1.1.3 示例

  1. 考虑线性回归的 正则化,采用平方误差作为代价函数:

    这里忽略了线性回归的 的影响,这是为了便于说明解的性质。

  2. 的解析解为:

    的解析解为:

    样本的协方差矩阵为 (这里已经将样本进行了标准化:减去了均值), 为样本数量。因此 的对角线对应于每个输入特征的方差, 在对角线上增加了

    因此, 正则化使得:

    • 方差较小的特征对应的权重被收缩。
    • 方差远大于 的特征受影响较小。
    • 只有方差接近甚至小于 的特征受影响较大。

 

1.2 L1 正则化

  1. 模型参数 的正则化形式为: 。即各个参数的绝对值之和。

  2. 正则化后的目标函数

    对应的梯度为 。其中 函数取自变量的符号:

    如果自变量大于零,则取值为 1;如果自变量小于零,则取值为 -1;如果自变量为零,则取值为零。

    使用梯度下降法来更新权重,给出权重的更新公式为:

    正则化对于梯度更新的影响是:不再是线性地缩放每个 正则化项的效果),而是减去与 同号的常数因子。

1.2.1 整体效果

  1. ,它就是无正则化项时使得目标函数最小的权重向量。

    正则化中的推导相同,在 的邻域内泰勒展开:

    其中: 处的海森矩阵; 的邻域 内。

  1. 由于 正则化项在一般的海森矩阵情况下无法得到直接的代数表达式。

    因此我们进一步假设海森矩阵是对角矩阵。即:

    其中

    如果用于线性回归问题的数据已经被预处理(如使用PCA),去除了输入特征之间的相关性,则这一假设成立。

    于是:

  2. 考虑定义式,有:

    对于 来讲 , 为常量。因此 的最小值由 决定。

    考虑每一个维度 ,可以考虑最优化目标:

    得到解析解:

  3. 考虑 的情况。此时有两种可能:

    • :则 。表示 正则化项将 推向 0 。
    • :则 。此时 正则化项并不会将 推向 0,而是向零的方向推动了 的距离。
  4. 考虑 的情况。此时有两种可能:

    • :则 。表示 正则化项将 推向 0 。
    • :则 。此时 正则化项并不会将 推向 0,而是向零的方向推动了 的距离。

    如果使用 正则化,则解为

1.2.2 物理意义

  1. 如下所示:实线椭圆表示 的等值线,实线菱形表示正则化项 的等值线。

    点, 取得最小值;在 点(也就是图中的 点), 和正则化项达到平衡(使得二者之和最小)。

    可以看到 的等值线更容易与 正则化项的等值线在坐标轴相交从而取得整体极小值。

  1. 正则化项更容易产生稀疏(sparse)解,而 正则化并不会导致稀疏解。

    • 正则化中, 的绝对值越小,该维的特征越容易被稀疏化。
    • 正则化的这一性质已经被广泛地用作特征选择: 正则化使得部分特征子集的权重为零,表明相应的特征可以被安全地忽略。

1.3 L1/L2正则化与最大后验估计

  1. 许多正则化策略可以被解释为最大后验估计MAP

    最大化后验估计等价于最小化代价函数。

    • 正则化项:参数的先验分布为高斯分布:

      忽略 项,因为它们与 无关。

    • 正则化项:参数的先验分布为各向同性拉普拉斯分布 :

      忽略 项,因为它们与 无关。

  2. 更复杂的正则化项可以通过先验分布为混合高斯分布得到。

二、显式约束正则化

  1. 可以通过添加一个显式约束来实现正则化: 。其中 为一个常数。

  2. 可以通过构建广义拉格朗日函数来求解该约束最优化问题。

    定义广义拉格朗日函数: 。则上述约束最优化问题的解由下式给出:

    假设 的解为 ,固定 则:

    这和参数范数正则化是相同的,因此可以将参数范数正则化视为对参数强加的约束:

    • 如果 范数,则权重就是被约束在一个 球中。
    • 如果 范数,则权重就是被约束在一个 限制的区间中。
  3. 也可以通过重投影来求解该约束最优化问题。此时需要修改梯度下降算法:首先计算 的下降步,然后将 投影到满足 的最近点。

  4. 使用显式约束,而不是使用范数正则化有两个好处:

    • 采用范数正则化后,当 较小时容易使得非凸优化的过程陷入局部极小值。

      • 当使用权重范数的正则化时,较小的权重可能是局部最优的。
      • 当使用显式约束时,算法不鼓励权重接近原点,因此工作的较好。
    • 使用显式约束对优化过程增加了一定的稳定性。

      如:当使用了较高的学习率时,很可能进入了正反馈:较大的权重产生了较大的梯度,较大的梯度诱发权重的更大的更新。

      如果这些更新持续增加了权重的大小,则 就会迅速增大直到溢出。显式约束可以防止这种反馈环引起的权重的无限制持续增加。

  5. Srebro and Shraibman提供了一种正则化策略:约束神经网络的权重矩阵每列的范数,而不是限制整个权重矩阵的Frobenius范数。分别限制每一列的范数可以防止某一个隐单元有非常大的权重。

    在实践中,列范数的限制总是通过重投影的显式约束来实现。

三、数据集增强

  1. 提高模型泛化能力的一个最直接的方法是采用更多的数据来训练。但是通常在现实任务中,我们拥有的数据量有限。

    解决该问题的一种方法是:创建一些虚拟的数据用于训练。

  2. 数据集增强仅仅用于模型的训练,而不是用于模型的预测。即:不能对测试集、验证集执行数据集增强。

  3. 当比较机器学习算法基准测试的结果时,必须考虑是否采用了数据集增强。

    通常情况下,人工设计的数据集增强方案可以大大减少模型的泛化误差。当两个模型的泛化性能比较时,应该确保这两个模型使用同一套人工设计的数据集增强方案。

  4. 注意数据集增强和预处理的区别:数据集增强会产生更多的输入数据,而数据预处理产生的输入数据数量不变。

3.1 线性变换

  1. 对于某些任务来说,创建虚拟数据非常困难。如:在密度估计任务中,除非预先知道了密度函数,否则无法产生新的虚拟数据。

    对于分类问题来说,创建虚拟数据非常简单。对于一个分类器,它将高维的输入 映射到类别 。这意味着这种映射规则是不随坐标系的改变而改变的。因此可以通过线性变换,将训练集中的 变换为 从而产生了新的数据

    对图像分类问题,数据集增强特别有效。数据集增强也可以应用于语音识别任务。

  2. 常见的图片数据集增强方法:

    • 将训练图像沿着每个方向平移几个像素产生新的图像。

    • 对训练图像进行旋转、翻转或者缩放。

    • 对训练图像进行随机裁剪。

      实际上,随机裁剪图像的操作也可以被认为是预处理步骤,而不是数据集增强。

    • 对训练图像进行颜色抖动:调整饱和度、调整亮度、调整对比度、调整锐度。

      • 对比度:图像画面的明暗反差程度。对比度越高,则图片亮的地方更亮,暗的地方越暗。
      • 亮度:图像的明暗程度。亮度越高,则图像整体越亮。
      • 饱和度:图像颜色种类的多少。饱和度越高,则图像的颜色种类越多,图像越鲜艳。
      • 锐度:图像的边缘轮廓的锐利程度。锐度越高,则图像的边缘越清晰。
  3. 在使用线性变换执行数据集增强时需要注意:

    • 某些线性变换会改变正确的类别。

      如:字符识别任务中, b/d以及6/9的图像, 不能执行水平翻转变换和旋转 180 度变换。

    • 某些线性变换难以执行。

      如:平面外的绕轴旋转(类似于翻页)难以通过简单的几何运算在输入图片上实现。

3.2 输入噪声注入

  1. 在神经网络的输入层注入噪声也可以视作数据增强的一种形式。如:在图像识别任务中,对训练图像注入高斯噪声。

    事实上输入噪声注入也可以用于无监督学习,如:降噪自动编码器。

  2. 通常一个训练好的神经网络对噪声鲁棒性较差,改善其噪声鲁棒性的常用方法是:简单地将随机噪声施加到输入上,再进行训练。

    • Poole et al.(2014)表明:当仔细调整噪声的幅度之后,该方法非常高效。

    • 噪声被添加到每层隐单元的输入(而不仅仅是整个网络的输入)也是可行的,这被视为在多个抽象层上进行数据集增强。

      本章后面的dropout正则化策略可以被看作是通过对隐单元的输入乘上噪声。

四、噪声鲁棒性

  1. 有三种添加噪声的策略:输入噪声注入、权重噪声注入、输出噪声注入。

4.1 输入噪声注入

  1. 输入噪声注入:将噪声作用于输入的数据集,这也是前文介绍的一种数据集增强方法。

  2. 对于某些模型,在输入上注入方差极小的噪音等价于对权重施加参数范数正则化(Bishop,1995a,b)。

    但是输入噪声注入远比简单地收缩参数强大,尤其是噪声被添加到隐单元的输入上时。

4.2 权重噪声注入

  1. 权重噪声注入:将噪音作用于权重。这项技术主要用于循环神经网络。

  2. 权重噪声注入可以解释为:将权重视作不确定的随机变量(拥有某个概率分布),向权重注入噪声是对该随机变量采样得到的一个随机值。

  3. 在某些假设下,权重噪声注入等价于传统的参数正则化形式。

  4. 假设有一个 层的标准的深度前馈神经网络,我们将噪声注入到该网络的权重。

    假设 ,则有:

    常数项包含了高斯分布的方差(与 无关)。

    于是目标函数重写为:

  5. 假设每个权重添加一个随机扰动 , 它是一个均值为0、方差为 的标准正态分布。

    假设添加扰动之后的模型为

    假设有 ,即:模型对于增加扰动之后的期望等于原来的模型。

    于是: