当前位置: 首页 > article >正文

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

一.定义

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

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

二.工作流程

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.kler.cn/a/535030.html

相关文章:

  • 旋转变压器工作及解调原理
  • 保姆级教程Docker部署KRaft模式的Kafka官方镜像
  • MATLAB中matches函数用法
  • 硬件电路基础
  • 【Uniapp-Vue3】创建DB schema数据表结构
  • 如何自定义软件安装路径及Scoop包管理器使用全攻略
  • Three.js实现炫酷图片粒子化效果:从聚合到扩散的动态演变
  • SystemVerilog系统函数之$system详细使用指南与举例
  • DeepSeek核心关键技术 (冷启动,拒绝采样,蒸馏,多头潜注意力,MoE等) 解读
  • 【Axure高保真原型】中继器表格控制动态面板
  • 不含101的数
  • 微信小程序~django Petting pets(爱抚宠物)小程序
  • 机器学习-线性回归(参数估计之结构风险最小化)
  • JavaScript系列(62)--实时通信系统实现详解
  • 使用page assist浏览器插件结合deepseek-r1 7b本地模型
  • 支持 APQP (先期产品质量策划) 的软件系统-汽车电子行业专用研发管理信息化平台
  • ‌双非硕士的抉择:自学嵌入式硬件开发还是深入Linux C/C++走软开?
  • mongodb 使用内存过大分析
  • 文档解析技术:如何高效提取PDF扫描件中的文字与表格信息?
  • 流浪地球发动机启动问题解析与实现
  • 2.DM Manager客户端
  • Android FCM推送及通知栏展示
  • 04. Flink的状态管理与容错机制
  • vulnhub刷题记录(HACKSUDO: SEARCH)
  • 机器学习-数据清洗(一)
  • Docker最佳实践:安装Nacos