为什么不使用IOU进行培训?

时间:2016-11-07 21:48:06

标签: machine-learning computer-vision deep-learning image-segmentation

当人们尝试用CNN来解决语义分割的任务时,他们通常在训练期间使用softmax-crossentropy损失(参见Fully conv. - Long)。但是,当涉及到比较不同方法的表现时,报告了诸如交叉结合的措施。

我的问题是为什么不让人们直接接受他们想要优化的措施?在训练期间对我进行一些测量训练似乎很奇怪,但评估基准的另一个衡量标准。

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

4 个答案:

答案 0 :(得分:5)

查看此paper,他们想出了一种方法,使IoU的概念可以区分。我实施了他们的解决方案,效果惊人!

答案 1 :(得分:2)

这就像询问"为什么分类我们训练日志损失而不是准确性?"。原因很简单 - 你不能直接训练大多数指标,因为它们不是可区分的。你的参数(或至少不产生漂亮的错误表面)。对数损失(softmax crossentropy)是准确性的有效替代。现在你是完全正确的,用一些你感兴趣的度量标准的有效代码进行培训是完全正确的,并且链接的文件没有做得好,因为他们正在考虑至少一些指标 - 我们可以很容易显示出良好的代理(就像加权准确性一样,你所要做的就是减肥记录)。

答案 2 :(得分:2)

我总是使用均值借条来训练细分模型。更确切地说,-log(MIOU)。普通的-MIOU作为损失函数,由于其范围窄(0,1)且表面陡峭,因此很容易使优化器陷于0附近。通过采用其对数标度,损失面变得缓慢且易于训练。

答案 3 :(得分:0)

这是另一种以简单的方式思考这个问题的方法。

请记住,在解决相关图像问题时,仅仅评估精度或IoU等指标是不够的。评估指标还必须帮助网络学习权重必须轻推的方向,以便网络可以有效地学习迭代和时期。

评估这个方向是早期评论意味着错误可区分。我想网络可以用来说IoU指标没什么可说的:“嘿,它不完全在这里,但我必须把我的边界框移到左边!”

只是一个解释的涓涓细流,但希望它有所帮助..