LSTM

Posted ylxn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LSTM相关的知识,希望对你有一定的参考价值。

摘自 https://www.cnblogs.com/wangduo/p/6773601.html?utm_source=itdadao&utm_medium=referral

 

一、RNN的优缺点

上篇中介绍了RNN。

RNN结构:

技术图片

 

RNN的优点:

  1. 先前的事件推断后续的事件。传统的神经网络很难做到这点。RNN 是包含循环的网络,允许信息的持久化。

RNN的缺点:

技术图片

 

  1. 当循环间隔不断增大时,RNN 会丧失学习到很远信息的能力。
  2. 理论上,RNN可以处理这样的长期依赖问题。但在实践中RNN不能学到这类知识。详情请参考 http://ai.dinfo.unifi.it/paolo//ps/tnn-94-gradient.pdf。

二、LSTM(Long, short,  term memory)

1、所有 RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的结构,例如一个 tanh 层。

技术图片

 

2、LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。

 技术图片

 

 里面的结构含义如下图:

技术图片

  • 每一条黑线传输整个向量
  • 粉色的圆圈是pointwise操作。诸如向量的和等
  • 黄色的矩阵是神经网络层
  • concatenate是向量的合并
  • copy是一个向量复制到两个不同的向量

 

三、LSTM的核心思想

1、LSTM的关键就是细胞状态。水平线在图上方运行。细胞状态类似于传送带。直接在整个链上运行。只有一些少量的线性交互。信息在上面流传保持不变会很容易。

技术图片

 

2、LSTM有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个sigmoid神经网络层和一个pointwise乘法操作。

 

三、逐步理解LSTM

1、在LSTM中,第一步决定我们从细胞状态中丢弃什么信息。这个决定通过一个称为遗忘门完成。该门会读取ht-1和xt,输出一个在0到1之间的数值给每个在细胞状态Ct-1中的数字。1表示“完全保留”,0表示“完全舍弃”。 

技术图片

 

 2、下一步是确定什么样的信息被存放在细胞状态中。这里包含两个部分。

  • sigmoid层称为“输入门层”决定什么值我们将要更新。
  • 然后一个tanh层创建一个新的候选值向量。

 技术图片

现在更新旧细胞状态。Ct-1更新为Ct。我们把旧状态与ft相乘,丢弃掉我们确定需要丢弃的信息。接着加上i* C~t。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。

技术图片

 

3、接着我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个sigmoid层来确定细胞状态的哪个部分将输出出去。接着我们把细胞状态通过tanh进行处理并将它和sigmoid门的输出相乘。最终我们仅仅会输出我们确定输出的那部分。

 技术图片

 

以上是关于LSTM的主要内容,如果未能解决你的问题,请参考以下文章

lstm预测基于鲸鱼算法优化lstm预测matlab源码

Pytorch Note36 循环神经网络的变式:LSTM和GRU