DAY3——LSTM

Long Short Term Memory networks(以下简称LSTMs),一种特殊的RNN网络,长序列,该网络设计出来是为了解决长依赖问题。该网络由 Hochreiter & Schmidhuber (1997)引入,并有许多人对其进行了改进和普及。他们的工作被用来解决了各种各样的问题,直到目前还被广泛应用。
在这里插入图片描述
细胞状态,传输训练数据的主通道。
让我们回到语言模型的例子中来基于已经看到的预测下一个词。在这个问题中,细胞状态可能包含当前主语的性别,因此正确的代词可以被选择出来。当我们看到新的主语,我们希望忘记旧的主语。
在这里插入图片描述
LSTM由三个门来控制细胞状态,这三个门分别称为忘记门、输入门和输出门。下面一个一个的来讲述。

ForgetGate
LSTM的第一步就是决定细胞状态需要丢弃哪些信息。这部分操作是通过一个称为忘记门的sigmoid单元来处理的。它通过查看和信息来输出一个0-1之间的向量,该向量里面的0-1值表示细胞状态中的哪些信息保留或丢弃多少。0表示不保留,1表示都保留。忘记门如下图所示。
在这里插入图片描述
InputGate

通过sigmoid函数决定信息的添加与否,而通过tanh函数得预备添加的数据,通过点乘即可以决定哪些数据的添加情况。
在这里插入图片描述输入门更新
在这里插入图片描述
输出门
最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行处理(得到一个在 -1 到 1 之间的值)并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。

在语言模型的例子中,因为他就看到了一个 代词,可能需要输出与一个 动词 相关的信息。例如,可能输出是否代词是单数还是负数,这样如果是动词的话,我们也知道动词需要进行的词形变化。
在这里插入图片描述

原文链接:https://www.aboutyun.com/forum.php?mod=viewthread&tid=27020
更多参考:https://zhuanlan.zhihu.com/p/28054589
TensorFlow中的RNNCell基本单元使用:https://www.jianshu.com/p/56243a97322c
Tensorflow rnn_cell api 阅读笔记:https://blog.csdn.net/huang_owen/article/details/80943772

发布了17 篇原创文章 · 获赞 1 · 访问量 3425

猜你喜欢

转载自blog.csdn.net/weixin_43983570/article/details/105182815
今日推荐