1. 两者都是把数据压缩到(0, 1)区间内,但sigmoid函数只处理二分类问题,softmax函数处理任意多分类问题,当n为2时,softmax函数就退化成了sigmoid函数。
  2. YOLOv3多标签分类使用的是sigmoid
  3. 参考:作者:读芯术   链接:https://www.zhihu.com/question/295247085/answer/720755769

函数分类大pk!sigmoid和softmax,到底分别怎么用?

设计模型执行分类任务(如对胸部X光检查到的疾病或手写数字进行分类)时,有时需要同时选择多个答案(如同时选择肺炎和脓肿),有时只能选择一个答案(如数字“8”)。本文将讨论如何应用Sigmoid函数或Softmax函数处理分类器的原始输出值。

神经网络分类器

分类算法有很多种,但本文讨论的内容只限于神经网络分类器。分类问题可通过不同神经网络进行解决,如前馈神经网络和卷积神经网络。

应用Sigmoid函数或Softmax函数

神经网络分类器最终结果为某一向量,即“原始输出值”,如[-0.5, 1.2, -0.1, 2.4],这四个输出值分别对应胸部X光检查后发现的肺炎、心脏肥大、瘤和脓肿。但这些原始输出值是什么意思?

将输出值转换为概率可能更容易理解。比起看似随意的“2.4”,患有糖尿病的可能性为91%,这种说法更便于患者理解。

Sigmoid函数或Softmax函数可以将分类器的原始输出值映射为概率。

下图显示了将前馈神经网络的原始输出值(蓝色)通过Sigmoid函数映射为概率(红色)的过程:

然后采用Softmax函数重复上述过程:

如图所示,Sigmoid函数和Softmax函数得出不同结果。

原因在于,Sigmoid函数会分别处理各个原始输出值,因此其结果相互独立,概率总和不一定为1,如图0.37 + 0.77 + 0.48 + 0.91 = 2.53。

相反,Softmax函数的输出值相互关联,其概率的总和始终为1,如图0.04 + 0.21 + 0.05 + 0.70 = 1.00。因此,在Softmax函数中,为增大某一类别的概率,其他类别的概率必须相应减少。

Sigmoid函数应用:

以胸部X光检查和入院为例

胸部X光片:一张胸部X光片能够同时显示多种疾病,因此胸部X射线分类器也需要同时显示多种病征。下图为一张显示肺炎和脓肿的胸部X光片,在右侧的标签栏中有两个“1”:

入院:目标是根据患者的健康档案,判断该患者将来入院的可能性。因此,分类问题可设计为:根据诊断可能导致患者未来入院的病症(如果有的话),对该患者现有的健康档案进行分类。导致患者入院的疾病可能有多种,因此答案可能有多个。

图表:下面两个前馈神经网络分别对应上述问题。在最后计算中,由Sigmoid函数处理原始输出值,得出相应概率,允许多种可能性并存——因胸部X射线可能反映出多种异常状态,则患者入院的病因可能不止一种。

Softmax函数应用:

以手写数字和Iris(鸢尾花)为例

