当前位置:网站首页>函数分类大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
边栏推荐
- Summary of template engine
- [Python 1-6] Python tutorial 1 -- number
- Examples of unconventional aggregation
- Do these mistakes in your resume affect your annual salary of one million?
- What is SVG?
- Learn to record and analyze
- 10个常见的软件架构模式
- Millet and oppo continue to soar in the European market, and Xiaomi is even closer to apple
- Solution to the problem of offline connection between ADB and mobile phone
- 二叉树的四种遍历方应用
猜你喜欢

模板引擎的整理归纳

新型存算一体芯片诞生,利好人工智能应用~

. net large data concurrency solution

.NET 大数据量并发解决方案

Flink: from introduction to Zhenxiang (3. Reading data from collection and file)

机械硬盘随机IO慢的超乎你的想象

Huawei has an absolute advantage in the 5g mobile phone market, and the market share of Xiaomi is divided by the market survey organization

基于阿里云日志服务快速打造简版业务监控看板

京东落地DevOps平台时爆发的冲突如何解决?

Application of four ergodic square of binary tree
随机推荐
聊聊Go代码覆盖率技术与最佳实践
Liteos message queuing actual combat
Liteos message queuing
区块链周报:数字货币发展写入十四五规划;拜登邀请MIT数字货币计划高级顾问加入总统过渡团队;委内瑞拉推出国营加密交易所
技术总监7年总结,如何进行正确的沟通?
大龄程序员没有出路吗?
Alibaba cloud accelerates its growth and further consolidates its leading edge
How does the system response time and throughput change with the increase of concurrency pressure during performance pressure testing
On the concurrency of update operation
wanxin finance
框架-SPI四种模式+通用设备驱动实现-源码
Solution of DEV-C + + unable to debug in Windows Environment
软件开发中如何与人协作? | 每日趣闻
Builder pattern
Stm32uberide download and install - GPIO basic configuration operation - debug (based on CMSIS DAP debug)
打工人,打工魂,抽终身会员,成为人上人!
Learn to record and analyze
Mac环境安装Composer
二叉树的四种遍历方应用
我用 Python 找出了删除我微信的所有人并将他们自动化删除了