深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点

机器学习之常用激活函数 激活函数常用类型有:线性激活函数、符号激活函数、Sigmoid激活函数、tanh激活函数、高斯激活函数、ReLU、GeLU等 阅读详情

深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点

转自:数据派THU

激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十种激活函数的优缺点。
在这里插入图片描述
激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。

在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式,本文概述了深度学习中常见的十种激活函数及其优缺点。

首先我们来了解一下人工神经元的工作原理,大致如下:
在这里插入图片描述
上述过程的数学可视化过程如下图所示:

在这里插入图片描述

1. Sigmoid 激活函数

在这里插入图片描述
Sigmoid 函数的图像看起来像一个 S 形曲线。

函数表达式如下:

在这里插入图片描述
在什么情况下适合使用 Sigmoid 激活函数呢?

  • Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;
  • 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
  • 梯度平滑,避免「跳跃」的输出值;
  • 函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
  • 明确的预测,即非常接近 1 或 0。

Sigmoid 激活函数有哪些缺点?

  • 倾向于梯度消失;
  • 函数输出不是以 0 为中心的,这会降低权重更新的效率;
  • Sigmoid 函数执行指数运算,计算机运行得较慢。

2.Tanh / 双曲正切激活函数

在这里插入图片描述

tanh 激活函数的图像也是 S 形,表达式如下:

在这里插入图片描述
tanh 是一个双曲正切函数。tanh 函数和 sigmoid 函数的曲线相对相似。但是它比 sigmoid 函数更有一些优势。

在这里插入图片描述
首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;
在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。

注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。

3. ReLU 激活函数
在这里插入图片描述
ReLU 激活函数图像如上图所示,函数表达式如下:
在这里插入图片描述

ReLU 函数是深度学习中较为流行的一种激活函数,相比于 sigmoid 函数和 tanh 函数,它具有如下优点:

  • 当输入为正时,不存在梯度饱和问题。
  • 计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。

当然,它也有缺点:

  • Dead ReLU 问题。当输入为负时,ReLU完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零,sigmoid函数和 tanh 函数也具有相同的问题;
  • 我们发现 ReLU 函数的输出为 0 或正数,这意味着 ReLU 函数不是以 0 为中心的函数。

4. Leaky ReLU

它是一种专门设计用于解决 Dead ReLU 问题的激活函数:

在这里插入图片描述

                  ReLU vs Leaky ReLU

为什么 Leaky ReLU 比 ReLU 更好?
在这里插入图片描述

  1. Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题;
  2. leak 有助于扩大 ReLU 函数的范围,通常 a 的值为 0.01 左右;
  3. Leaky ReLU 的函数范围是(负无穷到正无穷)。

注意:
从理论上讲,Leaky ReLU 具有 ReLU 的所有优点,而且 Dead ReLU 不会有任何问题,但在实际操作中,尚未完全证明 Leaky ReLU 总是比 ReLU 更好。

5. ELU
在这里插入图片描述

                  ELU vs Leaky ReLU vs ReLU

ELU 的提出也解决了 ReLU 的问题。与 ReLU 相比,ELU 有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。
在这里插入图片描述
显然,ELU 具有 ReLU 的所有优点,并且:

  • 没有 Dead ReLU 问题,输出的平均值接近 0,以 0 为中心;
  • ELU 通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向零加速学习;
  • ELU 在较小的输入下会饱和至负值,从而减少前向传播的变异和信息。

一个小问题是它的计算强度更高。与 Leaky ReLU 类似,尽管理论上比 ReLU 要好,但目前在实践中没有充分的证据表明 ELU 总是比 ReLU 好。

6. PReLU(Parametric ReLU)
在这里插入图片描述
PReLU 也是 ReLU 的改进版本:
在这里插入图片描述
看一下 PReLU 的公式:参数α通常为 0 到 1 之间的数字,并且通常相对较小。

  • 如果 a_i= 0,则 f 变为 ReLU
  • 如果 a_i> 0,则 f 变为 leaky ReLU
  • 如果 a_i 是可学习的参数,则 f 变为 PReLU

PReLU 的优点如下:

  1. 在负值域,PReLU 的斜率较小,这也可以避免 Dead ReLU 问题。
  2. 与 ELU 相比,PReLU 在负值域是线性运算。尽管斜率很小,但不会趋于 0。

