首页 > 其他分享 >梯度消失和梯度爆炸——从本质上说残差、LSTM遗忘门(依赖cell state)解决思路都是一样的,甚至relu激活函数也是

梯度消失和梯度爆炸——从本质上说残差、LSTM遗忘门(依赖cell state)解决思路都是一样的,甚至relu激活函数也是

时间:2023-11-17 15:06:01浏览次数:33  
标签:函数 梯度 正弦 relu cell 双曲 ReLU 遗忘

在深度学习中,梯度消失和梯度爆炸是两个常见的问题。

梯度消失是指在进行反向传播时,梯度会随着层数的增加而指数级地减小,直到几乎消失,导致深层的神经网络参数无法有效更新。这主要是因为使用了像sigmoid和tanh这样的激活函数,它们在输入值较大或较小的情况下,梯度值接近于0。

梯度消失和梯度爆炸——从本质上说残差、LSTM遗忘门(依赖cell state)解决思路都是一样的,甚至relu激活函数也是_激活函数

 

 

梯度消失和梯度爆炸——从本质上说残差、LSTM遗忘门(依赖cell state)解决思路都是一样的,甚至relu激活函数也是_初始化_02

 

 

梯度爆炸与梯度消失相反,是指梯度随着层数的增加而指数级地增大,导致网络参数更新过大,使得网络模型无法收敛。这通常在深度神经网络中更常见。

解决这两个问题的方法包括:

1. 改变激活函数:ReLU及其变种(如Leaky ReLU、Parametric ReLU)在输入值为正时,梯度为1,因此不会出现梯度消失的问题。

2. 权重初始化:使用He初始化或Xavier初始化等方法,可以在训练开始时设置合适的初始权重,减少梯度消失和爆炸的可能性。

3. 批量归一化(Batch Normalization):这种方法可以在每一层都对输入进行归一化处理,使得值集中在0附近,减少梯度消失和爆炸的可能性。

4. 梯度裁剪(Gradient Clipping):这是一种针对梯度爆炸的解决方案,当梯度的值超过某个阈值时,将其限制在该阈值内。

5. 残差连接(Residual Connection):在深度神经网络中,通过引入跨层的直接连接,使得梯度可以直接反向传播到浅层,从而缓解梯度消失问题。

6. 使用LSTM或GRU等门控循环单元:在处理序列数据时,这些结构可以有效地缓解梯度消失问题,因为它们有专门的机制来控制信息的流动。

 

【我们看下几个激活函数】

双曲正弦函数和正弦函数是什么关系?有什么历史原因吗?

双曲正弦函数(hyperbolic sine,通常表示为sinh)和正弦函数(sine,通常表示为sin)是两种不同的数学函数,它们在形式上有一些相似性,但在数学性质和应用上有很大的不同。

双曲正弦函数的定义为:

sinh(x) = (e^x - e^-x) / 2

梯度消失和梯度爆炸——从本质上说残差、LSTM遗忘门(依赖cell state)解决思路都是一样的,甚至relu激活函数也是_初始化_03

 

正弦函数的定义为:

sin(x) = y坐标值在单位圆上对应的角度x

双曲正弦函数和正弦函数的主要区别在于,双曲正弦函数是双曲线的一部分,而正弦函数则是圆的一部分。这就是为什么它们被称为"双曲"和"圆"的原因。
双曲函数(包括双曲正弦函数和双曲余弦函数等)在18世纪被引入到数学中,主要是为了解决某些微分方程的问题。双曲函数在许多科学和工程领域都有应用,包括物理、工程、信号处理等。
正弦函数则有更长的历史,它在古希腊时期就已经被研究,主要用于解决三角形的问题。正弦函数在许多科学和工程领域都有应用,包括物理、工程、计算机科学等。
总的来说,双曲正弦函数和正弦函数是两种不同的数学函数,它们在形式上有一些相似性,但在数学性质和应用上有很大的不同。

 

双曲正弦函数和正弦函数,为什么他们的名字相似呢?

双曲正弦函数(hyperbolic sine,通常表示为sinh)和正弦函数(sine,通常表示为sin)的名字之所以相似,主要是因为它们在数学形式上有一定的相似性。

