详解softmax函数「建议收藏」

做过多分类任务的同学一定都知道softmax函数。softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法:下面为大家解释一下为什么softmax是这种形式。首先,我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1。softmax就是将在负无穷到正无穷上的预测结果按照…

大家好,又见面了,我是你们的朋友全栈君。

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

详解softmax函数「建议收藏」

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

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

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

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

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

详解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函数「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129700.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • word2vec 原理

    word2vec 原理转自:http://www.cnblogs.com/iloveai/p/word2vec.htmlSVD分解:低维词向量的间接学习既然基于co-occurrence矩阵得到的离散词向量存在着高维和稀疏性的问题,一个自然而然的解决思路是对原始词向量进行降维,从而得到一个稠密的连续词向量。第一个出场的对原始矩阵进行降维的方法是奇异值分解(SVD)。SVD的基本思想是,通过将原co-occurrence…

    2022年5月16日
    43
  • mysql 如何修改用户密码_MySQL如何更改用户密码

    mysql 如何修改用户密码_MySQL如何更改用户密码在MySQL中,可以使用3种不同的语句更改用户帐户密码:1、UPDATE2、SETPASSWORD3、ALTERUSER但在更改帐户密码之前,应记住两件非常重要的事情:1、要更改密码的用户帐户详细信息。2、正在更改密码的用户正在使用该应用程序,因为如果在不更改应用程序的连接字符串的情况下更改密码,则应用程序将无法连接到数据库服务器。现在让我们学习如何使用上面提到的三个SQL语句在SQL中更改用…

    2022年6月29日
    28
  • eclipse代码中文乱码解决方法

    eclipse代码中文乱码解决方法eclipse代码中文乱码解决方法:窗口→首选项→常规→工作空间→文本文件编码→其他UTF-8

    2022年5月11日
    45
  • mysql connector安装教程_Debezium:mysql connector安装[通俗易懂]

    mysql connector安装教程_Debezium:mysql connector安装[通俗易懂]前言:debezium提供了多种基于kafka的连接器,方便对RDB做数据流处理,包括:MongoDB,Oracle,Mysql,SqlServer,Postgresql,可扩展性强,代码可控,本篇介绍基于mysql的安装使用插件版本:Kafka:CDK3.10(相当于Kafka1.1版本),这里需要kafka0.10以上版本才能支持Debezium:0.83Mysql:5.5(mysql5…

    2022年7月15日
    15
  • mysql 把表名改成大写_mysql将表名改成大写的实例

    mysql 把表名改成大写_mysql将表名改成大写的实例MYSQL将表名称修改成大写的存储过程本文为大家分享了MYSQL将表名称修改成大写的存储过程,具体内容如下1.条件:1.1Mysql设置对大小写敏感2.执行下述存储过程:#calluppercase(‘库名’)DROPPROCEDUREIFEXISTSuppercase;CREATEPROCEDUREuppercase(INdbnameVARCHAR(200))BEGIND…

    2022年5月27日
    31
  • 如何确定pip安装成功,如何确定pygame安装成功

    如何确定pip安装成功,如何确定pygame安装成功一、如何确定pip安装成功?方法:在终端窗口中,输入piplist,能看到版本信息。(前提是要先将pip加入到环境变量中)二、如何确定pygame安装成功?方法,在终端窗口中,输入python-mpygame.examples.aliens,如果安装成功,会弹出一个游戏画面。示例游戏画面:…

    2022年5月23日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号