评价指标与损失函数的区别?
当建立一个学习算法时,我们希望最大化一个给定的评价指标matric(比如说准确度),但算法在学习过程中会尝试优化一个不同的损失函数loss(比如说MSE/Cross-entropy)。
那为什么不把评价指标matric作为学习算法的损失函数loss呢?
-
一般来说,应该尝试优化一个与你最关心的评价指标相对应的损失函数。
例如,在做分类时,我认为你需要给我一个很好的理由,让我不要优化交叉熵。但是,交叉熵并不是一个非常直观的指标,所以一旦你完成了训练,你可能还想知道你的分类准确率有多高,以了解你的模型是否真的能在现实世界中发挥作用。
总之,在每个epoch训练完后,你都会有多个评估指标。这样作的主要原因是为了了解你的模型在做什么。这意味着你想要最大化指标A,以便得到一个接近最大化指标B的解决方案。
-
通常情况下,MSE/交叉熵比精度更容易优化,因为它们对模型参数是可微的,在某些情况下甚至是凸的,这使得它更容易。
在可微的条件下,或许你还想要梯度更容易计算(交叉熵v.s.dice-coefficient或者IoU)。在语义分割的情况下使用交叉熵而不是dice或者类似的IoU指标,这是因为交叉熵的梯度更好。
...大约 7 分钟