当前位置:网站首页>函数分类大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
边栏推荐
- It's just right. It's the ideal state
- What is the database paradigm
- LiteOS-消息队列-实战
- STM32CubeIDE下载安装-GPIO基本配置操作-Debug调试(基于CMSIS DAP Debug)
- Solution to the problem of offline connection between ADB and mobile phone
- Design by contract (DBC) and its application in C language
- 新型存算一体芯片诞生,利好人工智能应用~
- Workers, workers soul, draw lifelong members, become a person!
- C + + things: from rice cookers to rockets, C + + is everywhere
- LiteOS-消息队列
猜你喜欢
学习记录并且简单分析
漫画:寻找股票买入卖出的最佳时机(整合版)
Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯
Build simple business monitoring Kanban based on Alibaba cloud log service
Suitable for C / C + + novice learning some projects, do not give me to miss!
啥是数据库范式
Flink: from introduction to Zhenxiang (6. Flink implements UDF function - realizes more fine-grained control flow)
Application of four ergodic square of binary tree
The birth of a new integrated memory and computing chip is conducive to the application of artificial intelligence~
一分钟全面看懂forsage智能合约全球共享以太坊矩阵计划
随机推荐
.NET 大数据量并发解决方案
How does Alibaba cloud's maxcompute add (original ODPs) work?
3、 The parameters of the function
Summary of rendering of water wave and caustics (etching) in webgl
laravel8更新之速率限制改进
nat转换的ip跟端口ip不相同的解决方法
Examples of unconventional aggregation
Improvement of maintenance mode of laravel8 update
The network adapter could not establish the connection
Talk about go code coverage technology and best practices
Talking about, check the history of which famous computer viruses, 80% of the people do not know!
我用 Python 找出了删除我微信的所有人并将他们自动化删除了
我们做了一个医疗版MNIST数据集,发现常见AutoML算法没那么好用
Mac环境安装Composer
软件开发中如何与人协作? | 每日趣闻
GopherChina 2020大会
金融领域首个开源中文BERT预训练模型,熵简科技推出FinBERT 1.0
非常规聚合问题举例
Is there no way out for older programmers?
大龄程序员没有出路吗?