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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【组合数求模】 转自AekdyCoin

    【组合数求模】 转自AekdyCoin大家都在中学阶段学习了组合数的定义:这个表示的是从n个元素中选取m个元素的方案数。(PS.组合数求模似乎只用在信息学竞赛和ACM竞赛等计算机编程设计大赛中……,求在现实中的运用) 可以知道当n,m 取得比较大的时候,组合数可能很大很大(天文数字?无法度量?)例如C(100,50)=100891344545564193334812497256, 于是计算机的64

  • Mac安装telnet_苹果电脑怎么telnet

    Mac安装telnet_苹果电脑怎么telnet问题描述新版本的macos取消了内置的telnet命令安装homebrew1、查看是否已经安装homebrewbrewhelp2、安装homebrew/usr/bin/ruby-e”$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)”使用homebrew安装telnet安装telnetbrewinstalltelnet查看是否安装成功telnet..

  • TOP命令详解(TOP10)

    原文http://rockhooray.blog.51cto.com/938613/832621一概述在终端中可以查看top命令的路径和所属软件包。top程序对运行的系统提供一个动态的实时的监控。它能够显示系统的总体信息和一些正被Linux内核管理的任务。它所显示的系统总体信息的样式以及任务信息显示的样式,顺序和大小都是可以由用户配置,而且配置信息可以重启后永久生

  • jsonObject转map_java 对象转map

    jsonObject转map_java 对象转map直接上代码,实现了对嵌套的对象进行转换。privateMap<String,Object>toMap(JSONObjectobject){Map<String,Object>map=newHashMap<String,Object>();Objectvalue;Stringkey;for(Iterator<?&

  • IntelliJ IDEA 如何配置git[通俗易懂]

    提示:IntelliJIDEA以下简称IDEA;IntelliJIDEA配置git:需要的材料:一、git.exe二、配置git.exe的环境变量三、IDEA编辑器接下来就是配置了:①你必须去github官网下载一个git.exe,不知道官网的请点击这里,下载完之后安装即可。②安装完之后打开所在目录找到bin这个文件夹,我的是在D:\软件\GitHub\G…

  • JVM垃圾回收机制

    JVM垃圾回收机制

    2021年11月12日

发表回复

您的电子邮箱地址不会被公开。

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