美!最常用的10个激活函数!

激活函数(Activation Function) 深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点:https://mp.weixin.qq.com/s/bleTRzA_1X3umR5UXSpuHg 深度学习中几种常见的激活函数理解与总结:https://www.cnblogs.com/XDU-Lakers/p/10557496.html 神经网络梯度消失和梯度爆炸及解决办法:https://blog.youkuaiyun.com/program_developer/article/details/80032376 常用激活函... 阅读详情

作者丨Sukanya Bag   编译 | 机器之心

在reddit上刷到一张非常 形象mó xìng 的图。

那就让我们来整理一下深度学习中离不开的激活函数!

激活函数(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)。

觉得还不错就给我一个小小的鼓励吧!

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

相关推荐

手把手教你用Anaconda安装李沐d2l-zh包(附常见报错解决方案)

本文提供了一份详尽的Anaconda环境下安装李沐d2l-zh包的实战指南。文章从创建虚拟环境、配置国内镜像源加速下载入手,分步讲解核心依赖的预安装策略,并重点剖析了安装过程中常见的报错及其解决方法,旨在帮助初学者和开发者高效、稳定地搭建深度学习实验环境。

efc1234567的博客 1011

常用激活函数(激励函数)理解与总结

引言 学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数、tanh函数、Relu函数。那么我们就来详细了解下激活函数方方面面的知识。本文的内容包括几个部分: 什么是激活函数? 激活函数的用途(为什么需要激活函数)? 有哪些激活函数,都有什么性质和特点? 应用中如何选择合适的激活函数? 如果你对以上几个问题不是很清楚,下面的内容对你是有...

tyhj_sf的博客空间 35万+

浅析MOS管导通过程及RC吸收电路设计要点

RC吸收电路 米勒电容 MOS导通过程

liangbo1999的博客 2万+

激活函数(Activation Function)及十大常见激活函数

激活函数(Activation Function)、Sigmoid、tanh、ReLU、Leaky ReLU、ELU、PReLU、Softmax、Swish、Maxout、Softplus

learn more,have more 1万+

Visual Studio 6.0 镜像下载全指南:从企业版到中文版

本文提供Visual Studio 6.0企业版和中文版的镜像下载全指南,包括详细版本解析、已验证的下载链接及校验信息。针对现代系统的安装技巧和兼容性处理方案,帮助开发者高效获取并运行这一经典开发工具,特别适合维护遗留系统的专业人员。

weixin_33712987的博客 1128

hi3516cv610在PQStream上实现拉出图像,windows和板端操作记录

PQStream拉出图像

weixin_51838255的博客 730

常用激活函数总结(深度学习)

常用激活函数总结

weixin_44646390的博客 2万+

从波士顿动力SpotMini拆解看四足机器人机械设计:关节布局与电机选型的5个关键决策点

本文深入解析波士顿动力SpotMini四足机器人的机械设计,聚焦关节布局与电机选型的5个关键决策点。通过拆解髋关节偏移距、膝关节传动链、电机热管理等核心设计,揭示商业级四足机器人的工程智慧,为工业巡检、物流机器人等应用提供实用参考。

postgres8guard的博客 896

一文搞懂激活函数

1、什么是激活函数 神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。 2、激活函数的用途(为什么需要激活函数)? 1. 对于y=ax+b 这样的函数,当x的输入很大时,y的输出也是无限大小的,经过多层网络叠加后,值更加膨胀的没边了,这显然不符合我们的预期,很多情况下我们希...

ytusdc的博客 1万+

2026最新华为OD机试新系统机考真题- 真题题库目录|全覆盖题库 + 逐点算法考点详解

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 2698

【ARM AMBA5 CHI 2 -- CHI 链路层详细介绍 】

