深度学习最常用的10个激活函数!(数学原理+优缺点)

【深度学习理论】(3) 激活函数 各位同学好,最近学习了CS231N斯坦福计算机视觉公开课,讲的太精彩了,和大家分享一下。 激活函数的作用是把神经元的输入线性求和后,放入非线性的激活函数中激活,正因为有非线性的激活函数,神经网络才能拟合非线性的决策边界,解决非线性的分类和回归问题 1. Sigmoid 函数 作用:将负无穷到正无穷的输入,映射到0到1之间。 公式: 若x=0,函数值=0.5,;若x很大时,函数值非常接近1;若x很小时,函数值非常接近0 特点: (1)将负无穷到正无穷的任何输入,都挤压成0到1之间的一个数 阅读详情

 Datawhale干货 

作者:Sukanya Bag,来源:机器之心

激活函数是神经网络模型重要的组成部分,本文作者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 更快。

当然,它也有缺点:

  1. Dead ReLU 问题。当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零,sigmoid 函数和 tanh 函数也具有相同的问题;

  2. 我们发现 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

常用的激活函数(Sigmoid、Tanh、ReLU等) 目录一、激活函数定义二、梯度消失与梯度爆炸 1.什么是梯度消失与梯度爆炸2.梯度消失的根本原因3.如何解决梯度消失与梯度爆炸问题 三、常用激活函数1.Sigmoid2.Tanh3.ReLU4.Leaky ReLU5.ELU6.softmax7.Swish 激活函数 (Activation functions) 对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到神经网络中。在下图中,输入的 inputs 通过加权,求和后,还被作用了一个函数f,这 阅读详情

相关推荐

史上最全激活函数总结篇(持续更新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

走在深度学习前沿的小宋 1万+

常用的激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数。其主要作用是对所有的隐藏层和输出层添加一个非线性的操作,使得神经网络的输出更为复杂、表达能力更强。如果没有激活函数,那么再多层的神经网络也只能处理线性可分问题。

weixin_50644076的博客 2983

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

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

gzq0723的博客 3309

深度学习中常见的10种激活函数(Activation Function)总结

​ 激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端,旨在帮助网络学习数据中的复杂模式。 ​

不想学习的打工人的博客 12万+

STM32单片机远程升级

stm32远程升级

fang_yang_wa的博客 1万+

深度学习最常用的 10 大激活函数数学原理及优缺点

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式,是确定神经网络输出的数学方程式激活函数是神经网络模型重要的组成部分,俺们从激活函数的数学原理出发,详解激活函数的优缺点。文末总结处,看闻[激]起舞;Sigmoid函数是一种常用的激活函数,其数学形式为:它将输入的实数映射到(0,1)之间,常用于输出层的二分类问题,可以将神经网络的输出解释为概率。1.2 手动实现并可视化。

算法金「全网同名」的博客 1105

逆变器母线电容选型与均压电阻设计实战指南

本文为逆变器母线电容选型与均压电阻设计提供了实战指南。文章从工程角度出发,详细解析了母线电容耐压值、容值的计算方法,并重点强调了纹波电流热设计的重要性。同时,深入探讨了串联电容均压电阻的设计原则与功率计算,通过5.5kW变频器案例,系统演示了从参数确定到最终选型的完整流程,旨在帮助工程师设计出稳定可靠的逆变器系统。

weixin_29299807的博客 295

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

深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点 转自:数据派THU 激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十种激活函数的优缺点。 激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。 在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以

SmartLab307的博客 1006

LVGL按键触发回调函数的完整流程

如果是我的话我会怎么写:例如按键,我先定义一个结构体里面包含ID,事件名等和回调函数的链表节点结构体里面有具体函数的指针,也有指向下一个回调函数的链表节点的指针,初始化一个结构体变量的,通过BSP层来驱动触摸屏幕,再通过中间层与被按下时就会判断是长按还是短按还是其他,改变变量的事件例如:改成长按,生成事件包后再注册你长按的回调函数链表节点,再根据变量的事件到链表中遍历最后实现功能.父容器监听所有子列表项的点击事件,无需为每个列表项单独注册回调。的回调,打印所有事件日志,观察事件触发顺序。

solomonzw的博客 3246

【SpringBoot 4.x 第70节】夯爆了,企业级 API 设计规范落地:状态码、错误码、接口文档与兼容性(超详解)!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 134

10个深度学习最常用的激活函数(原理及优缺点)

来源:算法进阶‍‍‍‍‍‍‍‍ 本文约2500字,建议阅读5分钟本文从激活函数的数学原理出发,详解了十种激活函数的优缺点。激活函数是神经网络模型重要的组成部分,激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了...

数据派THU 864

基于 STM32 的智慧农业温室控制系统设计与实现

本文提出一种基于 STM32 微控制器的智慧农业温室控制系统设计方案,通过集成多类型环境传感器、执行机构及无线通信模块,实现对温室内温湿度、光照、土壤湿度等参数的实时监测与自动调控。文中详细阐述硬件选型、电路连接及软件实现流程,并附关键代码示例,为智慧农业领域提供低成本、高可靠性的温室控制解决方案。

weixin_42300449的博客 1927

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

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

zenRRan的博客 741

智能能效管家:基于 ESP32 的智能插座设计与精细化功耗管理实现

针对传统插座无法远程控制、功耗监测缺失、能源浪费严重等问题,本文设计一款基于 ESP32 主控芯片的智能插座。该系统集成 WiFi 无线通信、交流功耗采集、继电器通断控制模块,实现四大核心功能。硬件采用模块化选型与安全接线设计,软件基于 Arduino-ESP32 框架开发,搭载 Mqtt 通信协议与功耗算法,可通过手机 / 云端实时管控设备,有效提升用电安全性与能源利用率。:ESP32;智能插座;功耗管理;远程控制;能耗监测。

weixin_42300449的博客 101

DNA图谱分析:自动分析DNA图谱中的变异YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一种基于卷积神经网络(CNN)的目标检测模型,因其高效的检测速度和优异的精度而广泛应用于计算机视觉任务。一次性检测:与传统的目标检测方法不同,YOLO通过回归方法同时预测多个边界框和类别信息,从而实现高效的目标检测。高精度与高速度:YOLO在检测精度和速度之间找到了平衡,适用于实时目标检测任务。

YOLO 733

知识经验分享——超全激活函数解析(数学原理+优缺点)

知识经验分享——超全激活函数解析(数学原理+优缺点)。激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。

加勒比海带66——【YOLO魔法搭配&论文投稿咨询&Python科研绘图】 1240

RK3568平台开发系列讲解(安卓篇)LED呼吸灯系统流程

1.app层封装后使用NotificationManager发出:NotificationManager.notify() 2.Android 系统架构中:一个manager类对应一个aidl接口,一个manager对应一个底层的服务,notification也是这个架构

内核笔记 3646

【基础】深度学习最常用的10个激活函数!(数学原理+优缺点)

点击上方,选择星标,每天给你送干货!干货作者:Sukanya Bag,来源:机器之心激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十...

zenRRan的博客 613

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

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 目标检测 | Yolo2算法学习笔记
下一篇: 目标检测 | Yolo3算法学习笔记
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值