LSTM的引入

*虽然RNN的训练过程和多层神经网络差异不大,写程序较简单,但是Rnn的训练是十分困难的,而且很难学到长期依赖,因为当对参数进行求导更新时,式子中会使用链式法则不断乘积和求导,如在对参数w更新的式子中,会需要使用链式法则,这样当对一个变量针对变量函数求导时,会得到一个雅可比矩阵,这样就会出现两个问题。

[1].如果雅可比阵中有较小数时,经过多次矩阵相乘,梯度值会快速收缩,从而导致较远时刻贡献的梯度接近0,使得更新时无法学习到长期依赖而结束,这也就是梯度消散问题。(主要问题)

[2].如果雅可比阵中有较大数时,经过多次矩阵相乘,梯度值会快速增长,这也就是梯度爆炸问题。

*RNN结构也会遇到长期依赖问题,在一些简单场景,相关的信息和预测的词位置之间的间隔是非常小的,RNN 可以学会使用先前的信息。

*但是在一些复杂的环境中,假设我们试着去预测“I grew up in France... I speak fluent French”最后的词French 时。当前的信息建议下一个词可能是一种语言的名字,但是如果我们需要弄清楚是什么语言,我们是需要先前提到的离当前位置很远的 France 的上下文的。这说明相关信息和当前预测位置之间的间隔就肯定变得相当的大。

*不幸的是,在这个间隔不断增大时,RNN 会丧失学习到连接如此远的信息的能力。在理论上,RNN 绝对可以处理这样的长期依赖 问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN没能成功学习到这些知识,有专门的证明。

*梯度消失的问题使得隐层的输入对于网络输出的影响随着网络环路的不断递归而衰减(有点绕口),为了解决这一问题,我们引入了长短时记忆模块lstm,它会将一个加强版的组件组装到循环神经网络中,通过改造记忆细胞s来解决长期梯度问题。

*Lstm核心组件起到对信息的限制作用,里面会有一些门结构进行信息筛选和限制,使得该记的信息传递下去,不该记的信息被门卡住,通过这种结构来解决长期长期依赖问题,使得网络能记住长期的信息,这样后期的早期的信息也能对后面的网络输出起作用。

LSTM模型

Lstm是一个比较复杂的模型结构,其核心结构如下图所示。

*lstm模块中一个重要结构是有三个门,每个门都是下图的形式,我们会使用门结构来控制信息的流动,里面是一个Sigmoid神经网络层和pointwise乘法结构的组合,使用Sigmoid来控制输出0到1的概率值,用于描述有多少信息比例通过,1表示完全通过,0表示完全舍弃。pointwise是后跟的乘法运算,用于将概率结合到计算中去,从而起到信息控制效果。

lstm模块的另一个重要结构是细胞状态线,如下图中所示,这里类似于RNN中的S生成,细胞也是起到储存记忆的作用,进行记忆的传播和生成。

在lstm模块中输入到模块的信息有三部分:

【1】上一模块传来的细胞状态

【2】上一模块的输出    

【3】这一时刻读入的新词 ,用于生成新记忆。

输出的信息包括:往后传递的细胞状态 、新的输出

LSTM计算过程

现在开始介绍下lstm模块中由前往后的流动过程,主要分为四大部分:

[1]第一步会决定从原细胞记忆中保留多少比例的信息(遗忘门),这个比例的计算式子为: ,通过这个网络的输出f是一个(0,1)范围内的数,用于之后的 计算来决定对旧记忆的保留程度。

[2]第二步会确定哪些新信息会存到新的细胞状态中去(输入门),这部分是两个计算的结合,即生成新信息和新信息使用比例的结合。sigmoid层计算:  、完整新细胞信息:、组合的新学信息为:

[3]第三步会融合一、二步信息得到新的细胞状态是将旧信息的保留部分和新学到的信息组合生成的,对应于下面的图,生成本时刻下新记忆细胞,计算公式为:

[4]第四步会基于新得到的细胞状态 ,结合最后一个门计算出的softmax输出比例值(输出门),从而得到最终的输出 ,计算公式为:门输出计算:、最后输出:

至此已经完成了所有的正向计算过程,得到一个lstm模块下的输出,可以看出在一个模块中有很多参数要考虑,比如     、    、    、   、   、   、    、  ,这些共享参数向量会在反向传播时进行梯度改变。

