常用激活函数总结

news2024/9/29 12:32:15

文章目录

  • 什么是激活函数
  • 激活函数的作用
  • 常用激活函数
    • 1.Sigmoid函数
    • 2.Softmax函数
    • 3.Tanh函数
    • 4.Relu函数
    • 5.LeakyRelu函数
    • 6.PRelu函数
    • 7.ELU函数
    • 8.SELU函数


什么是激活函数

激活函数,通俗讲,就是一个函数,针对某个神经元,就是将输入经过这个激活函数后,得到输出。

激活函数的作用

激活函数用在神经网络中,目的是增加非线性,使神经网络可以学习任意非线性的函数。

常用激活函数

1.Sigmoid函数

Sigmoid公式如下:
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1
Sigmoid输出范围是[0,1]内的实数,比较适用于二分类的类别情况,但实际中已经很少使用了。

  • 优点:
    梯度平滑,比较容易求导,可以避免模型在训练过程中出现突变的情况。
  • 缺点:
    (1)容易出现梯度消失。sigmoid函数求导后结果都是小于0.25的,所以反向传播时,不断的相乘,会是乘积结果渐渐趋于0,那么这个神经元就不起作用了,即出现了梯度消失,那么神经网络可能就不学习了
    (2)sigmoid函数是指数运算,比较耗时和耗资源
    (3)sigmoid函数输出并不是以0为中心,梯度可能会向特定方向移动,这样就会降低权重更新的效率(其实这句话我有点不咋理解,可能从图中看是当x=0时,y值不是0
    图形如下:
    在这里插入图片描述

2.Softmax函数

Softmax公式如下:
f ( x ) = e x i ∑ i e x i f(x)=\frac{e^{x_i}}{\sum_ie^{x_i}} f(x)=iexiexi
Softmax输出范围是[0,1]内的实数,且所有输出值的总和为1,常用于多分类任务中。

  • 优点:
    (1)输出可以被解释为概率,易于理解和解释,非常适合多分类任务
    (2)归一化输出,将任何实数向量转换为一个有效的概率分布,其中所有输出值都是非负的,并且总和为1
    (3)梯度特性,在训练过程中,当一个类别的输出接近1时,其梯度会减小,这有助于减缓学习过程,防止过度调整
  • 缺点:
    (1)计算时需要计算指数,计算效率低
    (2)当输入特征的值非常大或非常小的时候,Softmax函数可能会遇到数值稳定性问题,如溢出或下溢
    (3)梯度消失,当训练样本中一个类别的概率远大于其他类别时,梯度可能会非常小,导致梯度消失问题,从而减慢学习过程
    图形如下:
    在这里插入图片描述

3.Tanh函数

Tanh公式如下:
f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=ex+exexex
Tanh输出范围是[-1,1]内的实数,Tanh是Sigmoid函数的变形,即 t a n h ( x ) = 2 s i g m o i d ( 2 x ) − 1 tanh(x)=2sigmoid(2x)-1 tanh(x)=2sigmoid(2x)1,但Tanh是以零为中心的,实际应用中Tanh会比sigmoid更好一些,但是饱和神经情况下,Tanh还是会存在梯度消失问题,适合负输入将被强映射为负,而零输入被映射为接近零的情况。

  • 优点:
    (1)比sigmoid更好些,是以0为中心,梯度可能就不会向特定方向移动,这样就不会降低权重更新的效率

  • 缺点:
    (1)仍然会出现梯度饱和,即当输入-∞和+∞时,激活函数值无限接近-1和1,即神经元发挥不出作用了
    (2)指数运算,耗时耗资源

图形如下:
在这里插入图片描述

4.Relu函数

Relu公式如下:
f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
Tanh输出范围是[0,+∞]内的实数,输出不是以0为中心。

  • 优点:
    (1)解决了部分梯度消失问题,当输入值为正时,神经元不会饱和
    (2)由于其线性、非饱和性质,relu容易收敛
    (3)复杂度低,不需要指数运算
  • 缺点:
    (1)函数输出并不是以0为中心,梯度可能会向特定方向移动,这样就会降低权重更新的效率
    (2)出现神经元死亡问题,即当输入为负,可能会出现梯度消失问题,输入为负数,经relu后变为0,神经元失效,对任何输入都无响应,导致参数永远不会被更新了

图形如下:
在这里插入图片描述

5.LeakyRelu函数

LeakyRelu公式如下:
f ( x ) = m a x ( α x , x ) f(x)=max(αx,x) f(x)=max(αx,x)
Tanh输出范围是[-∞,+∞]内的实数,输出不是以0为中心。

  • 优点:
    (1)减少梯度消失问题,当输入值为正时,神经元不会饱和;当输入为负时,不会出现Relu的神经元死亡问题,即结果为0的情况
    (2)由于其线性、非饱和性质,relu容易收敛
    (3)复杂度低,不需要指数运算
  • 缺点:
    (1)函数中的α是恒定值,需要经先验知识,人工赋值(常设0.01)
    (2)有些近似线性,导致在复杂分类任务中效果不好
    图形如下:
    在这里插入图片描述

6.PRelu函数

PRelu公式如下:
f ( x ) = { α x , x < 0 x , x ≥ 0 } f(x)=\left\{ \begin{matrix} αx,x<0 \\ x,x≥0 \end{matrix} \right\} f(x)={αx,x0x,x0}
PRelu输出范围是[-∞,+∞]内的实数,输出不是以0为中心。与Relu、LeakyRelu和PRelu不同的是,ELU的负半轴是一个指数函数不是一条直线。

  • 优点:
    (1)α是通过学习得到的,不是手动设置的确定值,更能灵活适应各种情况
    (2)减少梯度消失问题,当输入值为正时,神经元不会饱和;当输入为负时,不会出现Relu的神经元死亡问题,即结果为0的情况
    (3)由于其线性、非饱和性质,relu容易收敛
    (4)复杂度低,不需要指数运算
  • 缺点:
    (1)有些近似线性,导致在复杂分类任务中效果不好
    图形如下:
    在这里插入图片描述

7.ELU函数

ELU公式如下:
f ( α , x ) = { α ( e x − 1 ) , x ≤ 0 x , x > 0 } f(α,x)=\left\{ \begin{matrix} α(e^x-1),x≤0 \\ x,x>0 \end{matrix} \right\} f(α,x)={α(ex1),x0x,x0}
ELU输出范围是[-α,+∞]内的实数,输出不是以0为中心。

  • 优点:
    (1)减少梯度消失问题,当输入值为正时,神经元不会饱和;当输入为负时,不会出现Relu的神经元死亡问题,即结果为0的情况,有助于减轻梯度消失问题,从而改善深层网络的训练效率
    (3)输出均值接近0,有助于数据的中心化,减少训练过程中的偏置偏移,加速学习过程
    (4)在整个定义域内连续可导,尤其是原点处连续,能够加速函数收敛
  • 缺点:
    (1)计算时需要计算指数,计算效率低
    (2)α是根据先验知识手动设置的确定值
    图形如下:
    在这里插入图片描述

8.SELU函数

SELU公式如下:
f ( α , x ) = λ { α ( e x − 1 ) , x ≤ 0 x , x > 0 } f(α,x)= \lambda \left\{ \begin{matrix} α(e^x-1),x≤0 \\ x,x>0 \end{matrix} \right\} f(α,x)=λ{α(ex1),x0x,x0}
ELU输出范围是[-2,+∞]内的实数,输出不是以0为中心。其中,λ=1.0507,α=1.6733。SELU激活函数是在自归一化网络(SNN)中定义的,通过调整均值和方差来实现内部的归一化,这种内部归一化比外部归一化更快,这使得网络能够更快得收敛。

  • 优点:
    (1)自归一化。能够使输出的均值和方差接近1,有助于解决梯度消失和梯度爆炸问题,适合难以使用批量归一化的深度神经网络结构(如SNN 自归一化神经网络)
    (2)无需额外归一化技术,可以减少或消除批量归一化等额外归一化需求,简化模型结构和训练过程
  • 缺点:
    (1)计算时需要计算指数,计算效率低
    (2)自归一化属性依赖特定网络初始化方法和网络结构,在某些复杂模型结构中不适用或效果不明显
    图形如下:
    在这里插入图片描述
    针对上述常用激活函数的场景汇总如下:
  • Sigmoid:
    • 使用场景: 二分类问题中的输出层,因为输出值在0到1之间,可以表示为概率。
    • 优点: 输出值在0和1之间,具有概率解释。
    • 缺点: 容易受到梯度消失的影响,不适合深层网络。
  • Softmax:
    • 使用场景: 多分类问题中的输出层,将输出转换为概率分布。
    • 优点: 输出可以解释为概率,并且所有输出值的和为1。
    • 缺点: 计算复杂度较高,同样容易受到梯度消失的影响。
  • Tanh (双曲正切):
    • 使用场景: 隐藏层,输出值在-1到1之间,可以提供零中心化的数据。
    • 优点: 输出值中心化,有助于数据的处理。
    • 缺点: 仍然容易受到梯度消失的影响。
  • ReLU (Rectified Linear Unit):
    • 使用场景: 隐藏层,因为计算简单且可以缓解梯度消失问题。
    • 优点: 计算效率高,可以加速神经网络的训练。
    • 缺点: 存在死亡ReLU问题,即对于负输入,梯度为0。
  • LeakyReLU:
    • 使用场景: 隐藏层,当输入为负时,有一个非零的梯度
    • 优点: 解决了ReLU的死亡神经元问题。
    • 缺点: 需要手动设置泄漏参数。
  • PReLU (Parametric ReLU):
    • 使用场景: 隐藏层,泄漏参数可以通过训练学习得到。
    • 优点: 泄漏参数可学习,可能比LeakyReLU更有效。
    • 缺点: 增加了模型的参数量。
  • ELU (Exponential Linear Unit):
    • 使用场景: 隐藏层,对于负数输入有一个非零的输出,有助于激活神经元。
    • 优点: 可以缓解梯度消失问题,输出均值为零。
    • 缺点: 计算复杂度比ReLU高。
  • SELU (Scaled Exponential Linear Unit):
    • 使用场景: 隐藏层,特别是在那些需要自归一化和不需要额外归一化技术的网络中。
    • 优点: 自归一化,有助于加快收敛速度。
    • 缺点: 需要仔细的参数初始化。

还有一些别的激活函数,如:Swish和Mish,这俩不太常用,可以详看篇博客:
https://blog.csdn.net/qq_42691298/article/details/126590726,注意:这篇博客里的softmax函数图像是错误的。
(如有问题,欢迎指出,一起学习,一起交流! 常总结,常复盘)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2176705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI读教链《关于美国、中国和BTC的三个超级变量​》

这篇文章探讨了美国、中国及比特币(BTC)当前经济形势中的三个超级变量,强调了对经济状况的重新审视。 美国经济与衰退:尽管有观点认为美国经济正在衰退,文章指出这取决于如何定义衰退。美股市场的市盈率处于高位&#…

KQM6600空气质量传感器

KQM6600空气质量传感器 目录 KQM6600空气质量传感器 查找资料 编程 1、初始化(时钟、IO、外设、中断、其他) 2、中断服务函数 3、数据解析函数 kqm6600.h 硬件连接 安装ST-LINK驱动 实验结果 查找资料 找相应的资料,看资料 1、…

百度智能体创建:情感领域的创新力量

《百度智能体:情感领域的创新力量》 一、百度智能体:开启智能新征程 百度智能体,准确叫法为百度文心智能体。它是由百度推出的基于文心大模型的智能体平台。2023 年 9 月 1 日,平台的前身 “灵境矩阵” 上线并开始内测&#xff0c…

变幅液压系统比例阀放大器

变幅液压系统是用于控制起重机或类似设备臂架角度变化的关键系统,它通过调节液压缸的伸缩来实现臂架的升降和变幅。以下是一些关于变幅液压系统的基本原理、组成和应用领域的信息: 基本原理:变幅液压系统通常由液压泵、液压缸、液压马达、控制…

【BMS】BJB MC33772 电流测量

一、硬件准备 1、主控板子:S32K312 板子 2、BJB 板子:MC33772 BJB 板子 3、硬件连接: 两个板子独立 12V 供电,外部电流接线流经分流器 Shunt ,分流器方向从下往上流向得到正值数据。 4、BJB 测量电流电路注意事项 ① 板子上预…

【python】如何切换ipynb的kernel至指定conda环境

需求介绍 打开(若无新建环境) 环境 conda env list conda activate cvml conda install ipykernel python -m ipykernel install --name cvml 以上完成后,打开jupyter 创建一个python文件 在kernel——>change kernel——>python[conda env:cvml] 参考资料…

第167天:应急响应-日志自动提取分析项目_ELK_Logkit_LogonTracer_Anolog等

目录 案例一: 日志自动提取-七牛Logkit&观星应急工具 Logkit 观星 案例二:日志自动分析-Web-360 星图&Goaccess&ALB&Anolog 360 星图 GoAccess ALB Anolog f8x 案例一: 日志自动提取-七牛Logkit&观星应急工具 …

前端框架:选择的艺术

一、简介 在现代 web 开发中,前端框架扮演着至关重要的角色。 首先,它们极大地提升了开发效率。以 React、Vue 和 Angular 为例,这些框架采用组件化的开发模式,允许开发者将页面拆分成独立的、可复用的组件。例如,在一…

ESXi 5.5 系统克隆到SD卡或USB磁盘上

对于如何将安装在本地磁盘上的ESXi系统克隆到SD卡或USB磁盘上,以便快速实现ESXi主机的VSAN-Ready状态。正好猫猫也有点兴趣,所以,就研究了下这个方式,大致的工作思路就是“先通过dd命令将ESXi系统克隆到VMFS Datastore成为一个文件…

一起发现CMake太美-02-CMake是什么CMake的运行原理

本系列课程的主要内容包括: 点击本课程的 链接 可以进入视频课程的学习。 下面介绍本系列课程的第二课的主要内容,本节课从CMake是什么,能做什么,以及CMake的远亲近邻入手,让大家对CMake有一个大致的了解。 1. CMak…

汽车线束之故障诊断方案-TDR测试

当前,在汽车布局中的线束的性能要求越来越高。无法通过简单的通断测试就能满足性能传输要求。早起对智能化要求不高,比如没有激动雷达、高清摄像、中央CPU等。 近几年的智能驾驶对网络传输要求越来越高,不但是高速率,还需要高稳定…

ACM第三次考核题解

ACM第三次考核题解 题目序号难度题目编号题目考察知识点1签到题A这是一道很难的题!!!输出2迷之难度F神说要有光,于是有了手电筒贪心3简单BThis is a real English problem!思维 英语4简单C玩具简单排序5简单I“近义词…

物联网系统中基于IIC通信的数字温度传感器测温方案

01 物联网系统中为什么要使用数字式温度传感器芯片 物联网系统中使用数字式温度传感器芯片的原因主要有以下几点: 高精度与稳定性 高精度测量:数字式温度传感器芯片,如DS18B20,采用芯片集成技术,能够有效抑制外界不…

MISC - 第八天(gnuplot绘图工具,核心价值观编码,outguess隐写工具,ntfs流)

前言 各位师傅大家好,我是qmx_07,今天给大家继续讲解MISC的相关知识 梅花香之苦寒来 附件信息: 附件是一张图片,放到hxd检索相关信息 发现有一段十六进制文本 https://gchq.github.io/CyberChef/ 这个网站拥有丰富的编码和解码内容…

matlab中在一个图上持续画多条曲线的方法

在数据分析的过程中,会遇到一种情况,就是想对多组数据进行分析,这时就想把他们放在同一张图里,来看他们表现出来的特征。如下图所示: 例如,我这里有几组数据,想对他们的整体趋势进行分析。 1、…

四非人的保研之路,2024(2025届)四非计算机的保研经验分享(西南交通、苏大nlp、西电、北邮、山软、山计、电科、厦大等)

文章目录 一、个人背景二、夏令营北京邮电大学CS西南交通大学CS深圳大学CS苏州大学NLP南开大学CS 三、预推免北京邮电大学CS华东师范大学 CS和大数据电子科技大学 CS东北大学 CS厦门大学 信息学院山东大学 CS和SE西安电子科技大学 CS 四、个人经验五、上岸 一、个人背景 学校专…

Megabit兆比特加密货币市场比特币—看涨信号预示着比特币价格上涨

在过去的30天里,比特币[BTC]在经历了2个月的极端波动后,其价格图表出现了显著反弹。事实上,自7月份触及70016美元的高点以来,BTC已经大幅下跌,甚至跌至4.9万美元的当地低点。 Megabit兆比特自成立以来,Megabit凭借用户…

Thingsboard 网关实战 modbus通信 rpc下发控制指令

我们这里说的是Thingsboard通过网关modbus通信接入设备,然后通过rpc下发指令去控制开关信号的设备,不会网关通过modbus接入设备的,可以看我之前的文章,从小白教学。 下面我们就说如何下发rpc开关信号指令 第一步.在modbus配置文…

谷歌外链需要持续发吗?

肯定是需要的,在搜索引擎优化的世界里,外链就像是给你网站的“投票”。搜索引擎会根据这些“投票”来判断你网站的权威性和相关性。要想让这些“投票”真正发挥作用,就必须保持一定的持续性和稳定性。如果你停滞不前,竞争对手可就…

Shopify电商平台的接口对接

Shopify API是一组定义好的函数或方法,通过这些接口,开发者可以与Shopify商店进行数据交互,实现各种功能。比如,你可以在你的应用中通过接口获取商品信息、创建订单、查询物流状态等等。 为什么需要对接Shopify API? …