问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

YOLO训练结果数据分析:从权重到性能评估

创作时间:
作者:
@小白创作中心

YOLO训练结果数据分析:从权重到性能评估

引用
1
来源
1.
https://www.cnblogs.com/god-of-death/p/18585212

YOLO(You Only Look Once)是当前最流行的目标检测算法之一。在模型训练完成后,会生成大量的结果数据和图表,这些信息对于评估模型性能和优化训练过程至关重要。本文将详细介绍YOLO训练结果中的各种数据及其分析方法。

权重文件

在训练完成后,YOLO会在run目录下保存一些关键的权重文件:

  • last.pt:模型训练过程中最后一个保存的权重文件。这个文件通常用于从上一次训练的断点继续训练,或者用于模型的推理和评估。
  • best.pt:在验证集或测试集上表现最好的模型权重文件。通过监视模型在验证集上的性能,并在性能提升时保存模型的权重文件,可以避免模型在训练集上过拟合的问题。

混淆矩阵

混淆矩阵是对分类问题预测结果的总结,通过计数值汇总正确和不正确预测的数量,并按每个类别进行细分,展示了分类模型在进行预测时对哪些部分产生混淆。该矩阵以行表示预测的类别(y轴),列表示真实的类别(x轴)。混淆矩阵的使用有助于直观了解分类模型的错误类型,特别是了解模型是否将两个不同的类别混淆,将一个类别错误地预测为另一个类别。这种详细的分析有助于克服仅使用分类准确率带来的局限性。

F1曲线

F1曲线是一种多分类问题中常用的性能评估工具,尤其在竞赛中得到广泛应用。它基于F1分数,这是精确率和召回率的调和平均数,取值范围介于0和1之间。1代表最佳性能,而0代表最差性能。

为了能够评价不同算法的优劣,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。F1的定义如下:

通常情况下,通过调整置信度阈值(判定为某一类的概率阈值),可以观察到F1曲线在不同阈值下的变化。在阈值较低时,模型可能将许多置信度较低的样本判定为真,从而提高召回率但降低精确率。而在阈值较高时,只有置信度很高的样本才被判定为真,使得模型的类别判定更为准确,进而提高精确率。

理想状态下,F1曲线显示在置信度为0.4-0.6的区间内取得了较好的F1分数。表明在这个范围内,模型在平衡精确率和召回率方面表现较为理想。

标签分布分析

labels.jpg展示了训练集数据的多个维度:

  • 宫格1:训练集的数据量,显示每个类别包含的样本数量。
  • 宫格2:框的尺寸和数量,展示了训练集中边界框的大小分布以及相应数量。
  • 宫格3:中心点相对于整幅图的位置,描述了边界框中心点在图像中的位置分布情况。
  • 宫格4:图中目标相对于整幅图的高宽比例,反映了训练集中目标高宽比例的分布状况。

标签相关性分析

labels_correlogram.jpg展示了目标检测算法在训练过程中对标签之间相关性的建模情况。每个矩阵单元代表模型训练时使用的标签,而单元格的颜色深浅反映了对应标签之间的相关性:

  • 深色单元格表示模型更强烈地学习了这两个标签之间的关联性。
  • 浅色单元格则表示相关性较弱。

对角线上的颜色代表每个标签自身的相关性,通常是最深的,因为模型更容易学习标签与自身的关系。可以直观识别到哪些标签之间存在较强的相关性,这对于优化训练和预测效果至关重要。如果发现某些标签之间的相关性过强,可能需要考虑合并它们,以简化模型并提高效率。最上面的图(0,0)至(3,3)分别表示中心点横坐标x、中心点纵坐标y、框的宽和框的高的分布情况。

精度-召回曲线(PR Curve)

PR_curve是精确率(Precision)和召回率(Recall)之间的关系。精确率表示预测为正例的样本中真正为正例的比例,而召回率表示真正为正例的样本中被正确预测为正例的比例。

在PR Curve中,横坐标表示召回率,纵坐标表示精确率。通常情况下,当召回率升高时,精确率会降低,反之亦然。PR Curve反映了这种取舍关系。曲线越靠近右上角,表示模型在预测时能够同时保证高的精确率和高的召回率,即预测结果较为准确。相反,曲线越靠近左下角,表示模型在预测时难以同时保证高的精确率和高的召回率,即预测结果较为不准确。

通常,PR Curve与ROC Curve一同使用,以更全面地评估分类模型的性能。 PR Curve提供了对模型在不同任务下性能表现的更详细的洞察。

损失函数分析

损失函数在目标检测任务中扮演关键角色,它用于衡量模型的预测值与真实值之间的差异,直接影响模型性能。以下是一些与目标检测相关的损失函数和性能评价指标的解释:

  • 定位损失(box_loss):衡量预测框与标注框之间的误差,通常使用 GIoU(Generalized Intersection over Union)来度量,其值越小表示定位越准确。通过最小化定位损失,使模型能够准确地定位目标。
  • 置信度损失(obj_loss):计算网络对目标的置信度,通常使用二元交叉熵损失函数,其值越小表示模型判断目标的能力越准确。通过最小化置信度损失,使模型能够准确判断目标是否存在。
  • 分类损失(cls_loss):计算锚框对应的分类是否正确,通常使用交叉熵损失函数,其值越小表示分类越准确。通过最小化分类损失,使模型能够准确分类目标。
  • Precision(精度):正确预测为正类别的样本数量占所有预测为正类别的样本数量的比例。衡量模型在所有预测为正例的样本中有多少是正确的。
  • Recall(召回率):正确预测为正类别的样本数量占所有真实正类别的样本数量的比例。衡量模型能够找出真实正例的能力。
  • mAP(平均精度):使用 Precision-Recall 曲线计算的面积,mAP@[.5:.95] 表示在不同 IoU 阈值下的平均 mAP。综合考虑了模型在不同精度和召回率条件下的性能,是目标检测任务中常用的评价指标。

在训练过程中,通常需要关注精度和召回率的波动情况,以及 mAP@0.5 和 mAP@[.5:.95] 评估训练结果。这些指标可以提供关于模型性能和泛化能力的有用信息。

批处理数据可视化

  • train_batch(N).jpg:对应batch_size这个超参,这里设置为8所以一次读取10张图片。
  • val_batch(N)_labels.jpg:验证集第N轮的实际标签
  • val_batch(N)_pred.jpg:验证集第N轮的预测标签

通过这些可视化结果,可以直观地评估模型在验证集上的预测效果,发现潜在的问题并进行相应的优化。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号