为什么带有 LSTM 单元的 RNN 也会遭受“梯度爆炸”的困扰?

机器算法验证 神经网络 lstm 循环神经网络 反向传播
2022-02-13 03:36:38

我对 RNN(尤其是 LSTM 单元)如何工作有基本的了解。我对 LSTM 单元的架构有一个图形化的想法,即一个单元和几个门,它们调节值的流动。

但是,显然,我还没有完全理解 LSTM 如何解决“梯度消失和爆炸”问题,这种问题发生在训练时,使用随时间的反向传播,传统的 RNN。我还没有机会阅读论文来完全理解数学。

这个答案简要解释了带有 LSTM 单元的 RNN 如何解决“梯度消失”问题。从数学上讲,原因似乎是不存在不为零的导数,即不趋向于零。因此,作者指出,“至少存在一条梯度不会消失的路径”。恕我直言,这个解释有点模糊。

同时,我正在阅读论文Sequence to Sequence Learning with Neural Networks(Ilya Sutskever、Oriol Vinyals、Quoc V. Le 撰写),并且在那篇论文中的“3.4 训练细节”一节中指出

尽管 LSTM 往往不会受到梯度消失问题的影响,但它们可能会出现梯度爆炸。

我一直认为带有 LSTM 单元的 RNN 可以同时解决“梯度消失”和“梯度爆炸”的问题,但显然,带有 LSTM 单元的 RNN 也存在“梯度爆炸”的问题。

直觉上,这是为什么呢?从数学上讲,原因是什么?

2个回答

一个非常简短的答案:

LSTM 将单元状态(通常用 表示c)和隐藏层/输出(通常用 表示)解耦h并且只cc因此流过的梯度c保持不变并且难以消失(因此整体梯度很难消失)。但是,其他路径可能会导致梯度爆炸。


带有数学解释的更详细的答案:

我们先回顾一下CEC(Constant Error Carousel)机制。CEC 说,从时间步tt+1,如果遗忘门为 1(原始 LSTM 论文中没有遗忘门,因此总是如此),梯度可以无变化地流动。继论文LSTM: A Search Space Odyssey附录 A.2 中的 BPTT 公式(在论文中是在其他文献中),CEC 流实际上对应于方程接近 1 时,无损地累积到dl/dctyhδct=+δct+1ft+1ft+1δct+1δct

然而,LSTM 不仅仅是 CEC。除了从的 CEC 路径之外,在两个相邻时间步之间确实存在其他路径。例如,通过 2 个步骤遍历反向传播过程,我们有:,我们看到在这条路径上乘了两次,就像普通 RNN 一样,这可能会导致梯度爆炸。的自乘,通过输入和遗忘门的路径也能够导致梯度爆炸ctct+1ytot+1yt+1δytRoTδot+1δyt+1RoTδot+2RoTRiT,RfT,RzT

参考:

K. Greff、RK Srivastava、J. Koutn´ık、BR Steunebrink 和 J.Schmidhuber。LSTM:搜索空间奥德赛。CoRR,abs/1503.04069,2015。

LSTM/GRU 之前的 RNN 曾经是不稳定的,因为他们所做的本质上是将隐藏状态与每个时间步的权重相乘,这意味着它是指数运算。正如我们所知,求幂非常不稳定: LSTM/GRU 单元通过将乘法转换为加法来解决这个问题。您有一个单元格状态,而不是相乘,您可以添加或减去它。

0.992000.134
1200=1
1.0120013

但是,仍然存在一些梯度可能会变得不稳定的路径,并且网络越大,您遇到这个问题的可能性就越大。