为什么是Softmax?

一、softmax函数

softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!

假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是:

更形象的如下图表示:

 

softmax本质上是归一化网络,目的是将多个标量映射为一个概率分布,其输出的每一个值范围在 (0,1) 。

深度神经网络的最后一层往往是全连接层+ softmax(分类网络)

先看一下计算方式:全连接层将权重矩阵与输入向量相乘再加上偏置,将 n个 (-\infty ,+\infty ) 的实数映射为 K个 (-\infty ,+\infty ) 的实数(分数);Softmax将 K个 (-\infty ,+\infty ) 的实数映射为 K个 (0,1) 的实数(概率),同时保证它们之和为1。

2.交叉熵损失函数

MSE的一个缺点就是其偏导值在输出概率值接近0或者接近1的时候非常小,这可能会造成模型刚开始训练时,梯度几乎消失。
对于分类问题的损失函数来说,分类错误率(分类精确率)和平方和损失都不是很好的损失函数,所以,大家才考虑用交叉熵损失。

交叉熵损失函数经常用于分类问题中,特别是神经网络分类问题,由于交叉熵涉及到计算每个类别的概率,所以在神经网络中,交叉熵与softmax函数紧密相关。为了更好的理解交叉熵与Softmax的关系,下面先介绍一下一些基本信息。

2.1熵与交叉熵

 

的本质是香农信息量log(\frac{1}{p})-log(p))的期望。
熵在信息论中代表随机变量不确定度的度量。一个离散型随机变量 X 的熵 H(X) 定义为:


交叉熵刻画的是 实际输出的概率分布和期望输出的概率分布的“距离”(相似度)。交叉熵对两个概率分布的度量结果,不具对称性,所以交叉熵并不是严格意义上的距离

交叉熵的值越小,则两个概率分布越接近,即实际与期望差距越小。交叉熵中的交叉就体现在p(期望概率分布),q(实际概率分布)。假设概率分布p为期望输出,概率分布q为实际输出,H(X)为交叉熵。则:

2.2交叉熵损失函数的定义

二分类

在二分类的情况下,模型最终预测的结果只有2类,对于每个类别我们预测的概率为1-p和p。
此时Binary Cross Entropy:



其中:

  • y : 样本标签,正样本标签为1,负样本标签为0
  • p : 预测为正样本的概率

多分类:

多分类实际是二分类的扩展:

其中:

  • K : 类别的数量
  • y : 是否是类别c,y \in(0,1)
  • p : 样本属于类别的概率

为什么Cross Entropy损失函数常用于分类问题中呢?我们从一个简单的例子来分析。

问题引入: 假设我们有一个 三分类问题,分别用 模型1模型2来进行预测。

结果如下:

  • 模型1

| 样本id | 预测值 | 实际值 | 是否预测正确 |

| ------ | ------------- | ------- | ------------ |

| 1 | [0.3,0.3,0.4] | [0,0,1] | √ |

| 2 | [0.3,0.4,0.3] | [0,1,0] | √ |

| 3 | [0.1,0.2,0.7] | [1,0,0] | × |

  • 模型2

| 样本id | 预测值 | 实际值 | 是否预测正确 |

| ------ | ------------- | ------- | ------------ |

| 1 | [0.1,0.2,0.7] | [0,0,1] | √ |

| 2 | [0.1,0.7,0.2] | [0,1,0] | √ |

| 3 | [0.3,0.4,0.3] | [1,0,0] | × |

样本1和样本2模型1以0.4>0.3的微弱优势正确预测样本1的标签为类别3,而模型2以0.7>0.2>0.1的巨大优势毫无悬念的正确预测出样本标签。

对于样本3模型1模型2均预测错误,但模型1以0.7>0.2>0.1的概率,错误的预测样本标签为标签3,但实际标签为标签1,错的离谱!!!但模型2虽然也预测错了,但0.4>0.3>0.2还不算太离谱。

这里两个模型用Classification Error(分类错误率)不能进行区分。用Mean Squared Error(均方误差)计算时,其偏导值在输出概率值接近0或者接近1的时候非常小,这可能会造成模型刚开始训练时,梯度几乎消失。

现在我们用交叉熵损失函数来计算损失函数值。

  • 模型1:
  • 模型2:

可以发现,交叉熵损失函数可以捕捉到模型1和模型2的差异。

2.3函数性质

在一般的神经网络中,交叉熵与softmax函数紧密相关,他们的计算过程大约如下图:

下面我们来推下最后面的交叉熵损失函数的整个求导公式,求导如图所示,分为三个过程:

先看

结合上图我们再看看:(这一部分即Softmax的求导过程)

·当j=i时候:

             

  • 当j≠i时候:

在看:                  

接下来我们只需要把上面的组合起来:

最后针对分类问题,给定的y_{i}中只会有一个类别是1,其他类别都是0,所以: 

                        

OK,这是注意一下p(i)SoftMax层的输出的概率,而最后的结果,SoftMax层的输出减去1就成了损失函数J的梯度

梯度就是这么容易计算出来了!!!

而这就是使用Softmax 和 Cross-Entropy 的原因。

softmax 和 cross-entropy 本来太大的关系,只是把两个放在一起实现的话,算起来更快,也更数值稳定。

上面我们说了,cross entropy 不能认为是衡量两个概率分布之间的“距离”。softmax能把一切转换成概率分布,那么自然二者经常在一起使用。

之所以用交叉熵,是因为softmax输出的是概率分布,而衡量概率分布的相似程度的常用方法是KL散度。然后,KL散度和交叉熵几乎是一回事:

so,总结一下,为什么是Softmax?“softmax 的作用是把 一个序列,变成概率。” 这个概率不是别的,而是被选项中为 max 的概率。同时,因为Softmax与Cross-Entropy的关系,所以在求解神经网络的过程中,大量的梯度计算就被节省了不少。

神经网络输出层为什么通常使用softmax?

多分类问题,数据(x,y)中y服从多项分布。在广义线性模型中,Softmax函数是多项分布的标准连接函数的反函数,它能够将输出wx+b转化成概率p(其实是将wx+b与y的期望通过连接函数联系起来)。同理,二分类问题,数据(x,y)中y服从伯努利分布,Sigmoid函数是伯努利分布的标准连接函数的反函数,它也可以将wx+b转换成概率p。

Softmax的作用

相比(−∞,+∞)范围内的分数,概率天然具有更好的可解释性,让后续取阈值等操作顺理成章。

经过全连接层,我们获得了K个类别(范围内的分数z_{j},为了得到属于每个类别的概率,先通过e^{z_j}将分数映射到(0,+∞),然后再归一化到(0,1),这便是Softmax的思想

https://blog.csdn.net/blogshinelee/article/details/84826837

参考:
1:https://www.zhihu.com/question/40403377/answer/86647017  多类分类下为什么用softmax而不是用其他归一化方法?

2。 http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/  Softmax vs. Softmax-Loss: Numerical Stability

3.https://blog.csdn.net/blogshinelee/article/details/84826837

4. 神经网络输出层为什么通常使用softmax? - n次方的回答 - 知乎 https://www.zhihu.com/question/310506852/answer/1124789510

5.链接:https://www.zhihu.com/question/294679135/answer/527393818

6.https://blog.csdn.net/u014313009/article/details/51043064 交叉熵代价函数(作用及公式推导)

7.softmax和cross-entropy是什么关系? - 董鑫的回答 - 知乎 https://www.zhihu.com/question/294679135/answer/885285177

 

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值