[关闭]
@songying 2019-03-23T22:38:04.000000Z 字数 1782 阅读 5188

深度学习 : 提前终止

deep-learning


paper: Early Stopping — But When?
花书

什么是 early stoping?

early stoping 是一种正则化方式,其可以单独使用或与其他正则化策略一起使用。

early stoping 的步骤如下:

  1. 将训练数据划分为训练集和测试集
  2. 仅仅在训练集上训练,并在一段时间间隔内在测试集上预测
  3. 当验证集上的误差高于上次时立即停止训练。
  4. 使用上一时刻中所得的权重来作为最终权重

在这个过程中,验证集实际上是作为评测模型泛化误差的估计值。

early stoping带来了两个额外的代价;

  1. 需要不时的来通过验证集来评估泛化误差以估算最佳的训练时间
  2. 需要保持最佳的参数副本

为什么采用 early stoping?

训练误差会随着时间的推移逐渐降低但验证集的误差却再次上升,这意味着模型发生了过拟合,此时可以采用early stoping 来获取在验证集上表现最佳的参数。如下图所示:

何时停止?

在现实中,我们往往不能获得像上图中那么漂亮的曲线,我们获得的曲线往往是这样的:

实际中,验证集误差往往有多个局部极小值点,这阻碍了我们选择最佳的参数位置。何时停止实际上是对训练时间和泛化误差之间的权衡,我们的目的就是选择一个何时的标准。

1. Stopping 策略

第一个策略

当泛化损失大于某个阈值时立即停止

第二个策略

有时,第一个策略生效时训练误差依旧在快速减小,而我们假定过拟合仅仅发生在训练误差变化缓慢时。我们采用k来表示 k 个epoch 间隔,此时有:

第三个策略

当s个连续时刻的泛化误差增大时停止。该策略假设当验证集平均误差不仅增加了一次,而且在连续多个时刻增加时,这表明过拟合的开始,与实际增加的多少无关。

补充策略
由于以上的策略不能保证一定终止,因此设定当epoch 最多?时就停止训练。

2. 如何选择策略

一般而言,slower 标准比 faster 标准能够更好的提高泛化。

  1. 除非网络性能的小改进比训练时间更重要,否则选择第一个策略
  2. 为了找到最好方案,选择GL(最好)
  3. 为了找到平均方案,use a PQ criterion if the network overfits only very little or an UP criterion otherwise.

why early stopping works?

early stopping 可以将优化过程中的参数空间控制在初始参数值 的小邻域内。具体来说,通过限制迭代的次数以及学习速率就能够限制 的邻域空间大小(花书中有相关证明)

如何将测试集重新融入训练集

为了更好的利用所有数据,我们需要在完成 early stopping的首次训练之后进行第二轮的训练,在第二轮中,所有的数据都被包括在内。对此我们有两个基本策略

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注