LSTM 长短期记忆循环神经网络

1.LSTM 定义

LSTM 全称是Long Short Term Memory (长短期记忆),是RNN的一种。

基本一般情况下使用RNN都是使用LSTM,最基础的RNN存在一些问题,LSTM的效果更好。

最基础版本的RNN每一时刻的隐藏层不仅由该时刻的输入决定,还有上一时刻的隐藏层的值。如果一个句子很长的时候,到句子末尾的时候,将会记不住句子开头的内容,发生梯度消失和爆炸的问题。而LSTM通过它的“门控装置”有效的缓解了这个问题。

LSTM和普通的RNN不一样,可以将这两者看成一个是贵族,一个是乞丐。RNN什么信息他都要存下来,没有选择的能力。而LSTM会有选择性的存储信息,因为他能力强,有门控装置,可以尽情的选择。

2.长短时记忆网络的思路

原始 RNN 的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。
再增加一个状态,即c,让它来保存长期的状态,称为单元状态(cell state)。

把上图按照时间维度展开:

在 t 时刻,LSTM 的输入有三个:当前时刻网络的输入值 x_t、上一时刻 LSTM 的输出值 h_t-1、以及上一时刻的单元状态 c_t-1
LSTM 的输出有两个:当前时刻 LSTM 输出值 h_t、和当前时刻的单元状态 c_t.

3.如何控制长期状态c

方法是:使用三个控制开关

第一个开关,负责控制继续保存长期状态c;

第二个开关,负责控制把即时状态输入到长期状态c;

第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。

4.如何实现这三个开关

方法:用 门(gate)

定义:gate 实际上就是一层全连接层,输入是一个向量,输出是一个 0到1 之间的实数向量。

公式为:

回忆一下它的样子:

具体实现:用门的输出向量按元素乘以我们需要控制的那个向量

原理:门的输出是 0 到 1 之间的实数向量,

当门输出为 0 时,任何向量与之相乘都会得到 0 向量,这就相当于什么都不能通过;

当门输出为 1 时,任何向量与之相乘都不会有任何改变,这就相当于什么都可以通过。

5.LSTM的工作

5.1 遗忘门(forget gate)

它决定了上一时刻的单元状态 c_t-1 有多少保留到当前时刻 c_t

5.2 输入门(input gate)

它决定了当前时刻网络的输入 x_t 有多少保存到单元状态 c_t

5.3 输出门(output gate)

控制单元状态 c_t 有多少输出到 LSTM 的当前输出值 h_t

5.4 遗忘门的计算

遗忘门的计算公式中:
W_f 是遗忘门的权重矩阵,[h_t-1, x_t] 表示把两个向量连接成一个更长的向量,b_f 是遗忘门的偏置项,σ 是 sigmoid 函数。

5.5 输入门的计算

input

根据上一次的输出和本次输入来计算当前输入的单元状态:

当前输入的单元状态c_t

当前时刻的单元状态 c_t 的计算:

由上一次的单元状态 c_t-1 按元素乘以遗忘门 f_t,再用当前输入的单元状态 c_t 按元素乘以输入门 i_t,再将两个积加和。

这样,就可以把当前的记忆 c_t 和长期的记忆 c_t-1 组合在一起,形成了新的单元状态 c_t

由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。

当前时刻的单元状态c_t

5.6 输出门的计算

output

6. 总结

LSTM里常用的激活函数有两个,一个是tanh,一个是sigmoid。

其中 i是input gate的缩写,f是forget的缩写,o是output的缩写。

其中Z是最为普通的输入,可以从上图中看到,Z 是通过该时刻的输入 X_t和上一时刻存在memory cell里的隐藏层信息 h_t-1 向量拼接,再与权重参数向量 W点积,得到的值经过激活函数tanh最终会得到一个数值,也就是 Z,注意只有 Z的激活函数是tanh,因为 Z 是真正作为输入的,其他三个都是门控装置。

再来看 Z_i ,也就是输入门的门控装置, Z_i同样也是通过该时刻的输入X_t和上一时刻隐藏状态,也就是上一时刻存下来的信息 h_t-1向量拼接,在与权重参数向量 W_i点积(注意每个门的权重向量都不一样,这里的下标i代表input的意思,也就是输入门)。得到的值经过激活函数sigmoid的最终会得到一个0-1之间的一个数值,用来作为输入门的控制信号。

