前言

接下来保持住节奏,每周起码一篇paper reading,要时刻了解研究的前沿,是一个不管是工程岗位还是研究岗位AIer必备的工作,共勉!

一、Address

这是nips2017年的一篇paper,来自于清华的团队

PredRNN: Recurrent Neural Networks for Predictive Learning using Spatiotemporal LSTMs

http://ise.thss.tsinghua.edu.cn/ml/doc/2017/predrnn-nips17.pdf

二、Introduction

2.1 创新思路

在Abstract中直接点名了本model的innovation,平时的时间和空间记忆都是在LSTM或者GRU cell中做文章,本paper的思路转移到stacked RNN layers中,即模型的堆叠结构中存在可以记忆的单元。

2.2 时间信息和空间信息

文章在这里指出 时间信息和空间信息都是十分重要的。并且在文章前面又是再一次的说2015-2017年左右的时空序列模型主要都集中在lstm的内部的memory的改造,并且主要集中于temporal的信息提取。

2.3 时空问题

这里作者又对时空序列问题进行一波定义和说明并且对施行建博士的开山之作ConvLSTM模型又进行介绍,这两个部分我都已介绍过了,请看我之前的文章。 【时空序列预测第二篇】Convolutional LSTM Network-paper reading

但是这篇文章中指出了这样一个问题

加入有四层的ConvLSTM的一个encoding-forcasting结构,输入帧进入第一层,将来的视频序列产生在第四层,在这个过程中,空间维度随着每层的cnn结构被逐步编码,而时间维度的memory cells属于彼此独立,在每个时间步被更新,这种情况下,最底层就会忽略之前的时间步中的最高层的时间信息,这也是ConvLSTM的层与层之间独立mermory mechanism的缺点。实际上简单点说,就是这种简单的并行stacked结构中,堆叠之后层与层之间是独立的,t时刻的最底层cell会忽略到t-1时刻的最顶层cell的时间信息。

其实强调的就是对应色调的cell之间没有时间信息联系

三、PredRNN

3.1 Spatiotemporal memory flow

对于研究时空序列预测问题,network的 basic building blocks一般先采用ConvLSTM进行研究

这里再次强调结构是每一层每一层的extract,并且cell states只在 水平方向,其实说的就是每一层独立,c只在每一层的时间步传播,而 有一部分信息,这部分主要是空间信息只在 hidden state上向上传播。

我们假设输入序列的信息应该是被保留的,我需要不同level cnn提取到的信息。其实意思就是每一个输入,经过每一层网络结构有一个信息提取,这个提取到的最后的抽象信息,应该是需要保留给下一次第一层的输入的。所以提出这样一个网络结构

其中M就是cell output,只是为了图中区别,标成了M。此时的ConvLSTM公式为

原始的ConvLSTM公式为

这里我用各种颜色的标注一下你就知道区别了,其实就是根据结构来改变的公式本身。

原始的ConvLSTM

输入的hidden state和cell output都是上一个时刻的

此时更改的结构:

红色表示在非最底层时的单个网络cell的公式变换,输入的hidden state和cell output都是前一层的(L-1) 而公式中的紫色部分说明L=1的时候有特殊情况,即图中的折线top到bottom的传播部分

这幅图比较直观

3.2 Spatiotemporal LSTM

这里文中又指出上面提出的那出结构的一些缺点

1.去掉水平方向的时间流,会牺牲时间上的一致性,因为在同一层的不同时间没有时间流了。2.记忆需要在遥远的状态之间流动更长的路径,更容易造成梯度消失。所以引入了一个新的building blocks为ST-LSTM。我想大家可能不会陌生对于它。

我们可以转换成更为肉眼所理解的图。

你会惊奇的发现这上下其实是完全一样的。我们再来看一下LSTM的结构。

你细品,发现没,其实这两个完全一样的结构就是LSTM,只是下面的cell output和hidden state都由M代替了,其他的输出部分其实就相当于把两个LSTM结构的输出整合在一起分别输出计算了,我这里自己标了一下供大家来观察。文中把上半部分称为’Standard Temporal Memory’,下半部分称为’Spatiotemporal Memory’,上半部分和普通的LSTM 没有任何区别,下半部分相当于把c和h一起更改为M,M即时空记忆状态。

ST-LSTM的公式

现在这图结构图迎刃而解了。

