yolov5 训练完模型以后发现 对测试图片的识别效果不好. 那么这个时候该怎么办呢?
是过拟合还是欠拟合了呢? 怎么判断呢?

欠拟合
机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,在测试集表现同样会很差,这可能是欠拟合导致, 这是泛化能力太强, 训练集上和测试集上误识别比较高.

欠拟合解决方法

  1. 最简单的是增加数据集的正样本数, 增加主要特征的样本数量

  2. 增加训练次数. 有可能是你还没有训练到合适的次数, 网络还没有学习到特征就被你停止掉了

  3. 添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。

  4. 添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。例如上面的图片的例子。

  5. 减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

过拟合
若在训练集表现非常好,在测试集表现很差,这可能是过拟合导致
例如易拉罐在训练集上的图片能识别, 但是在测试集上就不能识别. 此为过拟合的表现.

过拟合解决方法

  1. 最简单的是增加其他的特征的样本数, 重新训练网络.

  2. 重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。

  3. 增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。

  4. 采用正则化方法。正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用L2正则,下面看具体的原因。

L0范数是指向量中非0的元素的个数。L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization)。两者都可以实现稀疏性,既然L0可以实现稀疏,为什么不用L0,而要用L1呢?个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。

L2范数是指向量各元素的平方和然后求平方根。可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。L2正则项起到使得参数w变小加剧的效果,但是为什么可以防止过拟合呢?一个通俗的理解便是:更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀),不会过分拟合训练数据,从而使得不会过拟合,以提高模型的泛化能力。还有就是看到有人说L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题(具体这儿我也不是太理解)。

  1. 采用dropout方法。这个方法在神经网络里面很常用。dropout方法是ImageNet中提出的一种方法,通俗一点讲就是dropout方法在训练的时候让神经元以一定的概率不工作。具体看下图:

如上图所示,左边a图是没用用dropout方法的标准神经网络,右边b图是在训练过程中使用了dropout方法的神经网络,即在训练时候以一定的概率p来跳过一定的神经元。


下面内容跟本文有点相关. 算是一点工作心得吧

经过长期的摸索和实验. 总结出来了下面的几个点.

目前来看, 我感觉视觉类神经网络要想能达到实用的阶段, 首先要重视训练用数据集的管理.
在讨论之前我们应该要明白,目前的神经网络是怎么工作的. 咱们不讲太细如何实现的.咱讲的粗一点.

目前的视觉类神经网络最主要的功能, 就是在数据集和人工给的标准答案之间建立起一个映射模型.
这个模型是如何生成的呢? 视觉神经网络分三个阶段完成此功能,
第一个阶段是提取特征, 把图片拆分成不同的一个个的小特征.例如角点,轮廓,颜色,形状,明亮度
第二个阶段是用提取的特征,和标准答案通过多项式公式建立起关联关系, 不断的调整多项式的参数最终达到预测结果和识别结果一致.

而且这个模型有一定的泛化能力, 通俗的讲就是可以举一反三… 这确实是可以的, 因为它的原理是计算每个特征的权重占比来归类的. 是个概率性答案. 而不是1+1=2的确定性问题… 但是能不能做到举一反四, 举一反五, 呢.这个目前还做不到.
既然是概率性答案 那么就一定存在着答案不正确的可能性…也就是说识别不正确.

简单概括一下, 数据集中一定要有知识 也就是特征, 主要特征的数据不能少, 也不能只有一两个主特征.

第一个是 数据集图片中必须包含能够体现要识别的物品的一些主要特征. 例如,瓶子和罐子, 说到瓶子一般都是上面口小下面身子大的形状, 你把瓶子和罐子混合着标注,
罐子 一般是上面开口大,下面身体差不多一样大的形状. 这两种物品的训练数据集就不能随便混淆, 虽然有的时候人类也会把直通的罐子叫瓶子, 例如营养快线的瓶子开口就很大. 还有水蜜桃的罐子也有的时候叫瓶子, 但是这对于电脑来说等于增加了不确定性, 导致无法拟合. 也就是说数据集的正样本要能突出物品的主要特征.

