当前位置:网站首页>函数分类大pk!sigmoid和softmax,到底分别怎么用?
函数分类大pk!sigmoid和softmax,到底分别怎么用?
2020-11-08 16:17:00 【spiritboy】
设计模型执行分类任务(如对胸部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函数曲线:
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函数计算该网络的原始输出值。
版权声明
本文为[spiritboy]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/3337401/blog/4708235
边栏推荐
- 使用K3S创建本地开发集群
- Builder pattern
- 模板引擎的整理归纳
- 一分钟全面看懂forsage智能合约全球共享以太坊矩阵计划
- Tips and skills of CSP examination
- 阿里云加速增长,进一步巩固领先优势
- AI周报:允许“员工自愿降薪”;公司回应:员工内心高兴满意;虎牙HR将员工抬出公司;瑞典禁用华为中兴5G设备
- Flink from introduction to Zhenxiang (10. Sink data output elasticsearch)
- 数据库连接报错之IO异常(The Network Adapter could not establish the connection)
- LiteOS-消息队列-实战
猜你喜欢
Development of uni app imitating wechat app
(O)ServiceManager分析(一)之BinderInternal.getContextObject
C++的那些事儿:从电饭煲到火箭,C++无处不在
我用 Python 找出了删除我微信的所有人并将他们自动化删除了
漫画:寻找股票买入卖出的最佳时机(整合版)
京东落地DevOps平台时爆发的冲突如何解决?
Learn to record and analyze
佛萨奇forsage以太坊智能合约是什么?以太坊全球滑落是怎么回事
Suitable for C / C + + novice learning some projects, do not give me to miss!
STM32CubeIDE下载安装-GPIO基本配置操作-Debug调试(基于CMSIS DAP Debug)
随机推荐
数据库连接报错之IO异常(The Network Adapter could not establish the connection)
华为在5G手机市场占据绝对优势,市调机构对小米的市占出现分歧
Millet and oppo continue to soar in the European market, and Xiaomi is even closer to apple
Mac环境安装Composer
Flink from introduction to Zhenxiang (7. Sink data output file)
(O)ServiceManager分析(一)之BinderInternal.getContextObject
Station B STM32 video learning
重返全球第三,小米做对了什么?
The birth of a new integrated memory and computing chip is conducive to the application of artificial intelligence~
Don't release resources in finally, unlock a new pose!
The network adapter could not establish the connection
jsliang 求职系列 - 07 - Promise
Framework - SPI four modes + general device driver implementation - source code
谷歌开源能翻译101种语言的AI模型,只比Facebook多一种
It's just right. It's the ideal state
啥是数据库范式
进入互联网得知道的必备法律法规有哪些?
Flink: from introduction to Zhenxiang (3. Reading data from collection and file)
Gopherchina 2020 Conference
svg究竟是什么?