![54fe8e27b5bb345725f999cbf1d2b587.png](https://i-blog.csdnimg.cn/blog_migrate/5440b1118dca5445aca90bdc8ba25ae8.jpeg)
一、Address
AAAI2019的一篇文章
Cubic LSTMs for Video Prediction
论文链接地址: https://arxiv.org/pdf/1904.09412.pdf
![c9ce2db42ca1eaaf9bdf708b13d9817b.png](https://i-blog.csdnimg.cn/blog_migrate/586a013ce8424730e7714e44edc45c5b.jpeg)
二、Introduction and Model
2.1 LSTM以及ConvLSTM
这里简单列举下,其实我已经写过很多次了,只是为了方便大家阅读
LSTM结构具体参考文章:
公式为:
缩写可以表示为:
ConvLSTM论文解读具体参考文章:
缩写可以表示为:
2.2 CubicLSTM
2.2.1 结构
![c8de88344d79fea53b60b29b38341c6c.png](https://i-blog.csdnimg.cn/blog_migrate/e25c4be97513821806b72ed0a22bf532.jpeg)
左面是一个立体图,很难看明白其中的结构,咱们主要看右边的b,拓扑图。
整理的cell最主要的特点是将temporal和spatial的信息分开处理,即左图中的sptial axis和temporal axis两个轴方向。
CnbicLSTM包括三个branch:temporal branch, spatial branch, output branch,顾名思义temporal branch主要是获得动作的,也就是目标之间的变化即时间的运动信息,spatial branch主要是获取本身目标的结构信息即目标空间信息,output branch就是把二者做了个整合,之后输出prediction
![1509c59eb230b44a6fdd052930c1a908.png](https://i-blog.csdnimg.cn/blog_migrate/941e34ffc22cce9996540099fbb6b9a5.jpeg)
再仔细看一下结构,感觉不需要多说,这幅图画的很清楚了,大致来讲就是蓝色为spatial,橘黄色为temporal。 可以看到空间上,主要是layer的变化,也就是L->L+1,而时间上主要是step的变化,也就是t->t+1
大致说下流程,就是temporal的hidden state和spatial的hidden state以及输入x经过两个conv分别得到时间维度和空间维度的三个门控以及内部状态,之后接下来的各种操作和convLSTM里面基本上一样,最后得到两个hidden state经过conv得到最终的Yt
其实换一个角度本篇的这个结构本质上就是个两个convLSTM的拼接cell,只是生成门控的输入为三个值所决定的。
所以公式也很好得出。
2.2.2 公式
2.2.3 Cubic RNN
这种rnn的提出少不了stacking结构。
我们先看个细节图,玩多了rnn的应该都清楚一般来说temporal的轴线,也就是time step的逐步处理的时候temporal的参数肯定是共享的。
所以下图其实就是一个两层的结构,即红框中的结构
![95a1d2f1c35424abadb8d74c55e5f9cd.png](https://i-blog.csdnimg.cn/blog_migrate/78a2f33ad7b3005c485b0687347be101.jpeg)
除了这个以外,在spatial上叠加几层,也是为了让objection的信息更加突出,得到更好的空间信息。 并且前一步的spatial的信息会传给下一步的最初的层,即蓝色线部分。
![403973e81799653c75f0ffce608c9ca8.png](https://i-blog.csdnimg.cn/blog_migrate/b016b1163f749eaf5078e9a3b8b82a3b.jpeg)
这个输入设计的就很有趣了,因为层数主要代表的是spatial,如图这么输入的话也就是说每层考虑了之前的临近的objection的信息,相当于多了一些目标的信息,这个输入称之为slide window。
预测规律如图所示。
![46c077ce4c964d5b3d5203720b065dec.png](https://i-blog.csdnimg.cn/blog_migrate/924d86581ee6a8e14b8a0675c45a2a95.jpeg)
这个结构总体来讲就很有趣了,看着像个立体的网
三、Experiments
还是做得Moving MNIST数据集,和predrnn++做的类似,应用了三个数字和两个数字的序列图,以及应用了mse和bce两个评价指标
![7e3265ecf9df26882c4cfdbe794b315f.png](https://i-blog.csdnimg.cn/blog_migrate/8192aadaa853f6bc8f0fafdd7e8dbf83.jpeg)
![6a54efe024747d30b2fb114fbcd5c5e9.png](https://i-blog.csdnimg.cn/blog_migrate/15319d3a5f49bea0e7f82dd1637cd5da.jpeg)
也做了一些可视化工作。
![b387051f12f5204a4f45d515b05c33e3.png](https://i-blog.csdnimg.cn/blog_migrate/d29969f8b76fcb3b1b47e85466420972.png)
四、Conclusions
- 文中其实强调了很多次convlstm的目前无法动摇的地位,之后决定在convlstm上做创新,想到的点子出发点就是如何把temporal和spatial分开
- 分开之后分别得到c和h,经过前后各一个conv得到门控和c以及最终融合h得到最终的prediction
- 把结构设计为了一个立体的结构,和平时的平面有一些不同,所以在stacking的时候会感觉像一个立体的网一样的结构