为什么人们使用 CrossEntropyLoss 而不仅仅是 softmax 概率作为损失?

数据挖掘 神经网络 分类 多类分类 损失函数 可能性
2022-02-16 04:38:16

我不明白为什么要在日志中增加额外的复杂性,分类神经网络的损失函数的概率。与仅使用从最后一层的 softmax 函数获得的 0-1.0 值(类的概率)相比,这有什么好处?

这是否增加了额外的非线性,我们不明白为什么它做得好,但只是碰巧做了很多次,因为我们给神经网络增加了一些复杂性?

2个回答

让我先用逻辑回归来解释它:

  • 逻辑回归的输出是y^=11+eθx
  • 考虑最小平方损失函数L=(1y^)2
  • 入第二个等式y^L=(eθx1+eθx)2

上面的公式不是凸的,所以优化要困难得多,因为梯度可能指向局部最优。

而交叉熵看起来像。有两个优点。

L=ylogy^(1y)log(1y^)

  • 代替它的值时它是凸的(考虑到的值是 1 或 0)y^y
  • 对于数据集中的每一行,您同时计算两个标签

当我们从二元逻辑回归推广到多类分类时,我们使用相同的想法,即使用凸损失函数对输出以及同时最小化所有标签的损失函数。

它们是用于不同目的的工具。Softmax用于您具有相互排斥的标签的情况,它们应该是矛盾的,并且是详尽的,其中一个标签应该始终是一个,而另一个用于输入模式中可能有多个标签的情况。

考虑到 softmax 仅用于将网络的输出视为概率这意味着它是一个简单的函数,将空间映射到,这意味着有 n 个输入和 n 个输出。RnRnsoftmax