Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 二元交叉熵与两类分类交叉熵_Python_Pytorch_Cross Entropy - Fatal编程技术网

Python 二元交叉熵与两类分类交叉熵

Python 二元交叉熵与两类分类交叉熵,python,pytorch,cross-entropy,Python,Pytorch,Cross Entropy,当考虑将一个输入分类到两个类中的一个时,我看到的99%的示例使用了一个具有单个输出的NN和sigmoid作为其激活,然后是二进制交叉熵损失。我想到的另一个选择是让最后一层生成2个输出,并使用C=2类的分类交叉熵,但我从未在任何示例中看到过。 有什么原因吗 谢谢如果您在两个输出网络的顶部使用softmax,您将获得一个在数学上等同于使用顶部带有sigmoid的单个输出的输出。 算算一下,你就会明白了 在实践中,根据我的经验,如果你看两个输出网络的原始“logit”(在softmax之前),你会发现

当考虑将一个输入分类到两个类中的一个时,我看到的99%的示例使用了一个具有单个输出的NN和sigmoid作为其激活,然后是二进制交叉熵损失。我想到的另一个选择是让最后一层生成2个输出,并使用C=2类的分类交叉熵,但我从未在任何示例中看到过。 有什么原因吗


谢谢

如果您在两个输出网络的顶部使用
softmax
,您将获得一个在数学上等同于使用顶部带有
sigmoid
的单个输出的输出。
算算一下,你就会明白了

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

因此,由于这两种方法是等效的,因此单输出配置具有较少的参数并且需要较少的计算,因此使用具有sigmoid ob顶部的单输出更为有利