转自知乎作者:沉默中的思索

原文链接:https://www.zhihu.com/people/chen-mo-zhong-de-si-suo/activities

先上一张LSTM的经典图:

 

LSTM解决RNN梯度消失、爆炸问题~~

至于这张图的详细介绍请参考:Understanding LSTM Networks

下面假设你已经阅读过Understanding LSTM Networks这篇文章了,并且了解了LSTM的组成结构。

RNN梯度消失和爆炸的原因这篇文章中提到的RNN结构可以抽象成下面这幅图:

 

LSTM解决RNN梯度消失、爆炸问题~~

而LSTM可以抽象成这样:

 

LSTM解决RNN梯度消失、爆炸问题~~

三个×分别代表的就是forget gate,input gate,output gate,而我认为LSTM最关键的就是forget gate这个部件。这三个gate是如何控制流入流出的呢,其实就是通过下面 LSTM解决RNN梯度消失、爆炸问题~~ 三个函数来控制,因为 LSTM解决RNN梯度消失、爆炸问题~~(代表sigmoid函数) 的值是介于0到1之间的,刚好用趋近于0时表示流入不能通过gate,趋近于1时表示流入可以通过gate。

LSTM解决RNN梯度消失、爆炸问题~~

LSTM解决RNN梯度消失、爆炸问题~~

LSTM解决RNN梯度消失、爆炸问题~~

当前的状态 LSTM解决RNN梯度消失、爆炸问题~~类似与传统RNN LSTM解决RNN梯度消失、爆炸问题~~。将LSTM的状态表达式展开后得:

LSTM解决RNN梯度消失、爆炸问题~~

如果加上**函数, LSTM解决RNN梯度消失、爆炸问题~~

RNN梯度消失和爆炸的原因这篇文章中传统RNN求偏导的过程包含 LSTM解决RNN梯度消失、爆炸问题~~

对于LSTM同样也包含这样的一项,但是在LSTM中 LSTM解决RNN梯度消失、爆炸问题~~

假设 LSTM解决RNN梯度消失、爆炸问题~~ ,则 LSTM解决RNN梯度消失、爆炸问题~~ 的函数图像如下图所示:

 

LSTM解决RNN梯度消失、爆炸问题~~

可以看到该函数值基本上不是0就是1。

再看看RNN梯度消失和爆炸的原因这篇文章中传统RNN的求偏导过程:

LSTM解决RNN梯度消失、爆炸问题~~

如果在LSTM中上式可能就会变成:

LSTM解决RNN梯度消失、爆炸问题~~

因为 LSTM解决RNN梯度消失、爆炸问题~~ ,这样就解决了传统RNN中梯度消失的问题。

相关文章:

  • 2021-08-12
  • 2021-06-20
  • 2021-06-02
  • 2022-01-11
  • 2021-11-20
  • 2021-07-10
  • 2021-11-14
猜你喜欢
  • 2022-01-18
  • 2021-11-03
  • 2021-09-22
  • 2021-12-14
  • 2021-11-08
  • 2021-04-30
  • 2021-12-19
相关资源
相似解决方案