LSTM 长短期记忆
从RNN说起
循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。如下图图片均来自台大李宏毅教授的PPT
x为当前状态下数据的输入,h表示接收到的上一个节点的输入。y为当前节点状态下的输出,而 h‘为传递到下一个节点的输出。通过上图的公式可以看到,输出 h’ 与 x 和 h 的值都相关。而 y 则常常使用 h’ 投入到一个线性层(主要是进行维度映射)然后使用softmax进行分类得到需要的数据。
短时记忆
RNN 会受到短时记忆的影响。如果一条序列足够长,那它们将很难将信息从较早的时间步传送到后面的时间步。 因此,如果你正在尝试处理一段文本进行预测,RNN 可能从一开始就会遗漏重要信息。
在反向传播期间,RNN 会面临梯度消失的问题。 梯度是用于更新神经网络的权重值,消失的梯度问题是当梯度随着时间的推移传播时梯度下降,如果梯度值变得非常小,就不会继续学习。
br/>
LSTM
长短期记忆,(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。LSTM 由Hochreiter & Schmidhuber (1997)提出,并在近期被Alex Graves进行了改良和推广。在很多问题,LSTM 都取得相当巨大的成功,并得到了广泛的使用。
LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。
每一条黑线传输着一整个向量,从一个节点的输出到其他节点的输入。粉色的圈代表按位 pointwise 的操作,诸如向量的和,而黄色的矩阵就是学习到的神经网络层。合在一起的线表示向量的连接,分开的线表示内容被复制,然后分发到不同的位置。
直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。
门
LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个按位的乘法操作。
步骤
第一步 忘记门
LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取 ht-1 和 xt,输出一个在 0 到 1 之间的数值给每个在细胞状态 Ct-1 中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
第二步 输入们
用值为1表示的完全保留的忘记门输出输入sigmoid 层称 “输入门层” 决定什么值我们将要更新。
然后,一个 tanh 层创建一个新的候选值向量
第三步
进行乘法和加法运算,将Ct-1 更新为 Ct,输出的结果是Ct。
Ct作为下一个神经元的输入
第三步 输出层
以ht-1为输入运行一个 sigmoid 层来输出ot。接着,我们把Ct通过 tanh 进行处理并将它和ot相乘作为最后的输出。
LSTM的变体
所有的 LSTM 都长成一个样子的。实际上,几乎所有包含 LSTM 的论文都采用了微小的变体。
流行LSTM
流形的 LSTM 变体,就是由 Gers & Schmidhuber (2000) 提出的,增加了 “peephole connection”。是说,我们让 门层 也会接受细胞状态的输入。
coupled
通过使用 coupled 忘记和输入门。不同于之前是分开确定什么忘记和需要添加什么新的信息,这里是一同做出决定。我们仅仅会当我们将要输入在当前位置时忘记。我们仅仅输入新的值到那些我们已经忘记旧的信息的那些状态 。
GRU
Gated Recurrent Unit (GRU)是由 Cho, et al. (2014) 提出。它将忘记门和输入门合成了一个单一的 更新门,进行其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。
参考
https://www.jianshu.com/p/9dc9f41f0b29
https://blog.csdn.net/weixin_44162104/article/details/88660003
LSTM 长短期记忆相关推荐
- 【思维导图】利用LSTM(长短期记忆网络)来处理脑电数据
文章来源| 脑机接口社区群友 认知计算_茂森的授权分享 在此非常感谢 认知计算_茂森! 本篇文章主要通过思维导图来介绍利用LSTM(长短期记忆网络)来处理脑电数据. 文章的内容来源于社区分享的文章&l ...
- 利用LSTM(长短期记忆网络)来处理脑电数据
目录 LSTM 原理介绍 LSTM的核心思想 一步一步理解LSTM 代码案例 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195 Rose小哥今天介绍一下用LS ...
- 小白学深度之LSTM长短期记忆神经网络——深度AI科普团队
前言 不知道RNN的一定要先看看RNN的原理 在RNN中我们说了RNN的不足,也就是对较长的时间,或者较长的string,很多时候前面的数据对后面的数据影响就很小甚至没影响了,这是我们就要加强前面的数 ...
- Maltab GUI课程设计——LSTM长短期记忆网络回归预测
文章目录 课程设计 平台:Matlab App designer 功能实现:LSTM长短期记忆网络回归预测 目的: 演示: 欢迎交流 课程设计 平台:Matlab App designer 功能实现: ...
- 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)
时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络) 目录 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM ...
- 神经网络学习笔记3——LSTM长短期记忆网络
目录 1.循环神经网络 1.1循环神经网络大致结构 1.2延时神经网络(Time Delay Neural Network,TDNN) 1.3按时间展开 1.4反向传播 1.5 梯度消失,梯度爆炸 2 ...
- 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测
目录 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测 预测效果 程序设计 案例1 案例2 参考资料 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测 预测效果 ...
- Pytorch LSTM 长短期记忆网络
Pytorch LSTM 长短期记忆网络 0. 环境介绍 环境使用 Kaggle 里免费建立的 Notebook 教程使用李沐老师的 动手学深度学习 网站和 视频讲解 小技巧:当遇到函数看不懂的时候可 ...
- LSTM 长短期记忆循环神经网络(学习笔记)
LSTM 长短期记忆循环神经网络 1.LSTM 定义 LSTM 全称是Long Short Term Memory (长短期记忆),是RNN的一种. 基本一般情况下使用RNN都是使用LSTM,最基础的 ...
最新文章
- 【TensorFlow2.0】(2) 创建tensor的方法
- Matlab与线性代数 -- 矩阵的乘法
- php如何对 mysql 中text类型拆分存入一个数组_PHP、Mysql笔试题
- java之字符串学习记录
- 安装win7时,无法创建新的分区系统和无法定位现有分区系统
- lcase和ucase_在SQL中使用UCASE(),LCASE()和MID()函数
- 微信 8.0.1又来了!修复问题,终于能显示“在线状态”了
- matlab 简单的图像填充例子
- ORACLE数据泵还原(IMPDP命令)【转】
- 金蝶KIS 11.0专业版账套升级至WISE 13.1版本实施步骤
- 天网防火墙技术白皮书
- 使用google service定位服务
- Android11(R) system_ext 分区 system_ext_specific 属性
- [开源]免费天气预报接口,提供七天预报(包括省市代码)
- 2021观澜二中高考成绩查询,深圳中学排名
- 什么都学一点系列之鸿蒙开发Java版简易备忘录
- LeetCode的SQL题练手(MySQL实现)
- Python:Pycharm如何使用scrapy框架做爬虫?
- 网红“小红书”,电商销售新模式
- 2023年我终于进阿里了,阿里offer五面经验与总结
热门文章
- Domain generalization 简介
- 腾讯IM登陆时候闪退java.lang.UnsatisfiedLinkError
- step5 lasso 回归 实战 本文没有考虑y 是cox和binominal
- #入坑keychron#火爆的keychron机械键盘,你还没有入手?【重点:附键盘选购建议】
- 本白痴的第一个博客(就把自己的图形界面加c语言的滴滴打车信息系统传一下吧)
- abaqus对实体单元进行复合材料每层厚度定义
- Fcoin平台每天赠送了好多币如何处理呢?
- AIOT下“智慧家庭”的入口比拼,是百花齐放还是一枝独秀?
- matlab元胞自动机学风演化,土建學院研究生培养方案调研报告.docx
- 无线wifi丢包的解决办法