分数或概率作为训练标签

数据挖掘 机器学习 神经网络 分类 回归 损失函数
2022-02-24 19:44:51

这是一个在我的道路上出现过几次的问题,我还没有一个令人满意的解决方案。目标是根据一些预测概率或分数,其中我们的训练具有这些概率或分数,因此在域中,而不是我的问题是关于我的损失函数。在分数的情况下,如果 0.4 和 0.5 之间的误差和 0.89 和 0.99 之间的误差相同,如果我想预测期望值,我可以使用 MSE。xy[0,1]{0,1}

如果我们希望像分类问题一样处理概率,其中 0.89 和 0.99 之间的差异远大于 0.4 和 0.5 之间的差异,我们希望将其放入我们的损失函数中。中输入分数,交叉熵是否仍然正常工作y

L(y,y^)=ylog(y^)(1y)log(1y^)

假设我们的并且我们当前的预测是我们会得到:y=0.5y^=0.6

L(0.5,0.6)=0.5log(0.6)0.5log(0.4)

我真的不明白为什么会出错?该函数仍然是凸的。但是,它到处都说目标应该在中。也许我的数学缺乏或者我错过了一些明显的东西,为什么这是一个坏主意?{0,1}

1个回答

交叉熵损失仍然适用于中的概率。最重要的是,仍然是一个固定点(尽管它不等于)。[0,1]{0,1}y^=y0

的损失(和即时梯度)可能的改进大于对于的情况。如果您使用 sigmoid 输出,则 logit处的梯度仍然适用 - 损失函数的较大梯度与该点的 sigmoid 的较低梯度成反比。y^=0.99,y=0.89y^=0.4,y=0.5y^y

所以,简而言之,是的,对单类概率使用二元交叉熵损失,即使它们并不严格在中。{0,1}