深度学习系列--03.激活函数

server/2025/2/7 11:11:37/

一.定义

  激活函数是一种添加到人工神经网络中的函数,它为神经网络中神经元的输出添加了非线性特性

在神经网络中,神经元接收来自其他神经元的输入,并通过加权求和等方式计算出一个净输入值。激活函数则根据这个净输入值来决定神经元是否应该被激活,以及激活的程度,从而决定神经元向后续层传递的输出值。通过引入激活函数,神经网络能够学习和表示更复杂的非线性关系,大大提高了模型的表达能力。 

二.工作流程

1.接收输入

神经网络中的每个神经元会接收来自上一层神经元的输出作为输入。这些输入通常是经过加权求和后的结果,即

其中xi是第i个输入,w是对应的权重,b是偏置,n是输入的数量。z这个值就是激活函数的输入。 

2. 计算处理

 激活函数根据其特定的数学表达式对输入值z进行计算。例如:

3.产生输出 

  • 经过激活函数的计算后,会得到一个输出值。这个输出值将作为当前神经元的输出,传递给下一层神经元作为输入,继续在神经网络中进行信息传递和处理。
    • 二分类问题中,Sigmoid 函数的输出值可以表示样本属于正类的概率,比如输出 0.8,表示样本有 80% 的概率属于正类。
    • 多分类问题中,Softmax 函数的输出是一个概率分布向量,例如输出,表示样本属于三个不同类别的概率分别为 20%、30% 和 50%。
    • ReLU 函数输出的正值会直接传递给下一层,而输出的 0 值可能会导致下一层神经元接收的输入减少,在一定程度上起到了数据筛选和稀疏化的作用。

      激活函数通过这样的运作流程,为神经网络引入了非线性因素,使得神经网络能够学习和处理各种复杂的非线性关系,从而提高模型的性能和泛化能力

三.常见激活函数 

 1.Sigmoid函数

公式

导数公式: 

 图像:

作用 

  • 归一化与概率表示:能将任意实数输入映射到区间(0,1),在二分类问题中,常将输出解释为属于某一类别的概率。比如在判断一封邮件是否为垃圾邮件时,Sigmoid 函数输出值为0.8,就表示该邮件有的概率80%是垃圾邮件。

 优点

  • 输出范围固定:输出值在(0,1)之间,具有明确的物理意义,便于对结果进行解释和理解,可直接作为概率或比例等使用。
  • 平滑可导:函数曲线平滑,处处可导,这使得在神经网络的训练过程中,能够方便地使用梯度下降等算法进行参数更新,保证训练的顺利进行。
  • 单调性:函数具有单调性,输入值的增加或减少会导致输出值单调地增加或减少,有助于模型学习输入和输出之间的单调关系。

 缺点

  • 梯度消失问题:当输入值x的绝对值较大时,函数的导数会趋近于0。在神经网络反向传播过程中,梯度值过小会导致信息传递困难,使得模型训练速度变慢,甚至难以收敛,尤其是在深层神经网络中,这个问题会更加严重。
  • 输出非零均值:输出值的均值不为,这可能会导致神经网络在训练过程中出现梯度更新的偏差,使得训练不够稳定,需要更多的技巧和调整来保证训练的效果。
  • 计算复杂度相对较高:涉及指数运算,在计算资源有限或对计算速度要求较高的场景下,计算量相对较大,可能会影响模型的训练和推理效率。

2.Tanh函数

公式:

 

导数:

图像

作用

  • 归一化与数据压缩:能将实数域的输入值压缩到区间内,对于一些需要将数据归一化到特定范围的场景非常有用,比如在数据预处理阶段,可将数据映射到合适的区间,便于后续的计算和处理。
  • 解决回归问题:在一些回归任务中,函数可以将输出值限制在一定范围内,避免模型输出过大或过小的值,提高模型的稳定性和预测准确性。

 优点

  • 输出范围合适:输出值在 (-1.1) 之间,相比 Sigmoid 函数,其输出更接近零均值,在神经网络训练中,能使数据分布更加对称,有助于加快训练收敛速度,减少梯度更新的偏差。
  • 非线性特性强:具有比 Sigmoid 函数更强的非线性,能够更好地拟合复杂的非线性关系,在处理一些具有高度非线性的数据时,可能会取得更好的效果。
  • 平滑可导:函数曲线平滑,处处可导,这使得在使用梯度下降等优化算法进行训练时,能够顺利地计算梯度,保证模型训练的稳定性和收敛性。

缺点

  • 梯度消失问题:与 Sigmoid 函数类似,当输入值的绝对值较大时,的导数也会趋近于,在深层神经网络中容易出现梯度消失现象,导致信息在反向传播过程中难以传递,影响模型的训练效果和收敛速度。
  • 计算复杂度相对较高:同样涉及指数运算,计算量相对较大,在一些对计算速度要求较高的场景下,可能会影响模型的实时性和效率。

3.ReLU函数

图像

 

作用

  • 缓解梯度消失:在正向传播过程中,当x>0时,梯度为1,不会像 Sigmoid 和 tanh 函数那样在某些区域出现梯度趋近于0的情况,这有助于在神经网络训练过程中,梯度能够更有效地反向传播,缓解了梯度消失问题,使得深层神经网络的训练更加容易。
  • 稀疏性激活:它会使一部分神经元的输出为0,从而使神经网络具有稀疏性。这种稀疏性可以减少模型的计算量和存储量,提高模型的运行效率,同时也有助于提取数据中的关键特征,减少特征之间的冗余。

