sigmoid与softmax的区别与联系

AI 内容分享(十八):秒懂AI-深度学习四种常用激活函数:Sigmoid、Tanh、ReLU和Softmax Softmax是一种常用的激活函数,主要用于多分类问题中,可以将输入的神经元转化为概率分布。ReLU的输出范围是[0, +∞),而输入值为负数时输出为0,这导致ReLU输出的分布不对称,限制了生成的多样性。Leaky ReLU在输入小于或等于0时,输出一个较小的斜率,避免了完全的“死亡神经元”问题。当输入值小于或等于0时,ReLU的输出为0,导致该神经元失效,这种现象称为“死亡神经元”。与Leaky ReLU不同的是,PReLU的斜率不是固定的,而是可以根据数据进行学习优化。 阅读详情
AI摘要

本文详细介绍了Sigmoid和Softmax两种激活函数的特性、优缺点以及它们在二分类和多分类任务中的应用。Sigmoid适用于二分类,输出概率值,但存在梯度消失问题;Softmax用于多分类,输出归一化的概率分布,解决了Sigmoid在多分类中的不足。两者在特定情况下可以相互转换,但在多类别任务中,Softmax更为常用。

阅文原文

Softmax与Sigmoid有哪些区别与联系?

1. Sigmoid函数

S i g m o i d Sigmoid Sigmoid函数也叫 L o g i s t i c Logistic Logistic函数,将输入值压缩到 ( 0 , 1 ) (0,1) (0,1)区间之中,其函数表达式为:
S i g m o i d ( x ) = 1 1 + e − x Sigmoid(x) =\frac{1}{1+e^{-x}} Sigmoid(x)=1+e−x1​
函数图像如图所示:

其求导之后的表达式为:
Sigmoid ⁡ ′ ( x ) = Sigmoid ⁡ ( x ) ⋅ ( 1 − Sigmoid ⁡ ( x ) ) \operatorname{Sigmoid}^{\prime}(x)=\operatorname{Sigmoid}(x) \cdot(1-\operatorname{Sigmoid}(x)) Sigmoid′(x)=Sigmoid(x)⋅(1−Sigmoid(x))
其梯度的导数图像如:

对于 S i g m o i d Sigmoid Sigmoid函数,其优点为:

  • S i g m o i d Sigmoid Sigmoid函数的输出在 ( 0 , 1 ) (0,1) (0,1)之间,我们通常把它拿来作为一个二分类的方案。其输出范围有限,可以用作输出层,优化稳定。
  • S i g m o i d Sigmoid Sigmoid函数是一个连续函数,方便后续求导。

其缺点为:

  • 从函数的导函数可以得到,其值范围为(0, 0.25),存在梯度消失的问题。
  • S i g m o i d Sigmoid Sigmoid函数不是一个零均值的函数,导致后一层的神经元将得到上一层非 0 0 0均值的信号作为输入,从而会对梯度产生影响。
  • S i g m o i d Sigmoid Sigmoid函数是一个指数函数的激活函数,我们把每次基本运算当作一次 F L O P s FLOPs FLOPs(Floating Point Operations Per Second),则 S i g m o d Sigmod Sigmod函数包括求负号,指数运算,加法与除法等4 F L O P s FLOPs FLOPs的运算量,预算量较大。而如 R e l u ( x ) = m a x ( 0 , x ) Relu(x)=max(0, x) Relu(x)=max(0,x),为 1 F L O P s 1FLOPs 1FLOPs。

**对于非互斥的多标签分类任务,且我们需要输出多个类别。如一张图我们需要输出是否是男人,是否戴了眼镜,我们可以采用 S i g m o i d Sigmoid Sigmoid函数来输出最后的结果。**如最后 S i g m o i d Sigmoid Sigmoid的输出为 [ 0.01 , 0.02 , 0.41 , 0.62 , 0.3 , 0.18 , 0.5 , 0.42 , 0.06 , 0.81 ] [0.01, 0.02, 0.41, 0.62, 0.3, 0.18, 0.5, 0.42, 0.06, 0.81] [0.01,0.02,0.41,0.62,0.3,0.18,0.5,0.42,0.06,0.81],我们通过设置一个概率阈值,比如 0.3 0.3 0.3,如果概率值大于 0.3 0.3 0.3,则判定类别符合,那么该输入样本则会被判定为类别 3 3 3、类别 4 4 4、类别 5 5 5、类别 7 7 7及类别 8 8 8,即一个样本具有多个标签。

2. Softmax函数