相当于在原始的基础结构上,多了一个M 状态,用M状态进行折线连接上一时刻top层的信息流入到此时刻的bottom层。并且在垂直方向引入M状态。其实你再仔细看看,这个结构其实就相当于把前面3.1(left)所讲的结构中的两个状态整合在一起成为一个状态M,之后把这个结构和3.1(right)进行整合,最后得到上图的结构,不同的是这里用一个ST-LSTM巧妙的解决了这个问题。

四、 Experiments

这里只简单说明下Moving MNIST dataset数据集和雷达数据集的结果(可以和上一篇对比) 对应的训练参数

4.1 Moving MNIST dataset

Moving MNIST dataset数据集不再过多介绍,请看我第二篇时空序列文章。这里与之前那篇不同的在于数据集的玩法,这里清华团队是自己随机生成train数据集,而test是固定的

对运动的数字给一个速度,和随机的方向, 这个方向是单位圆也就是360°等分的一个角度,之后运动的振幅在3到5之间,并且存在两个数字的位置有覆盖的情况,故理论上可以生成无线数量的训练数据集。

作者测试集的用法是每次挑选训练数据中,也就是除去与随机生成的训练数据集中相同的样本以外的测试数据集作为最终的测试数据集。并且用两个数字的训练集训练的模型去预测图中有三个数字的测试集,这也是ConvLSTM中同样用到的测试方法,无非是想测试模型的泛化性和迁移性

可以看到ST-LSTM的PredRNN的效果最好,这里给出的参数最好表现是128的hidden state 维度和4层的stacked结构

几个模型的结果,很直观的可以看到对于数字没有重叠的情况下,PredRNN与VPN baseline效果差不多,但是在有重叠的情况下,VPN baseline把8预测成了3,文中把这种预测的情况叫成 sharp,说明VPN baseline模型对于复杂的情况还是没法很好的预测,并且整体的模型都是对于长时间的预测随着时间步的越来越长,变得越来越模糊。

4.2 Radar echo dataset

这里的这个总结我十分赞同且准确,对于雷达数据集的最难的地方就在于它没有所谓的明显的周期性,并且移动的速度也是不固定的,变换也不是极具严格的,比如Moving MNIST dataset数据集运动的对象是数字,这个数字本身空间的信息基本上是不变的,这个和识别问题类似,而雷达数据集会因为各种天气原因,慢慢的积累、消散或变化,或者快速的积累、消散或变化,所以预测问题也是十分艰难的,其实本身数据还有着大量的噪声,因为地形等因素造成的。

这里其实在数据准备阶段说的较施行建博士的文章要相对清晰,10000个连续的雷达数据,每6分钟一个,转换成图片并压缩到100✖100大小,切片序列为20,输入10,输出10, 总共9600个序列,其中随机分到7800为训练集,1800为测试集,这个方法在时空序列预测问题上很常见,基本上的baseline的代码都有这个步骤,如果自己处理整体连续数据的话。

因为降水预测需要实时性,所以这里把训练速度以及占用的内存全都列出来了。可以很直观的看出predrnn的效果确实要较ConvLSTM和VPN baseline要好很多。并且运行速度也不是特别慢(VPN就很慢,因为它的预测是递归的,预测下一个时刻,之后再利用预测下一时刻的去预测下下一时刻,比较耗时)

五、Conclusions

1.提出了一个新的端到端结构PredRNN2.提出了新的LSTM结构,ST-LSTM,并作为PredRNN的basic building blocks3.得到了最好的结果在时空序列预测数据集以及问题上

又不知不觉,码了8k多字,不为了别的,就为了简单、通俗、易懂、全面,共勉!

