训练过程中对于误差值的理解
本文简要说明了误差值可能存在的理解误区及其潜在意义

        在训练深度学习模型的过程中,通常会有一条误差曲线,代表当前样本标注值与预测值的偏差。如样本数据一致性较好,标注也比较科学,我们通常看到的loss值会在迭代次数较小的情况下迅速降低,甚至会低到0-0.1的范围内,此时是否可以断定此模型---它训练“成功”了呢。


         当看到训练误差到0后,我们会直觉的认为,该模型在训练集上验证的准确率为100%,因此选择提前结束训练。实际上,曲线上更新的参数是每个批次(batch)样本下的误差值,同时也做了归一化,看似没有波动,归一化前的误差值还是非常明显的,并不能代表整体样本的误差值。为什么要做归一化?这个操作能降低反向传播的梯度,更有利于数据分布,快速找到期望最优解。而结束训练界面的训练误差值指的是总迭代次数(iteration)下的平均误差,即:

        

        因此即便是0,也是因为分母过大近似为0,在训练集上验证仍可能会有误判,建议等待训练结束,可以在训练中途另存一版模型,根据VM上模型在数据集中的表现来评判是否应该继续迭代。插句题外话,作为使用者,VisionTrain若能实时更新召回率,PR曲线或F1参数,甚至可以将当前模型性能下误判的样本罗列,便于直观了解模型在训练集下的准确率,以节约验证和纠错的时间成本,这样会更利于日常使用。


        那么训练期间的loss曲线能提示我们什么信息呢?如下图红色框(此处为低迭代次数),我们可能会在迭代过程中,会出现loss激增的情况,特别是高迭代次数,这代表训练集数据中有分错类的,或者标注位置偏差过大,标注策略不一致等现象,以致于影响了学习方向,据此可以暂停训练,回到上一步对标注做复核和修正,正确标注方法可参考本人主页下"模型优化方法"系列。


        如上所述,训练误差可以在一定角度上证明模型在训练样本上的学习程度,若需反映整体准确率则要将模型在数据中实际预测一遍。而讨论到模型训练是否成功,也必须要关注泛化误差,即模型在海量测试集内的实际准确率,也是一种期望误差,它会受到各类因素的影响,误差拟合问题我们下篇再见。

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

模型优化方法---预测耗时篇

下一篇

训练误差与泛化误差的关系

评论请先登录 登录
全部评论 0
Lv.0
砖业调参侠
9
创作
15
粉丝
12
获赞
相关阅读
  • 海康机器人“悉灵杯”课题研究活动-获奖公布
    2022-09-05
  • 汽车行业-汽车焊点检测案例
    2022-09-01
  • VM3D模块学习经验分享
    2022-09-22
  • SC系列智能相机图像存储的几种方式
    2022-09-08
  • 有关条码二维码相关知识
    2022-08-30

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器