精华内容
下载资源
问答
  • softmax函数图像
    千次阅读
    2020-07-12 22:39:46

    softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法:

    下面为大家解释一下为什么softmax是这种形式。

    首先,我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1

    softmax就是将在负无穷到正无穷上的预测结果按照这两步转换为概率的。

    1)将预测结果转化为非负数

    下图为y=exp(x)的图像,我们可以知道指数函数的值域取值范围是零到正无穷。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。

    2)各种预测结果概率之和等于1

    为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。

    下面为大家举一个例子,假如模型对一个三分类问题的预测结果为-3、1.5、2.7。我们要用softmax将模型结果转为概率。步骤如下:

    1)将预测结果转化为非负数

    y1 = exp(x1) = exp(-3) = 0.05

    y2 = exp(x2) = exp(1.5) = 4.48

    y3 = exp(x3) = exp(2.7) = 14.88

    2)各种预测结果概率之和等于1

    z1 = y1/(y1+y2+y3) = 0.05/(0.05+4.48+14.88) = 0.0026

    z2 = y2/(y1+y2+y3) = 4.48/(0.05+4.48+14.88) = 0.2308

    z3 = y3/(y1+y2+y3) = 14.88/(0.05+4.48+14.88) = 0.7666

    总结一下softmax如何将多分类输出转换为概率,可以分为两步:

    1)分子:通过指数函数,将实数输出映射到零到正无穷。

    2)分母:将所有结果相加,进行归一化。

    下图为斯坦福大学CS224n课程中最softmax的解释:

     

    更多相关内容
  • 一分钟理解softmax函数(超简单)

    万次阅读 多人点赞 2018-11-28 16:39:09
    做过多分类任务的同学一定都知道softmax函数softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法: 下面为大家...

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

    下面为大家解释一下为什么softmax是这种形式。

    首先,我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1。

    softmax就是将在负无穷到正无穷上的预测结果按照这两步转换为概率的。

    1)将预测结果转化为非负数

    下图为y=exp(x)的图像,我们可以知道指数函数的值域取值范围是零到正无穷。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。

    2)各种预测结果概率之和等于1

    为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。

    下面为大家举一个例子,假如模型对一个三分类问题的预测结果为-3、1.5、2.7。我们要用softmax将模型结果转为概率。步骤如下:

    1)将预测结果转化为非负数

    y1 = exp(x1) = exp(-3) = 0.05

    y2 = exp(x2) = exp(1.5) = 4.48

    y3 = exp(x3) = exp(2.7) = 14.88

    2)各种预测结果概率之和等于1

    z1 = y1/(y1+y2+y3) = 0.05/(0.05+4.48+14.88) = 0.0026

    z2 = y2/(y1+y2+y3) = 4.48/(0.05+4.48+14.88) = 0.2308

    z3 = y3/(y1+y2+y3) = 14.88/(0.05+4.48+14.88) = 0.7666

    总结一下softmax如何将多分类输出转换为概率,可以分为两步:

    1)分子:通过指数函数,将实数输出映射到零到正无穷。

    2)分母:将所有结果相加,进行归一化。

    下图为斯坦福大学CS224n课程中最softmax的解释:

    展开全文
  • SoftMax函数

    千次阅读 2019-09-26 11:10:43
    目录 1 Softmax的形式 ...4 softmax函数概率模型构建 5softmax函数优化 1 Softmax的形式 Softmax函数是在机器学习中经常出现的,时常出现在输出层中。 softmax的表达式: 而下面我们要...

    目录

    1 Softmax的形式

     2 hardmax的特性     

    3 softmax和hardmax的相似性

    4 softmax函数概率模型构建

    5 softmax函数优化


    1 Softmax的形式

           Softmax函数是在机器学习中经常出现的,时常出现在输出层中。

           softmax的表达式:

                   

          而下面我们要介绍的softmax“暂时”长相和它有些不一样,暂且叫做softmax_g:      

                             

           为什么叫softmax呢?根据CS224n的说法,主要是因为softmax函数的效果是能够让vector中最大的数被取到的概率非常大,同时又不至于像max函数那么极端使得取到其他数的概率为0,所以叫softmax。

     2 hardmax的特性     

            softmax函数其实是从hardmax演变而来的,hardmax函数其实是我们生活中很常见的一种函数,表达式是:            

                        

            表达的意思很清楚,从y和x中取较大的那个值,为了方便后续比较,我们将hardmax的形式换一下:

                                                                                     

             此时,函数本质功能没变,我们只是对定义域做了一个限制,即:

                   

             其图形如下:

                    

           很显然这个函数在 x = 1 处是连续不可导的,可导能帮我们做很多事,那我们有没有办法对他变形,找到一个连续可导的近似函数?

    3 softmax和hardmax的相似性

            此时就有了softmax_g函数:

                    

           指数函数有一个特点,就是变化率非常快。当x>y时,通过指数的放大作用,会使得二者差距进一步变大,即:

                    

            所以有:

                     

           所以g(x,y)表达式有:

                   

             因此根据上面的推导过程,g(x,y)约等于x,y中较大的值,即:

                     

            所以我们得出一个结论,g(x,y)是max{x,y}的近似函数,两个函数有相似的数学特性。我们再来看一下softmax_g函数的图像:

                   

            很显然这是一个连续处处可导的函数,这是一个非常重要的特性,g(x,y)即具有与max{x,y}的相似性,又避免了max{x,y}函数不可导的缺点。

             我们把两张图叠加到一起来看看,红色的折线是hardmax函数,他有一个尖尖的棱角,看起来很"hard"。蓝色的弧线看起来就平滑的多,不那么"hard",这就是softmax_g函数了。这就时softmax_g函数名称的由来。

             从图上可以看出,当x,y的差别越大时,softmax_ghardmax函数吻合度越高

                        

    4 softmax函数概率模型构建

            那么回到最初的问题,这个softmax_g函数和我们神经网络里面做分类层的softmax函数有什么关系呢?

            假设我们要从a,b两个未知数字中取一个较大的值,即max{a,b},那么取到两个数字的概率分别是多少呢?我们可以建立一个概率模型:

            1. 当a = b的时候,取a,b任意一个数字都可以,所以,取a或者取b的概率各50%。

                         

            2. 当a = 4,b = 6的时候,b比a更大,因此我们更倾向于取b,那么我们取到b的概率应该会更大一点

                                                                                                                                         

            3. 当a = 8,b = 2的时候,a比b更大,因此我们更倾向于取a,那么我们取到a的概率应该会更大一点

                                                                                                                                           

            当变量变多时,hardmax就变成了max{s1,s2,s3,s4,...sn},此时根据我们假设的概率模型,取到每一个样本点的概率就是:

                         

             注:该公式中的max 函数中的参数。

            对于神经网络来说,训练的过程中处理损失调整权重矩阵的时候,需要用到求导。在第二部分我们已经了解到,hardmax函数并不是处处可导的,那么此时就用hardmax的近似函数softmax_g来代替他,我们已知二者表达式之间的关系:

                        

            因此,根据hardmax函数的表达式,仿照该公式,使用参数代替,带入,得出softmax概率模型表达式

                        

            soft maximumhard maximum函数的近似,并且同hard一样是凸函数,它的方向变化是连续的、光滑的、可导的(敲黑板,这是重点),并且实际上是可以求任意阶导数的。这些性质使其在凸优化中具有良好的特性,事实上最早引入soft maximum就是在优化学科中(optimization)。

    5 softmax函数优化

            注意到,soft maximum_g的近似程度实际上依赖于(两数之间的)scale(常翻译为尺度、这里应理解为比例、数量范围意思)。如果我们对 x,y 乘上比较大的一个常数,那么soft maximum_g将会更加接近hard maximum。例如g(1,2)=2.31 ,但是g(10,20)=20.00004 。所以我们可以设计一个hardness因子在soft maximum_g函数中。例如:

                      

            通过调节k,可以自由的让soft maximum_g逼近maximum。而且对任意给定k,soft maximum_g函数依然是可导的,但是其导数大小随着k的增加而增加,极限为无穷大,此时soft 收敛到hard maximum。

            虽然soft maximum_g的数学理论已经很清楚了,但是在实际计算中,还是会遇到一些问题,主要是因为计算机在进行浮点数计算的时候,存在overflow 和 underflow 问题,简而言之,就是计算的时候,前者太大,计算机认为是无穷大,后者太小,计算机直接等于零。所以带来一系列奇怪的问题。

            解决的方法也很简单,利用关系:

                     

            证明:

                       

            你会发现通过这样的手段,假如我们选取kx,y较大的数,即k = max {x,y} 。那么(4)中两项一个为0,一个为负数。自然就不会溢出了。

            虽然其中“ exp(minimum - maximum) ”依然可能下溢到0,但是此时不影响我们返回maximum值。实际上从等价计算式子也能看出soft maximum函数的一些特点,首先,其一定大于hard 的结果;其次,当x,y两个值差异比较大的时候,soft和hard的结果越接近。当x,y的值很接近的时候,soft和hard的值偏离程度变大,特别是当x,y相等,偏离最远,近似程度最差。

    总结:

            在softmax函数对vector值进行计算,转换为[0, 1]区间的概率值的时候,往往会先对vector中每个元素减去一个max(vector)值。

            那么为什么要对每一个x减去一个max值呢?从需求上来说,如果x的值没有限制的情况下,当 x 线性增长,e 指数函数下的x 就呈现指数增长,一个较大的x(比如1000)就会导致程序的数值溢出,导致程序error。所以需求上来说,如果能够将所有的x 数值控制在 0 及 0 以下,则不会出现这样的情况,这也是为什么不用min而采用max的原因。

            数学上保证正确性:即正确性的关键就是要证明:softmax(x)=softmax(x+c)

             

            上面就是简单的数学推导过程,不难发现,对任意常数c来说,都不会影响softmax的结果。所以只要把常数c设置为-max就可以实现上面的优化效果。

     

    展开全文
  • sofmtax前向传播及反向传播过程,后续只需通过外部优化算法进行迭代计算即可。
  • 详解softmax函数

    千次阅读 2021-05-19 17:52:38
    做过多分类任务的同学一定都知道softmax函数softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法: 下面为大家...

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

    下面为大家解释一下为什么softmax是这种形式。

    首先,我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1。

    softmax就是将在负无穷到正无穷上的预测结果按照这两步转换为概率的。

    1)将预测结果转化为非负数

    下图为y=exp(x)的图像,我们可以知道指数函数的值域取值范围是零到正无穷。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。

    2)各种预测结果概率之和等于1

    为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。

    下面为大家举一个例子,假如模型对一个三分类问题的预测结果为-3、1.5、2.7。我们要用softmax将模型结果转为概率。步骤如下:

    1)将预测结果转化为非负数

    y1 = exp(x1) = exp(-3) = 0.05

    y2 = exp(x2) = exp(1.5) = 4.48

    y3 = exp(x3) = exp(2.7) = 14.88

    2)各种预测结果概率之和等于1

    z1 = y1/(y1+y2+y3) = 0.05/(0.05+4.48+14.88) = 0.0026

    z2 = y2/(y1+y2+y3) = 4.48/(0.05+4.48+14.88) = 0.2308

    z3 = y3/(y1+y2+y3) = 14.88/(0.05+4.48+14.88) = 0.7666

    总结一下softmax如何将多分类输出转换为概率,可以分为两步:

    1)分子:通过指数函数,将实数输出映射到零到正无穷。

    2)分母:将所有结果相加,进行归一化。

    下图为斯坦福大学CS224n课程中最softmax的解释:

    展开全文
  • return np.array(dX).reshape(*X.shape) # 但是X.shape : n_sample, n_in , 因为是softmax,所以n_in == n_out. # 这样就得到jacobin矩阵。 其中的 dL/dy = (dL/dy1,dL/dy2,....)^T shape: samples, n_out. X shape...
  • softmax函数

    2021-01-18 15:28:39
    softmax函数 softmax函数softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值...
  • 一文详解Softmax函数

    千次阅读 2020-04-30 18:25:37
    逻辑回归算法本身并不难,最关键的步骤就是将线性模型输出的实数域映射到[0, 1]表示概率分布的有效实数空间,其中Sigmoid函数刚好具有这样的功能。sigmoid激活函数例如使用逻辑回归算法预测患者是否有恶性肿...
  • 做过多分类任务的同学一定都知道softmax函数softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法: 下面为大家...
  • Softmax函数

    2022-07-10 11:34:45
    Softmax函数
  • 神经网络之softmax函数

    千次阅读 2019-06-15 11:43:49
    1.什么是softmax函数: 首先给出softmax函数的公式: 这个式子表示假设输出层共有n个神经元,计算第k个神经元的输出。softmax函数的分子是输出层输入信号的指数函数,分母是所有输入信号的指数函数的和。 ...
  • 激活函数是确定神经网络输出的数学方程式。 激活函数的作用:给神经元引入了非线性因素... 函数图像 适合场景 Softmax 多分类任务输出层 Sigmoid 二分类任务输出层,模型隐藏层 Tanh
  • softmax函数求导

    千次阅读 2021-09-22 10:43:04
    softmax 1. 概念 softmax 的核心在于 soft,而 soft 有软的含义,与之相对的是 hard 硬。很多场景中需要我们找出数组所有元素中值最大的元素,是指上都是求的 hardmax。 softmax 定义: softmax(zi)=ezi∑j=1nezj ...
  • softmax函数是把K个实值转换为另外K个实值并使K个实值之和为1的函数。输入数值可以是正数/负数/0或者几种的组合,经过softmax函数转换为[0,1]之间的数值,以便于用来描述概率分布。如果一个输入数值很小或负数,...
  • softmax 图像及代码

    千次阅读 2020-01-28 12:23:32
    softmax import numpy as np import matplotlib.pyplot as plt def softmax(x): orig_shape=x.shape if len(x.shape)>1: #Matrix #shift max whithin each row constant_shif...
  • softmax函数理解

    2018-05-05 16:50:00
    softmax函数理解 首先,我们要清楚softmax函数一般是用来做多分类的。维基百科上给出如下定义: 直观理解就是元素的指数值 比上 所有元素指数值和! 附上李宏毅教授PPT上的图更容易理解:   ...
  • Pytorch深度学习(六):Softmax函数实现多分类 参考B站课程:《PyTorch深度学习实践》完结合集 传送门:《PyTorch深度学习实践》完结合集 一、预备知识 多分类 与之前的二分类不同,这个例子要识别手写数字的多分类...
  • Sigmoid函数与Softmax函数的区别与联系

    千次阅读 多人点赞 2020-04-11 21:12:58
    目录 缘起逻辑回归 Sigmoid Softmax 缘起逻辑回归 逻辑回归模型是用于二类分类的机器学习模型...(小夕要讲大事,忽略偏置项参数和向量转置这种细节啦),其中sigmoid函数图像看起来是这样的: 因此,我们将...
  • 1.softmax函数的正推原理,softmax的代数和几何意义,softmax为什么能用作分类预测,softmax链式求导的过程。 2.从数学的角度上研究了神经网络为什么能通过反向传播来训练网络的原理。 3.结合信息熵理论...
  • 点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来自 | 知乎 作者 |LinT仅作学术交流,如有侵权,请联系删除0. 引言Softmax函数几乎是深度学习中...
  • 1、提到二分类问题容易想到逻辑回归算法,而逻辑回归算法最关键的步骤就是将线性模型输出的实数域映射到[0, 1]表示概率分布的有效实数空间,其中Sigmoid函数和softmax函数刚好具有这样的功能。 2、Sigmoid函数 当...
  • 比如前面感知机识别香蕉还是苹果,一般会训练一个分类器,输入一幅图像,输出该图像是苹果的概率为p,对p进行四舍五入,输出结果为0或者1,这就是经典的二分类问题。 多分类问题:     和二...
  • 输出层的激活函数——softmax函数

    千次阅读 2021-05-07 21:55:50
    概括 机器学习的问题大致可以分为分类问题和回归问题...一般,回归问题可以用恒等函数,二元分类问题可以用sigmoid函数,多元分类问题可以用softmax函数。 恒等函数:输出=输入 softmax函数:输出为一个函数 其中exp
  • Softmax函数详解与推导

    千次阅读 2019-04-19 18:18:46
    Softmax函数详解与推导 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类! 假设我们有一个数组,V,Vi表示V中的第i个元素,那么这...
  • logisitic和softmax函数

    2019-06-25 11:10:47
    1,logistic函数 其实logistic函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线。logistic函数的公式形式如下: 其中,x0表示了函数曲线的中心(sigmoid midpoint),k是曲线的坡度,表示f(x)在...
  • Softmax激活函数

    千次阅读 2022-03-27 14:52:09
    在多分类问题中,我们通常回使用softmax函数作为网络输出层的激活函数,softmax函数可以对输出值进行归一化操作,把所有输出值都转化为概率,所有概率值加起来等于1,softmax的公式为 简单的Softmax计算例子 ...
  • softmax函数原理

    2021-07-18 12:21:13
    做过多分类任务的同学一定都知道softmax函数softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法: 下面为大家...
  • 【pytorch】softmax函数

    千次阅读 2022-06-13 07:56:22
    做过多分类任务的同学一定都知道softmax函数softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法: 下面为大家...
  • 1 Sigmoid函数 1.1 定义 Sigmoid函数是一个在生物学中常见的S型的函数,也称为S型生长曲线。Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。 1.2公式 其对x的导数可以用自身表示: 1.2...
  • SoftMax函数的简介、公式推导、公式化简,以及代码实现

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,143
精华内容 19,257
关键字:

softmax函数图像

友情链接: 3.4.1.tar.gz