长短时记忆网络(LSTM)相关推荐

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

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

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

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

  3. 深度学习(7) - 长短时记忆网络(LSTM)

    长短时记忆网络是啥 我们首先了解一下长短时记忆网络产生的背景.回顾一下零基础入门深度学习(5) - 循环神经网络中推导的,误差项沿时间反向传播的公式: 我们可以根据下面的不等式,来获取的模的上界(模可 ...

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

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

  5. 深度学习之长短时记忆网络(LSTM)

    本文转自<零基础入门深度学习>系列文章,阅读原文请移步这里 之前我们介绍了循环神经网络以及它的训练算法.我们也介绍了循环神经网络很难训练的原因,这导致了它在实际应用中,很难处理长距离的依赖 ...

  6. 长短时记忆网络(LSTM)的训练

    长短时记忆网络的训练 熟悉我们这个系列文章的同学都清楚,训练部分往往比前向计算部分复杂多了.LSTM的前向计算都这么复杂,那么,可想而知,它的训练算法一定是非常非常复杂的.现在只有做几次深呼吸,再一头 ...

  7. 长短时记忆网络LSTM

    网络介绍 长短时记忆网络(Long short time memory network, LSTM)是RNN的重要变体,解决了RNN无法长距离依赖的问题,同时缓了RNN的梯度爆炸问题.LSTM由遗忘门 ...

  8. 长短时记忆网络(LSTM)部分组件(六)

    在前面的几篇文章中试着实现了CNN,RNN的一些组件,这里继续学习LSTM,也是是实现部分组件,旨在学习其LSTM的原理. 具体参考: https://www.zybuluo.com/hanbingt ...

  9. 深度学习代码实战演示_Tensorflow_卷积神经网络CNN_循环神经网络RNN_长短时记忆网络LSTM_对抗生成网络GAN

    前言 经过大半年断断续续的学习和实践,终于将深度学习的基础知识看完了,虽然还有很多比较深入的内容没有涉及到,但也是感觉收获满满.因为是断断续续的学习做笔记写代码跑实验,所以笔记也零零散散的散落在每个角 ...

  10. 多元经验模态分解_交通运输|基于小波分解和长短时记忆网络的地铁进站量短时预测...

    山东科学 ›› 2019, Vol. 32 ›› Issue (4): 56-63.doi: 10.3976/j.issn.1002-4026.2019.04.008 摘要: 针对城市地铁车站进站客流 ...

最新文章

  1. linux 日志工具 logrotate 简介
  2. Android日志系统分析之开篇
  3. ecshop手机端html,ECSHOP手机版本的head标题的修改方法分享
  4. Leetcode 70. 爬楼梯 动态规划 c语言
  5. 简单纯文字浮动信息-Tooltip
  6. 多种系统负载100%方法(高可用测试、性能压测用)
  7. 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
  8. RecyclerView 下拉刷新上拉加载
  9. Opencv之缺少api-ms-win-downlevel-shlwapi-l1-1-0
  10. FORM开发实现动态LOV
  11. PDF文件怎么转换成Excel表格?学会这个方法轻松转换。
  12. 千方百剂创建账套服务器文件,如何修改sql server 2000身份验证模式和系统管理员_数据库技巧...
  13. java浮点数转整数_(题目2)自己实现浮点数转换为整数
  14. HTML导航如何加下划线,HTML怎么设置下划线?html文字加下划线方法
  15. flac转mp3的方法
  16. 程序读写时间内存 硬盘 cache 访问速度数级对比
  17. 《HeadFirst设计模式》读书笔记-第9章v1-迭代器模式
  18. htt的缺点有哪些?这里列举的几点,欢迎留言
  19. 勃仔诞生记:Hubbleverse哈勃元宇宙的起源故事
  20. word文档不能输入中文

热门文章

  1. Getfasta--根据Acession Number(Ac号)批量下载GenBank分子序列数据的自动化程序
  2. Android【Socket通讯】
  3. 社会管理网格化 源码_威县方家营镇创新“网格化”管理模式,助推乡村社会治理能力提升...
  4. linux系统负载查看进程,Linux查看系统的负载
  5. 上海居住证及居住证积分常见问题(70个常见问题)
  6. ××× 笔记(持续更新中。。)
  7. 《Improved Crowd Counting Method Based onScale-Adaptive Convolutional Neural Network》论文笔记
  8. 简单的漫画创作项目comicgen
  9. 登陆验证成功后的跳转页面依然保留用户信息
  10. 公司年会上进版小品——谁杀死了周日