第二个是数据集中表现主要特征的图片不能太少,越多越容易提取到主要特征. 尽量的各种角度都有.现在的神经网络还没有立体三维的关联性推导能力还只是平面性的求共同特征,找规律.还没有联想,立体翻滚的能力. 特征多才可以保证在各种情况下都能识别物品. 举个例子, 现在神经网络识别人的效果很好, 由于数据集非常非常多的样本都是正面或侧面拍的. 即便是训练的再怎么好. 你让它识别从裙底下面偷拍的哪些图片. 它照样不认识… 除非你把大量的这种图片加进去. 它也照样能学会. 这叫数据集内蕴含知识.找规律.找特征.仅此而已.

第三个是 数据集中体现一个物品的图片一定不能只有一个特征, 应该尽可能的包含所有的特征. 一个物品最起码应该有很5个以上的特征, 才容易有很好的泛化效果, 举个例子, 毛茸茸这个特征,可以是什么物品的主要特征? 这就太多了. 可以是玩具, 猫,狗,头发, 羽绒服.

总结
通过冷静的分析和思考. 可以发现, 要想学习到知识, 效果要想达到最好, 首先需要有大量的数据集而且要是比较好的数据集. 标注正确合理不要指鹿为马. 选图集中突出几个主要特征(注意是几个). 外加几个边缘样本…

上面关于数据集的的要求是纯粹的靠推理就可以想明白的事情. 我想应该不用证明大家也能明白.

太少了容易欠拟合, 导致它很难识别不同的物品, 例如 王老吉饮料瓶, 把红色也当做王老吉的重要特征… 数据集也不能训练的太多, 训练的次数太多也容易过拟合.

训练的过程就是一个不断试错拟合的过程. 不断的调整模型参数 适应结果. 它也不知道这个参数是什么意义. 所以会得到各种乱七八糟的结果.

要想解决数据集缺少的问题, 我感觉, 弄个物品360度拍照, 作为基础的物品照片. 然后跟背景图片混合形成各种照片, 基本上能达到很好的识别效果. 然后在加上后期我们一些真实数据的照片, 基本上是可以做到效果实用的.

这里面算力就变的很重要了… 目前来看, 每次训练的结果是可以提高后续的训练速度的. 后期的训练应该会比刚开始要快, 因为参数已经都调整到位了.

后续增加物品品类也是可以的, 必须保证数据集和模型一致,每次新增的品类必须在已有品类的后面增加. 要不然会导致前面的网络重新训练.

