softmax函数到底是什么?——归一化指数函数,及其python实现
softmax应该算是机器学习的入门数学知识了。softmax函数,它并不十分复杂,但又不是十分简单,总之这个函数就是很难去背诵下来,以致于每次你要写softmax的时候,都得搜一下才行。而每次搜索softmax,都对你的信心是一次小规模打击——这么简单的数学公式我还不会?我这是要凉啊。。。
好了,废话少说。我想,我们一直难以把并不很复杂的softmax函数背下来的原因,可能并非因为我们懒,而是因为我们一直都没有摸透softmax的本质。这可能也和我们接触softmax的时间点有关——我们接触它的时候是初学者,亦步亦趋地追随课程进度或者博客的知识尚且费劲儿,对于这类公式,我们就当它“本来就该是这样”了。至少对我而言,我一直都想不通,softmax的公式为何这么奇怪。
我们来看看softmax的另一个名字就一目了然了———softmax函数,又称归一化指数函数。
所以很显然,softmax的意思呢,即是将一个k维向量z,映射到另一个k维空间中,这种映射函数就是softmax。那么我们为啥要softmax来映射一遍?因为softmax可以将向量z的每个维度的取值均压缩至(0,1)之间。这就是softmax的本质,也是softmax函数的初衷
因此,softmax函数的表达式就显而易见了:分母是所有k维向量z所有维度的自然底数e指数之和,分子是待求维度的自然底数e的指数,如下所示:
$$softmax(z)_j = \dfrac{e^{z_j}}{\sum_{k=1}^{K}e^{z_k}}$$
其中,\(softmax(z)_j\)指的是k维向量z经过softmax函数映射后的第j维的取值。
而softmax在机器学习或深度学习中,更多的是以“多项逻辑回归”而存在的,用来计算样本向量\(X^{(i)}\)属于某个类别的概率分布。其中,属于第j个类别的概率为:
$$P(y^{(i)}|x^{(i)};\Theta) = \dfrac{e^{\Theta^{T}X^{(i)}_j}}{\sum_{k=1}^{K} e^{\Theta^{T}X^{(i)}_k}}$$
如公式所示,我们同样将向量\(\Theta^{T} X^{(i)}\)进行归一化映射。
python实现(其实是numpy实现)
import numpy as np
z = np.array([1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0])
softmax_z = np.exp(z)/sum(np.exp(z))
最后,在谈一谈softmax名字的由来:
Softmax 不同于普通的 max 函数:max 函数只输出最大的那个值,而 Softmax 则确保较小的值也有较小的概率,不会被直接舍弃掉,是一个比较“Soft”的“max”,这个“soft”是对比合页损失的“hard”而来的。
softmax函数到底是什么?——归一化指数函数,及其python实现相关推荐
- 通俗理解归一化指数函数—Softmax函数
在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广.它能将一个含任意实数的K维向量z"压缩"到另一个K维实向量σ(z)中,使得每一个元素 ...
- 机器学习入门(13)— Affine 仿射层、Softmax 归一化指数函数层实现
1. 一维 Affine 仿射层 我们回顾下之前为了计算加权信号的总和,使用了矩阵的乘积运算 NumPy 中是 np.dot() , 参照代码如下: In [7]: X = np.random.ran ...
- 机器学习入门(06)— 输出层多元分类、softmax 归一化指数函数以及输出层的神经元数量
输出层所用的激活函数,要根据求解问题的性质决定.一般地, 回归问题可以使用恒等函数,也就是说会将输入按原样输出: 二元分类问题可以使用 sigmoid 函数: 多元分类问题可以使用 softmax 函 ...
- 交叉熵函数cross_entropy与归一化指数函数softmax
交叉熵 交叉熵主要是用来判定实际的输出与期望的输出的接近程度,其数学公式如下: ...
- 关于SoftMax函数的一些介绍
前言 SoftMax函数是在机器学习中经常出现的,时常出现在输出层中.对于这个函数,大部分blog作者对于它介绍已经很完善了,包括如何玄学设计,如何使用等等,这里只是从数学来源上讨论下这个函数名字的来 ...
- 一分钟理解softmax函数(超简单)
做过多分类任务的同学一定都知道softmax函数.softmax函数,又称归一化指数函数.它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来.下图展示了softma ...
- softmax函数与交叉熵损失函数
本文主要介绍了当前机器学习模型中广泛应用的交叉熵损失函数与softmax激励函数. 这个损失函数主要应用于多分类问题,用于衡量预测值与实际值之间的相似程度. 交叉熵损失函数定义如下: LCE(y^,y ...
- What is the Softmax Function?详解机器学习中的Softmax函数【小白菜可懂】
目录 定义 公式 计算 Softmax vs Sigmoid Softmax vs Sigmoid 计算 Softmax vs Argmax Softmax vs Argmax 计算 应用 神经网络中 ...
- 计算机上指数函数的表示方法,归一化指数函数
在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广.它能将一个含任意实数的K维向量z"压缩"到另一个K维实向量σ(z)中,使得每一个元素 ...
最新文章
- [概统]本科二年级 概率论与数理统计 第三讲 离散型随机变量
- 外观模式(Facade) - 为系统分层次
- SpringBoot整合WebSocket时调用service和mapper的方法
- Tomcat 之 Session的活化和钝化 源码分析
- gc就是fullgc吗 major_线上出现fullgc问题如何排查?
- Codeforces Round #285 (Div. 2) D. Misha and Permutations Summation 康托展开 + 线段树
- windows采集音频
- linux内存管理:kmap、vmap、ioremap
- 亲戚的孩子说要寄养在我家,上学方便,怎么明确的拒绝?
- 太傻了!下次二面再回答不好“秒杀系统“设计原理,我就捶死自己...
- 39个SEO经典案例
- 编译原理实验c语言cfg文法,编译原理实验指导终稿.pdf
- 欧姆龙服务器数码管不显示问题,TM1640驱动数码管不显示问题
- 电力拖动自动控制系统(序)
- python基础知识学习_python学习(一) 基础知识
- 从ccps项目中学习bottle,sqlalchemy,jinja2
- JavaScript Core -- 不可小视的标点符号
- ChatGPT与文心一言对比思考
- 循迹智能小车c语言主程序,智能小车循迹、避障、红外遥控C语言代码
- mysql赋予用户权限