LSTM网络
Long short-term Memory Networks
很多地方翻译为长短期记忆网络,给人一种歧义,以为是网络一会儿能记很长的内容,一会儿能记很短的内容,但其实正确的翻译应该是长时间的短期记忆网络。它的本质就是能够记住很长时期内的信息
1. 普通的RNN
所有循环神经网络结构都是由结构完全相同的模块进行复制而成的。在普通的 RNN 中,这个模块非常简单

2. LSTM
LSTM 也有类似的结构,唯一的区别就是中间的部分,LSTM 不再只是一个单一的 层,而使用了四个相互作用的层

- 符号

在网络结构图中,每条线都传递着一个向量,从一个节点中输入到另一个节点。黄色的矩阵表示的是一个神经网络层;粉红色的圆圈表示逐点操作,如向量乘法、加法等;合并的线表示把两条线上所携带的向量进行合并(比如一个是 h t − 1 h_{t-1} ht−1 ,另一个是 x t x_t xt ,那么合并后的输出就是 [ h t − 1 , x t ] [h_{t-1},x_t] [ht−1,xt]);分开的线表示将线上传递的向量复制一份,传给两个地方
LSTM核心思想
1. conveyor belt
- LSTM的关键就是传送带机制,即贯穿图顶部的这条水平线,上面有cell状态;
- 向量从整个 cell 中穿过,只是做了少量的线性操作,这种结构能很轻松地实现信息从整个 cell 中穿过而不做改变(这样就可以实现长时期地记忆保留)。

2. Gates
- LSTM 也有能力向 cell 状态中添加或删除信息,这是由称为门(gates)的结构仔细控制的。门可以选择性的让信息通过,它们由 sigmoid 神经网络层和逐点相乘实现。

- 每个 LSTM 有三个这样的门结构来实现控制信息(分别是 forget gate 遗忘门;input gate 输入门;output gate 输出门)
详解各个Gates
1. forget gate
LSTM的第一步是决定要从cell状态中丢弃什么信息
- 输入是 h t − 1 和 x t h_{t-1} 和 x_t ht−1和xt
- 然后经过sigmoid函数激活,输出数值为0~1之间的向量(向量长度和 C

本文深入探讨LSTM网络,包括其与普通RNN的区别、核心的conveyor belt机制和门控结构,如forget gate、input gate和output gate。此外,还介绍了Pytorch中LSTM的使用以及BiLSTM的实现示例。

最低0.47元/天 解锁文章
9万+

被折叠的 条评论
为什么被折叠?



