softmax多分类激活函数

softmax 函数,也称归一化指数函数,不同于Relu、Tanh、Identity、sigmoid 激活函数它们的输入是一个单变量,而softmax 函数的输入是多个变量,常用于多分类神经网络输出,其公式为:

σ ( z ) j = e z j ∑ k = 1 K e z k          f o r    j = 1 , … , K . \sigma(\mathbf{z})_j = \frac{e^{z_j}}{\sum_{k=1}^K e^{z_k}} \ \ \ \ \ \ \ \ for \ \ j = 1, …, K. σ(z)j=k=1Kezkezj        for  j=1,,K.

特点:
  • 每一个元素的范围都在 (0, 1) 之间
  • 所有元素的和为 1
描述说明:

输入向量 [1.0, 2.0, 5.0, 4.0, 2.0] 对应的Softmax函数的值为 [0.012, 0.034, 0.673, 0.248, 0.034]。通过 softmax 函数一作用,就映射成为 (0,1) 之间的值, 输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。所以在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!

下面是使用Python进行函数计算的示例代码:

import math

# 输入多变量 K : 1.0, 2.0, 5.0, 4.0, 2.0
soft_input = [1.0, 2.0, 5.0, 4.0, 2.0]

# 计算每一个 e^{z_k} 的值
soft_exp = [math.exp(i) for i in soft_input]

# 计算 e^{z_k} 从 1 到 k 的值和
sum_soft_exp = sum(soft_exp)

# 每一个元素与和的概率比例, 最终计算的结果,保留三位小数,
softmax = [round(i / sum_soft_exp, 3) for i in soft_exp]

print(softmax)
# 输出结果: [0.012, 0.034, 0.673, 0.248, 0.034]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值