时间序列学习(5)——LSTM 基本原理

文章目录

  • 1 从 RNN 说起
  • 2 RNN的缺点,为什么要引入LSTM
  • 3 介绍LSTM 的门结构
    • 3.1 遗忘门(遗忘阶段)
    • 3.2 输入门
    • 3.3 相加得到 Ct
    • 3.4 输出门
    • 3.5 总结+公式推导
  • 4 为什么LSTM能够解决Gradient Vanishing的问题

1 从 RNN 说起

       循环神经网络Recurrent Neural Network,RNN 是一种用于处理序列数据的神经网络。

        相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。


2 RNN的缺点,为什么要引入LSTM

        长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题

        简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现
时间序列学习(5)——LSTM 基本原理_第1张图片

  • RNN 仅有一个传递状态 h t h_t ht, 而LSTM 具有两个传递状态,分别是 c t 和 h t c_t和h_t ctht 【注意,LSTM中的 c t c_t ct 相当于 RNN中的 h t h_t ht

3 介绍LSTM 的门结构

  • 相信大家都知道了LSTM有3个门,遗忘门、输入门和输出门,下面就从三个门讲些细节!

3.1 遗忘门(遗忘阶段)

遗忘阶段用粉红色突出

x t x_t xt : 当前的输入
h t − 1 h_{t-1} ht1 : 上一层传递下来的状态

  1. 首先计算出 f t f_t ft也就是遗忘门的开度(开的大小,可以说是很形象了)
    时间序列学习(5)——LSTM 基本原理_第2张图片

σ \sigma σ : 是输出0-1 之间的数,这样 f t f_t ft 就是一个 0-1 之间的数

  1. 然后 c t − 1 c_{t-1} ct1 × f t f_t ft , 可以理解是对于上一个节点传来的数据进行选择性忘记,用来控制 c t − 1 c_{t-1} ct1 中的信息,哪些需要忘记 哪些需要记住。


3.2 输入门

  1. 同样的,先计算输入门的开度, i t i_t it

x t x_t xt : 当前的输入
h t − 1 h_{t-1} ht1 : 上一层传递下来的状态
w i 和 b i w_i和 b_i wibi:是由 propagation 决定的

时间序列学习(5)——LSTM 基本原理_第3张图片


  1. 对于当前的输入 x t x_t xt , 是还要做一个 tanh 运算的。

在这里插入图片描述


时间序列学习(5)——LSTM 基本原理_第4张图片


3.3 相加得到 Ct

时间序列学习(5)——LSTM 基本原理_第5张图片
时间序列学习(5)——LSTM 基本原理_第6张图片

  • 这里用 C t C_t Ct 来表示memory(是一个传递状态)

3.4 输出门

  1. 同理,先计算输出门的开度, o t o_t ot
    在这里插入图片描述
  2. 计算 h t h_t ht, 也就是要传入到下一层的
    在这里插入图片描述

时间序列学习(5)——LSTM 基本原理_第7张图片

3.5 总结+公式推导

时间序列学习(5)——LSTM 基本原理_第8张图片

4 为什么LSTM能够解决Gradient Vanishing的问题

时间序列学习(5)——LSTM 基本原理_第9张图片


参考博文:

https://blog.csdn.net/qq_38147421/article/details/107692418

你可能感兴趣的:(循环神经网络,lstm,pytorch,rnn,学习,深度学习)