LSTM是RNN的变形,也就是循环神经网络的形式之一,主要解决传统RNN记忆问题,距离较远的文本信息无法得到利用、距离较近但语义上关联不大的文本信息造成了太大的干扰。(像是一个容易遗忘的老人,记不住太久远之前的信息,所以就出现了LSTM,让他只记住有用的信息)

传统RNN的问题分析:比如输入文本是我今天要做红烧排骨,首先要准备排骨,然后…,最后一道美味的菜就出锅了.这个时候我们要让RNN来判断我们到底做了什么菜,RNN可能给出辣子鸡这个答案,然后就反向的去推导误差,在循环神经网络中,由于模型每个时刻的状态都是由之前的状态的乘积得来的,那么根据链式法则,如果每一层神经元对上一层的输出的偏
导乘上权重结果都小于 1,则在经过足够多的传播之后,误差对输入层的梯度会趋近于 0,即梯度消失;反之,则梯度会随着反向传播层数的增加而呈指数增长,导致梯度爆炸(梯度爆炸可以用剪裁来解决)
梯度消失:

梯度爆炸:

为了解决上面出现的梯度消失的问题,就出现了LSTM(长短期记忆)

具体LSTM模型是怎么实现的呢?

相对于传统的RNN,LSTM的输入由x(t)[输入数据],a(t-1)[隐藏层信息]两个数据变成了x(t)[输入数据],a(t-1)[隐藏信息],c(t-1)[记忆单元],不仅仅是参数数量上的变化,还有就是
a(t-1)的求法也不一样,下面是LSTM一个cell的计算过程


?都代指的是sigmoid激活函数,?(?) = 1/(1 + ?−?) 结果范围在0-1之间

Bi-LSTM的产生

在单向的循环神经网络中,模型实际上只使用到了“上文”的信息,而没有考虑到“下文”的信息。在实际场景中,预测可能需要使用到整个输入序列的信息。因此,目前业内主流使用的都是双向的循环神经网络。顾名思义,双向循环神经网络结合了序列起点移动的一个循环神经网络和令一个从序列末尾向序列起点移动的循环神经网络。而作为循环神经网络的一种拓展,LSTM 自然也可以结合一个逆向的序列,组成双向长短时记忆网络
(Bi-directional Long Short-Term Memory, Bi-LSTM)。Bi-LSTM 目前在自然语言处理领域的应用场景很多,并且都取得了不错的效果。

双向长短时记忆(Bidirectional Long ShortTerm Memory,BLSTM)在LSTM的基础上,结合了输入序列在前向和后向两个方向上的信息。对于t时刻的输出,前向LSTM层具有输入序列中t时刻以及之前时刻的信息,而后向LSTM层中具有输入序列中t时刻以及之后时刻的信息。前向LSTM层t时刻的输出记作 ,后向LSTM层t时刻的输出结果记作 ,两个LSTM层输出的向量可以使用相加、平均值或连接等方式进行处理,上图中采用连接的方式

LSTM(长短期记忆) Bi-LSTM(双向长短时记忆)相关推荐

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

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

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

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

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

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

  4. LSTM(长短期记忆网络)原理介绍

    相关学习资料: Pytorch:RNN.LSTM.GRU.Bi-GRU.Bi-LSTM.梯度消失.爆炸 难以置信!LSTM和GRU的解析从未如此清晰 RNN_了不起的赵队-CSDN博客_rnn 如何从 ...

  5. Python中TensorFlow长短期记忆神经网络LSTM、指数移动平均法预测股票市场时间序列和可视化

    最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出. 本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测. 相关视频:LSTM神经网络架构和工作原理及 ...

  6. LSTM 长短期记忆

    从RNN说起 循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络.相比一般的神经网络来说,他能够处理序列变化的数据.比如某个单词的意思会因为上文提 ...

  7. 简单介绍长短期记忆网络 - LSTM

    文章目录 一.引言 1.1 什么是LSTM 二.循环神经网络RNN 2.1 为什么需要RNN 三.长短时记忆神经网络LSTM 3.1 为什么需要LSTM 3.2 LSTM结构分析 3.3 LSTM背后 ...

  8. LSTM 长短期记忆循环神经网络(学习笔记)

    LSTM 长短期记忆循环神经网络 1.LSTM 定义 LSTM 全称是Long Short Term Memory (长短期记忆),是RNN的一种. 基本一般情况下使用RNN都是使用LSTM,最基础的 ...

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

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

最新文章

  1. 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu
  2. windows自带的压缩,解压缩命令
  3. day02:requests爬取豆瓣电影信息
  4. HOJ 1640 Mobile Phone
  5. Requests: 让 HTTP 服务人类
  6. 修改附图中文字的办法
  7. linux上运行onedrive,教你如何在Linux中同步微软 OneDrive
  8. GCC的内嵌汇编语法 ATT汇编语言语法
  9. ODI Studio 11g 连接Essbase数据源
  10. 2020-12-10-计算机基础
  11. DB2数据库生成html巡检报告
  12. 图的度序列:Havel定理
  13. Excel使用Alt+Enter在单元格内换行
  14. 19款奥迪a5支持Android,19款奥迪a5有敝篷版吗?
  15. SpringBoot异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
  16. 计算机专业性价比高的学校 考研,计算机专业考研,该怎样选择院校?这五所大学性价比很高...
  17. 解决escript: exception error: undefined function rabbitmqctl_escript:main/1问题以及如何安装Erlang和RabbitMq
  18. searchUI-微信小程序 搜索插件
  19. 亚马逊关键词在哪里找准确一点?
  20. SpringBoot初探

热门文章

  1. [渝粤教育] 西南科技大学 程序设计语言VB 在线考试复习资料
  2. 从成都天府软件园程序员跳楼看二三线城市是否比一线城市压力大?
  3. 分享一个撩妹神器,各种聊天话术技巧
  4. 人工智能大厂商汤科技受邀出席亚太元宇宙新纪元峰会
  5. Windows系统安装rust以及crates换源方式
  6. 微信小程序开发的优点有哪些呢?
  7. java线上医药用品分销系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  8. PHP的化学名是啥,科学网—化学名称简写 - 桂耀荣的博文
  9. 对话MVP | 林宣名:坚持知识分享,为开发者学习注入活水
  10. 使用c++SFML制作月圆之夜总集篇