【图文并茂】RNN、LSTM、GRU、ConvLSTM、ConvGRU、ST-LSTM的总结
前言
平时很少写总结性的文章,感觉还是需要阶段性总结一些可以串在一起的知识点,所以这次写了下。因为我写的内容主要在时序、时空预测这个方向,所以主要还是把rnn,lstm,gru,convlstm,convgru以及ST-LSTM
一、 RNN
最为原始的循环神经网络,本质就是全连接网络,只是为了考虑过去的信息,输出不仅取决于当前输入,还取决于之前的信息,也就是输出由之前的信息(也就是状态state)和此时的输入决定。
1.1 结构图
1.2 公式
1.3 优缺点
1.3.1 优点
① RNN 很适合处理序列数据,因为考虑了之前的信息
② 可以和CNN一起使用得到更好的任务效果
1.3.2 缺点
① 梯度消失、梯度爆炸
② rnn较其他cnn和全连接要用更多的显存空间,更难训练
③ 如果采用tanh、relu为激活函数,没法处理太长的序列
二、LSTM
为了解决梯度消失和爆炸以及更好的预测和分类序列数据等问题,rnn逐渐转变为lstm
2.1 结构图
2.2 公式
2.3 扩展
实际应用中一般不采用单层的lstm,而是多层,在很多时序数据中双向的表现也很不错
2.3.1 双向lstm
2.3.2 深层双向lstm
三、 GRU
因为LSTM的训练比较慢,而GRU在其上稍微修改,速度可以快很多,而精度基本不变,所以GRU也十分流行
3.1 结构图
3.2 公式
3.3 LSTM和GRU的结构区别
可以观看【Deep Learning】详细解读LSTM与GRU单元的各个公式和区别
四、 ConvLSTM和ConvGRU
为了构建时空序列预测模型,同时掌握时间和空间信息,所以将LSTM中的全连接权重改为卷积。
4.1 convLSTM结构图
4.2 convLSTM公式(原paper中)
4.3 convGRU(原paper中)
4.4 讨论一个小问题
shixingjian博士提出的ConvLSTM通过他的描述来说应该就是其中的W也就是每个权重都从普通的全连接权重改为了卷积。所以应该从左到右转变,正常来说右处应该是不存在i,f以及o三个门只由X和Ht-1决定,而没有C。即不存在以下的结构。
这里咱们再重新看下博士的紧接着nips2016年的文章中所提到的convGRU也是不存在C的,并且可以和gru公式一一对应。
这里我不知道是博士当时就是这么实现的并且效果很好,还是说有无C对三个门的影响对最终的实验结果没有太大的影响,还是说确实是写作失误,这里我不太好给出结论。这里可以断定的是轨迹GRU那篇文章中对于结构完全是从GRU转变为convGRU的这里绝对没问题。我也因此查了几篇期刊和顶会。
摘自IEEE Trans
之后我又调查了一些文章,很巧妙,顶会基本上都是没有c的形式,而期刊大多都有。这里我做了另外一个调查,github上的实现,大多数都是从LSTM直接转变为的Convlstm的写法也就是不存在C影响三个门,因为我当时复现的时候也是先实现了LSTM,之后加以改为ConvLSTM所以说没太注意,我这回自己也做了下这个实验,没有加上的结构可以很好的作时空预测,反而加上c之后会出现梯度的问题,所以这里大家可以有一些自我的理解。
我个人还是推荐直接从LSTM转变为convLSTM的结构,这个稍后如何编写代码我也会逐步写文章讲解。
五、 ST-LSTM
这里主要给出 ST-LSTM结构及公式。
5.1 ST-LSTM结构图
5.2 ST-LSTM公式
5.3 stacking结构
这个模型的复现和编写我会在不久之后专门写一篇文章来讲,并且因为是这种直接stacking的结构会有一些训练的trick,比如Scheduled Sampling等。
Reference
https://towardsdatascience.com/understanding-rnn-and-lstm-f7cdf6dfc14e
http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/
https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21
https://medium.com/neuronio/an-introduction-to-convlstm-55c9025563a7
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群请扫码进群:
【图文并茂】RNN、LSTM、GRU、ConvLSTM、ConvGRU、ST-LSTM的总结相关推荐
- 机器学习笔记 :LSTM 变体 (conv-LSTM、Peephole LSTM、 coupled LSTM、conv-GRU)
1 LSTM复习 机器学习笔记 RNN初探 & LSTM_UQI-LIUWJ的博客-CSDN博客 机器学习笔记:GRU_UQI-LIUWJ的博客-CSDN博客_gru 机器学习 2 Peeph ...
- DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比、TF代码定义之详细攻略
DL之RNN/LSTM/GRU:RNN/LSTM/GRU算法动图对比.TF代码定义之详细攻略 目录 RNN.LSTM.GRU算法对比 1.RNN/LSTM/GRU对比 2.RNN/LSTM/GRU动图 ...
- DL之LSTM:LSTM算法论文简介(原理、关键步骤、RNN/LSTM/GRU比较、单层和多层的LSTM)、案例应用之详细攻略
DL之LSTM:LSTM算法论文简介(原理.关键步骤.RNN/LSTM/GRU比较.单层和多层的LSTM).案例应用之详细攻略 目录 LSTM算法简介 1.LSTM算法论文 1.1.LSTM算法相关论 ...
- 序列模型简介——RNN, Bidirectional RNN, LSTM, GRU
既然我们已经有了前馈网络和CNN,为什么我们还需要序列模型呢?这些模型的问题在于,当给定一系列的数据时,它们表现的性能很差.序列数据的一个例子是音频的剪辑,其中包含一系列的人说过的话.另一个例子是英文 ...
- 梯度消失/爆炸与RNN家族的介绍(LSTM GRU B-RNN Multi-RNNs)-基于cs224n的最全总结
vanishing gradients and fancy RNNs(RNN家族与梯度消失) 文章目录 vanishing gradients and fancy RNNs(RNN家族与梯度消失) 内 ...
- 深度学习与自然语言处理教程(5) - 语言模型、RNN、GRU与LSTM(NLP通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...
- RNN LSTM GRU 代码实战 ---- 简单的文本生成任务
RNN LSTM GRU 代码实战 ---- 简单的文本生成任务 import torch if torch.cuda.is_available():# Tell PyTorch to use the ...
- 基于RNN,LSTM,GRU对黄金期货的时间序列研究
目录 一. 背景介绍 二. 原理介绍 2.1模型原理 RNN模型介绍 2.LSTM模型介绍 三. 实验论证 3.1 数据预处理 3.2 模型的评价指标 3.3 实验模型设置 3.4 实验数据和超参数设 ...
- Rnn Lstm Gru Sru学习小结
1.Rnn Rnn的详细介绍可以参考 深度学习之RNN(循环神经网络) 零基础入门深度学习(5) - 循环神经网络 详解循环神经网络(Recurrent Neural Network) 基本原理和算法 ...
- RNN, LSTM, GRU, SRU, Multi-Dimensional LSTM, Grid LSTM, Graph LSTM系列解读
RNN/Stacked RNN rnn一般根据输入和输出的数目分为5种 一对一 最简单的rnn 一对多 Image Captioning(image -> sequence of words) ...
最新文章
- 自动驾驶行业内时间表和技术解析
- 在华为写了 13 年代码,都是宝贵的经验
- webstorm怎么跑项目_快讯!明年厦门中考体育项目定了!初三家长抽的!其他地市抽到啥?...
- nginx之Geoip读取地域信息模块
- oracle 12c dg新特性,Oracle 12c DG新特性---一键switchover
- xps15u盘装linux,Dell XPS 15 9560 安装 Ubuntu 18.04
- C# 序列化技术详解《转》
- 如何制作出色的R可重现示例
- 调整Excel的打印线
- UPUPW PHP环境集成包,增加多个PHP版本支持,可选择使用
- 用HTML5的DOCTYPE标签兼容各版本IE浏览器的方法技术
- linux免费商用字体,免费可商用字体~文泉驿正黑体
- 超越LLMNR /NBNS欺骗 - 利用Active Directory集成的DNS
- ec6108v9a精简刷机包_新版华为悦盒EC6108V9E、V9I第三方精简流畅无安装限制固件
- SpringCloud五大核心组件
- 软件设计师刷题与知识点总结 笔记-2
- 2019年 腾讯校园招聘JAVA
- PowerVR性能建议-黄金法则
- 编写Java脚本统计工程代码总行数
- html按钮悬停,html – 仅在悬停时显示按钮
热门文章
- Excel制作图表的方法
- 雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色
- 获取的输入内容,没有被P标签包裹的文本和元素进行处理
- IHttpHandler 介绍演示(from 张子阳)
- 服务器内存技术知识充电
- GraphPad Prism9 将正态分布拟合至频率分布
- JavaWeb(九)——JavaBean、Filter
- matlab用regress方法求ln函数_高考数学48条秒杀型公式与方法,想要120分一定要掌握...
- 计算机视觉与深度学习 | 视觉里程计综述(框架+算法)
- Qt学习(八):QT中TCP传输文件