softmax、以及与sigmoid的比较

softmax是用于多分类的激活函数,它将神经网络的输出转换为概率分布,使得所有输出的概率和为1。与sigmoid不同,softmax的输出相互关联,适合处理多个可能的输出。在反向传播中,softmax与交叉熵损失函数结合,简化了梯度计算,尤其在只需要预测一个结果的情况下。softmax的优势在于直接提供了每个类别的概率,便于比较和选择最可能的类别。
摘要由CSDN通过智能技术生成

softmax是什么?

softmax用于多分类过程中,将多个神经元的输出,映射到(0,1)范围内,且这些映射值的总和为1,相当于概率值。

假设某神经网络输出层V,共有j个元素,其中第i个元素值为V_{i},则该元素对应的softmax值为:

S_{i}=\frac{e^{V_i}}{\sum_{j}^{}e^{V_j}}

softmax与sigmoid的区别:

sigmoid函数会分别处理各个原始输出值,因此其结果相互独立,概率总和不一定为1

softmax函数的输出值相互关联,其概率的总和始终为1,因此,在softmax函数中,为增大某一类别的概率,其他类别的概率必须相应减少

所以当预测结果同时有多种可能时,例如胸片诊断、恶评分析,就应该选择sigmoid函数放在输出层

softmax层有什么优势?

默认选取交叉熵函数为损失函数:

Loss=-\sum_{i}^{}y_iloga_i

反向传播梯度求导,需要把softmax的值求导传回去,乍看上去这个公式很繁杂,但其实在多分类场景中,只需要预测一个结果,因此对于每一条输入,真实的输出y_i只有一个节点为1,其余为0;这里假设第j个节点真实值为1,其余为0,对应的loss公式就可以简化为:

Loss=-y_jloga_j

y_j 为真实值,取1:

Loss=-loga_j

接下来是将损失值用链式法则前向求导:

关键这里分两种情况:

  • 一种是j=i,也就是loss对真实值为1的节点求偏导
  • 另一种是j!=i,也就是loss对真实值为0的节点求偏导

乘上Loss对a_j的偏导-\frac{1}{a_j},得到a_j-1

 

 乘上Loss对a_j的偏导-\frac{1}{a_j},得到a_j

再乘上已知的O_j就完成了梯度计算,下一步就可以更新权重值了

 

 

参考链接:

Softmax 原理及 Sigmoid和Softmax用于分类的区别 - Jerry_Jin - 博客园

Softmax 函数的特点和作用是什么? - 知乎

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值