深度学习与时间序列

最近了解了下时间序列,接下来是混合神经网络应用于时间序列的案例
文章:《Hybrid Neural Networks for Learning the Trend in Time Series

TreNet: 一种新颖的端到端混合神经网络,用于学习局部和全局背景特征,以预测时间序列的趋势。
使用长短记忆递归神经网络(RNN)LSTM来捕捉历史趋势序列中存在的长程依赖性。
CNN通常用于从原始数据中提取出显着性的特征,原始时间序列数据中提取特征以进行活动/动作识别
特征融合层将学习用于预测趋势的联合表示。
TreNet通过CNN,LSTM,CNN和LSTM的级联,基于隐马尔可夫模型的方法以及基于真实数据集的各种基于内核的基线来证明了TreNet的有效性。

时间序列是一系列按时间顺序排列的数据点,正在广泛的领域中生成,例如医学和生物实验观察,股票市场的日常波动,功耗记录,数据中心的性能监测等等。

基础表示:

数据点序列:
在这里插入图片描述在这里插入图片描述
X上实际的趋势:
在这里插入图片描述
在这里插入图片描述
代表某个子序列的线性函数,对应趋势。lk 和 sk 分别代表持续时间和趋势斜率k,连续值,T不互相重叠。
定义本地数据的每个历史趋势为一组大小为w的数据点:
在这里插入图片描述
目标:提出一种基于神经网络的方法 来学习函数以预测后续趋势 。
在这里插入图片描述
重点来了:
TreNet的想法是组合CNN和LSTM以利用它们在数据的不同方面(即L和T)上的表示能力并且学习用于趋势预测的联合特征。分别再时间T和斜率L上进行预测计较。

趋势和R(T)和C(L)有关的函数。
R(T):通过在序列L上训练LSTM来捕获历史趋势变化中的依赖性。
C(L):对应于CNN从L中的本地数据集中提取的局部特征。
特征融合层合并用于预测后续趋势的特征。 最后,趋势预测由函数 实现,此函数对应于特征融合和输出层。
在这里插入图片描述

学习历史趋势序列中的依赖关系
先给公式
在这里插入图片描述
解释一下: 代表LSTM层中的第j个神经元在步骤k的储存。 为输出。
为LSTM神经元的输出门。
在这里插入图片描述
是趋势k的持续时间和斜率的串联,hk-1,ck分别是 , 的向量化。
σ是logistic sigmoid函数,不懂的可以百度一下。
以以下方式进行更新,去除一些存在的记录,增加新的记录:
在这里插入图片描述
遗忘控制(忘去现有的)和输入控制(获取新的):
在这里插入图片描述
在这里插入图片描述
Vf,Vi为对角矩阵。

在这里插入图片描述
是元素泄露的ReLU激活函数,Wo,bo是输出层的权重和偏差。
在这里插入图片描述
W和b代表所有权重和偏差参数。
λ是正则化项的超参数。 成本函数是可微分的,TreNet的体系结构允许将损耗函数的梯度反向传播到LSTM和CNN部分。

实验分析:
TreNet和CNN,LSTM,ConvNet+LAT(CLSTM),SVR,pattern-based HMM,Naïve进行比较。
评估参数是:RMSE,根均方误差
数据集是:Power Consumption (PC),Gas Sensor (GasSensor),Stock Transaction (Stock)。

下面直接贴比较结果:
在这里插入图片描述
RMSE预测每个数据集的趋势持续时间和斜率。
在这里插入图片描述

TreNet对来自PC,Stock和GasSensor数据集的示例可视化趋势预测。 黄点代表时间序列,每个图中的紫色线代表相关的历史趋势序列。
TreNet显示出更好的预测特性及稳定性。
总算写完了,周末准备放松下啦。

发布了3 篇原创文章 · 获赞 0 · 访问量 693

猜你喜欢

转载自blog.csdn.net/qq_33783624/article/details/86308923