1、概述

上一节说到,简单的循环神经网络不能解决长期依赖问题,那么,这节就来看看可以解决这个问题的长短时记忆神经网络LSTM。

2、网络结构

LSTM通过刻意的设计来避免长期依赖问题,先来看看标准的RNN,如下图所示,这里的激活函数使用tanh函数,

而LSTM网络也是使用这样的结构,只是循环体用了不同的结构,如下图所示,

上图中使用的各个元素的图标的含义如下图所示,

其中,方框表示神经网络层;圆圈表示运算操作,如向量和;黑线传输着一整个向量,从一个节点的输出到其他节点的输入;合在一起的线表示向量的连接,分开的线表示内容被复制并分发到不同的位置。

3、核心思想

LSTM的核心思想是引入了细胞状态的连接,细胞状态用来存放想存放想要记忆的东西。如下图所示,

细胞状态类似于传送带,直接在整个链上运行,只有少量的线性交互,信息在上面流传保持不变很容易。

LSTM有通过精心设计的“门”结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择通过的方法,它们包含一个sigmoid神经网络层和一个乘法操作。Sigmoid层输出0到1之间的数,描述每个部分有多少量可以通过,0代表不允许任何量通过,1表示允许任何量通过,结构如下图所示,

LSTM拥有3个门,分别是忘记门,输入门,输出门,用来保护和控制细胞状态。下面分别来介绍。

4、忘记门
忘记门决定从细胞状态中丢弃什么信息。该门读取ht-1和xt,输出一个0到1之间的数给每个在细胞状态Ct-1中的数字。0表示完全丢弃,1表示完全保留。结构如下图所示,

5、输入门
输入门决定什么样的新信息被存放在细胞状态中,包含两个部分,第一部分为sigmoid层,该层决定要更新什么值,第二部分为tanh层,该层把需要更新的信息更新到细胞状态里。tanh层创建一个新的细胞状态值向量Ĉt,Ĉt会被加入到状态中。结构如下图,

然后就到了更新旧细胞状态的时间了,将Ct-1更新为Ct,把旧状态与ft相乘,丢弃确定需要丢弃的信息,再加上it*Ĉt ,这样就完成了细胞状态的更新,结构如下图所示,

6、输出门
输出门就是通过一个sigmoid层来确定细胞状态的哪个部分将输出出去。把细胞状态通过tanh进行处理,得到一个-1到1之间的值,并将它和sigmoid门的输出相乘,最终仅仅输出确定输出的部分。结构如下图所示,

7、LSTM变体
7.1、Peephole

该结构如下图所示,

这个模型增加了peepgole到每个门上,让门也接受细胞状态的输入。

7.2、GRU

改结构如下图所示,

这个模型将忘记门和输入门合并成一个单一的更新门,还混合了细胞状态和隐藏状态以及其他一些改动,最终使得该模型比标准LSTM模型要简单,但效果一样。


总结:

以上内容了解大概结构就可以了,TensorFlow等框架都将其封装好了,直接用就好了

TensorFlow精进之路(十三):长短时记忆神经网络LSTM相关推荐

  1. TensorFlow精进之路(十二):随时间反向传播BPTT

    1.概述 上一节介绍了TensorFlow精进之路(十一):反向传播BP,这一节就简单介绍一下BPTT. 2.网络结构 RNN正向传播可以用上图表示,这里忽略偏置. 上图中, x(1:T)表示输入序列 ...

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

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

  3. TensorFlow精进之路(三):两层卷积神经网络模型将MNIST未识别对的图片筛选出来

    1.概述 自从开了专栏<TensorFlow精进之路>关于对TensorFlow的整理思路更加清晰.上两篇讲到Softmax回归模型和两层卷积神经网络模型训练MNIST,虽然使用神经网络能 ...

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

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

  5. TensorFlow精进之路(九):TensorFlow编程基础

    1.概述 卷积部分的知识点在博客:TensorFlow精进之路(三):两层卷积神经网络模型将MNIST未识别对的图片筛选出来已经写过,所以不再赘述.这一节简单聊聊tensorflow的编程基础. 2. ...

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

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

  7. 小常识10: 循环神经网络(RNN)与长短时记忆网络LSTM简介。

    小常识10:  循环神经网络(RNN)与长短时记忆网络LSTM简介. 本文目的:在计算机视觉(CV)中,CNN 通过局部连接/权值共享/池化操作/多层次结构逐层自动的提取特征,适应于处理如图片类的网格 ...

  8. 【深度学习理论】(7) 长短时记忆网络 LSTM

    大家好,今天和各位分享一下长短时记忆网络 LSTM 的原理,并使用 Pytorch 从公式上实现 LSTM 层 上一节介绍了循环神经网络 RNN,感兴趣的可以看一下:https://blog.csdn ...

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

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

最新文章

  1. Java中String类的方法及说明
  2. MongoDB创建索引
  3. 2013 2016 年期末考试
  4. Android10弹出截屏对话框,Android一个美丽而聪明的警告对话框SweetAlert
  5. 【转】SQLite3简介及在.Net程序中的使用(自增列的创建)
  6. 面试官:CountDownLatch 与 CyclicBarrier 的使用场景?有什么区别?
  7. 软件数字签名证书选购指南
  8. 迅雷下载宝刷入padavan固件
  9. Wagtail SearchBackend —— ElasticSearch7 https 连接问题
  10. Manjaro安装与软件硬件基本配置(保姆级)
  11. 软考高项论文写作指南分享
  12. wlan连接的笔记本电脑+开启移动热点+手机无法连接【已解决】
  13. 团体程序设计天梯赛(L3-008 喊山 (30 分))
  14. 日志易之AIX、HP-UNIX小机探针Agent安装步骤
  15. 安科瑞ARD3M电动机保护器在红叶中的实际应用
  16. (转)代码结构中Dao,Service,Controller,Util,Model是什么意思?
  17. 2021数字中国创新大赛虎符网络安全赛-Writeup
  18. 安装win7系统所遇到的若干问题
  19. node.js新手入门初学
  20. 【微信小程序】之画布

热门文章

  1. 【李宏毅2020 ML/DL】补充:Ensemble: Bagging, Boosting, Adaboost, Gradient Boosting, Stacking
  2. Centos5.5系统备份
  3. iOS 之 Property List
  4. mysql开发平台_搭建mysql编程平台
  5. 苏炫杰全国计算机等级考试,高二升高三的主题班会
  6. html表单制作及实例问卷好吗,问卷网上制作问卷、表单、测评的区别
  7. Linux使用Mac键盘,System76 推出 Linux 键盘 看完手痒了!
  8. The Most Important Skill for Software Architects
  9. Google maps API开发(一)(转)
  10. HDUOJ-----I NEED A OFFER!