服务热线

0530-583766618653002903
网站导航
技术文章
当前位置:首页>>技术文章

科教仪器机器学习——损失函数(l

时间:2022-08-14 08:22:15 点击次数:317
 

当一开始进入推荐系统,让我一直困惑就是怎么一会儿loss,一会儿metric,在网上了找了很久也只有一些损失函数、目标函数的解释,要理解本质,还得自己动手,丰衣足食。

以下内容来自对英文内容的翻译与调整,有条件有能力的大佬请直接转原文原文链接

当建立一个学习算法时,我们希望最大化一个给定的评价指标matric(比如说准确度),但算法在学习过程中会尝试优化一个不同的损失函数loss(比如说MSE/Cross-entropy)。

那为什么不把评价指标matric作为学习算法的损失函数loss呢?

一般来说,我认为你应该尝试优化一个与你最关心的评价指标相对应的损失函数。例如,在做分类时,我认为你需要给我一个很好的理由,让我不要优化交叉熵。也就是说,交叉熵并不是一个非常直观的指标,所以一旦你完成了训练,你可能还想知道你的分类准确率有多高,以了解你的模型是否真的能在现实世界中发挥作用(它可能是最好的模型,比其他人的交叉熵更好,但仍然没有足够的准确性在现实世界中发挥作用)。

总之,在每个epoch训练完后,你都会有多个评估指标。这样作的主要原因是为了了解你的模型在做什么。这意味着你想要最大化指标A,以便得到一个接近最大化指标B的解决方案。

2. 通常情况下,MSE/交叉熵比精度更容易优化,因为它们对模型参数是可微的,在某些情况下甚至是凸的,这使得它更容易。

在可微的条件下,或许你还想要梯度更容易计算(交叉熵v.s.dice-coefficient或者IoU)。在语义分割的情况下使用交叉熵而不是dice或者类似的IoU指标,这是因为交叉熵的梯度更好。交叉熵相对于对数的梯度类似于,其中是softmax输出,是目标。同时,如果我们试图把dice的系数写成可微分的形式,那么产生的梯度相要难计算得多。因此在数值计算中,想象一种情况(p和t都很小),梯度会膨胀到某个巨大的值,从而溢出。这样会让我们的训练变得更加不稳定。

Copyright © 2020-2023 山东行知科教仪器设备有限公司 版权所有  备案号:鲁ICP备16020776号-2

地址:高新区万福办事处吴拐行政村 电话:0530-5837666 邮箱:2586826320@qq.com

关注我们

服务热线

0530-5837666

扫一扫,关注我们