高 mAP@50,精度和召回率低。这是什么意思,什么指标应该更重要?

High mAP@50 with low precision and recall. What does it mean and what metric should be more important?

我正在比较用于海上搜救 (SAR) 目的的物体检测模型。从我使用的模型中,我得到了用于小物体检测和 FASTER RCNN 的改进版 YOLOv3 的最佳结果。

对于 YOLOv3,我得到了最好的 mAP@50,但是对于 FASTER RCNN,我得到了更好的所有其他指标(精度、召回率、F1 分数)。现在我想知道如何阅读它以及在这种情况下哪种模型真的更好?

我想补充一点,数据集中只有两个 类:小对象和大对象。我们之所以选择这个解决方案,是因为对象之间的区分 类 对我们来说不如检测任何人类起源对象那么重要。

但是,小对象并不意味着小 GT 边界框。这些是实际上面积很小的物体 - 小于 2 平方米(例如人、浮标)。大物体是面积较大的物体(小船、轮船、独木舟等)。

以下是每个类别的结果:

以及来自数据集的两个样本图像(使用 YOLOv3 检测):

物体检测的 mAP 是为所有 classes 计算的 AP 的平均值。 mAP@0.5表示是IOU阈值为0.5时计算的mAP。

平均精度 (AP) 的一般定义是找到精度召回曲线下的面积。

将模型的准确率和召回率绘制为模型置信度阈值函数的过程就是准确率召回率曲线。

精度衡量您的预测有多准确。即您的预测正确的百分比。召回率衡量您发现所有积极因素的程度。 F1 分数是准确率和召回率的 HM(调和平均值)。

现在回答你的问题。

如何解读,在这种情况下哪个模型真的更好?

  • mAP 是衡量神经网络灵敏度的一个很好的指标。如此好的 mAP 表明模型在不同的置信度阈值之间是稳定和一致的。在您的情况下,更快的 rcnn 结果表明与 Yolov3 相比,精度召回曲线指标较差,这意味着与 Yolov3 相比,更快的 rcnn 在较高的置信度阈值下具有非常差的召回率或在较低的置信度阈值下具有非常差的精度(尤其是对于小物体)。
  • 根据给定的置信度阈值计算精度、召回率和 F1 分数。我假设您是 运行 具有默认置信度阈值(可能是 0.25)的模型。因此,更快的 rcnn 的更高精度、召回率和 F1 分数表明,在该置信度阈值下,与 Yolov3 相比,它在所有 3 个指标方面都更好。

哪个指标应该更重要?

一般来说,为了分析性能更好的模型,我建议您使用验证集(用于调整超参数的数据集)和测试集(用于评估完全-训练模型)。

注意:FP - 假阳性 FN - 假阴性

在验证集上:

  • 使用 mAP 到 select 在 [=96] 的所有训练权重中表现最好的模型(更稳定和一致的模型) =].使用 mAP 了解模型是否应该 trained/tuned 进一步。

  • 检查 class 级 AP 值以确保模型在 class 期间稳定且良好。

  • 根据 use-case/application,如果您对 FN 完全耐受并且对 FP 高度不耐受,那么 train/tune 模型相应地使用 Precision.

  • 根据 use-case/application,如果您对 FP 完全耐受并且对 FN 高度不耐受,那么 train/tune 模型相应地使用 Recall.

在测试集上:

  • 如果您对 FP 和 FN 持中立态度,则使用 F1 分数 来评估性能最佳的模型。

  • 如果你不能接受 FPs(不太关心 FNs)选择更高 Precision

    的模型
  • 如果你不能接受FNs(不太关心FPs)选择Recall

    更高的模型
  • 一旦您决定了您应该使用的指标,请为给定模型尝试多个置信度阈值(例如 - 0.25、0.35 和 0.5),以了解您 selected 对你有利,也有助于理解可接受的权衡范围(假设你想要至少 80% 的精度和一些不错的召回率)。确定置信度阈值后,您可以在不同的模型中使用它来找出性能最佳的模型。