Softmax公式推导

转载: https://zhuanlan.zhihu.com/p/279142777

神经网络的多个输出是难于直观理解的,因可能的取值范围不同难以直接进行比较和反向传播。需要借助softmax将值压缩到(0,1)的开区间,从而简化学习过程。softmax函数可用一下公式表示:
在这里插入图片描述

其中,k表示神经网络的多个输出或类别数,v为输出向量, vj为 v中第j个输出或类别的值,i表示当前需要计算的类别,计算结果在0到1之间,且所有类别的softmax值求和为1。

import numpy as np
z = np.array([1.0, 2.0, -3.0, 4.0, 0.5, 0.6])
print(np.exp(z)/sum(np.exp(z)))

#[3.98422484e-02 1.08302460e-01 7.29736235e-04 8.00252952e-01 2.41655452e-02 2.67070578e-02]

进行函数分类,直接找softmax之后最大值对应的类别就可以了。

那为什么不直接用神经网络的输出的最大值呢?直接用一个max函数搞定?因为这样会导致函数不可导,也就很难学习。

推导过程:
……

转载:https://zhuanlan.zhihu.com/p/279142777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值