3

当人们尝试用CNN解决语义分割的任务时,他们通常在训练期间使用softmax-crossentropy损失(参见Fully conv. - Long)。但是,当比较不同方法的表现时,比如交叉口联合度量就会被报告。为什么不使用IOU进行培训?

我的问题是为什么不直接培训他们想要优化的措施?对我而言,在培训期间对某种程度的训练似乎很古怪,但对另一种基准评估方法进行评估。

我可以看到IOU对训练样本存在问题,其中类不存在(union = 0,intersection = 0 =>零除零)。但是,当我可以确保每个我的基本事实样本都包含所有类别时,是否有另一个不使用这种方法的原因?

回答

1

这就像问“为什么分类我们训练对数损失,而不是准确性?”。原因很简单 - 你不能直接训练大部分指标,因为它们不是可区分的。到你的参数(或者至少不会产生漂亮的错误表面)。对数损失(softmax crossentropy)是准确性的有效替代物。现在你完全正确的做法是,用一种不是你有兴趣的有效度量指标的东西进行培训显然是错误的,而且这篇链接论文并没有做好,因为他们至少考虑了一些指标 - 我们可以很容易显示出好的替代品(就像加权的准确性一样,你所要做的就是减少体重日志)。

2

结算这paper他们想出了一种方法来使IoU可微分的概念。我以惊人的结果实现了他们的解

+1

可能要包括一些数学这里,使这个不链接唯一的答案。他们的算法与[Y.Wang等人](http://www.cs.umanitoba.ca/~ywang/papers/isvc16.pdf)类似。粗略地说,'I = = sum(Y * Y')'和'U〜= sum(Y + Y' - Y * Y')'。你的论文使用“I/U”的负数日志,而我链接的使用“1-I/U”。我喜欢负面的日志形式,但我很快就会尝试。你也在I/U之后而不是之前总结。 – Poik

+0

以我个人的观点来看,对训练集中的每个样本计算I/U,然后进行求和,这在物理上更为合理。通过这种方式,您可以根据每个样本评估准确度,并将单个误差加起来。首先执行总和可能会导致错误取消('sum(I)/ sum(U)'可能会给出好的分数,而'sum(I/U)'可能不会用于相同的数据)。虽然我绝不是专家 – MPA

0

下面是以简单方式思考此问题的另一种方法。

请记住,在解决相关图像问题的同时简单地评估诸如精度或IoU等度量是不够的。评估指标还必须帮助网络学习在哪个方向权重必须是推动朝,以便网络可以有效地学习迭代和时代。

评估这个方向是以前的评论意味着错误是微分。我想,没有什么关于网络可以用来说的IoU指标:“嘿,它不完全在这里,但我必须可能将我的包围盒稍微向左移动!”

的解释只是涓涓细流,但希望它有助于..