数据集说明

  • 训练集是用于模型的训练的样本集合,确定模型的权重参数。

    • 训练集的数量随着模型的复杂度要增多。
    • 反向传播确定最优参数。
  • 验证集用于验证模型的评估、模型的选择、参数的调整。
    • 选择模型、调整超参、初步评估模型。
  • 测试集是用于模型的无偏估计。
    • 再找个集合评估模型看看是否是偶然稳定,即验证无偏性。
  • 保证同分布,最好保证测试集的正负比和实际环境的一致。

如果模型在训练集、验证集、测试集的表现都很好,但是在实际用的新数据表现很差,可能的问题:

分布不一致,新数据与原数据的特征之间存在差异,网络对新数据特征的提取能力不足。

loss说明

  • train loss 下降↓,val loss 下降 ↓:训练正常,网络仍在学习,最好的情况。
  • train loss 下降 ↓,val loss:上升/不变:有点过拟合overfitting,可以停掉训练,用过拟合方法如数据增强、正则、dropout、max pooling等。
  • train loss 稳定,val loss 下降:数据有问题,检查数据标注有没有错,分布是否一直,是否shuffle。
  • train loss 稳定,val loss 稳定:学习过程遇到瓶颈,可以尝试调小学习率或batch数量
  • train loss 上升 ↑,val loss 上升 ↑:网络结构设计不当,参数不合理,数据集需清洗等,最差情况。

loss震荡

轻微震荡是正常的,在一定范围内,一般来说batch size越大,其确定的下降方向越准,引起训练震荡越小。如果震荡十分剧烈,估计是batch size设置太小了。

train loss下降,val loss上升

网络过拟合的解决

  • 学习率衰减
  • dropout
  • 减少层数、神经元个数
  • 加BN
  • Early Stopping,可以让val loss有上升趋势的时候早停掉

loss上升,acc也上升

  • 如果val loss平稳,可以接着训。
  • 如果val loss轻微震荡,也可以接受。以对数损失为例,假如正类预测概率为0.51,但是>0.5的。此时的loss很大,但acc是增加的。
  • 如果val loss一直在上升,就要考虑过拟合的问题。因为,既然val的acc在上升,那多半train的损失还在降或者收敛了,而val的损失不断上升,一直下去就变成train loss远小于val loss了,就意味着过拟合。如果准确率达到要求,可以早停掉。或尝试过拟合方法。

train loss不下降

  1. 模型结构问题。当模型结构不好、规模小时,模型对数据的拟合能力不足。
  2. 训练时间问题。不同的模型有不同的计算量,当需要的计算量很大时,耗时也会很大
  3. 权重初始化问题。常用的初始化方案有全零初始化、正态分布初始化和均匀分布初始化等,合适的初始化方案很重要,神经网络初始化为0可能会带来影响
  4. 正则化问题。L1、L2以及Dropout是为了防止过拟合的,当训练集loss下不来时,就要考虑一下是不是正则化过度,导致模型欠拟合了。
  5. 激活函数问题。全连接层多用ReLu,神经网络的输出层会使用sigmoid 或者 softmax。在使用Relu激活函数时,当每一个神经元的输入为负时,会使得该神经元输出恒为0,导致失活,由于此时梯度为0,无法恢复。
  6. 优化器问题。优化器一般选取Adam,但是当Adam难以训练时,需要使用如SGD之类的其他优化器。
  7. 学习旅问题。学习率决定了网络的训练速度,但学习率不是越大越好,当网络趋近于收敛时应该选择较小的学习率来保证找到更好的最优点。所以,我们需要手动调整学习率,首先选择一个合适的初始学习率,当训练不动之后,稍微降低学习率。
  8. 梯度消失和爆炸。这时需要考虑激活函数是否合理,网络深度是否合理,可以通过调节sigmoid -> relu,假如残差网络等。
  9. batch size问题。过小,会导致模型损失波动大,难以收敛,过大时,模型前期由于梯度的平均,导致收敛速度过慢。
  10. 数据集问题。(1)数据集未打乱,可能会导致网络在学习过程中产生一定的偏见(2)噪声过多、标注有大量错误时,会导致神经网络难以学到有用的信息,从而出现摇摆不定的情况,(3)数据类别不均衡使得少数类别由于信息量不足,难以学到本质特征。
  11. 特征问题。特征选择不合理,会使网络学习难度增加。

val loss不下降

  1. 训练的时候过拟合导致效果不好
  • 通过交叉检验得到较优的模型参数;
  • 减少特征数或使用较少的特征组合,对于按区间离散化的特征,增大划分的区间;
  • 常用的有 L1、L2 正则。而且 L1正则还可以自动进行特征选择;
  • 增加训练数据可以有限的避免过拟合;
  • Bagging ,将多个弱学习器Bagging 一下效果会好很多,比如随机森林等.
  • 早停策略。本质上是交叉验证策略,选择合适的训练次数,避免训练的网络过度拟合训练数据。
  • DropOut
  1. 应用场景不同导致。本来训练任务是分类猫和狗,测试用的皮卡丘和葫芦娃。
  2. 噪声问题。训练数据大概率都是经过去噪处理的,而真实测试时也应该去除噪声。