7. Softmax
在这里插入图片描述
Softmax 是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为 K 的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范围内,并且向量中元素的总和为 1 的实向量。

在这里插入图片描述

Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。

Softmax 函数的分母结合了原始输出值的所有因子,这意味着 Softmax 函数获得的各种概率彼此相关。

Softmax 激活函数的主要缺点是:

  1. 在零点不可微;
  2. 负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元。

*8. Swish *
在这里插入图片描述
函数表达式:y = x * sigmoid (x)

Swish 的设计受到了 LSTM 和高速网络中 gating 的 sigmoid 函数使用的启发。我们使用相同的 gating 值来简化 gating 机制,这称为 self-gating。

self-gating 的优点在于它只需要简单的标量输入,而普通的 gating 则需要多个标量输入。这使得诸如 Swish 之类的 self-gated 激活函数能够轻松替换以单个标量为输入的激活函数(例如 ReLU),而无需更改隐藏容量或参数数量。

Swish 激活函数的主要优点如下:

  • 「无界性」有助于防止慢速训练期间,梯度逐渐接近 0
    并导致饱和;(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);
  • 导数恒 > 0;
  • 平滑度在优化和泛化中起了重要作用。

9. Maxout

在这里插入图片描述
在 Maxout 层,激活函数是输入的最大值,因此只有 2 个 maxout 节点的多层感知机就可以拟合任意的凸函数。

单个 Maxout 节点可以解释为对一个实值函数进行分段线性近似 (PWL) ,其中函数图上任意两点之间的线段位于图(凸函数)的上方。

在这里插入图片描述
Maxout 也可以对 d 维向量(V)实现:

在这里插入图片描述
假设两个凸函数 h_1(x) 和 h_2(x),由两个 Maxout 节点近似化,函数 g(x) 是连续的 PWL 函数。

在这里插入图片描述
因此,由两个 Maxout 节点组成的 Maxout 层可以很好地近似任何连续函数。
在这里插入图片描述
10. Softplus

在这里插入图片描述
Softplus 函数:f(x)= ln(1 + exp x)

Softplus 的导数为

f ′(x)=exp(x) / ( 1+exp⁡ x )

= 1/ (1 +exp(−x ))

,也称为 logistic / sigmoid 函数。

Softplus 函数类似于 ReLU 函数,但是相对较平滑,像 ReLU 一样是单侧抑制。它的接受范围很广:(0, + inf)。

原文链接:
https://sukanyabag.medium.com/activation-functions-all-you-need-to-know-355a850d025e

史上最全激活函数总结篇(持续更新ing......) 激活函数系列中提及到的激活函数包括:Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SELU、GELU、Softmax、Softplus、Mish、Maxout、HardSigmoid、HardTanh、Hardswish、HardShrink、SoftShrink、TanhShrink、RReLU、CELU、ReLU6、Threshold、Sinc、GLU、SwiGLU、GTU、Bilinear、ReGLU、GEGLU、Softmin、Softmax2d、Logs 阅读详情

相关推荐

激活函数总结(三十五):激活函数补充(KAF、Siren)

本文为前面介绍的激活函数进行了一些激活函数补充,包括:KAF、Siren等激活函数及其在当前激活函数众多的情况下使用的环境。总的来说:KAF现在较少使用,而Siren在图像方面应用较多,有需要的可以关注一下。。。

走在深度学习前沿的小宋 678

详解激活函数

文章目录0️⃣前言1️⃣Sigmoid2️⃣tanh3️⃣Relu4️⃣Leaky Relu5️⃣Softmax6️⃣总结 0️⃣前言 用了这么久的激活函数,抽空总结一下吧,不然总是忘记,这里介绍常用到的sigmoid,tanh,relu,leaky relu,softmax tips:部分图片来自计算机视觉研究院公众号 1️⃣Sigmoid Sigmoid 函数的图像看起来像一个 S 形曲线。 函数表达式如下: 在什么情况下适合使用 Sigmoid 激活函数呢? Sigmoid 函数的输出范围是

进击的扛把子 3436

激活函数 | 深度学习领域最常用的10个激活函数,详解数学原理及优缺点