S o f t m a x Softmax Softmax函数又称归一化指数函数,函数表达式为:
y i = Softmax ⁡ ( x i ) = e x i ∑ j = 1 n e x j y_{i}=\operatorname{Softmax}(x_{i})=\frac{e^{x_{i}}}{\sum_{j=1}^{n} e^{x_{j}}} yi​=Softmax(xi​)=∑j=1n​exj​exi​​
其中, i ∈ [ 1 , n ] i \in [1, n] i∈[1,n]。 ∑ i y i = 1 \sum_{i} y_{i}=1 ∑i​yi​=1。如网络输出为 [ − 20 , 10 , 30 ] [-20, 10, 30] [−20,10,30],则经过 S o f t m a x Softmax Softmax层之后,输出为 [ 1.9287 e − 22 , 2.0612 e − 09 , 1.0000 e + 00 ] [1.9287e-22, 2.0612e-09, 1.0000e+00] [1.9287e−22,2.0612e−09,1.0000e+00]。

对于 S o f t m a x Softmax Softmax,往往我们会在面试的时候,需要手写 S o f t m a x Softmax Softmax函数,这里给出一个参考版本。

import numpy as np
def softmax( f ):
    # 为了防止数值溢出,我们将数值进行下处理
    # f: 输入值
    f -= np.max(f) # f becomes [-666, -333, 0]
    return np.exp(f) / np.sum(np.exp(f))  

