五、早停

  1. 当训练一个容量较大的模型时会经常发现:训练误差逐渐降低,但是验证误差先下降后上升。

    当验证误差没有进一步改善时,算法就提前终止。这种策略被称作早停early stopping

    五、早停 - 图1

  2. 早停是深度学习中最常用的正则化形式,因为它简单、有效。

  3. 当训练终止时,返回的不是最新的模型参数,而是验证误差最小的模型参数,因此需要频繁存储模型参数。

5.1 早停算法

  1. 早停算法:

    • 输入:

      • 当前验证集的误差非最小值的次数 五、早停 - 图2
      • 验证集验证的间隔 五、早停 - 图3
      • 初始参数 五、早停 - 图4
    • 输出:

      • 最佳参数 五、早停 - 图5
      • 获得最佳参数时迭代的步数 五、早停 - 图6
    • 算法步骤:

      • 初始化:

        • 参数变量 五、早停 - 图7
        • 迭代步数变量 五、早停 - 图8
        • 验证次数变量 五、早停 - 图9
        • 验证集的最小误差 五、早停 - 图10
        • 最佳参数 五、早停 - 图11
        • 最佳迭代步数 五、早停 - 图12
      • 循环,循环条件为: 五、早停 - 图13

        • 学习模型 五、早停 - 图14 步(每隔 五、早停 - 图15 步验证一次)

        • 更新 五、早停 - 图16

        • 记录最新的验证集误差 五、早停 - 图17

        • 如果 五、早停 - 图18,则: 五、早停 - 图19

          如果 五、早停 - 图20,则: 五、早停 - 图21

          若当前验证集误差是最小的,则 五、早停 - 图22 清零。这意味着必须连续 五、早停 - 图23五、早停 - 图24 ,才说明算法到达终止条件。

  2. 可以认为早停是一个非常高效的超参数选择算法:训练步数是一个超参数,该超参数在验证误差上具有 U形曲线。

    • 早停策略通过控制训练步数来控制模型的有效容量capacity
    • 早停策略只需要跑一轮训练就能够得到很多的超参数(即:训练步数)及其对应的验证误差。
  3. 早停策略的代价有两个:

    • 需要在训练期间定期评估验证集。

      • 可以通过并行的执行训练和验证来加速这一过程。
      • 也可以选取一个较小的验证集、或者不那么频繁地评估验证集来减小评估代价。
    • 需要保持最佳的参数的副本。

      这种代价一般可以忽略不计。

  4. 早停是正则化的一种非常不起眼的形式,其优点有:

    • 它几乎不需要干涉基本的训练过程,适合任何模型。
    • 可以单独使用,或者与其他的正则化策略相结合。
    • 早停不仅有正则化的好处,还有降低计算成本的好处。
  5. 以泛化误差的偏差方差分解角度来看,早停试图同时解决偏差和方差,其结果很可能导致得到的模型并不是一个最优的模型。

    如下图中所示的验证误差曲线。因为提前停止了训练,所以使得代价函数的值可能不够小,即:偏差可能还可以继续降低。方差(即:验证误差与训练误差之间的gap ) 虽然处于上升趋势,但是它们叠加的结果可能导致验证误差呈现波动走势。

    五、早停 - 图25

5.2 二次训练

  1. 早停需要验证集,这意味着某些样本不能用于模型的训练过程,这会造成数据的浪费。

    为了更好地利用验证集的样本,可以在早停之后进行额外的训练。在第二轮额外的训练中,所有的训练数据都被包括在内(包括验证集)。

    有两个基本的策略可以用于第二轮训练过程 :

    • 保留迭代步:再次初始化模型,然后使用所有数据再次训练。此时使用第一轮早停确定的最佳步数作为第二轮的迭代步数。

      该策略重新训练模型,成本较高,但是效果较好。

    • 保留参数:保持从第一轮训练中获得的参数,然后使用全部的数据继续训练。此时观察原始验证集的损失函数,直到它低于第一轮停止时的原始训练集的损失函数值。

      根据早停策略,第一轮结束时原始验证集的损失函数值是较大的

      该策略避免了重新训练模型的高成本,但是表现一般。

      这是因为一旦将 五、早停 - 图26 合并到训练集,则对它们评估的结果就是训练误差(而不再是验证误差)。新的训练误差小于原来的验证误差,并不能说明模型的泛化能力得到了提升。

  2. 保留迭代步二次训练算法:

    • 输入:

      • 训练集 五、早停 - 图27五、早停 - 图28
    • 步骤:

      • 五、早停 - 图29五、早停 - 图30 分割为 五、早停 - 图31五、早停 - 图32
      • 随机选择参数的初始化值 五、早停 - 图33,将 五、早停 - 图34 作为训练集, 将 五、早停 - 图35 作为验证集,运行早停算法,返回最佳训练步数 五、早停 - 图36
      • 再次选择参数的另一个初始化值 五、早停 - 图37,在 五、早停 - 图38 上再次训练 五、早停 - 图39
  3. 保留参数二次训练算法:

    • 输入:

      • 训练集 五、早停 - 图40五、早停 - 图41
    • 步骤:

      • 五、早停 - 图42五、早停 - 图43 分割为 五、早停 - 图44五、早停 - 图45

      • 随机选择参数的初始化值 五、早停 - 图46,将 五、早停 - 图47 作为训练集, 将 五、早停 - 图48 作为验证集,运行早停算法,返回算法停止时的目标函数的值 五、早停 - 图49

      • 迭代: 五、早停 - 图50

        • 五、早停 - 图51 上训练 五、早停 - 图52 步 (每隔 五、早停 - 图53 步检查一次,为了降低评估代价)

