LSTM入门学习——结合《LSTM模型》文章看

简介:

摘自:https://zybuluo.com/hanbingtao/note/581764 写得非常好 见原文

长短时记忆网络的思路比较简单。原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么,假如我们再增加一个状态,即c,让它来保存长期的状态,那么问题不就解决了么?如下图所示:

新增加的状态c,称为单元状态(cell state)。我们把上图按照时间维度展开:

上图仅仅是一个示意图,我们可以看出,在t时刻,LSTM的输入有三个:当前时刻网络的输入值、上一时刻LSTM的输出值、以及上一时刻的单元状态;LSTM的输出有两个:当前时刻LSTM输出值、和当前时刻的单元状态。注意都是向量。

LSTM的关键,就是怎样控制长期状态c。在这里,LSTM的思路是使用三个控制开关。第一个开关,负责控制继续保存长期状态c;第二个开关,负责控制把即时状态输入到长期状态c;第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。三个开关的作用如下图所示:

接下来,我们要描述一下,输出h和单元状态c的具体计算方法。

 

长短时记忆网络的前向计算

下图显示了遗忘门的计算:

接下来看看输入门,下图表示了输入门的计算:

接下来,我们计算用于描述当前输入的单元状态,它是根据上一次的输出和本次输入来计算的,下图是计算:

现在,我们计算当前时刻的单元状态。它是由上一次的单元状态按元素乘以遗忘门,再用当前输入的单元状态按元素乘以输入门,再将两个积加和产生的,下图是计算:

这样,我们就把LSTM关于当前的记忆和长期的记忆组合在一起,形成了新的单元状态。由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。下面,我们要看看输出门,它控制了长期记忆对当前输出的影响。

下图表示输出门的计算:

LSTM最终的输出,是由输出门和单元状态共同确定的。

下图表示LSTM最终输出的计算:

式1到式6就是LSTM前向计算的全部公式。至此,我们就把LSTM前向计算讲完了。














本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7715131.html,如需转载请自行联系原作者


相关文章
|
13天前
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
|
6月前
|
PyTorch 算法框架/工具
时间序列预测:CNN+LSTM+Attention模型实战
时间序列预测:CNN+LSTM+Attention模型实战
246 0
|
5月前
|
机器学习/深度学习 存储 自然语言处理
一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)
一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)
122 0
|
11月前
|
机器学习/深度学习 自然语言处理 算法
RNN、CNN、RNN、LSTM、CTC算法原理,pytorch实现LSTM算法
RNN、CNN、RNN、LSTM、CTC算法原理,pytorch实现LSTM算法
202 0
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 39 Transformers库中的BERTology系列模型
词表文件:在训练模型时,将该文件当作一个映射表,把输入的单词转换成具体数字。(文本方式保存)
182 0
|
机器学习/深度学习 自然语言处理 PyTorch
【Pytorch神经网络实战案例】11 循环神经网络结构训练语言模型并进行简单预测
在实现时,将输入的序列样本拆开,使用循环的方式,将字符逐个输入模型。模型会对每次的输入预测出两个结果,一个是预测字符,另一个是当前的序列状态。
141 0
|
机器学习/深度学习 自然语言处理 算法
PyTorch-RNN循环神经网络实现分类-回归
PyTorch-RNN循环神经网络实现分类-回归
644 0
PyTorch-RNN循环神经网络实现分类-回归
|
机器学习/深度学习 自然语言处理 算法
PyTorch学习系列教程:循环神经网络【RNN】
前两篇推文分别介绍了DNN和CNN,今天本文来介绍深度学习的另一大基石:循环神经网络,即RNN。RNN应该算是与CNN齐名的一类神经网络,在深度学习发展史上具有奠基性地位。 注:RNN既用于表达循环神经网络这一类网络,也用于表达标准RNN模块。正常情况下不存在理解歧义,因此本文不加以明确区分。
237 0
PyTorch学习系列教程:循环神经网络【RNN】
|
机器学习/深度学习 存储 人工智能
NLP教程(5) - 语言模型、RNN、GRU与LSTM
本文介首先介绍了语言模型及其应用场景,进而介绍了循环神经网络(RNN)及优化后的变种LSTM(长短时记忆网络)和GRU模型。
1219 1
NLP教程(5) - 语言模型、RNN、GRU与LSTM