针对 S o f t m a x Softmax Softmax函数的反向传播,这里给出手撕反传的推导过程,主要是分两种情况:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUfStbnF-1646837231972)(https://user-images.githubusercontent.com/47493620/117547544-aff0a780-b062-11eb-8b98-c0b8154d1293.png)]
学习链接

因此,不失一般性,扩展成矩阵形式则为:

∂ Y ∂ X = diag ⁡ ( Y ) − Y T ⋅ Y ( \frac{\partial Y}{\partial X}=\operatorname{diag}(Y)-Y^{T} \cdot Y( ∂X∂Y​=diag(Y)−YT⋅Y( 当Y的shape为 ( 1 , n ) (1, \mathrm{n}) (1,n) 时)。后面在下一题中,我们会将 S o f t m a x Softmax Softmax与 C r o s s Cross Cross E n t r o p y Entropy Entropy L o s s Loss Loss进行结合,再来推导前向与反向。

因此,当我们的任务是一个互斥的多类别分类任务(如imagenet分类),网络只能输出一个正确答案,我们可以用 S o f t m a x Softmax Softmax函数处理各个原始的输出值。从公式中,我们可以看到 S o f t m a x Softmax Softmax函数的分母是综合到了所有类别的信息。通常我们也会把 S o f t m a x Softmax Softmax函数的输出,这主要是由于 S o f t m a x Softmax Softmax函数先拉大了输入向量元素之间的差异(通过指数函数),然后才归一化为一个概率分布,在应用到分类问题时,它使得各个类别的概率差异比较显著,最大值产生的概率更接近 1 1 1,这样输出分布的形式更接近真实分布当作网络的置信度。

对于 S o f t m a x Softmax Softmax函数而言,我们可以从不同的角度来理解它:

  • A r g m a x Argmax Argmax是一个暴力的找最大值的过程,最后的输出是以一个 O n e − h o t One-hot One−hot形式,将最大值的位置设置为 1 1 1,其余为 0 0 0。这样的话,则在网络训练中,是不可导的,我们采用 S o f t m a x Softmax Softmax看作是 A r g m a x Argmax Argmax的平滑近似,从而可以使得网络可导。
  • S o f t m a x Softmax Softmax将输入向量归一化映射到一个类别概率分布,即 n n n个类别上的概率分布,因此我们常将 S o f t m a x Softmax Softmax放到 M L P MLP MLP 的最后一层。
  • 从概率图角度, S o f t m a x Softmax Softmax可以理解为一个概率无向图上的联合概率。

3. 联系

对于二分类任务而言,二者都可以达到目标,在理论上,没有什么区别。

举个栗子,如现在是二分类( x 1 , x 2 x_{1},x_{2} x1​,x2​), 经过 S i g m o i d Sigmoid Sigmoid函数之后:
Sigmoid ⁡ ( x 1 ) = 1 1 + e − x 1 \operatorname{Sigmoid}\left(x_{1}\right)=\frac{1}{1+e^{-x_{1}}} Sigmoid(x1​)=1+e−x1​1​
对于 S o f t m a x Softmax Softmax函数,则为:
Softmax ⁡ ( x 1 ) = e x 1 e x 1 + e x 2 = 1 1 + e − ( x 1 − x 2 ) \operatorname{Softmax}\left(x_{1}\right)=\frac{e^{x_{1}}}{e^{x_{1}}+e^{x_{2}}}=\frac{1}{1+e^{-\left(x_{1}-x_{2}\right)}} Softmax(x1​)=ex1​+ex2​ex1​​=1+e−(x1​−x2​)1​
对于 x 1 − x 2 x_{1} - x_{2} x1​−x2​,我们可以使用一个 z 1 z_{1} z1​来进行替换,则替换成了:
Softmax ⁡ ( x 1 ) = 1 1 + e − z 1 \operatorname{Softmax}\left(x_{1}\right)=\frac{1}{1+e^{-z_{1}}} Softmax(x1​)=1+e−z1​1​
该表达式与 S i g m o i d ( x 1 ) Sigmoid(x_{1}) Sigmoid(x1​)相同,理论上是相同的。

4. 区别

在我们进行二分类任务时,当我们使用 S i g m o i d Sigmoid Sigmoid函数,最后一层全连接层的神经元个数是 1 1 1,神经网络的输出经过它的转换,可以将数值压缩到 ( 0 , 1 ) (0,1) (0,1)之间,得到的结果可以理解成分类成目标类别的概率 P P P,而不分类到该类别的概率是 ( 1 − P ) (1 - P) (1−P),这也是典型的两点分布的形式。

而使用 S o f t m a x Softmax Softmax函数则需要是两个神经元,一个是表示前景类的分类概率,另一个是背景类。此时, S o f t m a x Softmax Softmax函数也就退化成了二项分布。

更简单一点理解, S o f t m a x Softmax Softmax函数是对两个类别进行建模,其两个类别的概率之和是 1 1 1。而 S i g m o i d Sigmoid Sigmoid 函数是对于一个类别的建模,另一个类别可以通过1来相减得到。

S i g m o i d Sigmoid Sigmoid得到的结果是“分到正确类别的概率和未分到正确类别的概率”, S o f t m a x Softmax Softmax得到的是“分到正确类别的概率和分到错误类别的概率”。

多类别中使用 S i g m o i d Sigmoid Sigmoid不影响类别之间的概率,而 S o f t m a x Softmax Softmax最大值类别将抑制其余类别

深度学习笔记: Sigmoid激活函数 Sigmoid激活函数是人工神经网络中广泛使用的非线性激活函数之一。它有效地将输入值映射到0和1之间的范围,使其特别适用于输出需要被解释为概率的模型。 阅读详情

相关推荐

Sigmoid 与 Softmax 的区别

Sigmoid 与 Softmax 的区别结论定义图例 参考:Multi-label vs. Multi-class Classification: Sigmoid vs. Softmax、Sigmoid function、Softmax function 结论 sigmoid:使大的更大、小的更小(保持数值被归整到0-1之间) softmax:使所有的值之和为1(保持数值间的大小关系) 定义 sigmoid 处理的是单个输入值,不关注整体输入数据的关系。 f(yi)=11+e−yi for&nb

HLBoy_happy的博客 1万+

激活函数简介

Sigmoid激活函数曾一度被不同的网络使用,从Sigmoid及其导数曲线图可知,当输入的值非常小或者非常大时,其Sigmoid输出的值接近0或者1,当Sigmoid函数的前一层梯度接近于0时,由于前一层的学习参数梯度接近于0,使得参数无法得到有效更新,从而产生饱和神经元,因此Sigmoid激活函数在网络使用中比较容易产生梯度消失问题,饱和的神经元会加重梯度消失问题。由曲线图可知,tanh激活函数是关于原点中心对称的,相比Sigmoid而言,收敛速度加快,梯度消失的特点依旧存在,因此难以训练。...

hllyzms的博客 1万+

二分类问题中,sigmoid与softmax的区别

sigmoid和softmax在二分类问题上的区别。

dingyplucky的博客 1086

激活函数(sigmoid、tanh、ReLU、softmax)

文章目录1.1、sigmoid函数1.2、tanh函数1.3、ReLU函数1.4、softmax函数 激活函数在神经网络中的作用有很多,主要作用是给神经网络提供非线性建模能力。如果没有激活函数,那么再多层的神经网络也只能处理线性可分问题。常用的激活函数有sigmoid、tanh、relu、softmax等。 1.1、sigmoid函数 sigmoid函数将输入变换为(0,1)上的输出。它将范围(-inf,inf)中的任意输入压缩到区间(0,1)中的某个值: sigmoid(x)=11+exp(−x)sigm

tcn760的博客 12万+

sigmoid和softmax激活函数的区别

sigmoid曲线。  sigmoid函数(也叫逻辑斯谛函数):   引用wiki百科的定义:   A logistic function or logistic curve is a common “S” shape (sigmoid curve).   logistic曲线如下:     wiki百科对softmax函数的

redfivehit的专栏 4960

简述Sigmoid函数(附Python代码)

sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为激活函数有以下优缺点: 优点:平滑、易于求导。 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。 ...

大脸猫的博客 5万+

softmax与sigmoid的区别

111

普通攻击往后拉的博客 2万+

softmax与sigmoid函数的区别

sigmoid 函数用于多标签问题,选取多个标签作为正确答案,它是将任意值归一化为[0-1]之间,并不是不同概率之间的相互关联,且由于远离0的部分梯度较小, 容易出现梯度消失现象 。将实数值映射到(0,1)的区间。sigmoid详细解释:Sigmoid函数解析__Sumor的博客-优快云博客_sigmoid函数 当x趋近于负无穷时,y趋近于0;当x趋近于正无穷时,y趋近于1;当x=0时,y=1/2。用sigmoid函数近似得到不同斜率的线性函数,只要x的取值始终在某个特定的范围之内,总可以将sigmoid

5177

Sigmoid和Softmax的区别和联系

本文介绍了Softmax函数和Sigmoid函数在二分类和多分类问题中的联系与区别,并结合代码,做了可视化展示

python_plus的博客 2941

Sigmoid函数与Softmax函数分别是什么?有什么区别?

Sigmoid函数与Softmax函数分别是什么?有什么区别? sigmoid函数(也叫逻辑斯谛函数):  引用wiki百科的定义:   A logistic function or logistic curve is a common “S” shape (sigmoid curve).   其实逻辑斯谛函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线。 其实logistic函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线(S型曲线.

data+scenario+science+insight 580

斯坦福大学CS224d基础1:线性代数知识

本文为斯坦福CS229的内容,也是CS224d课程的背景数学知识。概括了在机器学习和深度学习中用到的大部分线性代数知识。为了便于大家查漏补缺,这里根据英文版本整理了一个中文版本。

龙心尘 2万+

理解 Softmax 和 Sigmoid 在 “求概率” 上的区别

Sigmoid和Softmax是两种常用的概率转换函数,主要区别在于应用场景和输出特性。Sigmoid适用于独立事件的概率判断(如多标签分类),每个输出都是独立的概率值,总和不一定为1。Softmax则用于互斥事件的概率分配(如单标签分类),所有输出概率之和严格为1。在二分类任务中,两者结果等价但Sigmoid更简洁。简言之,Sigmoid处理"是否发生"的独立判断,Softmax处理"选择哪一个"的概率分配。

德华搞编程的博客 927

SVG绘制圆环进度条

在我们的大屏可视化项目中,经常会用到各种各样的图表。与传统的表格展示、枯燥的文字阐述相比,图表展示则使用户看起来更加直观、数据的展示则更加一目了然。本文基于svg绘图技术结合前端技术栈vue,以工作中常用的环形进度条为例,简单阐述一下绘制进度条的一些思路。............

qq_40289557的博客 8360

Sigmoid与Softmax的区别

Sigmoid与Softmax的区别

IT_Novice_的博客 4306

YOLOv8 ultralytics使用笔记----labelme标记数据,训练模型、追踪目标。

Ultralytics是一个Python库,它是为执行高级计算机视觉任务而创建的,如对象检测、实例分割、图像分类等。Ultralytics为YOLO模型发布了一个全新的存储库,它被构建为用于机器视觉统一框架。这里先利用,并激活。

qq_48050838的博客 1万+

幸狐RV1106开发板运行Yolo8示例

rknn_model_zoo 是瑞芯微官方提供的 RKNPU 支持的各种主流算法的部署示例,目前对 Luckfox Pico 所使用的 RV1103/RV1106 有限支持,最新的示例支持 mobilenet 模型部署和 yolo 模型部署,本章以部署 yolov8修改版本为例介绍 rknn_model_zoo 示例的使用。:可选项,用于指定 RKNN 模型的保存路径,默认保存在 ONNX 模型同一目录下,名称为 ‘yolov8.rknn’例如“rv1106”。

qq_42730522的博客 3224

Softmax Sigmoid 区别

Softmax =多类别分类问题=只有一个正确答案=互斥输出(例如手写数字,鸢尾花) Sigmoid =多标签分类问题=多个正确答案=非独占输出(例如胸部X光检查、住院) 下图显示了将前馈神经网络的原始输出值(蓝色)通过Sigmoid函数映射为概率(红色)的过程: Softmax函数重复上述过程: Sigmoid函数和Softmax函数得出不同结果。 原因在于,Sigmoid函数会分别处理各个原始输出值,因此其结果相互独立,概率总和不一定为1,如图0.37 + 0.77 + 0.48 + 0.91 =

lei_qi的博客 217

ZLMediaKit在Windows下启用WebRtc编译(64位)

准备软件 cmake-gui vs2017 已经编译好的windows版本openssl(下载地址) 当然,你完全可以自己按照openssl的官网教程自己编译windows版本的openssl libsrtp编译安装 首先,需要将下载好的openssl解压并添加到环境变量。如下图,将下图路径添加到环境变量 其次,下载libsrtp(下载地址) 下载后解压并新建build文件夹,如下图: 在合适位置新建文件夹放置install后的srtp文件,如"D:\develop20..

byna11sina11的博客 1万+

Sigmoid 和 Softmax 区别

sigmoid将一个real value映射到(0,1)的区间,用来做二分类。而 softmax 把一个 k 维的real value向量(a1,a2,a3,a4….)映射成一个(b1,b2,b3,b4….),其中 bi 是一个 0~1 的常数,输出神经元之和为 1.0,所以相当于概率值,然后可以根据 bi 的概率大小来进行多分类的任务。二分类问题时 sigmoid 和 softmax 是一样的,...

sunshineTHU的博客 8454

RH850 GreenHillSoftware Install

IDE一次链接到一个Compiler/Green Hills Debug Probe安装目录。如果您安装了IDE、编译器和绿山调试探测器软件,安装程序会将安装链接在一起。如果您只使用Advanced Install选项安装IDE,那么当您第一次启动它时,IDE会提示您链接到编译器和绿山调试探针安装*。如果您使用Advanced Install选项只安装编译器和绿山调试探针软件,安装程序会提示您将IDE的安装链接到新的编译器和绿山调试探针安装。

舊梦的博客 1216

44位abogus补环境与纯算逆向分析

44位ab参数补环境与纯算加密流程逆向分析

吴秋霖的博客 2779

Softmax 原理及 Sigmoid和Softmax用于分类的区别

原文链接:https://www.cnblogs.com/jins-note/p/12528412.html 1、什么是 softmax机器学习总归是要接触到 softmax 的,那么这个东东倒底是怎么来的呢?实际上 softmax 可能指两种相似但不相同的东东。1.1. softmax function这函数定义比较符合 softmax 这个名字:可见 softmax function...

qq_43703185的博客 1290

用 CDS 作为 Referenced Data Source 开发 SAP Gateway OData 服务,一条更轻的 SEGW 路线

本文介绍了SAP Gateway项目中从传统手工建模到基于CDS View的现代化开发方式转变。主要内容包括: 传统方式需要在SEGW中手动创建Entity Type、Entity Set等元素,并在DPC_EXT中编写大量查询逻辑,存在模型层和业务逻辑重复表达的问题。 7.50版本后,SAP Gateway与ABAP CDS深度集成,可通过SEGW直接引用CDS View作为数据源,自动生成数据模型和SADL读取逻辑,支持完整的OData查询功能。 最佳实践建议通过Consumption View而非直接

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 706

sigmoid 和softmax的区别

但有一个问题,在我们学习数学的分类问题的时候,是不是讲过所有类别概率之和应该是1,sigmoid就做不到这一点,,三个类别的概率可能是0.6,0.9,0.8,都偏高,虽然知道最后计算结果应该是第二类,但是类别之间并没有拉开距离,不利于模型的训练。sigmoid做二分类最后的输出是一个神经元,这个神经元是0-1之间的数,用一个神经元就可以表示是或者不是,,,,softmax的二分类最后的输出是两个神经元,原因在于它需要计算。sigmoid本身是用来做激活函数的,并不是用来做分类的。过程,所以一般称为激活。

virus111222的博客 1661

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

sigmoid和softmax的理解及其区别

sigmoid和softmax的理解及其区别 在分类问题中,人们常常会用到sigmoid和softmax这两个激活函数。 sigmoid:A logistic function or logistic curve is a common “S” shape (sigmoid curve). 也就是说,sigmoid把一个值映射到0-1之间。 softmax:softmax is a generalization of logistic function that “squashes”(maps) a K-

peacefairy的博客 1584

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 深度学习面经总结
下一篇: L1与L2正则的比较
Fighting_1997
博客等级 码龄7年 3万+粉丝 306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting_1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值