文章目录

  • 一、LSTM核心思想
    • 1.1 Conveyor Belt(传输带)
  • 二、LSTM分布指南
    • 2.1 Forget Gate(遗忘门)
    • 2.2 Input Gate(输入门)
    • 2.3 New value(新的值)
    • 2.4 Output gate(输出门)
  • 三、LSTM: Number of Parameters(参数数量)
  • 四、LSTM for IMDB Review
  • 五、Summary(总结)

一、LSTM核心思想

  • LSTM是一种RNN模型
  • LSTM是对简单循环神经网络的改进
  • LSTM可以避免梯度消失的问题,可以有更长的记忆

1.1 Conveyor Belt(传输带)

  • 传输带记为向量Ct:过去的信息通过传输带直接送到下一个时刻,不会发生太大的变化。
  • LSTM就是靠传输带来避免梯度消失的问题

二、LSTM分布指南

2.1 Forget Gate(遗忘门)

  • 遗忘门有两部门组成;
  • 输入的Sigmoid函数是一个向量a,Sigmoid对向量a中的每一个元素都进行压缩,压缩在(0,1)之间的范围
  • Elementwise multiplication:两个矩阵对应位置元素进行乘积

遗忘门(ft):一个向量,有选择的让传输带C的值通过。

  • 假如f的一个元素为0,,则C对应的元素就不能通过,对应的输出为0。
  • 假如f的一个元素为1,,则C对应的元素全部通过,对应的输出为C本身。

参数矩阵Wf ,需要通过反向传播从训练数据中学习。

2.2 Input Gate(输入门)

输入门(it):更新传输带的值

参数矩阵Wi ,需要通过反向传播从训练数据中学习。

2.3 New value(新的值)

New value:将值添加到传输带上

2.4 Output gate(输出门)

输出门(Ot):

三、LSTM: Number of Parameters(参数数量)

有4个参数矩阵,每个参数矩阵

  • 行:shape(h)
  • 列:shape(h)+ shape(x)

LSTM参数数量(没有统计截距)

  • 4×shape(h)× [ shape(h)+ shape(x) ]

四、LSTM for IMDB Review

# 设置超参数
vocabulary = 10000   # 词典里面有10000个词汇
embedding_dim=32     # shape(x)=32,词向量x的维度为32
word_num = 500       # 每个电影评论有500个单词,如果超过500个单词,就会被截掉;如果不到500,就会补够。
state_dim =32        # shape(h) = 32,状态向量h的维度为32# 开始搭建网络
model = Sequential()     # 建立Sequential()模型
# 往model里面加层,Embedding层,把词映射成向量
model.add(Embedding(vocabulary,embedding_dim,input_length=word_num))
# 需要指定状态向量h的维度,设置RNN层的return_sequences=False,表示RNN只输出最后一个状态向量h,把之前的状态向量舍去
model.add(LSTM(state_dim,return_sequences=False))
# 全连接层,输入RNN的最后一个状态h,输出0-1之间的数
model.add(Dense(1, activation="sigmoid"))model.summary()

五、Summary(总结)

  • LSTM uses a "conveyor belt"to get longer memory than SimpleRNN.

  • Each of the following blocks has a parameter matrix:

    • Forget gate(遗忘门)
    • Input gate (输入门)
    • New value (新的输入)
    • Output gate(输出门)
  • Number of parameters:
    4 x shape (h) x [ shape (h) +shape (x) ].

