[过拟合]早停法 (Early Stopping)

2023-10-25 01:59
文章标签 拟合 early stopping 停法

本文主要是介绍[过拟合]早停法 (Early Stopping),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、过拟合 

过拟合(overfitting)指的是只能拟合训练数据, 但不能很好地拟合不包含在训练数据中的其他数据的状态[来自 斋藤康溢]

解决过拟合问题有两个方向:

  • 降低参数空间的维度或者降低每个维度上的有效规模(effective size)。降低每个参数维度的有效规模的方法主要是正则化,如权重衰变(weight decay)和早停法(early stopping)等。
  • 降低参数数量的方法包括greedy constructive learning、剪枝和权重共享(卷积)等。
     

2、early stopping

2.1 定义

首先,先了解另一个东西,Callbacks.callbacks用于指定在每个epoch开始和结束的时候进行哪种特定操作。Callbacks中有一些设置好的接口,可以直接使用,如’acc’, 'val_acc’, ’loss’ 和 ’val_loss’等等。

而EarlyStopping是Callbacks的一种,EarlyStopping则是用于提前停止训练的callbacks。具体地,可以达到当训练集上的loss不在减小(即减小的程度小于某个阈值)的时候停止继续训练。

2.2 意义

为了获得性能良好的神经网络,网络定型过程中需要进行许多关于所用设置(超参数)的决策。超参数之一是定型周期(epoch)的数量:亦即应当完整遍历数据集多少次(一次为一个epoch)如果epoch数量太少,网络有可能发生欠拟合(即对于定型数据的学习不够充分);如果epoch数量太多,则有可能发生过拟合(即网络对定型数据中的“噪声”而非信号拟合)。早停法旨在解决epoch数量需要手动设置的问题

同时, 它也可以被视为一种能够避免网络发生过拟合的正则化方法 [与L1/L2权重衰减和丢弃法(dropout)类似].根本原因就是因为继续训练会导致测试集上的准确率下降。那继续训练导致测试准确率下降的原因猜测可能是1. 过拟合 2. 学习率过大导致不收敛 3. 使用正则项的时候,Loss的减少可能不是因为准确率增加导致的,而是因为权重大小的降低。

2.3 原理

  • 开始时,将训练的数据分为真的要训练的训练集和验证集
  • 每个epoch结束后(或每N个epoch后): 在验证集上获取测试结果,记录目前为止最好的验证集精度, 而随着epoch的增加,如果在验证集上发现测试误差上升,则停止训练;
  • 将之前处理测试集时准确率最高时的权重作为网络的最终参数。

怎样才认为验证集精度不再提高了呢?并不是说验证集精度一降下来便认为不再提高了,因为可能经过这个Epoch后,精度降低了,但是随后的Epoch又让精度又上去了,所以不能根据一两次的连续降低就判断不再提高。在现实中,模型在验证集上的误差不会像上图那样平滑,而是像下图一样:

也就是说,模型在验证集上的表现可能从短暂的变差之后继续变好.总之,我们是不能提前知道它的走势,就像预测股票走势一样, 那到底什么时候喊停,所以我们需要一些停止标准来帮助我们去寻找更好的训练时间和泛化错误之间的权衡.


2.4 使用

我们需要一个停止的标准来实施早停法,因此,我们希望它可以产生最低的泛化错误,同时也可以有最好的性价比,即给定泛化错误下的最小训练时间.

2.4.1 停止标准简介

停止标准有很多,也很灵活,大约有三种。在给出早停法的具体标准之前,我们先确定一下符号。假设我们使用E作为训练算法的误差函数,那么E​tr​​(t)是训练数据上的误差,E​te​​(t)是测试集上的误差。实际情况下我们并不能知道泛化误差,因此我们使用验证集误差来估计它。

 

2.4.2 停止标准选择规则

 

reference

1、深度学习技巧之Early Stopping(早停法)

2、[深度学习] keras的EarlyStopping使用与技巧

3、论文《Early Stopping | but when?》

 

这篇关于[过拟合]早停法 (Early Stopping)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/279278

相关文章

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

6. 深度学习中的正则化技术:防止过拟合

引言 过拟合是深度学习模型在训练过程中常遇到的挑战。过拟合会导致模型在训练数据上表现良好,但在新数据上表现不佳。为了防止过拟合,研究者们提出了多种正则化技术,如L1/L2正则化、Dropout、数据增强等。这些技术通过约束模型的复杂度或增加数据的多样性,有效提高了模型的泛化能力。本篇博文将深入探讨这些正则化技术的原理、应用及其在实际深度学习任务中的效果。 1. 过拟合的原因与影响 过拟合通常