双曲正弦函数的定义是 sinh(x) = (e^x - e^-x) / 2,双曲正弦函数(hyperbolic sine,通常表示为sinh)的泰勒级数展开是:

sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...

而正弦函数的泰勒级数展开形式是 

sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ...。你可以看到,我们可以得到一个与正弦函数泰勒级数展开形式非常相似的表达式。

此外,双曲正弦函数和正弦函数都具有周期性(虽然双曲正弦函数的周期是虚数),并且它们的图形在某种程度上也有一些相似性。

因此,尽管双曲正弦函数和正弦函数在数学性质和应用上有很大的不同,但由于它们在数学形式上的相似性,因此它们被赋予了相似的名字。

 

正切函数和双曲正切函数有什么关系?名字为什么相似呢?

正切函数(tangent,通常表示为tan)和双曲正切函数(hyperbolic tangent,通常表示为tanh)的名字之所以相似,是因为它们在数学形式上有一定的相似性。
正切函数的定义是 tan(x) = sin(x) / cos(x),而双曲正切函数的定义是 tanh(x) = sinh(x) / cosh(x),其中sinh(x)和cosh(x)分别是双曲正弦函数和双曲余弦函数。你可以看到,正切函数和双曲正切函数的定义在形式上是非常相似的。

梯度消失和梯度爆炸——从本质上说残差、LSTM遗忘门(依赖cell state)解决思路都是一样的,甚至relu激活函数也是_初始化_02

为什么relu函数可以解决梯度消失?

ReLU(Rectified Linear Unit)函数是一种常用的激活函数,其数学表达式为 f(x) = max(0, x)。ReLU函数的主要特点是在输入大于0时,其梯度为1;在输入小于0时,其梯度为0。

ReLU函数能够缓解梯度消失问题,主要原因是:

1. 正区间梯度恒为1:当输入大于0时,ReLU函数的梯度恒为1,这意味着在反向传播过程中,梯度不会因为经过ReLU函数而变小。这与sigmoid函数和tanh函数不同,这两种函数的梯度在输入远离0时会接近0,导致梯度消失问题。

2. 引入非线性:尽管ReLU函数在正区间内是线性的,但是由于其在负区间的值为0,因此ReLU函数是非线性的。这使得神经网络可以拟合和学习非线性函数。

通俗来理解,ReLU函数就像一个开关,当输入大于0时,开关打开,信息可以无损地通过;当输入小于0时,开关关闭,信息被阻断。这种设计使得在反向传播过程中,正向传播的信息可以更好地保留下来,从而缓解了梯度消失问题。

 

为什么LSTM能解决梯度消失问题?

LSTM(长短期记忆网络)能够解决梯度消失问题,主要是因为其特殊的网络结构设计。

1. 门控机制:LSTM引入了输入门、遗忘门和输出门的概念,这些门控结构允许模型有选择性地记住或遗忘信息。特别是遗忘门,它可以让模型忘记无关的历史信息,从而减少了长期依赖的影响。

2. 细胞状态(Cell State):LSTM中的细胞状态是一个“横跨”各个时间步的信息传递通道,它可以在很长的序列中传递信息。在反向传播过程中,细胞状态的梯度可以直接反向传播,避免了梯度消失的问题。

因此,通过这些设计,LSTM能够在处理长序列时,有效地缓解梯度消失的问题,从而能够捕捉到更长距离的依赖关系。

 

遗忘门是LSTM(长短期记忆)网络中的一个重要组成部分。它的主要作用是决定哪些信息应该从细胞状态中被遗忘或丢弃。

遗忘门的数学表达式通常为:

f_t = σ(W_f · h_(t-1), x_t] + b_f)

其中,σ表示sigmoid函数,W_f是遗忘门的权重矩阵,b_f是偏置项,h_(t-1)是上一时间步的隐藏状态,x_t是当前时间步的输入。sigmoid函数的输出在0到1之间,可以理解为遗忘的比例。

遗忘门的设计有助于解决梯度消失问题,主要原因是:

1. 直接的梯度路径:在反向传播过程中,遗忘门提供了一条直接的梯度路径,使得梯度可以直接反向传播,避免了在多层网络中梯度消失的问题。

