消失梯度如何限制 RNN 不适用于长距离依赖?

人工智能 深度学习 循环神经网络 梯度下降 梯度消失问题
2021-11-15 06:33:33

我真的很想了解 RNN、LSTM 等深度学习模型。我已经阅读了许多 RNN 教程,并且了解到 RNN 不能用于长范围依赖,例如:

考虑尝试预测文本“我在法国长大……我说一口流利的法语”中的最后一个词。最近的信息表明,下一个词可能是一种语言的名称,但如果我们想缩小哪种语言的范围,我们需要法国的上下文,从更远的地方。相关信息和需要的点之间的差距完全有可能变得非常大。不幸的是,随着差距的扩大,RNN 变得无法学习连接信息。

这是由于梯度消失问题。但是,我无法理解如何消除梯度会导致 RNN 无法处理长期依赖关系。因为,据我所知,消失梯度通常出现在我们有许多隐藏层时,而第一层的梯度通常产生的太低,这会影响训练过程。不过大家都把这个问题和梯度消失联系起来了,技术上RNN(长距离依赖)和梯度消失的关系是什么?

如果这是一个奇怪的问题,我真的很抱歉

1个回答

消失梯度是:随着梯度开始从网络末端(网络右侧)流向网络起点(网络左侧),它会乘以小于 1 的数字,然后逐渐变得越来越弱,当它到达第一层时,它非常弱,以至于初始层参数几乎没有变化。

现在,对于 RNN,您可以展开网络,现在您可以看到它就像一个深度网络。为了清楚起见,请看下图(取自 Andrew NG 的课程并经过编辑):

在此处输入图像描述

红色箭头表示梯度反向传播的方式,您可以看到在每一步中它们都乘以一个数字(实际上是一个矩阵乘以另一个矩阵)。如果这个数字小于一,那么它会导致梯度消失。如果此数字大于 1,则会导致曝光(可以通过简单地将其裁剪到最大值来控制)。台阶越高,消失或爆炸效果越强。

但是他们已经找到了解决这个问题的方法,LSTM 或 GRU。这些单元所做的是,它们将为梯度反向传播开辟一条高速公路(在每个状态中,它将乘以 1)。所以梯度可以传播更远的距离(从法国到法国)。尽管如此,这个问题仍然存在于很长一段时间的关系中。
如果你知道什么是 ResNet 以及它是如何工作的,你可以在 LSTM 或 GRU 和 ResNets 背后找到相同的概念,因为它们都为梯度回流开辟了高速公路。

您可以通过遵循前向传递并假设它们正在做什么将概念锁定在记忆单元中来直观地了解 LSTM 或 GRU 的工作原理。就像当网络看到这个词时France,它会明白这是一个重要的词,也许以后会变得很方便。所以它会把这个France词放在它的一个记忆单元中,并在那里保持几个步骤,当它想猜测语言时,它会使用这个记忆单元来预测Frenchnot Englishor Persian然后它可以释放该存储单元并将该单元用于其他用途。

如果您想了解更多信息并获得更好的直觉,我强烈建议您查看此链接:麻省理工学院的 CS231n - 第 10 讲