深度学习-激活函数详解

news2024/11/24 9:37:07

        激活函数在神经网络中的作用是引入非线性特征,使得网络可以拟合和表达更复杂的数据关系。它通过对输入进行非线性变换,让每一层的输出既能反映输入特征,又能传递重要信息,以进行梯度更新。以下是关于常用激活函数的详细讲解。

1. Sigmoid(S型激活函数)

        Sigmoid 函数通过将输入映射到 (0,1) 之间,从而将输出的数值转化为概率,特别适合于二分类问题的输出层。

公式

  • 输出范围:(0,1)
  • 导数
优点
  • Sigmoid 的输出可以解释为概率值,因此适合二分类问题的输出层。
  • 在概率相关的问题上,尤其是逻辑回归和简单的前馈网络中,Sigmoid 具有良好的表现。
缺点
  • 梯度消失:在输入非常大或非常小的时候,梯度会趋近于 0,导致反向传播时的梯度更新十分缓慢。这会使得模型训练速度慢,并且在深层网络中效果较差。
  • 输出非零均值:Sigmoid 的输出总是大于 0,因此可能会引入偏移,使得后续层的输入累积较大的偏移,导致学习过程不稳定。
使用场景
  • 二分类问题的输出层,因为输出值在 0 到 1 之间且可以解释为概率。
  • 通常不建议在深层网络的隐藏层中使用 Sigmoid,原因是容易造成梯度消失问题。
  • 激活函数:在隐藏层中,Sigmoid 将输入值映射到 (0,1)(0, 1)(0,1) 之间的范围,从而引入非线性。这种特性使神经网络能够学习和逼近复杂的关系。

  • 二分类问题的输出层:在二分类任务中,Sigmoid 常用作输出层的激活函数,因为其输出是一个概率值,代表模型预测为正类的概率。二分类模型的最终输出可以通过设置一个阈值(如 0.5)来确定样本属于哪个类别

2. Tanh(双曲正切函数)

        Tanh 函数是 Sigmoid 的平移和缩放版本。它将输入映射到 (−1,1) 的区间,从而使得输出均值为 0。

公式

  • 输出范围:(−1,1)(-1, 1)(−1,1)
  • 导数
  • 相比于 Sigmoid,Tanh 的输出均值为 0,更适合用于隐藏层,从而使得模型在反向传播时具有更好的梯度流动性。
  • 在梯度消失问题上稍优于 Sigmoid,因为 Tanh 的输出在 -1 和 1 之间波动,产生的梯度值更大。
缺点
  • 梯度消失:在输入绝对值较大时,Tanh 的导数值接近于 0,仍会导致梯度消失问题,特别是在深度网络中。
  • 相较于 ReLU,Tanh 的计算成本更高。
使用场景
  • Tanh 适合在浅层网络或单个隐藏层中使用,因为它在对称的输出范围和零均值方面表现良好。
  • 在需要处理负数输出的任务中,Tanh 比 Sigmoid 更合适。

3. ReLU(Rectified Linear Unit,修正线性单元)

        ReLU 函数引入了非线性特性,同时保持了计算效率。它仅保留正值输入,负值部分则输出 0。

公式

  • 输出范围:[0,+∞)
  • 导数
优点
  • 减少梯度消失:ReLU 只对正值激活,有效地解决了梯度消失问题,因此非常适合深层网络。
  • 计算效率高:ReLU 的计算过程非常简单,只需取最大值,训练速度快。
  • 稀疏激活:在负数区域输出 0,很多神经元的激活值为 0,有助于增加网络的稀疏性,降低模型的复杂度。
缺点
  • 死亡 ReLU 问题:输入小于 0 时,梯度恒为 0,导致神经元“死亡”,即神经元权重不再更新,无法参与训练。
使用场景
  • 深层卷积神经网络(CNN)中的隐藏层。
  • 由于计算简单,常用于需要较快训练速度的网络。

4. Leaky ReLU

        Leaky ReLU 是 ReLU 的改进版本,通过引入负值区域的非零梯度来避免死亡 ReLU 问题。

公式

其中 α 是一个小于 1 的常数(通常取值 0.01)。

优点
  • 减少死亡 ReLU 问题:在负数区域保留一定的梯度,避免神经元完全不激活的问题。
  • 与 ReLU 类似,具有较高的计算效率。
缺点
  • 固定的 α 值可能不适合所有任务,不如 PReLU 灵活。
使用场景
  • 深度网络中使用,尤其是在发现 ReLU 神经元死亡情况严重时。
  • 在希望输出分布不偏向某一方时(如负值数据较多),Leaky ReLU 是一个良好选择。