5.3 早停与 L2 正则化

  1. 早停将优化过程的参数空间限制在初始参数值 五、早停 - 图54 的一个小的邻域内。

  2. 假设参数 五、早停 - 图55 。令 五、早停 - 图56,它就是无正则化项时使得目标函数最小的权重向量。

    五、早停 - 图57 正则化中的推导相同,有:五、早停 - 图58

    五、早停 - 图59五、早停 - 图60五、早停 - 图61 处的海森矩阵, 其中 五、早停 - 图62五、早停 - 图63 的一个邻域内。

    • 根据梯度下降法,参数的迭代过程为:

      五、早停 - 图64

      注意:这里并没有加入任何正则化项,而是使用 五、早停 - 图65

    • 五、早停 - 图66 进行特征分解: 五、早停 - 图67 ,其中 五、早停 - 图68 为对角矩阵, 五、早停 - 图69 为特征向量的一组标准正交基。则有:

      五、早停 - 图70

    • 令参数向量的初始值为原点: 五、早停 - 图71 ,并且选择 五、早停 - 图72 使得 五、早停 - 图73五、早停 - 图74五、早停 - 图75 的特征值)。则经过 五、早停 - 图76 次参数更新之后:五、早停 - 图77

  3. 根据 五、早停 - 图78 正则化项中的推导结果,有:

    五、早停 - 图79

    通过直接写出逆矩阵的形式可以证明等式

    如果超参数 五、早停 - 图80 满足:五、早停 - 图81 ,则 五、早停 - 图82 正则化等价于早停。

  4. 为了求得三个超参数满足的条件,求解:

    五、早停 - 图83

    则有:五、早停 - 图84

    两边取对数,然后使用 五、早停 - 图85 的级数展开有(假设 五、早停 - 图86,且 五、早停 - 图87):五、早停 - 图88

    由于 五、早停 - 图89五、早停 - 图90 的最小点,因此海森矩阵 五、早停 - 图91 是半正定的,因此其特征值 五、早停 - 图92

    则有:五、早停 - 图93 。即: 五、早停 - 图94 的倒数与 五、早停 - 图95 正则化系数的作用类似。

    在给定 五、早停 - 图96 的条件下:

    • 五、早停 - 图97 越小,则正则化系数越大。这与以下事实吻合: 五、早停 - 图98 从原点出发开始迭代,如果 五、早停 - 图99 越小,则 五、早停 - 图100 越靠近原点。
    • 五、早停 - 图101 越大,则正则化系数越小。这与以下事实吻合:此时 五、早停 - 图102 迭代足够多步之后会逐渐远离原点。
  5. 假设用学习率 五、早停 - 图103 进行了 五、早停 - 图104 个优化步骤(对应于 五、早停 - 图105 个训练迭代),五、早停 - 图106 可以视作模型的有效容量 effective capacity 的度量。

    假设梯度有界,则限制迭代的次数和学习率,会限制 五、早停 - 图107五、早停 - 图108 能够到达的范围。五、早停 - 图109 的行为就像是 五、早停 - 图110 正则化项的系数的倒数。

  6. 早停比 五、早停 - 图111 正则化更有优势:

    • 早停能够监控验证误差,从而自动在某个较好的参数解的位置终止。

      训练一次就相当于得到了多个超参数 五、早停 - 图112 的结果。

    • 采用 五、早停 - 图113 正则化需要多次训练,从而选择合适的超参数 五、早停 - 图114 的值。

      这种方式的计算成本太高。