欢迎关注“计算机视觉研究院”计算机视觉研究院专栏作者:Edison_G激活函数是神经网络模型重要的组成部分,今天分享从激活函数的数学原理出发,详解了十种激活函数的优缺点。激活函数(Acti...

gzq0723的博客 3309

【深度学习】常用的激活函数

一、什么是激活函数 神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数) 1、Sigmoid函数 (1)数学公式 f(x)=11+ex\displaystyle f( x) =\frac...

小马日记 6392

深入AI人工智能领域,理解PyTorch的激活函数

激活函数是神经网络中不可或缺的组成部分,它决定了神经元是否应该被激活以及如何将输入信号转换为输出信号。本文旨在全面解析PyTorch框架中激活函数的实现原理、使用方法和最佳实践,帮助深度学习从业者深入理解这一核心概念。激活函数的基本概念和数学原理PyTorch中常见激活函数的实现和使用不同激活函数的比较和选择策略激活函数在实际项目中的应用案例首先介绍激活函数的基本概念和背景知识然后详细分析各种激活函数的数学特性和PyTorch实现接着通过实际案例展示激活函数的应用。

AI 领航者的博客 1093

若依RuoYi文件上传漏洞实战:如何安全配置/profile/upload路径(附避坑指南)

本文深入解析若依RuoYi框架中/profile/upload路径的文件上传漏洞,提供详细的安全配置方案和实战指南。通过权限修正、输入验证强化和存储隔离等多层防御策略,有效防范未授权访问和恶意文件上传风险,保障系统安全。

pink的博客 779

【激活函数】深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点...

点击上方,选择星标,每天给你送干货! 来源:机器之心、信息网络工程研究中心 本文从激活函数的数学原理出发,详解了十种激活函数的优缺点。 激活函数是神经网络模型重要的组成部分,本文作者Suk...

zenRRan的博客 740

汇川EASY系列之以太网通讯(MODBUS_TCP做从站)

汇川easy系列PLC做MODBUS_TCP从站,,ModbusTCP服务器默认开启,无需设置通信协议(即不需要配置),端口号为“502”。ModbusTCP从站最多支持31个ModbusTCP客户端(ModbusTCP主站)同时连接。

这是一个长期关注工控行业技术的博客,实现0-1的突破,期待您的关注和留言 8878

【深度学习】深度学习中的10类激活函数

深度学习中常用的的激活函数包括了:sigmoid、tanh、ReLU 、Leaky Relu、RReLU、softsign、softplus。 激活函数可以分为两大类: 饱和激活函数:sigmoid、 tanh 非饱和激活函数:ReLU 、Leaky Relu 、ELU【指数线性单元】、PReLU【参数化的ReLU 】、RReLU【随机ReLU】 相对于饱和激活函数,使用“非...

Nieson2012的专栏 2204

RedCap:一种通信技术的概述

总结起来,RedCap是一种基于数据包交换的通信技术,它提供了一种高效、可靠的数据传输机制。通过使用RedCap,我们可以轻松地发送和接收数据包,并确保数据的完整性和正确性。在上面的示例中,我们首先导入了RedCap库,并创建了一个RedCap实例。然后,我们定义了目标地址和源地址,并创建了一个数据包,其中包含了目标地址、源地址和要发送的数据。本文将介绍RedCap的基本原理和使用方法,并提供一些相关的源代码示例。RedCap还提供了其他一些功能,如数据包的重传机制、流量控制和拥塞控制等。

YgjWeb的博客 900

Camera HAL Camx — DRQ总结

Camera HAL — DRQ(延迟请求队列)总结 DRQ是CAMX核心层的依赖驱动延迟执行调度器,解决Node处理请求时依赖未就绪的问题。其主要特点包括: 核心功能:当Node处理请求时缺少必要输入(property/metadata/fence),DRQ将其挂起并在依赖满足后重新调度,避免阻塞流水线或丢帧。 系统架构:Session持有主DRQ实例,管理该Session下所有Pipeline Node的依赖;CHI context另有独立DRQ实例专门处理Chi fence同步。 关键数据结构: De

DU_YULIN的博客 75

【深度学习】Java DL4J 2024年度技术总结