5. Parametric ReLU(PReLU,带参数的 ReLU)

        PReLU 是 Leaky ReLU 的扩展版本,其中负值部分的斜率 α\alphaα 可以在训练过程中进行优化。

公式

其中 α是可学习参数。

优点
  • 适应性强:α 可以根据不同的任务和数据自动调整,有更好的灵活性和表达能力。
  • 减少死亡 ReLU 问题:适合训练深层神经网络,尤其在大规模数据上效果良好。
缺点
  • 增加了一些计算复杂度,因为需要优化 α 参数。
使用场景
  • 大规模数据集、深层网络,尤其适用于存在多样化数据分布的任务。

6. ELU(Exponential Linear Unit,指数线性单元)

        ELU 在负数区域使用指数函数,使得负输出更接近 0,从而减少偏移效应。

公式

其中 α 通常为 1。

优点
  • 负输出让输出均值接近于 0,缓解了梯度消失问题。
  • 相比于 ReLU,更平滑地处理负值,提高网络的鲁棒性。
缺点
  • 计算复杂度较高,训练速度稍慢于 ReLU。
使用场景
  • 用于较深的神经网络,特别适合深度卷积网络,能够在梯度消失的情况下保持良好的梯度更新。

7. Swish(谷歌提出的一种激活函数)

        Swish 是 Sigmoid 和输入相乘的结果,提供了平滑性和对负数的保留特性。

公式

优点
  • 更平滑的激活过程,提高了模型的非线性表达能力。
  • 在很多任务上,Swish 比 ReLU 表现更好。
缺点
  • 计算复杂度较高,因为包含了 Sigmoid 函数。
使用场景
  • 高度非线性的任务(如图像分类和语音识别)。

说明:Softmax(用于多分类任务的输出层)

        Softmax 函数用于将一组实数值转换为概率分布,其输出总和为 1。

公式

优点
  • 将输出解释为各类别的概率,适合多分类问题。
缺点
  • 不适合隐藏层,因其输出总和为 1,并且会引入较大的计算量。
使用场景
  • 神经网络的最后一层,适合于多分类任务的输出。

Softmax 与激活函数的区别:

与 ReLU、Sigmoid、Tanh 等常用于隐藏层的激活函数不同,Softmax 主要用于输出层,因为它将数值映射为概率分布。传统激活函数通常用于引入非线性,帮助网络学习复杂特征;而 Softmax 的主要作用是生成可以解释为类别概率的输出。

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

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

相关文章