时空序列预测模型之PredRNN(用ST-LSTM的预测学习循环神经网络)相关推荐

  1. gan怎么输入一维数据_时空序列预测模型GAN+LSTM

    一.Address ICC 2019的一篇paper,为清华团队所写 思路很有趣,也很容易想到,就是用比较火的GAN加上LSTM Satellite Image Prediction Relying ...

  2. 深度学习---循环神经网络RNN详解(LSTM)

    上一节我们详细讲解了RNN的其中一个学习算法即BPTT,这个算法是基于BP的,只是和BP不同的是在反向传播时,BPTT的需要追溯上一个时间的权值更新,如下图,当前时刻是s(t),但是反向传播时,他需要 ...

  3. 中国移动研究院冯俊兰:基于移动通信网络运维中的多指标时空序列预测

    这和我当年做的工作就很像了. 转载自:https://mp.weixin.qq.com/s/veqH753nxWW0Hr0PDB1uSg 中国移动研究院冯俊兰:基于移动通信网络运维中的多指标时空序列预 ...

  4. deeplearning.38序列模型(搭建RNN与LSTM应用实践)

    序列模型 搭建循环神经网络 循环神经网络简介 相关符号声明 导入库 RNN的前向传播 RNN单元 RNN前向传播函数 LSTM(长短期记忆网络) 关于门 定义实现LSTM单元 定义LSTM前向传播 循 ...

  5. 深度学习TensorFlow2,循环神经网络(RNN,LSTM)系列知识

    一:概述 二:时间序列 三:RNN 四:LSTM 一:概述 1.什么叫循环? 循环神经网络是一种不同于ResNet,VGG的网络结构,个人理解最大的特点就是:它通过权值共享,极大的减少了权值的参数量. ...

  6. 深度学习~循环神经网络RNN, LSTM

    目录 1. 循环神经网络RNN 1.1 RNN出现背景 1.2 RNN概念 2. LSTM 2.1 LSTM出现背景 2.2 LSTM结构 参考 1. 循环神经网络RNN 1.1 RNN出现背景 pr ...

  7. rnn神经网络模型_一文读懂序列建模(deeplearning.ai)之循环神经网络(RNNs)

    作者:Pulkit Sharma,2019年1月21日 翻译:陈之炎 校对:丁楠雅 本文为你详细介绍序列模型,并分析其在不同的真实场景中的应用. 简介 如何预测一个序列中接下来要发生什么事情是一个非常 ...

  8. 循环神经网络以及 LSTM 及其变体

    循环神经网络以及 LSTM 一.循环神经网络 1.1 RNN 简介概述 1.2 RNN 的图示讲解 1.3 RNN 的前向传播 二.LSTM ( Long Short-Term Memory) 2.1 ...

  9. 用c语言实现循环神经网络,浅谈LSTM循环神经网络

    姓名:程祖晗 学号:19021210938 [嵌牛导读]人工神经网络(ANN)由大量相互连接的神经元或称节点组成,这些节点经过网络中的大量加权连接,将数据进行相互通信,实现了神经网络的记忆特性.在常规 ...

  10. 使用LSTM进行预测,有一对一、多对一、多对多的预测,其中有一些疑问一起探讨(一)

    数据说明 我的数据是1万6千多的数据,想用4个特征(这个特征未加输出)预测2个输出,也就是多对多的预测. 使用LSTM 一对一的预测 先用对一的预测简单一些,就是用一段时序数据取预测,代码例子看的MA ...

最新文章

  1. 【JavaScript总结】JavaScript语法基础:数据类型
  2. 使用MarkDown画矩阵
  3. 互联网安全威胁及应对方案
  4. 【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )
  5. Java对【JSON数据的解析】--官方解析法
  6. java 三角依次递增在递减_java中用for循环怎样打印三角行啊,主要是不理解什么情况外层循环递增什么时候递减,如等腰三角形...
  7. jquery获取当前的节点
  8. Spring事务管理接口
  9. C++基础13-类和对象之继承2
  10. Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)
  11. LINUX:解压问题tar: Child returned status 1
  12. 解决librdkafka 报WARN:Protocol read buffer underflow
  13. UVaOJ 10328 Coin Toss
  14. Photoshop插件-黑白(三)-脚本开发-PS插件
  15. 金三银四想跳槽的,要抓紧时间补补了
  16. 相机的内参会改变吗_关于相机内参中的焦距fx和fy
  17. xp系统如何开启索引服务器,windows xp 索引服务器
  18. 微信小程序--JavaScript实现指定数字的精度输出
  19. Python入门-基础语法笔记
  20. Meta Learning/Learning to Learn, 到底我们要学会学习什么?||介绍了几篇元学习文章

热门文章

  1. SOLD格雷母线定位系统产品说明
  2. 第一个游戏外挂,附上详细制作过程
  3. windows7 旗舰版 集成 usb3.0 NVMe 支持 AM4
  4. C语言经典例23-输出菱形图案
  5. 不用电脑怎么设置路由器
  6. 【数据结构与算法-动态规划系列经典例题汇总】
  7. 回顾计算机主板中南北桥的作用
  8. 浏览器清理缓存的几种方法
  9. 如何在iPhone上禁用Apple CarPlay
  10. facebook是什么