LSTM入门学习——结合《LSTM模型》文章看
2017-10-23 10:34
169 查看
摘自: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前向计算讲完了。
长短时记忆网络的思路比较简单。原始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前向计算讲完了。
相关文章推荐
- Lucene.net入门学习(结合盘古分词)
- 零基础入门深度学习(6) - 长短时记忆网络(LSTM)
- 【原】Ext2.2学习系列:ExtJS与.NET结合开发实例--全部Ext2.2示例--索引贴 (共收录56篇文章)
- Java学习从入门到精通(很不错的一篇JAVA入门文章)
- UML学习入门就这一篇文章
- (NodeJS学习文章收集一) NodeJS入门–环境搭建 IntelliJ IDEA
- 技术文章|全面连接困何处_卷积网络见解深(深度学习入门全系列)
- Git版本控制软件结合GitHub从入门到精通常用命令学习手册
- Socket网络学习入门好文章
- 技术文章 | 循环递归RNN_序列建模套路深(深度学习入门系列之十三)
- Git版本控制软件结合GitHub从入门到精通常用命令学习手册
- 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (作者:剽悍一小兔)前五节学习随笔
- Git版本控制软件结合GitHub从入门到精通常用命令学习手册
- Struts入门文章系列(链接)及学习笔记
- 【学习李绪成JavaWeb入门】对java Web入门,很不错,代码通俗易懂,建议结合教材和代码,一起学习
- 增强学习 比较好的入门文章
- nodejs入门详解(多篇文章结合)
- LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)
- Java的Hibernate框架结合MySQL的入门学习教程
- LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)