文章目录
- 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能够在更长的序列中有更好的表现。

- RNN 仅有一个传递状态 h t h_t ht, 而LSTM 具有两个传递状态,分别是 c t 和 h t c_t和h_t ct和ht 【注意,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} ht−1 : 上一层传递下来的状态
- 首先计算出 f t f_t ft ,也就是遗忘门的开度(开的大小,可以说是很形象了)

σ \sigma σ : 是输出0-1 之间的数,这样 f t f_t ft 就是一个 0-1 之间的数
- 然后 c t − 1 c_{t-1} ct−1 × f t f_t ft , 可以理解是对于上一个节点传来的数据进行选择性忘记,用来控制 c t − 1 c_{t-1} ct−1 中的信息,哪些需要忘记 哪些需要记住。
3.2 输入门
- 同样的,先计算输入门的开度, i t i_t it
x t x_t xt : 当前的输入
h t − 1 h_{t-1} ht−1 : 上一层传递下来的状态
w i 和 b i w_i和 b_i wi和bi:是由 propagation 决定的

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


3.3 相加得到 Ct


- 这里用 C t C_t Ct 来表示memory(是一个传递状态)
3.4 输出门
- 同理,先计算输出门的开度, o t o_t ot

- 计算 h t h_t ht, 也就是要传入到下一层的


3.5 总结+公式推导

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

参考博文:
https://blog.csdn.net/qq_38147421/article/details/107692418