经过这个sigmod激活函数后,得到的Z_iZ_fZ_o ,都是在0到1之间的数值,1表示该门完全打开,0表示该门完全关闭。

LSTM 长短期记忆循环神经网络(学习笔记)相关推荐

  1. LSTM长短期记忆人工神经网络简述

    LSTM长短期记忆人工神经网络简述 By:Yang Liu 1.什么是LSTM 长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN( ...

  2. 什么是循环神经网络——学习笔记

    序列模型:以一个句子为例 1 循环网络:通过带有自反馈的神经元,能够处理任意长度的(存在时间关联性)序列: 将过去的信息整合起来,辅助处理当前信息. 循环网络的结构以及参数 循环网络的前向传播的计算 ...

  3. 神经网络学习笔记3——LSTM长短期记忆网络

    目录 1.循环神经网络 1.1循环神经网络大致结构 1.2延时神经网络(Time Delay Neural Network,TDNN) 1.3按时间展开 1.4反向传播 1.5 梯度消失,梯度爆炸 2 ...

  4. RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

    全文链接:http://tecdat.cn/?p=25133 2017 年年中,R 推出了 Keras 包 _,_这是一个在 Tensorflow 之上运行的综合库,具有 CPU 和 GPU 功能(点 ...

  5. 长短期记忆人工神经网络(LSTM)网络学习资料

    一.人工神经网络模型的分类: 1.27种神经网络的图解 地址:https://baijiahao.baidu.com/s?id=1590362274035183205&wfr=spider&a ...

  6. 深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别

    深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别 一.前言 二.网络结构 三.可解释性 四.记忆主线 五.遗忘门 六.输入门 七.输出门 八.手写数字识别实战 8.1 引入依赖库 8. ...

  7. 【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享...

    全文下载链接:http://tecdat.cn/?p=23544 在本文中,长短期记忆网络--通常称为"LSTM"--是一种特殊的RNN递归神经网络,能够学习长期依赖关系(点击文末 ...

  8. Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

    原文链接:http://tecdat.cn/?p=23544  下面是一个关于如何使用长短期记忆网络(LSTM)来拟合一个不平稳的时间序列的例子. 每年的降雨量数据可能是相当不平稳的.与温度不同,温度 ...

  9. 小白学深度之LSTM长短期记忆神经网络——深度AI科普团队

    前言 不知道RNN的一定要先看看RNN的原理 在RNN中我们说了RNN的不足,也就是对较长的时间,或者较长的string,很多时候前面的数据对后面的数据影响就很小甚至没影响了,这是我们就要加强前面的数 ...

最新文章

  1. shell /dev/null
  2. c语言N*N的二维数组,c语言高手帮个忙(请先看问题,好解答
  3. Spring @Resource、@Autowired、@Qualifier区别
  4. 【PAT乙级】1074 宇宙无敌加法器 (20 分)
  5. Linux下Poppler源码编译安装
  6. 进程及 fork() 系统调用详解
  7. 我从未看过荒原写作背景_您从未听说过的最佳数据科学认证
  8. html中写随机数,为HTML生成一个随机数
  9. STM32之FSMC-SRAM/NOR原理
  10. 385. Mini Parser
  11. [Python] 关键字 assert
  12. hdu 4609 3-idiots(FFT计数)
  13. 人工智能基础——2.3.2产生式系统
  14. android 行居中,android自己定义换行居中CenterTextView(示例代码)
  15. 《Proof of Federated Learning: A Novel Energy-recycling Consensus Algorithm》精读
  16. MATLAB图像分割的GUI设计
  17. 【更新】蛙色VR视频故事线功能上线,行业进入新时代
  18. 字库软件-字模III
  19. php解析手机号 归属地,PHP通过API获取手机号码归属地,api手机号码_PHP教程
  20. 民营医院不做竞价,做啥能带业绩

热门文章

  1. 苹果将推出自助维修计划
  2. ionic3 版本更新
  3. 推荐系统中的pointwise和pairwise区别
  4. require()------node js
  5. 用 js判断 一个数是否是素数(质数)_人教版五年级数学下册第2单元质数和合数(P14)图文讲解...
  6. 信号完整性研究系列--什么是信号完整性
  7. CTFHub-web前置技能-请求方式、302跳转、cookie、基础认证、响应包源代码
  8. 【黄啊码】PHP压缩图片(简洁易懂版,不懂我下次不写)
  9. JAVA中如何精确取到时间间隔
  10. 信息打点-CDN绕过