Softmax函数可以将上一层的原始数据进行归一化,转化为一个(0,1)之间的数值,这些数值可以被当做概率分布,用来作为多分类的目标预测值。Softmax函数一般作为神经网络的最后一层,接受来自上一层网络的输入值,然后将其转化为概率。

image.png

# numpy实现的简单softmax
# exp即e的x次方,e为自然对数
# x为矩阵,分母为矩阵中每个x,e的x次方之和
# 分子为每个元素的e的x次方
# 返回一个矩阵
def softmax(x):
    return np.exp(x) / np.sum(np.exp(x), axis=0)

a = np.asarray([2, 3, 5]) 
softmax(a)
array([0.04201007, 0.1141952 , 0.84379473])