Long-term Forecasting using Tensor-Train RNNs添加链接描述
这篇文章是arxiv占坑的,正式发表名字改成了《Learning chaotic dynamics using tensor recurrent neural networks》。
在最近的时序预测研究领域,有许多在张量方面的研究比较新奇,就挑了一个文中涉及到的与RNN相关的文献研究了一下。
研究对象:作者面向的问题是非线性的、无规律、并且带有许多噪音的数据集。比如以下两个,分别是温度预测和公路上的速度预测。可以发现,这个数据就是乱。
作者在文中的表述是==“forecasting in environments with nonlinear dynamics”==。这边作者提到了非线性动力学(nonlinear dynamics),我找了一些资料,在神经网络中,的确有一部分内容是符合非线性动力学的,这个后文也有涉及。我们常用的RNN其实可以归纳为一种一阶马尔科夫模型,也就是只用到了一个前一个的隐藏态。如果运用到了L个隐藏态,就是L阶马尔科夫模型。
作者认为,这种 nonlinear dynamics 情况的预测难点在于,长时间的时序依赖性以及高阶动力学(higher-order dynamics)的存在,所谓的高阶动力学,我认为应该就是这种尖峰十分突出的数据集,而比较平稳的数据集,作者称之为smooth dynamic。这种高阶动力学的情况包括生物神经网络活动、流体湍流、气候和交通系统。
目前的绝大部分算法只能处理平滑的、短时间依赖性的数据。为了解决这一问题,作者提出了基于tensor-train的RNN网络。这个模型具有两个特征:1)通过使用较长的先前隐藏状态历史以及与乘法存储单元的高阶状态交互,显式地对高阶动力学建模。 2)可以通过使用张量训练来扩展,张量训练是一种结构化的低秩张量分解(CNN可以被认为是一种张量分解方法),可大大减少模型参数的数量,同时主要保留完整秩模型的相关结构。总结来其实也就是两个内容,精度和效率。
这个模型的目标与一般的时序预测表示类似,但是在文中称 x 为系统状态。
作者使用Tensor-train RNN来进行建模。主要是两个内容:具有L个时间记忆步长的L阶马尔可夫过程,以及隐藏状态 h 和 xt 之间的多项式建模。
第一步
就是使用L个历史状态的建模,f 是常见的**函数。似乎跟Attention有点像,都用上了更早的隐藏态。
第二步
如何学到这个非线性动力学。
首先,先将这个状态记为一个矩阵,
对于每个隐藏维,我们通过对隐藏状态之间的P阶多项式建模来构造P维过渡权重张量(P-dimensional transition weight tensor),其中alpha为隐藏维,i 对应高阶项,P是多项式项:
那么在LSTM中就可以写作如下形式:
以上的全部内容都是在一个RNN cell中完成的,所以与正常的RNN的区别在于,只需要使用这个TTRNN的cell就可以了,TTRNN模型如下所示。
但是,有一个问题,如果采用这种TTRNN cell,那这个参数量非常庞大。为了克服这个困难,作者利用张量网络来近似权重张量。这样的网络将张量的结构分解编码为低维分量,并已被证明可以为平滑张量提供较好的近似。张量训练模型将P维张量W分解成稀疏连接的低维张量网络,这种分解操作可以表示为:
这边就是大致的模型设置。但是为什么能这样做并且能取得较好的效果呢?作者在第四章给出了一些理论证明,这部分内容有点复杂,还没看懂…
跳过这块理论,看看作者的实验设置。
数据集有三种,
仿真数据集 Genz dynamics:有10000条时间序列,每条序列有100个数据。
真实数据集Traffic :有8784个时间序列,每个序列有288个数据,数据粒度为5分钟。
真实数据集Climate:有6594个序列,每个序列有366个数据,数据粒度为1天。
作者是基于tensor train的RNN,并使用了LSTM核,因此简称为TLSTM,另外两种分别为LSTM和MLSTM(Matrix LSTM)。整体的结果对比如下,横坐标是预测的未来时间长度。
在仿真数据集上,毫无疑问,TLSTM是最好的,毕竟是针对这种高阶动力学的假设而采用的方法。在两个真实数据集上也能发现,性能毫无疑问是最好的。但是同样也无法做到精确拟合,只不过会比baseline更贴近数据的趋势。另一方面,在训练时间上,TLSTM与我之前做的实验比较类似,训练采用的epoch都到达了1w次。并且收敛速度较baseline更快。
实验内容还有一些具体参数的对比,就不详细探讨了。