2. 选择性遗忘:遗忘门可以选择性地遗忘细胞状态中的信息,这样可以减少不相关信息的干扰,使得网络更加关注于有用的信息,从而提高模型的性能。

因此,通过遗忘门的设计,LSTM能够在处理长序列时,有效地缓解梯度消失的问题。

 

标签:函数,梯度,正弦,relu,cell,双曲,ReLU,遗忘
From: https://blog.51cto.com/u_11908275/8447584

相关文章

  • 线性回归-梯度下降
    上了篇尝试了利用穷举法来求较好的模型,但是穷举法的效率很低。还有一种更高效的方法,梯度下降法(GradientDescent)。算法过程代码实现x=[338.,333.,328.,207.,226.,25.,179.,70.,208.,606.]y=[640.,633.,619.,393.,428.,27.,193.,66.,226.,1591.]w,b......
  • 梯度下降、梯度消失、梯度爆炸
    https://www.3blue1brown.com/lessons/gradient-descent梯度下降:成本函数:当网络自信地正确地对这个图像进行分类时,成本很小,但当它不知道自己在做什么时,成本就很大。最小化成本函数:找到训练成本的最小值微积分,有时可以通过求解斜率为零时来明确地计算出最小值。然而,对于真......
  • 梯度下降法 Method of steepest descent.
    梯度下降法是一个一阶最优化算法,通常也称为最速下降法。梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小。梯度下降法是2范数下的最速下降法。   最速下降法的一种简单形式是:x(k+1)=x(k)-a*g(k),其中a称为学习速率,可以是较......
  • 在求解线性回归的参数时 可以使用不同的方法 其中最常用的是平均法和梯度下降法
    线性回归是一种用于预测或解释数据之间关系的统计方法,特别是当关系呈线性时。在回归分析中,我们试图找到一个最佳拟合线,以通过或最接近一系列数据点。在求解线性回归的参数时,可以使用不同的方法,其中最常用的是平均法和梯度下降法。平均法:这种方法的基本思想是简单地计算所有观察值......
  • 梯度下降求极值,机器学习&深度学习
    目录[梯度下降求极值][导数][偏导数][梯度下降][机器学习&深度学习][学习形式分类[1)有监督学习][2)无监督学习][预测结果分类][1)回归&分类][2)聚类]梯度下降求极值导数导数也叫导函数,或者微商,它是微积分中的重要基础概念,从物理学角度来看,导数是研究物体某一时刻的瞬时速度,比......
  • 神经网络基础篇:详解逻辑回归 & m个样本梯度下降
    逻辑回归中的梯度下降本篇讲解怎样通过计算偏导数来实现逻辑回归的梯度下降算法。它的关键点是几个重要公式,其作用是用来实现逻辑回归中梯度下降算法。但是在本博客中,将使用计算图对梯度下降算法进行计算。必须要承认的是,使用计算图来计算逻辑回归的梯度下降算法有点大材小用了。......
  • 单细胞测序 rare cell 罕见的细胞类型
    单细胞测序 rarecell------------------------------------------罕见的细胞类型来说,鉴定出它们特定的标记基因目前仍存在很大挑战。而发现一些罕见的细胞类型,如干细胞,短暂存在的前体细胞,癌症干细胞或循环肿瘤细胞,对于深入理解正常和疾病状态下的组织生物学具有非常重要的意义。......
  • 刘老师《Pytorch深度学习实践》第三讲:梯度下降
    1.分治法不能用局部点干扰性大2.梯度下降3.随机梯度下降随机梯度下降法(StochasticGradientDescent,SGD):由于批量梯度下降法在更新每一个参数时,都需要所有的训练样本,所以训练过程会随着样本数量的加大而变得异常的缓慢。随机梯度下降法正是为了解决批量梯度下降法这一......
  • 形态学操作--4.梯度运算
    ......
  • 将CSS中的cellpadding和cellspacing设置为?
    内容来自DOChttps://q.houxu6.top/?s=将CSS中的cellpadding和cellspacing设置为?在HTML表格中,可以使用CSS设置cellpadding和cellspacing属性,如下所示:<style>table{cellspacing:1;cellpadding:1;}</style><table></table>这样就可以使用CS......