我一直在阅读一些深度学习文献,并提出了这些不可分解和不可微损失函数的概念。我的问题是这些是同一件事吗?如果不是,它们有何不同?我们如何知道损失函数是否不可分解/不可微分?
什么是不可分解和/或不可微的损失函数?
数据挖掘
机器学习
深度学习
梯度下降
损失函数
2022-02-19 05:26:30
1个回答
不可微分(损失)函数可以根据微分的标准定义进行标记:该函数在其域中的所有点都有导数。例如,ReLU 损失函数在技术上是不可微的,因为它的梯度没有定义为零(或者两条线相交的地方,如果您使用的是标准 ReLU 的变体)。
不可分解的函数必须以稍微不同的方式看待。不可分解的损失函数通常是由多个训练指标的统计数据组成的。以F1 分数为例:
将其用作损失函数意味着您必须扩展对批次的预测的术语,precision然后recall计算每个函数的梯度,最后将它们组合起来。可以做到(但它会变得复杂),但我想在这样的指标级别进行优化时会有取舍,这确实将您的模型的性能总结为样本的平均值。使用传统的损失函数侧重于在更细粒度的样本级别上改进模型. 这意味着梯度集中在最纯粹的水平,我想更好的优化是可能的。可能是在 F1 分数的更抽象级别进行优化会导致更少的过度拟合甚至更好的泛化。不过,这只是一个想法;我还没有看到任何直接进行此类比较的工作。
这是一个简短的 reddit 线程,其中包含一些有趣的点和示例,说明您何时甚至可以考虑尝试直接优化这种不可分解的函数(即,将其用作损失函数)。
看看这篇论文,它谈到了不可分解的损失函数并提供了一种处理它们的方法。通读并比较作者讨论的功能应该可以帮助您更好地理解关键差异。
其它你可能感兴趣的问题