softmax定义
在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广。它能将一个含任意实数的K维向量z“压缩”到另一个K维实向量σ(z)中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。该函数多于多分类问题中。
归一化指数函数,或Softmax函数,实际上是有限项离散概率分布的梯度对数归一化。因此,Softmax函数在包括 多项逻辑回归,多项线性判别分析,朴素贝叶斯分类器和人工神经网络等的多种基于概率的多分类问题方法中都有着广泛应用。特别地,在多项逻辑回归和线性判别分析中,函数的输入是从K个不同的线性函数得到的结果,而样本向量 x 属于第 j 个分类的概率为:
这可以被视作K个线性函数的Softmax函数的复合。Softmax 回归模型是解决多类回归问题的算法,是当前深度学习研究中广泛使用在深度网络有监督学习部分的分类器 [1] ,经常与交叉熵损失函数联合使用。
以上摘自
归一化指数函数_百度百科
https://baike.baidu.com/item/%E5%BD%92%E4%B8%80%E5%8C%96%E6%8C%87%E6%95%B0%E5%87%BD%E6%95%B0/22660782?fromtitle=Softmax%E5%87%BD%E6%95%B0&fromid=22772270&fr=aladdin
softmax公式
先看下softmax函数的公式:
softmax计算
softmax计算1
softmax计算2
对于二分类任务,由于结果只有两种,ϕ1(x)ϕ1(x)将样本xx映射到数轴上。而拓展到多分类任务时,假设有nn种结果,那么ϕ1(x)ϕ1(x)会映射到一个nn维向量(y={c1,c2,…,cn}y={c1,c2,…,cn})当中。向量中的每一维,都对应着一个可能的分类结果(ci=0ci=0或1)。由于结果是互斥的,所以yy存在以下nn种形式:
先看下softmax函数的公式:
Softmax 的输出表征了不同类别之间的相对概率。
列子如下
softmax 一维数组的代码
import numpy as np
def softmax(x):
"""Compute softmax values for each sets of scores in x."""
# e_x = np.exp(x)
e_x = np.exp(x )
return e_x / e_x.sum()
if __name__ == '__main__':
x = np.array([-3, 2, -1, 0])
res = softmax(x )
print(res) # [0.0056533 0.83902451 0.04177257 0.11354962]
- 参考资料
小白都能看懂的softmax详解 - bitcarmanlee的博客 - CSDN博客
https://blog.csdn.net/bitcarmanlee/article/details/82320853
(2条消息)softmax到底怎么实现分类——知乎大神讲解 - hutingting0611的博客 - CSDN博客
https://blog.csdn.net/hutingting0611/article/details/78785529
归一化指数函数_百度百科
https://baike.baidu.com/item/%E5%BD%92%E4%B8%80%E5%8C%96%E6%8C%87%E6%95%B0%E5%87%BD%E6%95%B0/22660782?fromtitle=Softmax%E5%87%BD%E6%95%B0&fromid=22772270&fr=aladdin