数学基础概念——softmax函数

softmax函数

函数描述,来自wiki:

数学,尤其是概率论和相关领域中,Softmax函数,或称归一化指数函数,是逻辑函数的一种推广。它能将一个含任意实数的K维的向量 {\displaystyle \mathbf {z} } 的“压缩”到另一个K维实向量 {\displaystyle \sigma (\mathbf {z} )} 中,使得每一个元素的范围都在{\displaystyle (0,1)}之间,并且所有元素的和为1。

函数公式,来自wiki:

{\displaystyle \sigma :\mathbb {R} ^{K}\to [0,1]^{K}}

\sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}    for j = 1, …, K.

示例:

例(来自wiki):输入向量  [1,2,3,4,1,2,3] 对应的Softmax函数的值为  [0.024,0.064,0.175,0.475,0.024,0.064,0.175]。输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。

示例说明:
 向量第一个元素 带入公式的值为:   e^1/(e^1+e^2+e^3+e^4+e^1+e^2+e^3) =0.024

python代码:

import math
# 创建初始向量
z=[1,2,3,4,1,2,3]
# 对每个向量中每个值进行exp计算,  即 e^i , e的z[i]次幂 ,生成新的向量
z_exp = [math.exp(i) for i in z]
#  求和 exp后的向量中各个元素,
sum_z_exp = sum(z_exp)

# print(round(sum_z_exp , 2))
# z_exp 中每个数据除以 sum后的数据. 计算softmax的值
softmax = [round(i / sum_z_exp ,3) for i in z_exp]
print(softmax)
print(sum(softmax))



参考文档:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值