内核调试之early printk

early printk 解决什么问题那?本质也是打印调试信息,但是不同于printk,printk属于打印的一个框架,既然是框架必然需要一些必备条件,框架的初始化等,在内核启动初期这些框架都没来得及初始化,所以这些函数肯定不能用,eary pritnk实现就比较直接简单,就是直接调用对应芯片的串口寄存器,把数据写到串口控制器寄存器里面,只要你芯片启动了就能输出。各个架构下都实现了

沐风老师3DMax地形拟合插件使用方法详解

3DMax地形拟合插件使用教程                       3DMax地形拟合插件,只需单击几下鼠标,即可将地形表面与道路对齐。它很容易使用。 (注意:如果不仔细阅读,会误认为是这是一个道路拟合(投影)到地形的插件,实际上恰恰相反,这是一个地面拟合到道路的插件。)            【适用版本】 3dMax2010及更高版本            【安

机器学习项目——基于机器学习(RNN LSTM 高斯拟合 MLP)的锂离子电池剩余寿命预测方法研究(代码/论文)

完整的论文代码见文章末尾 以下为核心内容和部分结果 摘要 机器学习方法在电池寿命预测中的应用主要包括监督学习、无监督学习和强化学习等。监督学习方法通过构建回归模型或分类模型,直接预测电池的剩余寿命或健康状态。无监督学习方法则通过聚类分析和降维技术,识别电池数据中的潜在模式和特征。强化学习方法通过构建动态决策模型,在电池运行过程中不断优化预测策略和调整参数。上述方法不仅可以提高预测精度,还可以在

第四讲:拟合算法

与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线)使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。 插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多,那么这个多项式次数过高,会造成龙格现象。 尽管我们可以选择分段的方法避免这种现象,但是更多时候我们更倾向于得到-个确定的曲线,尽管这条曲线不能经过每

方差(Variance) 偏差(bias) 过拟合 欠拟合

机器学习中方差(Variance)和偏差(bias)的区别?与过拟合欠拟合的关系?   (1)bias描述的是根据样本拟合出的模型的输出预测结果的期望与样本真实结果的差距,简单讲,就是在样本上拟合的好不好。 低偏差和高方差(对应右上图)是使得模型复杂,增加了模型的参数,这样容易过拟合。 这种情况下,形象的讲,瞄的很准,但手不一定稳。 (2)varience描述的是样本上训练出来的模型

人工智能:模型复杂度、模型误差、欠拟合、过拟合/泛化能力、过拟合的检测、过拟合解决方案【更多训练数据、Regularization/正则、Shallow、Dropout、Early Stopping】

人工智能:模型复杂度、模型误差、欠拟合、过拟合/泛化能力、过拟合的检测、过拟合解决方案【更多训练数据、Regularization/正则、Shallow、Dropout、Early Stopping】 一、模型误差与模型复杂度的关系1、梯度下降法2、泛化误差2.1 方差2.2 偏差2.3 噪声2.4 泛化误差的拆分 3、偏差-方差窘境(bias-variance dilemma)4、Bias

深度学习100问43:什么是过拟合

嘿,咱来聊聊过拟合是什么。   想象一下,有个机器学习的模型就像一个学生在准备考试。如果这个模型对训练数据就像学生把课本上的题目背得超级熟,在训练数据上表现得那叫一个棒,就像学生在做课本上的题时成绩超高。但是呢,一旦碰到新的、从来没见过的数据,就傻眼了,表现得一塌糊涂。这时候就可以说这个模型过拟合啦。   为啥会过拟合呢?一方面可能是这个模型太复杂了,就像学生学得太“死”,记住了训练数据里的一些小

过度拟合------正则化

转载: 1. The Problem of Overfitting 1 还是来看预测房价的这个例子,我们先对该数据做线性回归,也就是左边第一张图。 如果这么做,我们可以获得拟合数据的这样一条直线,但是,实际上这并不是一个很好的模型。我们看看这些数据,很明显,随着房子面积增大,住房价格的变化趋于稳定或者说越往右越平缓。因此线性回归并没有很好拟合训练数据。 我们把此类情况称为欠拟合(u