长短期记忆网络LSTM(Long Short Term Memory)本身不是一个完整的模型,主要是对RNN隐含层的改进。因此,

RNN网络即使用LSTM单元的RNN网络。LSTM非常适合用于处理与时间序列高度相关的问题,例如机器翻译、对话

生成、编码解码、图文转换等。

1. LSTM基本原理

(1)RNN和LSTM网络

所有的循环网络都具有链式的重复模块神经网络。在标准的RNNs中,这种重复模块具有非常简单的结构,比如是一

个tanh层。LSTM同样具有链式结构,但是其重复模块却有着不同的结构。不同于单独的神经网络层,它具有4个以特

殊方式相互影响的神经网络层。如下所示:

LSTM模型为解决长期依赖问题而诞生,在原有的短期记忆单元的基础上,增加一个记忆单元来保持长期记忆。

(2)LSTM核心思想

LSTM的关键在于元胞状态,在图中以水平线表示。元胞状态就像一个传送带,它顺着整个链条从头到尾运行,中间

只有少许线性的交互,信息很容易顺着它流动而保持不变。如下所示:

LSTM通过门(Gates)的结构来对细胞状态增加或者删除信息。门是选择性让信息通过的方式。它们的输出有一个

sigmoid层和逐点乘积操作。如下所示:

sigmoid层的输出在0到1之间,定义了各成分被放行通过的程度。0值意味着不让任何东西过去;1值意味着让所有东

西通过。一个LSTM具有3种门(输入门,遗忘门,输出门),用以保护和控制元胞状态。

(3)LSTM遗忘门

首先,LSTM决定要从元胞中抛弃何种信息。这个决定是由叫做遗忘门的sigmoid层决定的。它以为输入,在

元胞输出一个介于0和1之间的数。其中1代表完全保留,0代表完全遗忘。如下所示:

(4)LSTM输入门

然后,LSTM决定元胞中要存储何种信息。它有2个组成部分:由一个叫做输入门的sigmoid层决定将要更新哪些

值;一个tanh层创建一个新的候选向量,它可以加在状态之中。在下一步将结合两者来生成状态的更新。如

下所示:

将旧元胞状态更新为。即把旧状态乘以,用以遗忘之前决定忘记的信息,然后加上。这是新的候选值,

根据决定更新状态的程度来作为放缩系数。如下所示:

(5)LSTM输出门

最后,LSTM决定输出哪些内容。输出取决于元胞状态,但是以一个过滤后的版本。使用sigmoid层来决定要输出元胞

状态的哪些部分;把用tanh处理元胞状态(将状态值映射到-1至1之间);将其与sigmoid门的输出值相乘,从而能够

输出决定输出的值。如下所示:

说明:循环神经网络中的状态是通过一个向量来表示的,这个向量的维度也称为循环神经网络隐藏层的大小。
参考文献:
[1] The Unreasonable Effectiveness of Recurrent Neural Networks:http://karpathy.github.io/2015/05/21/rnn-

effectiveness/

[2] Understanding LSTM Networks:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

TensorFlow学习日记9相关推荐

  1. TensorFlow学习日记之tflearn

    1. tflearn 训练并保存模型 TensorFlow学习日记17_阿升1990的博客-CSDN博客1. Layers解析:"""This tutorial will ...

  2. 【学习日记】手写数字识别及神经网络基本模型

    2021.10.7 [学习日记]手写数字识别及神经网络基本模型 1 概述 张量(tensor)是数字的容器,是矩阵向任意维度的推广,其维度称为轴(axis).深度学习的本质是对张量做各种运算处理,其分 ...

  3. 【干货】史上最全的Tensorflow学习资源汇总,速藏!

    一 .Tensorflow教程资源: 1)适合初学者的Tensorflow教程和代码示例:(https://github.com/aymericdamien/TensorFlow-Examples)该 ...

  4. Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题

    Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 参考文章: (1)Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 (2)http ...

  5. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  6. Tensorflow学习: 乘法demo

    Tensorflow学习: Placeholder占位符 标签: tensorflow 2017-05-03 11:18 104人阅读 评论(0) 收藏 举报  分类: Tensorflow(6)  ...

  7. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  8. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  9. tensorflow学习入门笔记

    <div class="note"><div class="post"><div class="article" ...

  10. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

最新文章

  1. 软件体系架构模式之三微内核体系架构
  2. MINA与JMX集成(翻译)
  3. 前端基础:学习 ES6 新特性
  4. java反射性能问题_Java反射应用实例java反射的性能问题 | 学步园
  5. split函数python_Python numpy.hsplit函数方法的使用
  6. Repeater控件的
  7. mysql 查询优化 ~ 善用profie利器
  8. LoRa学习<二>:Rx Duty Cycle模式实验
  9. 安装QQ时创建目录失败的解决办法
  10. vsftpd的安装和使用
  11. 微签电子印章自动生成上线
  12. 中职升高职c语言程序设计教程课后答案,2020年高职单招计算机类技能复习题及答案(中职生)...
  13. php mysql多线程处理数据6_PHP WIN MYSQL Rdeis 下多进程处理产品数据测试 31 万条 6 进程...
  14. 【渝粤题库】广东开放大学 互联网金融本 形成性考核
  15. 磨金石教育手机摄影技巧||处理好照片的主次,出片率提高10倍!
  16. [HEOI 2012] 采花
  17. bigemap如何切换外网IP地址
  18. TIVA-TM4C123GH6PM的输入边沿计时模式的配置
  19. 《软件人才管理的艺术》笔记
  20. 彪悍的老罗,等你解释锤子ROM要如何改变世界

热门文章

  1. 期末C语言不挂科之选择题
  2. ibm服务器预装什么系统,如何恢复IBM存储服务器的预装系统
  3. 佐治亚理工计算机科学录取,早规划获佐治亚理工学院GaTech CS硕士录取
  4. c# wpf 利用截屏键实现截屏功能
  5. java_求1到n英寸换算厘米 (右对齐,保留两位小数)
  6. 小学带计算机2000的检讨书,小学生检讨书范文
  7. 市值仅剩5亿美元,猎豹移动为何赢了财报却输了市值?
  8. 计算机辅助翻译专业实训报告,计算机辅助翻译实训报告格式(7页)-原创力文档...
  9. BitTorrent 性能卓越的原因
  10. c# Monitor