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

深入探讨激活函数在神经网络中的应用

感谢各位读者打开这篇文章,希望能与大家一同深入探索激活函数在神经网络中的奥秘。

激活函数是神经网络的关键组成部分,而神经网络又是机器学习的重要板块。神经网络由多个神经层构成,每一层都可看作数学表达式 O = w*x + b,这里的 x 是前一层的结果, 是w当前层权重, b是偏置。从这个表达式看,神经网络似乎是一个线性表达式(函数图像类似一条直线),即便有多层,如

表达式依然是线性的。但激活函数能将线性表达式非线性化,这对神经网络学习复杂数据模型至关重要

接下来,我们从激活函数的数学原理出发,详细剖析几种常见激活函数的优缺点。

1. Sigmoid 激活函数

Sigmoid 函数是最早应用于神经网络中的激活函数之一。它的输出范围限定在 0 到 1 之间,因此非常适合用来表示概率,特别是在二分类问题中

优点:
  • 归一化输出: Sigmoid 的输出在 0 到 1 之间,非常适合表示概率。
  • 平滑梯度: Sigmoid 的梯度非常平滑,有助于避免输出值的剧烈跳跃。
  • 可微性: Sigmoid 是可微的,这使得我们能够计算其梯度,并应用反向传播算法。
  • 明确的预测: 输出值接近于 1 或 0,因此可以做出非常明确的决策。

缺点:

  • 梯度消失: 当输入值非常大或非常小时,Sigmoid 的梯度接近于零,这导致梯度消失问题,进而使得网络训练变得非常缓慢。

  • 非零中心: 由于 Sigmoid 输出不是以 0 为中心,这会影响梯度下降的效率,降低权重更新的效率。

    在训练过程中,我们根据损失函数计算梯度来更新权重。权重更新公式一般为

当 Sigmoid 函数输出不是以 0 为中心时,比如其输出值都在 0 - 1 之间,为正值。

在计算梯度时,由于梯度的计算依赖于前一层的输出,这就导致梯度也会一直是正值(或者在某些情况下一直是负值)

这就好比你在爬山(寻找损失函数的最小值,即山底),正常情况下你应该可以向左、向右、向上、向下各个方向探索来找到最快下山的路径,但现在因为梯度方向单一,你只能朝着一个方向移动,这样就很难找到最优路径,可能一直在山上绕圈子,需要花费更多的步数(迭代次数)才能到达山底。

例如,假设当前权重 应该在某个维度上,根据数据特征,需要一部分增加,一部分减少来更好地拟合数据。但由于 Sigmoid 输出非零中心导致梯度方向单一,只能进行单一方向的权重调整,无法全面地根据数据需求调整权重,从而大大影响了权重更新的效率,使得训练过程变得缓慢。

  • 计算开销大: 由于 Sigmoid 函数包含指数运算,因此计算效率较低,尤其在大型神经网络中可能会成为瓶颈。

2.tanh 激活函数

tanh 函数,即双曲正切函数,其数学表达式为 ,它的输出范围是 -1 到 1,是以 0 为中心的。

优点

  • 解决 Sigmoid 非零中心问题:由于输出以 0 为中心,在梯度下降过程中,权重更新方向相对更合理,能一定程度上提升训练效率,比 Sigmoid 函数更适合作为隐藏层的激活函数。

  • 某些需要正负反馈的模型:在一些需要对数据特征进行正负区分和反馈的模型中,tanh 函数可以更好地表达数据的特性。

缺点

  • 梯度消失:和 Sigmoid 函数类似,tanh 函数在输入值较大或较小时,导数也趋近于 0 。在深层神经网络中,经过多层反向传播后,梯度同样会逐渐消失,导致权重更新缓慢,影响模型的训练效果。

  • 计算复杂度较高:虽然相比 Sigmoid 函数有所优化,但 tanh 函数仍涉及指数运算,在大规模数据计算时,计算效率不如一些线性激活函数,如 ReLU,这会增加模型的训练时间。