关于 train loss、val loss训练时遇到的问题相关推荐

  1. 【深度学习】网络训练时train/val loss出现周期性剧增原因

    今天在训练自己定义的网络时,用Tensorboard观察Train/Val 的loss在训练时的变化,发现了下面loss会周期性剧增的情况: 通过观察loss具体的数值变化,我发现每次loss剧增都发 ...

  2. Caffe 训练时loss等于87.3365且保持不变的原因及解决方法

    如题,在caffe训练时,遇到这个特殊的数字之后,loss会一直就是这个数字. 网上虽然有很多针对这个问题调参的trick,但少有详细的分析,因此,有必要研究一下caffe的源代码. softmax的 ...

  3. 使用caffe训练时Loss变为nan的原因

    极视角高校计算机视觉算法邀请赛目前正在报名中,欢迎各高校在读学生报名参加,大奖+商业项目参与机会+数据库等你来拿!!!咨询报名请加小助手(微信号:Extreme-Vision) 本文为极市平台原创编译 ...

  4. perplexity和预训练时用的loss的区别

    Perplexity和预训练时用的loss都是用来评估语言模型的性能的指标,但是它们的计算方式和意义有所不同. Perplexity是一种用来衡量语言模型对一个测试集的预测能力的指标.它的计算方式是将 ...

  5. 网络训练时出现loss为nan的情况(已解决)

    最近在使用SSD网络跑自己的数据集时,训练刚开始就出现loss=nan值的情况,经过多方查找资料,发现训练过程中loss出现nan值时,一般是下列问题导致的: 数据集的问题,可能存在数据本身就存在na ...

  6. 神经网络训练时loss不下降的问题

    原文地址:如何解决神经网络训练时loss不下降的问题 | AI柠檬 当我们训练一个神经网络模型的时候,我们经常会遇到这样的一个头疼的问题,那就是,神经网络模型的loss值不下降,以致我们无法训练,或者 ...

  7. 如何解决神经网络训练时loss不下降的问题

    本文转载,原文链接:https://blog.ailemon.me/2019/02/26/solution-to-loss-doesnt-drop-in-nn-train/ 当我们训练一个神经网络模型 ...

  8. [机器学习] 训练过程中的train,val,test的区别

    转自:Caffe训练过程中的train,val,test的区别. 训练过程中的train,val,test的区别 val是validation的简称. training dataset和validat ...

  9. 训练softmax分类器实例_一个值得深思的问题?为什么验证集的loss会小于训练集的loss...

    编辑:zero 关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息 在本教程中,您将学习在训练自己的自定义深度神经网络时,验证损失可能低于训练损失的三 ...

最新文章

  1. 向日葵win10远程linux主机,大神为你细说win10系统使用向日葵远程桌面软件远程的操作办法...
  2. python 可视化_Python可视化|Matplotlib40LaTeX in Matplotlib和python
  3. Lesson 14.3 Batch Normalization综合调参实战
  4. Flask框架从入门到精通之参数配置(二)
  5. CardLayout布局练习(小的图片浏览器)
  6. C语言实现去掉字符串中指定的字符
  7. 【高并发】java中的线程池 ThreadPoolExecutor
  8. nacos安装与基础配置
  9. 报价单与贸易术语关系
  10. 第14章-cpp代码重用(其他继承模板)
  11. 设计模式-模板方法模式
  12. 华为手机浏览器 onclick失灵的问题
  13. D. Serval and Rooted Tree(思维+树形dp+二分辅助)
  14. 集成平台即服务,云和……独角兽
  15. 2022考研复习第八周
  16. CT一般扫描参数_头颅CT扫描技术
  17. android studio购物车开发,2018-03-21 - 购物车项目说明 - 界面功能实现相关
  18. 202109-4 收集卡牌
  19. vue.js devtools
  20. 详解mysql备份恢复的三种实现方式

热门文章

  1. 工程预结算的履约证据管理需要“勤于签证、精于索赔”
  2. ubuntu系统安装qq 微信 exe程序 通过 wine 的使用
  3. 图形graph与图像image
  4. 幼儿教师计算机word知识点,幼儿教师资格证《综合素质》考点精讲:Word常用功能及操作举例...
  5. 【自动驾驶】动力学横向控制误差模型
  6. Android Handler机制简单分析
  7. 【转】InitialContext与lookup
  8. dnf手游内测服务器维护,DNF手游:手把手教你如何抢内测资格,干货满满,错过再等一年...
  9. K3金碟报错 部件’COMDLG32.OCX’或其附件之一不能正确注册
  10. EXPLAIN命令详解