基于vue框架的的乐守护儿童成长记录系统b65tg(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,成长指标,疫苗接种,学业档案,课外活动,旅游经历,交流论坛 开题报告内容 基于Vue框架的乐守护儿童成长记录系统开题报告 一、研究背景与意义 随着科技的飞速发展和家庭对子女成长关注度的不断提升,如何科学、系统地记…

使用wordcloud与jieba库制作词云图

目录 一、WordCloud库 例子: 结果: 二、Jieba库 两个基本方法 jieba.cut() jieba.cut_for_serch() 关键字提取: jieba.analyse包 extract_tags() 一、WordCloud库 词云图,以视觉效果提现关键词,可以过滤文本…

安卓13 连接usb设备后不更新ui

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码更改4.彩蛋1.前言 有些界面在链接usb设备后,ui会被刷新,导致闪烁问题。 2.问题分析 像这种问题一般是usb事件,导致的ui事件更新了,处理方法是禁止该事件 3.代码更改 这块我们就需要在输入事件管理里面…

根号下-1等于多少

根号下的负数在实数范围内是没有定义的,但在复数范围内,我们可以用虚数单位 来表示。具体来说: 因此,根号下的负一等于虚数单位 。

什么是人工智能(AI)?

人工智能AI(即Artificial Intelligence)是计算机科学的一个分支,旨在让计算机模仿人类的决策能力、像人类一样思考和行动,来解决如自然语言处理、推荐、智能数据检索、预测等方面人类无法处理或难以处理的复杂工作。 为什么需要人…

国标GB28181公网直播EasyGBS国标GB28181软件的应用场景

随着科技的飞速发展,安防视频监控技术已经成为现代社会不可或缺的一部分,它在保障公共安全、企业运营安全以及个人财产安全方面发挥着举足轻重的作用。国标GB28181网页直播平台EasyGBS安防视频监控平台,作为集高效性、稳定性与智能化于一体的…

[java][基础]JSP

目标: 理解 JSP 及 JSP 原理 能在 JSP中使用 EL表达式 和 JSTL标签 理解 MVC模式 和 三层架构 能完成品牌数据的增删改查功能 1,JSP 概述 JSP(全称:Java Server Pages):Java 服务端页面。是一种动态的…

Bacnet+springboot部署到linux后,无法检测到网络中的其他设备

场景描述 springbootbacnet4j项目完成后,在window环境可以正常检测到其他设备,但是部署到linux环境之后,无法获取。 解决办法 首先bacnet的子网掩码要设置为:255.255.255.0 确保linux服务器的防火墙允许 255.255.255.255 广播。…

HarmonyOS 5.0应用开发——音频播放组件的封装

【高心星出品】 文章目录 音频播放组件的封装开发步骤封装类代码测试代码 音频播放组件的封装 鸿蒙中提供了AVPlayer来实现音频播放的功能,播放的全流程包含:创建AVPlayer,设置播放资源,设置播放参数(音量/倍速/焦点模…

深度探索C++对象模型

文章目录 前言一、关于对象C对象模型 二、构造函数实例分析 拷贝构造函数程序转化语意学(Program Transformation Semantics)成员初始化列表 三、数据语义学(The Semantics of Data)数据存取多种继承情况讨论仅单一继承加上虚函数多重继承虚拟继承 Pointer to Data Members 四、…

TLV320AIC3104IRHBR 数据手册 一款低功耗立体声音频编解码器 立体声耳机放大器芯片麦克风

TLV320AIC3104 是一款低功耗立体声音频编解码器,具有立体声耳机放大器以及在单端或全差分配置下可编程的多个输入和输出。该器件包括基于寄存器的全面电源控制,可实现立体声 48kHz DAC 回放,在 3.3V 模拟电源电压下的功耗低至 14mW&#xff0…

【Rust中的序列化:Serde(一)】

Rust中的序列化:Serde Serde是什么?什么是序列化序列化?Serde运行机制Serde Data ModelVistor ApiSerializer ApiDeserializer Api 具体示例流程分析具体步骤:那么依次这个结论是如何得出的呢?什么是de? 总结 Serde是什么&#…

普通的Java程序员,需要深究源码吗?

作为Java开发者,面试肯定被问过多线程。对于它,大多数好兄弟面试前都是看看八股文背背面试题以为就OK了;殊不知现在的面试官都是针对一个点往深了问,你要是不懂其中原理,面试就挂了。可能你知道什么是进程什么是线程&a…

【vue项目中添加告警音频提示音】

一、前提: 由于浏览器限制不能自动触发音频文件播放,所以实现此类功能时,需要添加触发事件,举例如下: 1、页面添加打开告警声音开关按钮 2、首次进入页面时添加交互弹窗提示:是否允许播放音频 以上两种方…

2024 windos运行程序的时候弹窗:找不到ddl文件【已经解决,只要三步】修复ddl文件

一、错误复现 就是这个错误,网上一顿乱找,也解决不来,不是花钱就是付费就是充会员!! 二、ddl官网地址下载新的ddl文件(自己缺哪个,搜索哪个下载) 然灵机一动,ddl肯定有官…

Java并发常见面试题总结(上)

线程 ⭐️什么是线程和进程? 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程 在 Java 中,当我们启动 main 函数时其实就是启动了一…

分类算法——逻辑回归 详解

逻辑回归(Logistic Regression)是一种广泛使用的分类算法,特别适用于二分类问题。尽管名字中有“回归”二字,逻辑回归实际上是一种分类方法。下面将从底层原理、数学模型、优化方法以及源代码层面详细解析逻辑回归。 1. 基本原理 …

AutoGLM:智谱AI的创新,让手机成为你的生活全能助手

目录 引言一、AutoGLM:开启AI的Phone Use时代二、技术核心:AI从“语言理解”到“执行操作”三、实际应用案例:AutoGLM的智能力量1. 智能生活管理🍎2. 社交网络的智能互动🍑3. 办公自动化🍒4. 电子商务的购物…

利用ChatGPT完成2024年MathorCup大数据挑战赛-赛道A初赛:台风预测与分析

利用ChatGPT完成2024年MathorCup大数据挑战赛-赛道A初赛:台风预测与分析 引言 在2024年MathorCup大数据挑战赛中,赛道A聚焦于气象数据分析,特别是台风的生成、路径预测、和降水风速特性等内容。本次比赛的任务主要是建立一个分类评价模型&…

Latex中Reference的卷号加粗的问题

找到模板中的.bst文件,查找volume,修改如下 添加bold,卷号会加粗,去掉则正常