二进制交叉熵与2类的分类交叉熵

时间:2019-08-30 11:39:25

标签: python pytorch cross-entropy

当考虑将输入分类为2类之一的问题时,我看到的99%的示例都使用了具有单个输出和S形神经网络的NN作为其激活,然后是二进制交叉熵损失。我想到的另一个选择是让最后一层产生2个输出,并使用具有C = 2类的分类交叉熵,但是在任何示例中我都从未见过。 有什么理由吗?

谢谢

1 个答案:

答案 0 :(得分:2)

如果您在两个输出网络的顶部使用softmax,则会得到在数学上等同于的输出,相当于在顶部使用sigmoid的单个输出。
算一下,您会看到的。

在实践中,根据我的经验,如果查看两个输出网的原始“对数”(在softmax之前),您会发现一个正好是另一个的负数。这是由于梯度沿每个神经元沿相反的方向精确地拉动 的结果。

因此,由于两种方法都是等效的,因此单个输出配置具有较少的参数并且需要较少的计算,因此,使用具有S型曲面的单个输出会更具优势。