LSTM是RNN的一个改进版,其主要目的是解决RNN因为网络中输入的序列过长,丢失了之前的信息的情况

回顾一下原来的RNN

下面这张图展示的是SimpleRNN的一个网络结构

这样的一个链式结构LSTM也是继承了的,但是其中的repeating module 有了不同的结构表现形式,也就是对应的门式结构,如下图所示,黄色方框表示的神经网络层,粉色的圈是矩阵运算符号接下来逐个介绍其中的门(一共3个)

首先是LSTM的核心思想,Cell stateL=》“细胞状态”(cell state)来刻画神经元的记忆中,不太容易衰减的部分,并围绕细胞状态构造长期记忆,而其中门是一种决定之前的记忆信息是否能够通过继承到下一次的方法,其中由一个sigmoid激活函数和一个矩阵乘法运算构成,用以控制cell state(细胞状态)

第一个门是Forget gate,其具体计算如下,里边的控制变量即其输出的ft

第二个是输入门,这里引入了一个决策变量it和一个中间变量波浪ct,其中it是与ht-1和xt相关的经过sigmoid和w矩阵乘得到的,波浪ct则是使用的tanh函数同样是与ht-1和xt相关的量

第二段输入门,这里输入门,Ct由上一次的输入Ct-1和波浪Ct决定,Ct-1是代表的之前的记忆信息,其决策变量为ft如果ft=1则全部继承,ft=0则相当于忘记了之前的记忆信息只考虑后面那一项波浪Ct,而it与ft类似,主要是配合来决定我们每次以什么样的程度继承之前的记忆信息。

最后一个是输出层,这个不多解释了产生两个输出ot是这一个节点的输出,ht会进入下一次循环,其公式略有不同,这里是因为我们要把ht构建成一个【-1,1】的变量而ot是作为输出来进行反馈梯度下降的变量

最后整合一下前面的过程放几张图整体理解下:

最后一张是解释了LSTM是如何解决梯度消失的问题的,这里容易理解之前的梯度消失是因为链式求导的过程中出现了WR的i次方,这个在前边的那一块介于0-1或者>1时都会出现对应的梯度爆炸和梯度弥散的现象,这里最后的链式求导由于引入了门的概念,Ct-1,波浪Ct,it和ft之间相互制衡,即便是出现了对应的Wf得i-1次方或者Wi的i-1次方等都会有另一个变量制衡,这样一定程度上减缓了梯度弥散的问题,当然也不是绝对的;讲了一堆理论,实战部分请参看后边的GRU实战,因为LSTM和GRU差别不大我没有额外单独做LSTM的了

Tensorflow 循环神经网络03 LSTM长短时记忆神经网络相关推荐

  1. 二十五、长短时记忆神经网络

    1. 长短时记忆神经网络 1.1 长短时记忆神经网络 长短时记忆神经网络(Long Short Term Memory, LSTM )是一种RNN特殊的类型,可以学习长期依赖信息.在很多问题上,LST ...

  2. TensorFlow精进之路(十三):长短时记忆神经网络LSTM

    1.概述 上一节说到,简单的循环神经网络不能解决长期依赖问题,那么,这节就来看看可以解决这个问题的长短时记忆神经网络LSTM. 2.网络结构 LSTM通过刻意的设计来避免长期依赖问题,先来看看标准的R ...

  3. 【LSTM】深入浅出讲解长短时记忆神经网络(结构、原理)

    本文收录于<深入浅出讲解自然语言处理>专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅! ​​个人主页:有梦想的程序星空 ​​个人介绍:小编是人工智能领域硕士,全 ...

  4. 长短时记忆神经网络python代码_人工智能之长短时记忆神经网络

    人工智能之长短时记忆神经网络(LSTM) 前言:人工智能机器学习有关算法内容,请参见公众号"科技优化生活"之前相关文章.人工智能之机器学习主要有三大类:1)分类;2)回归;3)聚类 ...

  5. 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  6. 【LSTM分类】基于卷积神经网络结合双向长短时记忆CNN-Bi-LSTM实现数据分类含Matlab源码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  7. 【LSTM预测】基于卷积神经网络结合双向长短时记忆CNN-BiLSTM(多输入单输出)数据预测含Matlab源码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  8. 【VMD-DBO-LSTM】变分模态分解-蜣螂优化算法-长短时记忆神经网络研究(Python代码实现)

  9. LSTM(长短时记忆网络)原理、pytorch实现、参数量分析以及应用场景简单总结

    目录 一.LSTM原理 遗忘门 输入门 细胞状态更新 输出门 LSTM数学模型 二.lstm的实现 三 .lstm学习参数总量分析一级pytorch框架下lstm输入总结 1.学习参数总量分析 2.p ...

最新文章

  1. 《LeetCode力扣练习》剑指 Offer 09. 用两个栈实现队列 Java
  2. 专题 12 IPC之消息队列
  3. 事物运动的状态和方式是谁提出的_金属材料在电磁场中的行为方式及其与光电效应的关系分析...
  4. 046 实例11-自动轨迹绘制
  5. leetcode 861. 翻转矩阵后的得分(贪心算法)
  6. 怎样提高学生计算机应用能力,能力学生论文,关于如何提高技校生计算机的应用能力相关参考文献资料-免费论文范文...
  7. 软件测试工程师除了找BUG,还能干啥?
  8. LinkedHashMap 底层分析
  9. 数控加工仿真系统 - FANUC OI 车床编程笔记(粗略)
  10. 用Hexo制作自己的静态博客
  11. n1盒子救砖_新手教程教你N1盒子纯净刷机教程,实现OMV、HomeAssistant功能
  12. 3分钟看懂工业交换机EMS试验和高低温测试
  13. 正则+案例:验证座机号码,过滤敏感词
  14. C语言中数组和字符串长度以及输入输出详解
  15. Python配置清华镜像源
  16. 论文阅读【域泛化】:ECCV2018|Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net
  17. Pandas RuntimeWarning: More than 20 figures have been opened. Figures created plt.close()也不起作用
  18. 高阶函数:如何使用过滤器,映射和约简以获得更可维护的代码
  19. ShardingSphere 5.2.1 发布|新增系统库、强制分片路由、一致性校验
  20. Web基础(三)Python Web

热门文章

  1. 常用的色彩名、色彩值的对照表
  2. MySQL新建数据库时utf8_general_ci编码解释
  3. Pandas数据帧(DataFrame)
  4. java怎样读取数据库表中字段的数据类型?
  5. 【python】matplotlib生成散点矩阵图
  6. 异步调用WebService
  7. desktop.ini winxp之马上更新图标
  8. 几款远程工具介绍(Xshell)(SecureCRT)(putty)
  9. 对atexit函数的理解
  10. AngularJS消费 小计