3. ReLU 激活函数

ReLU(Rectified Linear Unit)函数是深度学习中最常用的激活函数之一。相比于 Sigmoid 和 Tanh,ReLU 的计算效率更高,且能够避免梯度消失问题。

优点:
  • 避免梯度消失: 当输入为正值时,ReLU 的梯度始终为 1,不会像 Sigmoid 那样发生梯度消失,因此训练速度较快。
  • 计算效率高: ReLU 只进行线性变换,因此其计算速度远高于 Sigmoid 和 Tanh。
缺点:
  • Dead ReLU 问题: 当输入为负时,ReLU 的输出恒为 0,这可能导致部分神经元在训练过程中“死亡”,即这些神经元无法更新,无法对网络的学习产生贡献。
  • 非零中心: ReLU 的输出值为 0 或正数,因此它不是以 0 为中心的,可能影响网络的学习效率。

4. Softmax 激活函数

Softmax 激活函数通常用于多分类问题的输出层。它将一个实数向量转换为一个概率分布,使得每个类别的概率值位于 0 和 1 之间,并且所有类别的概率总和为 1。

优点:
  • 适用于多分类问题: Softmax 可以将多个类别的输出值转化为概率分布,适合于处理多分类任务。
  • 归一化效果: Softmax 确保所有类别的输出值总和为 1,使得它们可以作为概率进行解释。
缺点:
  • 计算开销大: 对于大规模分类问题,Softmax 需要计算所有类别的指数,这可能导致较高的计算开销。
  • 梯度消失: 当某些类别的概率接近 0 或 1 时,Softmax 的梯度可能会变得非常小,导致梯度消失问题。

激活函数在神经网络中起着至关重要的作用。**它们通过非线性变换为神经网络引入了复杂的学习能力,帮助网络解决实际问题。**不同的激活函数适用于不同的任务,例如,Sigmoid 适合于概率预测,ReLU 适合于深度网络,Softmax 则是多分类问题的理想选择。然而,每种激活函数都有其优缺点,选择合适的激活函数对于网络的性能和训练效率至关重要。

感谢大家阅读本文!希望通过对几种常见激活函数的深入分析,能够帮助你更好地理解它们在神经网络中的作用。如果你有任何问题或想法,欢迎在评论区留言与我讨论!


http://www.kler.cn/a/515170.html

相关文章:

  • 2025年最新深度学习环境搭建:Win11+ cuDNN + CUDA + Pytorch +深度学习环境配置保姆级教程
  • Mysql面试题----为什么B+树比B树更适合实现数据库索引
  • Servlet快速入门
  • 【2024年终总结】我与CSDN的一年
  • 【cuda学习日记】3.3 CUDA执行模型--展开循环
  • 基于tldextract提取URL里的子域名、主域名、顶级域
  • 麒麟监控工具rpm下载
  • Couchbase UI: Indexes
  • 缓存之美:万文详解 Caffeine 实现原理(下)
  • 滑动窗口解题模板
  • MySQL中使用游标
  • C# ASP.NET MVC项目内使用ApiController
  • JAVAweb学习日记(六) 请求响应
  • 【华为OD机试】真题E卷-招聘(Java)
  • Appium 检查安装的插件
  • SQL-leetcode—1158. 市场分析 I
  • 谈谈RTMP|RTSP播放器视频view垂直|水平反转和旋转设计
  • 图论 八字码
  • 【Uniapp-Vue3】request各种不同类型的参数详解
  • 0基础跟德姆(dom)一起学AI 自然语言处理20-模型构建
  • 数据结构——算法基础
  • 13 网络编程
  • DRG_DIP 2.0时代医院程序结构转型与数据结构优化研究
  • kotlin的协程的基础概念
  • Shellcode
  • 计算机毕业设计hadoop+spark视频推荐系统 短视频推荐系统 视频流量预测系统 短视频爬虫 视频数据分析 视频可视化 视频大数据 大数据