Matterport Mask-R-CNN的确切损失是什么?

时间:2019-03-26 14:59:44

标签: keras instance image-segmentation loss faster-rcnn

我使用Mask-R-CNN来训练我的数据。当我使用TensorBoard查看结果时,我有损失 mrcnn_bbox_loss mrcnn_class_loss mrcnn_mask_loss rpn_bbox_loss rpn_class_loss 和所有相同的6个验证损失: val_loss, val_mrcnn_bbox_loss 等。

我想确切地知道每个损失是什么。

我还想知道前6次损失是火车损失还是什么?如果不是火车失窃,我怎么看火车失窃?

我的猜测是:

损失:这是摘要中的全部5个损失(但我不知道TensorBoard如何总结它)。

mrcnn_bbox_loss :边界框的大小是否正确?

mrcnn_class_loss :该课程正确吗?像素是否正确分配给类别?

mrcnn_mask_loss :实例的形状是否正确?像素正确分配给实例了吗?

rpn_bbox_loss :bbox的大小正确吗?

rpn_class_loss :bbox的类别正确吗?

但是我很确定这是不对的...

如果我只有1个班级,那么失去一些无关紧要吗?例如仅背景和另外1个课程?

我的数据只有背景和另外1个类,这是我在TensorBoard上获得的结果:

Result 1: Result 2: Result 3: Result :4

我的预测是可以的,但是我不知道为什么最终由于验证而造成的一些损失会不断上升……我认为必须首先下降,然后过度拟合。 我使用的预测是TensorBoard上出现次数最多的绿线。我不确定我的网络是否过拟合,因此我想知道为什么验证中的某些损失看起来像它们的样子...

这是我的预测: Example of my Trainset: This is the Ground Truth of my Testset example: This is the prediction from the Testset example:

1 个答案:

答案 0 :(得分:1)

根据Python包索引中的code commentsdocumentation,这些损失定义为:

  • rpn_class_loss = RPN锚分类器丢失
  • rpn_bbox_loss = RPN边界框损耗图
  • mrcnn_class_loss =掩码R-CNN的分类器头损失
  • mrcnn_bbox_loss =蒙版R-CNN边界框优化的损失
  • mrcnn_mask_loss =遮罩头的遮罩二进制交叉熵损失

每个损耗度量是针对每个感兴趣区域分别计算的所有损耗值的总和。日志中给出的一般损失度量标准是Mask R-CNN作者定义的其他五种损失的总和(您可以通过将其总和检查)。

关于如何根据original paper计算这些损失,可以将它们描述如下(请注意,为了更直观的解释,定义非常粗糙):

  • 分类损失值基本上取决于真实分类的置信度得分,因此,分类损失反映了模型在预测分类标签时的置信度,换句话说,该模型与预测正确的班级有多接近。在mrcnn_class_loss的情况下,所有对象类都被覆盖,而在rpn_class_loss的情况下,唯一要做的分类是将锚框标记为前景或背景(这就是从概念上讲,这种损失倾向于具有较低值的原因。只有“两个类别”比可以预测的要多。
  • 边界框损失值反映了真实的框参数之间的距离-即框位置的(x,y)坐标,其宽度和高度-预测的。从本质上讲,这是一种回归损失,它对较大的绝对差异(对较低的差异以近似指数的方式进行惩罚,对于较大的差异以线性方式进行惩罚-有关更多信息,请参见Smooth L1 loss函数)。因此,在rpn_bbox_loss的情况下,它最终显示了模型在图像中定位对象的能力。以及在mrcnn_bbox_loss情况下,模型精确预测图像中的区域(与存在的不同对象相对应的)的程度。
  • 蒙版损失,与分类损失类似,对错误的每像素二进制分类(前景/背景,相对于真实分类标签)进行了惩罚。对于每个感兴趣区域,其计算方法不同:掩码R-CNN为每个RoI编码每个类别的二进制掩码,并且仅基于与其真实类别相对应的掩码来计算特定RoI的掩码损失,即防止蒙版损失受班级预测的影响。

正如您已经说过的那样,这些损失指标确实是训练损失,而带有 val _ 前缀的损失指标就是验证损失。验证损失的波动可能由于多种原因而发生,仅凭图表很难一见钟情。它们可能是由于学习率太高(试图找到最小值而导致随机梯度下降过冲),或验证集太小(由于输出中的微小变化会产生不可靠的损失值,导致验证值不可靠)引起的重大损失值变化)。