yolov5 识别效果不好如何判断原因相关推荐

  1. 弘辽科技:淘宝推广效果不好?是由哪些原因造成的?该如何解决?

    原标题<弘辽科技:淘宝推广效果不好?是由哪些原因造成的?该如何解决?> 毋庸置疑,使用推广工具对整体提高店铺数据有很大的帮助,效果也会更好.但有些淘宝卖家担心自己没有使用过推广工具,没有相 ...

  2. 百度竞价效果不好的原因

    最近两年听到很中小企业的心声:"竞价效果越来越差,推广成本越来越高.前几年花很少的推广费就可以带来很多潜在客户有效咨询,并且能够成交一些.现在推广费高,很少有客户咨询,并且咨询了的客户很多都 ...

  3. 深度学习中模型训练效果不好的原因以及防止过拟合的方法

    深度学习中模型训练效果不好的原因 1. 是否选择合适的损失函数 2. 是否选择了合适的Mini-batch size 3. 是否选择了合适的激活函数 4. 是否选择了合适的学习率 5. 优化算法是否使 ...

  4. MMPose姿态估计+人体关键点识别效果演示

    MMPose--开源姿态估计算法库(附人体关键点识别效果演示) 一.简介 1.1 背景 首先姿态估计属于计算机视觉领域的一个基础研究方向.MMPose是基于Pytorch的姿态估计开源算法库,功能全, ...

  5. 灯亮怎么办_车辆隔音效果不好怎么办?

    会开车并不代表对车了如指掌 日常生活中还是有好多车主 被诸多问题困扰,比如 车辆隔音效果不好怎么办? 扳手形状的故障灯亮起是什么意思? 今天,就由利星大连为您答疑解惑 汽车隔音效果不好该怎么办? 有车 ...

  6. 竞价推广效果不好,是哪些方面影响的呢?

    现在做百度竞价的人越来越多,在竞价推广中难免会遇到各种各样的问题,大多数问题是光花钱却没有带来效果,那竞价推广效果不好,原因有哪些呢? 一.恶意点击 很多企业在竞价推广中都免不了的是同行的恶意点击,为 ...

  7. 论文写作: 实验效果不好怎么办?

    摘要: 本贴讨论实验效果不好的应对措施. 讲道理, 论文写作本身只涉及包装, 即将已经做好实验的创新性成果写成一篇论文. 实验效果不好, 是方案设计的问题. 但多数研究者都会遇到这个问题, 所以还是在 ...

  8. SSD针对小物体检测效果不好的现象的思考

    SSD针对小物体检测效果不好的现象的思考 最近在用ssd-caffe进行物体检测,但是在使用的过程中,发现ssd对小物体的检测效果很不好. 阅读了为什么SSD(Single Shot MultiBox ...

  9. yolov5识别工地安全帽

    yolov5代码:代码链接 安全帽数据集:点击 接下来你就跟着把数据集带入到yolov5代码中进行训练得到模型就行了,在这里训练参数,batch-size推荐16,epoch为6, 学习率为0.01, ...

最新文章

  1. word2vec_文本相似度
  2. php集成jpush教程,Laravel 集成 JPush 极光推送指北
  3. C++ 线程池的思想
  4. js split参数为无效字符_js使用split函数按照多个字符对字符串进行分割的方法
  5. 2017 SEERC Divide and Conquer 树上差分
  6. SpringBoot2.x RabbitMQ Nacos Nacos-Config
  7. python入门应该学什么专业好_真的能半个月学会Python吗?(文末附python入门进阶教程)...
  8. major头文件_第三讲,可选头文件格式,以及节表
  9. 2.冒泡排序----还是不懂,先记录下来
  10. mysql8 docker镜像源_Docker 搭建 MySQL 8版本
  11. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_7_等待唤醒机制需求分析...
  12. 北航计算机组成原理课程设计-2020秋 PreProject-Logisim-斐波那契数列问题(简单迭代法+矩阵乘法的快速幂)
  13. Typora给插图加入图注
  14. VSCode插件CodeRunner直接运行TypeScript
  15. twilio 短信接口_使用Android Things和Twilio构建短信通知系统
  16. 使用Origin根据数据的二维图(单x,单y)进行线性拟合
  17. 精美图片0001--张娜拉,个人认为最好看的一张,可爱至极!
  18. 2020出行之变(一):自动驾驶的“跃渊”时刻
  19. maven跳过Test进行打包
  20. 画流程图用什么软件好?快把这些软件收好

热门文章

  1. iOS-仿微信蛋糕雨效果CAKeyframeAnimation
  2. linux 下gz文件解压命令,Linux解压gz文件的命令怎么写
  3. LRU算法原理及实现
  4. 如何去高大上的下载电影天堂的内容
  5. mysql窗口宽高是多少_一般窗户的尺寸,一般窗户高多少?
  6. 15.1.2、MySQL—mysql时间与时间戳转换的函数,unix_timestamp、from_unixtime
  7. 新房着急入住用什么除甲醛 新房除甲醛最有效方法排行榜
  8. java实现 印象笔记AOuth 授权认证
  9. Windows收藏夹中没有桌面选项
  10. ubuntu18.04下chromium系浏览器解决flash播放视频的问题