3_Long Short Term Memory (LSTM)相关推荐

  1. Stanford NLP 第六课: Long Short Term Memory

    RNN存在着梯度消失的问题, 难以学习长期的依赖关系.如何解决RNN的梯度消失问题? Long  Short Term Memory (LSTM) 就是解决这个问题的. 上图是LSTM的一个整体结构. ...

  2. 有哪些LSTM(Long Short Term Memory)和RNN(Recurrent)网络的教程?

    知乎用户,阿里巴巴数据应用部门长期招聘「算法,分- 500 人赞同 刚好毕设相关,论文写完顺手就答了 先给出一个最快的了解+上手的教程: 直接看theano官网的LSTM教程+代码:LSTM Netw ...

  3. 递归神经网络变形之 (Long Short Term Memory,LSTM)

    1.长短期记忆网络LSTM简介 在RNN 计算中,讲到对于传统RNN水平方向进行长时刻序列依赖时可能会出现梯度消失或者梯度爆炸的问题.LSTM 特别适合解决这种需要长时间依赖的问题. LSTM(Lon ...

  4. 简单聊聊Long Short Term Memory Network (LSTM)和 Gated Recurrent Unit (GRU)两种强大的RNN变体

    上一篇关于RNN的文章最后,我们提到过由于梯度消失和梯度爆炸问题,使得RNN很难处理长距离的依赖.本文我们介绍两种改进后的RNN:LSTM(Long Short Term Memory Network ...

  5. LSTM(long short term memory)长短期记忆网络

    bags of word(WOE) 它的基本思想是假定对于一个文本,忽略其词序和语法.句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的 循环神经网络(recurrent neural ...

  6. 详细讲解RNN+LSTM+Tree_LSTM(Tree-Long Short Term Memory)基于树状长短期记忆网络

    14天阅读挑战赛 详细讲解RNN+LSTM+Tree_LSTM(Tree-Long Short Term Memory)基于树状长短期记忆网络 一.RNN 要讲解Tree_LSTM,这必须得从RNN开 ...

  7. Classifying Relations via Long Short Term Memory Networks along Shortest Dependency Paths

    Classifying Relations via Long Short Term Memory Networks along Shortest Dependency Paths 概述 论文提出了一种 ...

  8. 长短时记忆网络(Long Short Term Memory,LSTM)详解

    长短时记忆网络是循环神经网络(RNNs)的一种,用于时序数据的预测或文本翻译等方面.LSTM的出现主要是用来解决传统RNN长期依赖问题.对于传统的RNN,随着序列间隔的拉长,由于梯度爆炸或梯度消失等问 ...

  9. Long Short Term Memory networks(LSTMs)

    背景:在我之前的一篇博客中说了一下对RNN的理解,RNN对于长句子表示的不是很好,超过六七层的网络之后就很难获得之前内容的信息了,目前的框架是基于梯度的,多层网络很容易出现梯度弥散的情况.但是对于NL ...

最新文章

  1. 返回代表指定日期的指定日期部分的整数。返回当前周
  2. 学python有哪些书推荐-学python看什么书好?求推荐
  3. 纯CSS3实现宽屏二级下拉菜单
  4. 反射load,loadfile,LoadFrom区别
  5. 第一个程序python-HelloWorld
  6. Android开发相关操作
  7. C++ popcount()含义
  8. 为什么我们应该像盖房子那样写程序?
  9. H5 调用摄像头进行拍照
  10. html有多少种居中方式,html常用的几种居中方法
  11. Modelica中Stream变量
  12. last reboot
  13. 服务器技术的发展方向
  14. JAVA毕业设计Web企业客户管理系统计算机源码+lw文档+系统+调试部署+数据库
  15. wmv格式+java_Java调用ffmepg+mencoder视频格式转换(*)
  16. 移动端切图内容包括什么_移动终端界面切图
  17. K13252 [国王游戏2]
  18. 计算机设置定时关机win10,win10系统定时关机如何设置?
  19. 连续六个季度实现盈利改善,达达集团内外双重确定性凸显
  20. 寻找二值图像连通域的算法分析

热门文章

  1. PAT乙级(1032 挖掘机技术哪家强 )
  2. java面试 设计模式_Java面试中常问到的设计模式
  3. 为什么要写this在访问成员变量的时候_java面向对象(局部变量和成员属性)
  4. void readstring( char s[] ); 怎样_char *s和char s[]
  5. MogDB数据库高可用及负载均衡JDBC参数测试
  6. 直播丨数据安全:Oracle多场景下比特币勒索的揭密与恢复实战
  7. 两分钟搞定阿里SQL面试题:亿级表合并
  8. Linux IPTables:如何添加防火墙规则
  9. 传统到敏捷的转型中,谁更适合做Scrum Master?
  10. 超详细的jQuery的 DOM操作,一篇就足够!