当标签是概率时使用什么损失函数?

人工智能 神经网络 机器学习 目标函数 概率分布
2021-11-09 01:13:16

在训练具有概率目标值的模型时,哪种损失函数最合适?例如,我有一个 3 输出模型。我想用特征向量训练它x=[x1,x2,,xN]和一个目标y=[0.2,0.3,0.5].

看起来像交叉熵这样的东西在这里没有意义,因为它假设单个目标是正确的标签。

像 MSE(应用 softmax 之后)这样的东西是否有意义,还是有更好的损失函数?

1个回答

实际上,交叉熵损失函数在这里是合适的,因为它测量分布之间的“距离”q和“真实”的分布p.

不过,您是对的,在许多 API 中使用称为“cross_entropy”的损失函数是错误的。这是因为这些功能,正如你所说,假设一个热标签。您需要使用一般的交叉熵函数,

H(p,q)=xXp(x)logq(x).

请注意,单热标签意味着

p(x)={1if x is the true label0otherwise

这导致了交叉熵H(p,q)简化为您熟悉的形式:

H(p,q)=logq(xlabel)