首页 > 解决方案 > 当目标是高斯标签时,最好的损失函数可能是什么?

问题描述

我有一个简单的 CNN,输入为

以 (5.0155e-173, 1) 作为 (min, max) 的目标高斯标签

目标是学习目标标签并使用学习模型检测测试图像中的对象。我正在使用具有各种损失函数的 Adam 优化器,例如categorical_crossentropy, mean_squared_errormean_absolute_error但是训练很快就会停止,这可能是由于所有这些损失函数返回的值都很低(梯度消失?)。将批大小从 1 增加到 16~32 有时有助于完成迭代,但在测试时会产生不希望的结果。

是不是因为损失函数对目标中的较低值过于敏感,甚至将它们视为异常值,从而将整个学习过程导向错误的方向?

在这种情况下,我将感谢您在修复损失函数方面的帮助。

标签: kerasregressionobject-detectiontensorflow2.0loss-function

解决方案


我认为这里最好的选择是使用一些概率分布伪距离,我想到的第一个选择是使用Kullback-Leiber Divergence,它已经在pytorch和keras中实现(参见[kldivloss](https:// /pytorch.org/docs/stable/nn.html#kldivlosskeras)其他著名的距离可能包括 Jesnsen-Shanon 散度和 Earth-Mover 距离(这与WGAN中使用的距离相同


推荐阅读