时空神经网络(STNN)

文章目录

  • 文献与代码
  • 问题描述
  • STNN
    • 动态因子图(DFG)
    • DFG 的学习
    • 预测模型的使用
    • 考虑空间关系
  • STNN-R(efining)
  • STNN-D(iscovering)

文献与代码

时空神经网络的提出来自这篇论文:
时空神经网络(STNN)_第1张图片
Github 上有该模型的源码实现:https://github.com/edouardelasalles/stnn


问题描述

主要考虑的是如下问题:

  • n n n 个时间序列,每个序列有 m m m 维特征,每段序列的长度为 T T T。如果用 X X X 来表示所有序列,则 X ∈ R T × n × m X \in R^{T\times n \times m} XRT×n×m,是一个 3 维张量;

  • n n n 组序列之间有空间上的联系,用矩阵 W ∈ R n × n W \in R^{n \times n} WRn×n 来描述;

  • 需要预测所有序列在未来 τ \tau τ 时间内的值;

  • 希望学习一个模型 f : R T × n × m × R n × n → R τ × n × m f: R^{T\times n \times m} \times R^{n \times n} \rightarrow R^{\tau \times n \times m} f:RT×n×m×Rn×nRτ×n×m.

STNN

当不考虑空间关系时,可以用动态因子图来对时间序列建模。

动态因子图(DFG)

时空神经网络(STNN)_第2张图片
动态因子图是一种隐状态模型,模型包含两个部分:

  • 状态转移: Z t + 1 = g ( Z t ) Z_{t+1} = g(Z_t) Zt+1=g(Zt)
  • 状态解码: X t = d ( Z t ) X_t = d(Z_t) Xt=d(Zt)

观测序列的动态行为完全由隐状态决定,没有受到任何外部输入的影响,这是和 RNN 不同的地方。

DFG 的学习

比 RNN 更牛的地方在于,不仅解码函数 d ( ⋅ ) d(\cdot) d() 和状态转移函数 g ( ⋅ ) g(\cdot) g() 是要学的,连隐状态 Z t Z_t Zt 也是直接从数据中学的!
时空神经网络(STNN)_第3张图片

预测模型的使用

当 DFG 训练好时,用如下方式预测:
时空神经网络(STNN)_第4张图片

考虑空间关系

原文讲得挺清楚的,,,
时空神经网络(STNN)_第5张图片
如果不只有 1 种空间关系,而是有 R R R 种不同的关系 W ( r ) , r = 1 , 2 , … , R W^{(r)}, r=1,2,\ldots, R W(r),r=1,2,,R
在这里插入图片描述

STNN-R(efining)

对人为设定的空间关系 W W W 进行微调,利用元素乘法调整 W W W 内元素的值,
在这里插入图片描述
训练时的代价函数改换成:
时空神经网络(STNN)_第6张图片
注意到新增了关于 Γ \Gamma Γ 的稀疏性约束条件。 γ \gamma γ 这个超参数可以利用验证集来选取:
时空神经网络(STNN)_第7张图片

STNN-D(iscovering)

此时,序列间的空间关系完全从数据中学习,
在这里插入图片描述
公式(9) 中的 γ \gamma γ 控制了学习到的 Γ \Gamma Γ 的分布范围,当 γ \gamma γ 越大时,对 Γ \Gamma Γ 的稀疏性约束越强,对每个空间点之间的相关性更加约束在局部范围。
时空神经网络(STNN)_第8张图片

你可能感兴趣的:(#,深度学习,时间序列,论文阅读,STNN,时空数据,时间序列,DFG)