[nlp] 深度学习技巧(防止过拟合)——Early Stopping 早停法

参考:https://www.datalearner.com/blog/1051537860479157#2.2%E3%80%81%E5%81%9C%E6%AD%A2%E6%A0%87%E5%87%86%E9%80%89%E6%8B%A9%E8%A7%84%E5%88%99

一、早停法简介(Early Stopping)

当我们训练深度学习神经网络的时候通常希望能获得最好的泛化性能(generalization performance,即可以很好地拟合数据)。但是所有的标准深度学习神经网络结构如全连接多层感知机都很容易过拟合:当网络在训练集上表现越来越好,错误率越来越低的时候,实际上在某一刻,它在测试集的表现已经开始变差。

二、Early Stopping 的优缺点:
优点: 防止过拟合。
缺点: 没有采取不同的方式来解决优化损失函数和降低方差这两个问题,而是用一种方法同时解决两个问题 ,结果就是要考虑的东西变得更复杂。之所以不能独立地处理,因为如果你停止了优化代价函数,你可能会发现代价函数的值不够小,同时你又不希望过拟合。
解决办法: 尝试L1、L2正则化,dropout等。
[nlp] 深度学习技巧(防止过拟合)——Early Stopping 早停法_第1张图片
三、停止标准选择规则
在这里插入图片描述
一般情况下,“较慢”的标准会相对而言在平均水平上表现略好,可以提高泛化能力。然而,这些标准需要较长的训练时间。其实,总体而言,这些标准在系统性的区别很小。主要选择规则包括:

  1. 除非较小的提升也有很大价值,否则选择较快的停止标准
  2. 为了最大可能找到一个好的方案,使用GL标准,如下:
    泛化损失(generalization loss),它描述的是在当前迭代周期t中,泛化误差相比较目前的最低的误差的一个增长率,较高的泛化损失则早停。我们用GL​α来定义,即当GL​α​​ 大于一定值 α 的时候,停止训练。 [nlp] 深度学习技巧(防止过拟合)——Early Stopping 早停法_第2张图片
  3. 为了最大化平均解决方案的质量,如果网络只是过拟合了一点点,可以使用PQ标准,否则使用UP标准,如下:
    UP:泛化错误的变化,即当泛化错误在连续ss个周期内增长的时候选择早停(UP)。
    PQ:指定迭代周期K内的平均训练错误比该期间最小的训练错误大多少。
    [nlp] 深度学习技巧(防止过拟合)——Early Stopping 早停法_第3张图片
    四、代码
    在 FastText 中使用 early_stopping :
    monitor: 需要监视的量,val_acc() (模型准确率model accuracy)
    patience: 当early stop被激活(如发现 loss 相比上一个 epoch 训练没有下降),则经过 patience 个 epoch 后停止训练
    verbose: 信息展示模式
    mode: ‘auto’,‘min’,'max’之一,在min模式训练,如果检测值停止下降则终止训练。
    在max模式下,当检测值不再上升的时候则停止训练。in auto mode, the direction is automatically inferred from the name of the monitored quantity.
    [nlp] 深度学习技巧(防止过拟合)——Early Stopping 早停法_第4张图片

你可能感兴趣的:(nlp)