【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能

这篇具有很好参考价值的文章主要介绍了【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Loss曲线

    在模型的预训练或者微调过程中,我们一般通过观察loss曲线来得出模型对于数据集的学习效果等信息。那么我们如何根据loss曲线得到一些信息呢?

    通常数据集会被划分成三部分,训练集(training dataset)、验证集(validation dataset)、测试集(test dataset)。我们在训练模型时也经常会根据训练集的loss和验证集loss来诊断模型,从而期望能够优化参数训练处一个更好的模型,这个更好指的是能在测试集上表现更好的模型,也就是泛化能力(generalization)强的模型。那怎么根据loss曲线去诊断模型呢?

    首先根据模型的表现我们把它分成三类:

  • Underfit(欠拟合)
  • Overfit(过拟合)
  • Good fit (完美拟合)

    那我们目标肯定是得到一个good-fit模型,但是在训练过程中会出现Underfit和Overfit。那么我们需要做的就是首先根据loss曲线判断模型现在处于哪种拟合情况,然后再进行调整参数。那我们先看看每种拟合的loss曲线是怎样的?

1.Underfit(欠拟合)

Underfit指的是模型不能很好的学习训练集。

    如下图所示,这就是一个Underfit的例子,仅根据training loss就可以判断。这个training loss下降的非常平缓以致于好像都没有下降,这说明模型根本没有从训练集学到什么东西!
【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能,AI前沿技术,机器学习,深度学习,人工智能
    下图也是Underfit情况,这种情况的特点是在训练结束时候training loss还在继续下降,这说明还有学习空间,模型还没来得及学就结束了。
【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能,AI前沿技术,机器学习,深度学习,人工智能

2.Overfit(过拟合)

    Overfit指的是模型把训练集学的有点过了,以致于把一些噪音(noise)和随机波动(random fluctuations)也学进来了。就好像抄别人卷子时候把别人的错别字也照抄一样。这也是我们在训练中最经常出现的问题,overfit有时候是因为训练太久造成的。那Overfit的loss曲线长什么样呢?

    如下图所示,overffit时候training loss一直在不断地下降,而validation loss在某个点开始不再下降反而开始上升了,这就说明overfit,我们应该在这个拐点处停止训练。

【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能,AI前沿技术,机器学习,深度学习,人工智能

3.Good fit (完美拟合)

    Good git是我们的目标,它在loss曲线上的特点是training loss和validation loss都已经收敛并且之间相差很小很小。如下图所示,模型在20轮过后,两个loss曲线都开始收敛,而且两者之间并没有肉眼的差距。 通常traing loss会更小,这样他们之间就会有个gap,这个gap叫做generalization gap。

【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能,AI前沿技术,机器学习,深度学习,人工智能

二、不同Loss表现

3.1 Underfit

我们使用随机梯度下降(SGD)优化器,学习率为0.01,训练10轮,代码如下

#underfit
epochs = 10
sgd = optimizers.sgd(lr=0.01)
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])

然后我们就得到了一个Underfitting模型,如下图所示,在训练结束的时候training loss还在下降,这说明模型还未学习充分。
【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能,AI前沿技术,机器学习,深度学习,人工智能

3.2 Overfit

然后我们使用sgd作为优化器时候,训练30轮

#overfit
epochs = 30
sgd = optimizers.sgd(lr=0.01)
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])

结果出现了过拟合的情况,loss曲线如下图

【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能,AI前沿技术,机器学习,深度学习,人工智能

Reference
https://machinelearningmastery.com/learning-curves-for-diagnosing-machine-learning-model-performance/文章来源地址https://www.toymoban.com/news/detail-804225.html