目前有六个版本的 CHI 协议,CHI-A 是 CHI 协议的第一个版本。它提供了一个传输层,具有减少拥塞的功能。新通道、CHI 术语和组件命名的定义;请求、监听过滤器和缓存状态转换的示例;事务排序、独占访问和分布式虚拟内存(DVM)操作的规则;CHI-B 问题扩展了 CHI-A,但不能直接向后兼容 CHI-A。更大的物理地址宽度;原子事务;DVM 的 VMID 扩展;通道字段、事务结构和可靠性、可用性和可维护性(RAS)特性的描述;

CodingCos的博客 2536

常用的激活函数合集(详细版)

从激活函数的公式及导函数、图像、优缺点或特点来描述了激活函数,以及总结了激活函数之间的优势,并且提供了pytorch的代码案例,以便于大家快速上手。

caip12999203000的博客 5万+

YOLOv11官方代码库与预训练模型下载:介绍Ultralytics官方GitHub及模型权重(yolov11n.pt, yolov11s.pt等)

本文介绍了Ultralytics官方GitHub仓库和YOLOv11预训练模型。Ultralytics仓库是YOLO系列算法的官方实现,包含YOLOv11最新代码、预训练模型、文档和工具。仓库采用清晰的代码结构和活跃的更新策略,支持全流程开发。YOLOv11提供了5种不同规模的模型变体(YOLOv11n/s/m/l/x),在精度、速度和模型大小间权衡,适用于从移动设备到高精度检测等不同场景。各模型在COCO数据集上预训练,可直接使用或微调,满足多样化应用需求。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 5837

激活函数和最常用的10个激活函数

激活函数是一种添加到ANN中的函数,它决定了最终要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。因此,激活函数是确定神经网络输出的数学方程式。...

Laok0413的博客 5580

android 蓝牙通讯demo

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

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

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

常用激活函数总结

常见激活函数的总结

m0_49866160的博客 3625

蓝牙模块HM-10手册

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

深度学习最常用的10个激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。 在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式。 首先我们来了解一下人工神经元的工作原理,大致如下: 上述过程可以可视化为: 1. Sigmoi

qq_41430142的博客 1385

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

常用激活函数

文章目录前言为什么需要激活函数什么样的函数可以做激活函数什么样的函数是好的激活函数 前言 今天这篇文章对一些常用激活函数做一下总结吧。在神经网络中激活函数还是很重要的,并且熟悉激活函数对理解别的问题也是很有帮助的。 为什么需要激活函数 从数学上看,神经网络是一个多层复合函数。引入激活函数是为了保证神经网络的非线性。因为线性函数无论怎样复合结果还是线性的,所以对激活函数最基本的要求是非线性的。 假设...

MrLittleDog的博客 3273

深度学习最常用的10个激活函数!

点击上方,选择星标,每天给你送干货!作者丨SukanyaBag编译 | 机器之心今天早上在reddit上刷到一张非常形象mó xìng的图,那就让我们来整理一下深度学习中离不开的激活...

zenRRan的博客 976

一文详解最常用的10个「激活函数」

本文转自机器之心。 激活函数是神经网络模型重要的组成部分,本文作者Sukanya Bag从激活函数的数学原理出发,详解了十种激活函数的优缺点。激活函数(Activation Functio...

我爱计算机视觉 1342

小毕常用滴 激活函数

小毕总结了四个在神经网络中常用的激活函数 希望大家喜欢 嘻嘻

weixin_53624843的博客 1866

【常用的激活函数】

一、什么是激活函数? 在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数 Activation Function,又称激励函数,如下图所示: 二、激活函数的作用(为什么需要激活函数)? 如果不用激励函数(其实相当于激励函数是f(x)=x),在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。正因为上

雪丫头的博客 6952

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

深度学习领域最常用的10个激活函数 原文链接:https://sukanyabag.medium.com/activation-functions-all-you-need-to-know-355a850d025e 激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。 在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯

weixin_43082343的博客 945

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

对于长度为 K 的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范围内,并且向量中元素的总和为 1 的实向量。Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。

wuzj1314的博客 1002
上一篇: 好想哭!微信视频号推荐大赛,居然输在了内存问题上!
下一篇: 统计学中数据分析方法汇总!
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值