优点

  • 计算简单高效:计算过程只需要判断x是否大于0,然后进行简单的取值操作,相比 Sigmoid 和 tanh 函数不需要进行复杂的指数运算,大大降低了计算量,提高了模型的训练和推理速度。
  • 收敛速度快:由于其能够缓解梯度消失问题,在使用梯度下降等优化算法进行训练时,模型的收敛速度通常比使用 Sigmoid 或 tanh 函数作为激活函数时更快,能够更快地找到最优解,节省训练时间。
  • 生物合理性:在一定程度上模拟了生物神经元的激活特性,当输入信号超过一定阈值时神经元才会被激活,输出非零值,这使得神经网络在生物学上具有一定的合理性,更符合生物神经系统的工作原理。

4.Softmax函数

 图像

  优点

  • 输出概率可解释性强:直观地给出了每个类别被预测为正确类别的概率,方便人们理解模型的决策过程和结果,有助于对模型进行评估和分析。
  • 灵活的概率分布表示:能够根据输入数据的不同,灵活地调整各个类别的概率分布,对于不同的分类任务都能提供较为合理的概率输出,适应各种复杂的分类场景。
  • 与交叉熵损失函数的完美结合:在训练过程中,Softmax 函数与交叉熵损失函数的组合具有良好的数学性质,能够使得梯度计算和模型优化过程更加稳定和高效,有助于模型快速收敛到较好的结果

缺点

  • 计算复杂度高:涉及指数运算,当输入向量的维度较高时,计算量会显著增加,这会导致模型的训练和推理速度变慢,在一些对实时性要求较高的应用场景中可能不太适用。
  • 容易出现梯度消失或爆炸:在计算 Softmax 函数的导数时,如果输入值过大或过小,可能会导致指数函数的值过大或过小,进而使得梯度消失或爆炸,这会影响模型的训练稳定性和收敛速度,尤其是在深层神经网络中,这个问题可能会更加严重。
  • 对输入的敏感性:Softmax 函数对输入值的变化比较敏感,即使输入值的微小变化也可能导致输出概率分布的较大变化,这可能会使得模型的鲁棒性较差,在面对噪声或数据波动较大的情况时,模型的预测结果可能会不够稳定。

未完待续.....


http://www.ppmy.cn/server/165664.html

相关文章

MFC 的 CListCtrl 控件,使用SetItemState 方法来设置选中某个 item,如何达到效果和鼠标点击一致

1)查询到的方法如下: // 假设你要选中第 2 行(索引从 0 开始) int nItem 1; // 取消所有其他选中项 m_ListCtrl.SetItemState(-1, 0, LVIS_SELECTED); // 设置选中状态,并确保它具有焦点 m_ListCtrl.SetItemStat…

前缀和练习——洛谷P8218:求区间和

题目: 这道题很简单&#xff0c;直接根据题目无脑套公式 代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e5 9; using ll long long; ll a[N], perfix[N]; int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);//取消同步输…

【杂谈】-文明的量子跃迁:AI时代人类物种的自我重构

文章目录 文明的量子跃迁&#xff1a;AI时代人类物种的自我重构一、文明基因的双螺旋进化二、意识矩阵的拓扑重构三、伦理穹顶下的共生协议 文明的量子跃迁&#xff1a;AI时代人类物种的自我重构 在撒哈拉沙漠的岩壁上&#xff0c;史前人类用赭石颜料绘制出羚羊与猎人的身影&a…

2025最新软件测试面试大全(附答案+文档)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xff0c;你应该怎样解决? 首先&#xff0c;将问题提交到缺陷管理库里…

基于springboot的体质测试数据分析及可视化设计

作者&#xff1a;学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”&#xff0c;支持远程部署调试、运行安装。 项目包含&#xff1a; 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…

快速上手——.net封装使用DeekSeek-V3 模型

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,用爱发电,去丈量人心,是否能达到人机合一?开工大吉 新的一年就这么水灵灵的开始了,在这里,祝各位读者新春快乐,万事如意! 新年伊…

QT修仙之路1-1--遇见QT

文章目录 遇见QT二、QT概述2.1 定义与功能2.2 跨平台特性2.3 优点汇总 三、软件安装四、QT工具介绍(重要)4.1 Assistant4.2 Designer4.3 uic.exe4.4 moc.exe4.5 rcc.exe4.6 qmake4.7 QTcreater 五、QT工程项目解析(作业)5.1 配置文件&#xff08;.pro&#xff09;5.2 头文件&am…

【Golang学习之旅】Go 语言基础语法概览

文章目录 前言1. Go 语言简介1.1 Go 语言是什么&#xff1f;1.2 Go 语言的应用场景 2. Go 语言开发环境2.1 安装 Go2.2 配置 Go 环境2.3 Hello, World!&#xff08;第一个 Go 程序&#xff09; 3. Go 语言基础语法3.1 变量与常量3.2 数据类型3.3 条件判断与循环3.4 数组与切片&…