深度学习中的softmax和cross entropy

原创 2018年04月17日 11:44:28

,softmax函数比较简单,可以用如下公式表示

 同样,交叉熵的公式也很简单,如下:

 其中 表示真实的概率分布,而  表示预测的概率分布。


在深度学习中,这二者也经常被使用,softmax常被用来将输出映射到0~1的概率值,而cross entropy则常被用来作为分类模型的损失函数。

在使用的时候有什么需要注意的呢?


softmax存在下溢和上溢的问题,如果=c,那么softmax的值都一样,=1/n。如果c很小,比如c=- xxxxxx, 那么就可能因为计算机的舍入误差等于0,那么softmax函数的分母就等于0,就产生溢出,这就是下溢。同样,如果c特别大,就有可能等于无穷大,那么就会上溢。不管是上溢还是下溢,都会出现Nan的情况,导致无法计算。那么怎么解决这个问题呢?


计算,那么最大等于1,不会上溢,

分母中至少包含一项=1,不会下溢。


这里的溢出问题解决了,那就可以通过softmax的结果,计算cross entropy。计算交叉熵的时候,会涉及到log算子,那么又有可能出现溢出的问题。如果softmax的结果=0,那么就会导致log(0)等于负无穷,溢出。但其实这里,用了softmax(z)之后,log的问题就已经解决了。

其中,等式变换为上式,求和结果最小为1,所以变换为这个式子后,不会再有溢出的问题了。


在tensorflow和caffe中,单独的softmax层是数值不稳定的,会发生溢出,而在tensorflow中,tf.nn.softmax_cross_entropy_with_logits是数值稳定的,caffe中softmaxwithloss数值稳定的。

 

关于cross entropy的计算,有一些疑问 啊。

公式是,对于真实的概率分布,p要么为0,要么为1,因此求和项中大部分都是0,所以,最后其实只有一项,就是真实标签对应的预测概率值的那一项。

版权声明: https://blog.csdn.net/b876144622/article/details/79972663

深度学习(一) cross-entropy和sofrmax

Cross-entropy 神经网络的学习行为和人脑差的很多, 开始学习很慢, 后来逐渐增快 为什么? 学习慢 => 偏导数 ∂C/∂w 和 ∂C/∂b 值小 回顾之前学习的Cost函数: 回顾s...
  • mdzzzzzz
  • mdzzzzzz
  • 2017-09-19 11:21:15
  • 3102

softmax与cross-entropy loss

解释softmax与cross-entropy loss
  • u012494820
  • u012494820
  • 2016-10-12 16:22:45
  • 17438

卷积神经网络系列之softmax,softmax loss和cross entropy的讲解

我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等。虽然现在已经开源了很多深度学习框架(比如MxNet,Caf...
  • u014380165
  • u014380165
  • 2017-08-17 07:47:51
  • 16694

深度学习基础理论探索(二): cross-entropy损失函数的前世今生

前面我们讲到,克服梯度消失有两个方向,1.用rule激活函数。2.改进损失函数用cross_entropy。 ok,首先我们先看为什么代价损失函数可以用Cross_entropy. 以前使用的二次代价...
  • qq_25552539
  • qq_25552539
  • 2017-10-16 22:21:11
  • 839

机器学习基础(六)—— 交叉熵代价函数(cross-entropy error)

交叉熵代价函数比较困惑的一点是,Logistic Regression 中存在交叉熵作为误差函数,神经网络(neural network)也可以使用交叉熵作为代价函数,然而形式上却有一些不同Logis...
  • lanchunhui
  • lanchunhui
  • 2016-03-24 12:09:59
  • 29524

SVM hinge loss / SoftMax cross entropy loss

损失函数(loss function) = 误差部分(loss term) + 正则化部分(regularization term) 1. 误差部分 1.1 gold term...
  • u011534057
  • u011534057
  • 2016-11-28 13:46:16
  • 2258

[tensorflow损失函数系列]sparse_softmax_cross_entropy_with_logits

sparse_softmax_cross_entropy_with_logits原创文章,请勿转载!!定义sparse_softmax_cross_entropy_with_logits(_senti...
  • u013555719
  • u013555719
  • 2017-08-26 16:24:22
  • 517

caffe 加权交叉熵损失函数 SigmoidCrossEntropyLoss

  • 2017年12月24日 23:13
  • 4KB
  • 下载

softmax_cross_entropy

tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels, name=None) 计算logits 和 labels 之间的稀疏sof...
  • qiqiaiairen
  • qiqiaiairen
  • 2016-11-15 11:19:17
  • 4574

BP算法推导-softmax层+交叉熵(logloss)

摘要: 在之前的两篇文章中RNN训练与BP算法,BP算法心得体会都是在具体在讲bp算法在神经网络里面的推导。两篇文章都没有讲过和softmax相关的东西。而softmax作为分类任务里面重要的一...
  • qq_22238533
  • qq_22238533
  • 2018-01-17 17:00:14
  • 334
收藏助手
不良信息举报
您举报文章:深度学习中的softmax和cross entropy
举报原因:
原因补充:

(最多只允许输入30个字)