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实现相关推荐

  1. 通俗理解归一化指数函数—Softmax函数

    在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广.它能将一个含任意实数的K维向量z"压缩"到另一个K维实向量σ(z)中,使得每一个元素 ...

  2. 机器学习入门(13)— Affine 仿射层、Softmax 归一化指数函数层实现

    1. 一维 Affine 仿射层 我们回顾下之前为了计算加权信号的总和,使用了矩阵的乘积运算 NumPy 中是 np.dot() , 参照代码如下: In [7]: X = np.random.ran ...

  3. 机器学习入门(06)— 输出层多元分类、softmax 归一化指数函数以及输出层的神经元数量

    输出层所用的激活函数,要根据求解问题的性质决定.一般地, 回归问题可以使用恒等函数,也就是说会将输入按原样输出: 二元分类问题可以使用 sigmoid 函数: 多元分类问题可以使用 softmax 函 ...

  4. 交叉熵函数cross_entropy与归一化指数函数softmax

    交叉熵 交叉熵主要是用来判定实际的输出与期望的输出的接近程度,其数学公式如下:                                                             ...

  5. 关于SoftMax函数的一些介绍

    前言 SoftMax函数是在机器学习中经常出现的,时常出现在输出层中.对于这个函数,大部分blog作者对于它介绍已经很完善了,包括如何玄学设计,如何使用等等,这里只是从数学来源上讨论下这个函数名字的来 ...

  6. 一分钟理解softmax函数(超简单)

    做过多分类任务的同学一定都知道softmax函数.softmax函数,又称归一化指数函数.它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来.下图展示了softma ...

  7. softmax函数与交叉熵损失函数

    本文主要介绍了当前机器学习模型中广泛应用的交叉熵损失函数与softmax激励函数. 这个损失函数主要应用于多分类问题,用于衡量预测值与实际值之间的相似程度. 交叉熵损失函数定义如下: LCE(y^,y ...

  8. What is the Softmax Function?详解机器学习中的Softmax函数【小白菜可懂】

    目录 定义 公式 计算 Softmax vs Sigmoid Softmax vs Sigmoid 计算 Softmax vs Argmax Softmax vs Argmax 计算 应用 神经网络中 ...

  9. 计算机上指数函数的表示方法,归一化指数函数

    在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广.它能将一个含任意实数的K维向量z"压缩"到另一个K维实向量σ(z)中,使得每一个元素 ...

最新文章

  1. [概统]本科二年级 概率论与数理统计 第三讲 离散型随机变量
  2. 外观模式(Facade) - 为系统分层次
  3. SpringBoot整合WebSocket时调用service和mapper的方法
  4. Tomcat 之 Session的活化和钝化 源码分析
  5. gc就是fullgc吗 major_线上出现fullgc问题如何排查?
  6. Codeforces Round #285 (Div. 2) D. Misha and Permutations Summation 康托展开 + 线段树
  7. windows采集音频
  8. linux内存管理:kmap、vmap、ioremap
  9. 亲戚的孩子说要寄养在我家,上学方便,怎么明确的拒绝?
  10. 太傻了!下次二面再回答不好“秒杀系统“设计原理,我就捶死自己...
  11. 39个SEO经典案例
  12. 编译原理实验c语言cfg文法,编译原理实验指导终稿.pdf
  13. 欧姆龙服务器数码管不显示问题,TM1640驱动数码管不显示问题
  14. 电力拖动自动控制系统(序)
  15. python基础知识学习_python学习(一) 基础知识
  16. 从ccps项目中学习bottle,sqlalchemy,jinja2
  17. JavaScript Core -- 不可小视的标点符号
  18. ChatGPT与文心一言对比思考
  19. 循迹智能小车c语言主程序,智能小车循迹、避障、红外遥控C语言代码
  20. mysql赋予用户权限

热门文章

  1. 学习react之React 入门(阮一峰教程笔记)
  2. WEB 渗透题(二)
  3. Unity中制作UI光晕效果(发光效果)
  4. 系统基于 php 开发,基于PHP技术的计算机基础考试系统的开发
  5. python画累积分布图_python累积分布图
  6. 功能模块提测前要做的几件事
  7. Python numpy.transpose 详解
  8. Camtasia2023最新版电脑视频录屏记录编辑软件
  9. 深入剖析 fork 内核实现(Linux kernel 2.6.11)
  10. 交友项目【基础环境搭建】