手写数字:在区别手写数字(MNIST数据集:https://en.wikipedia.org/wiki/MNIST_database)时,分类器应采用Softmax函数,明确数字为哪一类。毕竟,数字8只能是数字8,不能同时是数字7。

Iris:Iris数据集于1936年引入(https://en.wikipedia.org/wiki/Iris_flower_data_set),一共包含150个数据集,分为山鸢尾、杂色鸢尾、维吉尼亚鸢尾3类,每类各有50个数据集,每个数据包含花萼长度、花萼宽度、花瓣长度、花瓣宽度4个属性。

以下9个示例摘自Iris数据集:

数据集中没有任何图像,但下图的杂色鸢尾(https://en.wikipedia.org/wiki/Iris_flower_data_set#/media/File:Iris_versicolor_3.jpg),可供你欣赏:

Iris数据集的神经网络分类器,要采用Softmax函数处理原始输出值,因为一朵鸢尾花只能是某一个特定品种——将其分为几个品种毫无意义。

关于“e”的注解

要理解Sigmoid和Softmax函数,应先引入 “e”。在本文中,只需了解e是约等于2.71828的数学常数。

下面是关于e的其他信息:

• e的十进制表示永远存在,数字出现完全随机——类似于pi。

• e常用于复利、赌博和某些概率分布的研究中。

• 下面是e的一个公式:

但e的公式不止一个。其计算方法有多种。

有关示例:https://www.intmath.com/exponential-logarithmic-functions/calculating-e.php

• 2004年,谷歌公司首次公开募股达2,718,281,828美元,即“e百万美元”。

• 维基百科中人类历史上著名的十进制数字e的演变(https://en.wikipedia.org/wiki/E_%28mathematical_constant%29#Bernoulli_trials),从1690年的一位数字开始,持续到1978年的116,000位数字:

Sigmoid函数和Softmax函数

Sigmoid =多标签分类问题=多个正确答案=非独占输出(例如胸部X光检查、住院)

• 构建分类器,解决有多个正确答案的问题时,用Sigmoid函数分别处理各个原始输出值。

• Sigmoid函数如下所示(注意e):

在该公式中,σ表示Sigmoid函数,σ(zj)表示将Sigmoid函数应用于数字Zj。 “Zj”表示单个原始输出值,如-0.5。 j表示当前运算的输出值。如果有四个原始输出值,则j = 1,2,3或4。在前面的例子中,原始输出值为[-0.5,1.2,-0.1,2.4],则Z1 = -0.5,Z2 = 1.2,Z3 = -0.1,Z4 = 2.4。

所以,

Z2,Z3、Z4 的计算过程同上。

由于Sigmoid函数分别应用于每个原始输出值,因此可能出现的输出情况包括:所有类别概率都很低(如“此胸部X光检查没有异常”),一种类别的概率很高但是其他类别的概率很低(如“胸部X光检查仅发现肺炎”),多个或所有类别的概率都很高(如“胸部X光检查发现肺炎和脓肿”)。

下图为Sigmoid函数曲线:

https://en.wikipedia.org/wiki/Sigmoid_function#/media/File:Logistic-curve.svg

Softmax =多类别分类问题=只有一个正确答案=互斥输出(例如手写数字,鸢尾花)

• 构建分类器,解决只有唯一正确答案的问题时,用Softmax函数处理各个原始输出值。

• Softmax函数的分母综合了原始输出值的所有因素,这意味着,Softmax函数得到的不同概率之间相互关联。

• Softmax函数表述如下:

除分母外,为综合所有因素,将原始输出值中的e ^ thing相加,Softmax函数与Sigmoid函数差别不大。换言之,用Softmax函数计算单个原始输出值(例如Z1)时,不能只计算Z1,分母中的Z1,Z2,Z3和Z4也应加以计算,如下所示:

Softmax函数的优势在于所有输出概率的总和为1:

区分手写数字时,用Softmax函数处理原始输出值,如要增加某一示例被分为“8”的概率,就要降低该示例被分到其他数字(0,1,2,3,4,5,6,7和/或9)的概率。

Sigmoid和Softmax的其他示例

总结

• 如果模型输出为非互斥类别,且可以同时选择多个类别,则采用Sigmoid函数计算该网络的原始输出值。

• 如果模型输出为互斥类别,且只能选择一个类别,则采用Softmax函数计算该网络的原始输出值。

sigmoid和softmax相关推荐

  1. 广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合、优缺点

    广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合.优缺点 ...

  2. ML/DL之激活函数/求导函数:ML中常用的AF激活函数(step_function、sigmoid、softmax、ReLU等)求导函数等代码实现之详细攻略

    ML/DL之激活函数/求导函数:ML中常用的AF激活函数(step_function.sigmoid.softmax.ReLU等)&求导函数等代码实现之详细攻略 目录 AF函数&求导函 ...

  3. DL之AF:机器学习/深度学习中常用的激活函数(sigmoid、softmax等)简介、应用、计算图实现、代码实现详细攻略

    DL之AF:机器学习/深度学习中常用的激活函数(sigmoid.softmax等)简介.应用.计算图实现.代码实现详细攻略 目录 激活函数(Activation functions)相关配图 各个激活 ...

  4. Sigmoid 与 Softmax 的区别

    Sigmoid 与 Softmax 的区别 结论 定义 图例 拓展:sigmoid.tanh求导 sigmoid求导 tanh求导 参考: Multi-label vs. Multi-class Cl ...

  5. sigmoid和softmax激活函数的区别

    一.简单说下sigmoid激活函数 解析: 常用的非线性激活函数有sigmoid.tanh.relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层.这里先简要介绍下最 ...

  6. ReLU,Sigmoid,Tanh,softmax,pipeline【基础知识总结】

    一.ReLU(Rectified Linear Activation Function) 1.优点 2.缺点 3.补充 1.Leaky ReLUs 2.参数化修正线性单元(PReLU) 3.随机纠正线 ...

  7. softmax sigmoid log softmax 辨析

    原文链接: sigmoid和softmax总结_老哥的专栏-CSDN博客_sigmoid和softmax区别 浅谈sigmoid函数和softmax函数_甘如荠-CSDN博客_sigmoid函数与so ...

  8. 广义线性模型、Logistic、sigmoid、softmax、多分类、与大数据、优缺点

    广义线性模型.广义线性模型的数学形式.Logistic回归.sigmoid函数.softmax函数.Logistic多分类.Logistic与大数据.Logistic回归优缺点总结 目录

  9. 深入深出Sigmoid与Softmax的血缘关系

    缘起逻辑回归 逻辑回归模型是用于二类分类的机器学习模型(不要说逻辑回归可以做多类分类啊喂,那是二类分类器的组合策略问题,而与逻辑回归分类器本身的构造没有半毛钱关系啊). 我们知道,在逻辑回归中,用于预 ...

  10. sigmoid和softmax总结

    sigmoid函数(也叫逻辑斯谛函数):  引用wiki百科的定义: A logistic function or logistic curve is a common "S" s ...

最新文章

  1. 《LINUX3.0内核源代码分析》第一章:内存寻址
  2. mint 15用fcitx框架安装中文谷歌输入法
  3. oracle 行送,Oracle 行专列
  4. IAR stm32中函数硬是要加上声明才能编译通过,记录一下
  5. mPaas上线应用检测
  6. 关于JVM的几个问题
  7. .net mysql limit 分页原理_浅谈MySQL分页Limit的性能问题
  8. 工作六年的前端开发在想什么
  9. javaee utf-8文件的转换
  10. 山东理工大计算机学院袁帅,山东理工大学学子讲坛暨第一届学生会学风建设交流会举办...
  11. 2021热门手机制作表格的软件
  12. 税控服务器红字信息表流程,跨月发票红冲(金税盘、税控盘)操作流程.docx
  13. 对接第三方支付接口-支付宝方式对接(我这边对接的是ecpay公司支付接口)
  14. 【IoT】产品设计:用实际案例,手把手教你写PRD(产品需求文档)
  15. [内附完整源码和文档] 基于PHP的网上购物系统设计与实现
  16. 看我如何拿下BC站的服务器
  17. 基于主机的入侵检测优缺点_[转]基于网络和主机的入侵检测比较,各自优缺点...
  18. MATLAB 画正态分布和对数正态分布的概率密度函数
  19. Facebook公司:如何删掉960万句“脏话”?
  20. 2006东京游戏展游历

热门文章

  1. python爬取链家深圳全部二手房的详细信息
  2. 屏蔽广告效果好的手机浏览器,这3款你一定不要错过
  3. VR乒乓球项目Unity3D 开发经验整理,4简单而有效的AI
  4. 树莓派人脸表情识别中期报告
  5. pdo连接mysql_php PDO连接mysql
  6. Step2:【C51】蜂鸣器发声实验
  7. net_speeder发双倍包加速
  8. nuc7 android tv,7代NUC小白超高清体验NUC7I3BNH
  9. 好用的谷歌浏览器插件
  10. OPPO小布助手正在改变普罗米修斯的世界