在当今数字化浪潮中,深度学习作为人工智能领域的核心驱动力,正以前所未有的速度改变着我们的生活和工作方式。从图像识别到自然语言处理,从医疗诊断到金融预测,深度学习的应用场景无处不在,展现出巨大的潜力和价值。Java作为一门广泛应用于企业级开发的编程语言,以其稳定性、可移植性和丰富的类库资源,在软件开发领域占据着重要地位。然而,传统的Java开发在面对深度学习复杂的模型构建和大规模数据处理时,往往显得力不从心。的出现,为Java开发者打开了一扇通往深度学习世界的大门。DL4J是一个专为Java和Scala。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 1万+

【制作100个unity游戏之22】3DRPG游戏开发07——其他详细的设计

我们会有有很多单例,如果每个单例都去写会很麻烦,所以我们定义泛型单例模式 Singleton,我们将所有的单例都继承这个泛型单例,就省略很多重复的工作定义一个GameManager类,继承Singleton,控制整个游戏的进度,比如如果主角死了,广播,游戏结束调用。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2577

深度学习领域的10个激活函数

一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出,是确定神经网络输出的数学方程式。 1. Sigmoid 激活函数 图像: 函数表达式: 适用范围: (1)输出范围是 0 到 1,对输出进行了归一化 (2)由于概率的取值范围是 0 到 1,可用于将预测概率作为输出的模型 (3)曲线平滑,域内无间断点,,可避免跳跃输出 (4)曲线光滑,任一点可微,可以得出任意两点的斜率 (5)预测结果明确 缺点: (1)梯度消失,随着隐藏层数目的增加,分类准确率反而下降 (2)输出不是以 0 为中心,降低

weixin_44485812的博客 1204

ESP32学习笔记06-UART 的485 通讯模式

通信方式选择UART 控制器支持多种通信模式,使用函数 uart_set_mode() 可以选择模式。选择特定模式后,UART 驱动程序将处理已连接 UART 设备的相应行为。例如,主机开始向 Tx FIFO 缓冲区写入数据时,UART 驱动程序会自动置位 RTS 管脚(逻辑 1);最后一位数据传输完成后,驱动程序就会取消置位 RTS 管脚(逻辑 0)。要使用此模式,软件。

Car12 2476

Android15车载系统开机冷启动流程源码解析

本文主要介绍Android15车机系统开机冷启动的流程,暂不包含bootloader,仅从kernel开始直至Launcher首页展示。

jidapenglin28的专栏 253

机器学习知识总结 —— 9. 深度学习常用10个激活函数(补充·激活函数与非线性输出)

文章目录1. sigmoid 函数1.1. 函数原型1.2. 函数图与梯度图2. tanh 函数2.1. 函数原型2.2. 函数图与梯度图3. ReLu 函数3.1. 函数原型Dead ReLu 问题3.2. 函数图4. Leaky ReLu 函数4.1. 函数原型4.2. 函数图5. ELU 函数5.1. 函数原型5.2. 函数图6. PReLu 函数6.1. 函数原型7. Softmax 函数7.1. 函数原型8. Swish 函数8.1. 函数原型9. Maxout 函数9.1. 函数原型10. So

老程的技术笔记 3218

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

深度学习激活函数:从 Sigmoid 到 GELU 的演变历程

除了上述主要的激活函数外,深度学习领域还涌现了许多新型激活函数。Swish:由 Google Brain 团队在 2017 年提出,公式为:Swish 结合了 Sigmoid 的门控机制和线性部分,在多个任务上表现优异​。Mish:2019 年提出的自门控激活函数,公式为:Mish 在保持非单调性的同时,具有更好的正则化效果​。GLU(门控线性单元):公式为:其中 σ 是 Sigmoid 函数,⊙表示元素级乘法。

2401_88885149的博客 1419

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

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

探索Sigmoid与ReLU激活函数:从数学原理到实践应用

本文将带您深入了解sigmoid和ReLU的奥秘,从工作原理到实现细节,再到在深度学习中的应用。通过本文的探讨,您将掌握激活函数的精髓,为您的神经网络设计和开发提供有力支持。

创作高质量博文,分享知识,共同进步! 3608

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

深度学习基础模块之二:激活函数

激活函数的总结

guo___ke的博客 241
上一篇: 如何写好一篇论文的摘要?
下一篇: 作为研究生,你该知道的九件事
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值