【机器学习300问】65、为什么Sigmoid和Tanh激活函数会导致梯度消失?

2024-04-11 05:12

本文主要是介绍【机器学习300问】65、为什么Sigmoid和Tanh激活函数会导致梯度消失?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、梯度消失现象

        当神经网络的输入值较大或较小时,其导数(梯度)都会接近于0。在反向传播过程中,这些微小的梯度经过多层网络逐层传递时,会不断被乘以权重矩阵(权重通常小于1),进一步导致梯度值缩小,直至几乎消失。这种现象称为“梯度消失”,它会使深度神经网络的学习过程变得极其缓慢,甚至无法有效训练深层网络。

二、Sigmoid激活函数

        Sigmoid函数的公式为\sigma(x) = \frac{1}{1 + e^{-x}}。其输出范围是(0,1)形状呈“S”型,两端趋于平缓,中间部分斜率较大。当输入值x非常大或者非常小的时候,Sigmoid函数的导数接近于0。

  • 当x → -∞时,σ(x) → 0,σ'(x) → 0
  • 当x → ∞时,σ(x) → 1,σ'(x) → 0

        导致这一现象的原因在于Sigmoid函数的导数表达式为\sigma'(x) = \sigma(x)(1 - \sigma(x))。当\sigma(x)非常接近0或者1时,\sigma'(x)会迅速接近0,即梯度几乎消失。

三、Tanh激活函数

        Tanh函数的公式为\tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}。取值在-1到1之间,图像形状类似拉伸的“S”形和Sigmoid函数很类似,其实Tanh函数相当于Sigmoid函数的平移tanh(x)=2sigmoid(2x)-1

  • 当x → -∞时,tanh(x) → -1,tanh'(x) → 0
  • 当x → ∞时,tanh(x) → 1,tanh'(x) → 0

        当输入值x的绝对值很大时,函数值也趋向于饱和(-1或1)。它的导数是\tanh'(x) = 1 - \tanh^2(x),当tanh(x)非常接近-1或1时,tanh'(x)会迅速趋近于0,即梯度几乎消失。

这篇关于【机器学习300问】65、为什么Sigmoid和Tanh激活函数会导致梯度消失?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893161

相关文章

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C