前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ConvLSTM:时空特征提取结构 [github代码]

ConvLSTM:时空特征提取结构 [github代码]

作者头像
Minerva
发布2020-08-11 16:13:13
6.4K1
发布2020-08-11 16:13:13
举报
1 背景

这篇文章[1]想要解决的问题是预测一个区域短时间内的降水变化,在它之前的工作(2015年之前)还很少有采用机器学习的方法来做相关预测。由于预测的输入是时序雷达图等具有空间和时间关系的数据,因此文中提出了convolutional LSTM (ConvLSTM)模型,用这个模型可以捕获数据的时空依赖,进而提高模型的预测结果。

2 方法
2.1 问题定义

假设从系统得到的雷达图是一张2D的

M\times N

的图像,每一个像素点有

P

个测量值(可以理解为特征值),因此整个数据可以表达为

\chi \in \mathbf{R}^{P\times M\times N}

,其中

\mathbf{R}

表示观察到数据的域。加上定期记录观测结果,我们可以得到一系列具有时空依赖的数据

\hat{\chi_1} ,\hat{\chi_2} ,\cdots,\hat{\chi_t}

。预测问题可以转变为根据前

J

个观测数据来预测后续

K

个数据,形式化表达如下,

\tilde{\chi}_{t+1} ,\cdots,\tilde{\chi}_{t+K}=argmax_{\chi_{t+1},\cdots,\chi_{t+K}}\ p\left(\chi_{t+1},\cdots,\chi_{t+K}|\hat{\chi}_{t-J+1},\hat{\chi}_{t-J+2},\cdots,\hat{\chi}_{t} \right )
2.2 LSTM

传统的LSTM模型可以形式化如下,

i_t = \sigma (W_{x_i}x_t+W_{h_i}h_{t-1}+W_{c_i}\circ c_{t-1}+b_i)
f_t = \sigma (W_{x_f}x_t+W_{h_f}h_{t-1}+W_{c_f}\circ c_{t-1}+b_f)
c_t = f_t\circ c_{t-1} + i_t\circ tanh(W_{x_c}x_t+W_{h_c}h_{t-1}+b_c)
o_t = \sigma(W_{x_o}x_t+W_{h_o}h_{t-1}+W_{c_o}\circ c_t+b_o)
h_t = o_t\circ tanh(c_t)
2.3 Convolutional LSTM

由于我们的输入是

\chi \in \mathbf{R}^{P\times M\times N}

,其具有空间信息,因此只需要将传统LSTM的公式稍作修改,把

Wx

的权重计算替换成

W\star x

的卷积计算即可,其形式化如下,

i_t = \sigma (W_{x_i}\star\chi_t+W_{h_i}\star H_{t-1}+W_{c_i}\circ c_{t-1}+b_i)
f_t = \sigma (W_{x_f}\star\chi_t+W_{h_f}\star H_{t-1}+W_{c_f}\circ c_{t-1}+b_f)
c_t = f_t\circ c_{t-1} + i_t\circ tanh(W_{x_c}\star \chi_t+W_{h_c}\star H_{t-1}+b_c)
o_t = \sigma(W_{x_o}\star \chi_t+W_{h_o}\star H_{t-1}+W_{c_o}\circ c_t+b_o)
h_t = o_t\circ tanh(c_t)
2.4 模型

模型是堆砌ConvLSTM的encoder-decoder结构,但从文中给出的描述我觉得作者设计的模型并没有下采样和上采样的经典UNet结构(可能因为那时候都是同一年2015年的工作因此没有借鉴)。模型如下图所示,其通过一个卷积层提取图像特征之后,送入多个ConvLSTM层进行时空特征提取,最后把这些ConvLSTM的输出concat起来再通过1x1卷积进行最后的预测。

上述模型可以形式化为,

3 实验
3.1 Moving-MNIST数据集

通过MNIST中的数值图像组合而成,其结果如下图所示,

我复现了论文中基于这个数据集的实验(pytorch),详见我的Github[2]。

3.2 Radar Echo Dataset

该数据集作者没有公开。

4 结论

这篇文中提出了一种可以提取时空特征的结构ConvLSTM,并且通过实验证明了其有效性。该结构其实可以应用到其他具有时空关系的数据上。

[1] https://arxiv.org/abs/1506.04214v1

[2] https://github.com/czifan/ConvLSTM.pytorch

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python编程和深度学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 背景
  • 2 方法
    • 2.1 问题定义
      • 2.2 LSTM
        • 2.3 Convolutional LSTM
          • 2.4 模型
          • 3 实验
            • 3.1 Moving-MNIST数据集
              • 3.2 Radar Echo Dataset
              • 4 结论
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档