到了这里,关于【根据loss曲线看模型微调效果】如何使用loss曲线诊断机器学习模型性能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity实现杀戮尖塔出牌效果( 三. 贝塞尔曲线引导箭头绘制,卡牌使用效果制作)

    1. 攻击类型卡牌 ①拖拽超过一定高度之后卡牌会移动到手牌中心位置 ②出现攻击引导箭头 (塞贝尔曲线) ③成功指向目标怪物后打出 2. 技能能力类型卡牌 ①可自由拖动 ②脱离手牌高度后打出 这里只展示此效果核心代码内容,重复代码不做赘述,上期(二.鼠标指向卡牌时,

    2024年04月12日
    浏览(38)
  • YOLOv5s训练结果result.txt绘制loss/mAP等曲线对比图

    引用代码 另外奉上各种线性颜色:参考 大概是够用了!!!

    2024年02月13日
    浏览(36)
  • pytorch如何使用Focal Loss

    Focal loss 是 文章 Focal Loss for Dense Object Detection 中提出对简单样本的进行 decay 的一种损失函数。是对标准的 Cross Entropy Loss 的一种改进。 FL 对于简单样本(p比较大)回应较小的loss。 如论文中的图1, 在p=0.6时, 标准的 CE 然后又较大的 loss , 但是对于FL就有相对较小的loss回应

    2024年02月10日
    浏览(25)
  • AIGC时代,大模型微调如何发挥最大作用?

    人工智能的快速发展推动了大模型的广泛应用,它们在语言、视觉、语音等领域的应用效果已经越来越好。但是,训练一个大模型需要巨大的计算资源和时间,为了减少这种资源的浪费,微调已经成为一种流行的技术。微调是指在预训练模型的基础上,通过在小数据集上的训

    2024年02月08日
    浏览(34)
  • [玩转AIGC]LLaMA2之如何微调模型

    首先我们从github上下载Llama 2的微调代码:GitHub - facebookresearch/llama-recipes: Examples and recipes for Llama 2 model 执行命令: 下载完成之后,安装对应环境,执行命令: 在这里我补充一下模型下载权限的申请 需先在Meta上申请权限(国家选中国不行,要选其他国家) https://ai.meta.com/re

    2024年02月03日
    浏览(36)
  • MATLAB根据数据拟合曲线

    阿楠 零基础入门matlab教程基础版 阿楠 Simulink 模型创建 Matlab simulink建模与仿真视频教程

    2024年02月01日
    浏览(44)
  • 开源LLM微调训练指南:如何打造属于自己的LLM模型

    今天我们来聊一聊关于LLM的微调训练,LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型,但它具备理解和生成人类语言的能力,非常厉害!它可以革新各个行业,包括自然语言处理、机器翻译、内容创作和客户服务等,成为未来商业环境的重要组成

    2024年02月12日
    浏览(36)
  • 足够惊艳,使用Alpaca-Lora基于LLaMA(7B)二十分钟完成微调,效果比肩斯坦福羊驼

    之前尝试了 从0到1复现斯坦福羊驼(Stanford Alpaca 7B) ,Stanford Alpaca 是在 LLaMA 整个模型上微调,即对预训练模型中的所有参数都进行微调(full fine-tuning)。但该方法对于硬件成本要求仍然偏高且训练低效。 因此, Alpaca-Lora 则是利用 Lora 技术,在冻结原模型 LLaMA 参数的情况下

    2024年02月03日
    浏览(37)
  • NeRF算法模型简析:从理论到实践的轻度解析以及如何编辑和微调

    nerf模型可编辑的? NeRF模型的可编辑性(editability)指的是能够修改预训练的NeRF模型以改变其生成的场景或对象的某些特征,而不是从头开始重新训练模型。这种编辑可以是改变颜色、形状、纹理或者添加、移除和修改场景中的对象。 在NeRF模型中,编辑通常涉及以下几个方

    2024年02月02日
    浏览(29)
  • 如何使用ODX描述诊断会话和安全等级

    ODX 2.2是由ASAM(自动化及测量系统标准协会)提出的诊断标准,是一种基于XML语言的开放式诊断数据格式,已在国际上得到广泛使用。目前,ODX诊断标准已被国内各大OEM采用,但在ODX数据开发阶段,ODX诊断数据库的编辑、创建仍是一项庞大的工作,而 Softing 推出的 ODX自动转换

    2024年02月16日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包