【机器学习300问】76、早停法(Early Stopping)是如何防止过拟合的?

本文带大家介绍一个非常简单的防止过拟合的方法------早停(Early Stopping),首先给出概念,然后通过损失图像来加深对它的理解。

一、早停是什么呀?

早停(Early Stopping)是一种常用的深度学习模型训练策略,旨在防止模型在训练过程中过拟合训练数据,提高其泛化能力。

早停的核心原理:当模型在验证集上的性能开始下降之前停止训练。

二、验证集上的损失函数随迭代轮次变化的图像

早停法通过在训练过程中监控某个验证指标,并在该指标停止改善或开始恶化时提前终止训练过程,从而避免不必要的计算资源消耗和潜在的过拟合风险。

而这个监控指标通常是验证集上的损失函数,它反映了模型在未见过的数据上的表现,与仅关注训练集损失相比,更能反映模型的泛化能力。在每个训练周期(多个epoch)结束后,计算选定的验证指标。记录下每次迭代后的指标值画出图像如下。

上面这个图收敛的非常好,是一个低偏差、低方差的好模型。然而事实上很多情况下,我们得到的模型是下面这种情况:

上图中,验证集上的损失函数值在迭代轮次到达200轮的时候就已经出现了最低点,往后模型的损失反而上升了,这就出现了过拟合现象。

三、早停法的具体实现细节

(1)设置触发早停条件

通常触发条件是基于验证指标的变化趋势,常见的触发条件包括:

  • 最优值法:当验证集损失在连续若干次迭代(如连续10个epoch)内都没有达到新的最低值时,认为模型可能已经进入过拟合阶段,触发早停。即:++"当发现损失函数曲线不再下降时停止"++。
  • 阈值法:当验证集损失相对于其最小值的增大幅度超过预设阈值时,停止训练。即:++"当发现损失函数曲线开始抬升时停止"++。

(2)设置耐心参数

如果你采取的触发条件是最优值法,那么判断损失函数不再下降需要一个标准(比如连续10个epoch不变),这就是"耐心(patience)"参数,当连续未见改善的epoch数达到"耐心"值时,早停生效。

(3)恢复学习

可以设置一个"冷却期"参数(cool-down period),在连续未见改善的epoch数达到"耐心"的一部分时,暂时降低学习率以尝试恢复模型的学习能力,然后再决定是否继续早停。比如我设置的耐心值是10轮,当达到第5轮的时候尝试降低学习率。

四、早停法的优点与缺点

(1)优点

节约计算资源,防止过拟合,无需人为设定固定训练轮数可以做到自动停止。

(2)缺点

  1. 依赖验证集:早停法的有效性高度依赖验证集的质量和代表性。如果验证集不能很好的代表整个数据分布,那么就会导致过早或过完停止训练。
  2. 可能导致欠拟合:如果早停触发过早,此时模型尚未充分学习到数据的复杂模式导致欠拟合。
  3. 对噪声敏感:验证集损失函数曲线的短期波动可能触发早停,尤其是在数据分布不均匀或样本数量较小的情况下。不过可以通过设置"耐心"参数来适当增强对噪声的干扰,以减少随机性的影响。
相关推荐
东胜物联18 分钟前
探寻5G工业网关市场,5G工业网关品牌解析
人工智能·嵌入式硬件·5g
皓74128 分钟前
服饰电商行业知识管理的创新实践与知识中台的重要性
大数据·人工智能·科技·数据分析·零售
985小水博一枚呀1 小时前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer
AltmanChan1 小时前
大语言模型安全威胁
人工智能·安全·语言模型
985小水博一枚呀1 小时前
【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer·迁移学习
数据与后端架构提升之路1 小时前
从神经元到神经网络:深度学习的进化之旅
人工智能·神经网络·学习
爱技术的小伙子1 小时前
【ChatGPT】如何通过逐步提示提高ChatGPT的细节描写
人工智能·chatgpt
深度学习实战训练营3 小时前
基于CNN-RNN的影像报告生成
人工智能·深度学习
昨日之日20065 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_5 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测