matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架...

2

模型介绍

文章提出的one-step-ahead预测模型主要由三部分组成,分别是用于数据预处理的小波变换,用于提取抽象特征的栈式自编码器以及用于预测的LSTM,整个模型的框架如下图所示:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第1张图片

小波变换

由于小波变换具有处理非平稳金融时间序列数据的能力,因此本文采用小波变换进行数据去噪。与傅里叶变换相比,小波变换的关键特性是可以同时分析特定时间序列的频率分量。因此,小波在处理高度不规则的金融时间序列时很有用。

在这篇文章中,哈尔基函数(Haar basis function)被用来作为小波变换的基函数,因为它不仅能将金融时间序列分解为时域和频域,而且能显著地减少处理时间。

连续小波变换(Continuous Wavelet Transform, CWT)的系数中包含了大量的冗余信息,因此,可以通过采样的方式来减少冗余信息。将时间序列分解为一组正交分量可以得到离散小波变换(Discrete Wavelet Transform, DWT)。Mallat提出了用一对高通和低通滤波器对时间序列进行滤波,作为离散小波变换的实现。其中的两种小波被称作父小波和母小波,它们的积分分别为1和0,即:

9ffc6e37c4b9ba9b6a4c61655f9cd60c.png

其中,母小波描述时间序列的高频部分,而父小波描述时间序列的低频部分。进一步地,j阶的父小波和母小波的形式如下:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第2张图片

而金融时间序列则可以通过对父小波和母小波的一系列投影进行多级分析来重建。因此,通过正交波来近似一个段时间序列可以表示为:

ae3104d7de315ecf3d81f99c0e13d742.png

其中的拓展出的系数表示为:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第3张图片

最后,简化的正交波近似进行如下所示:

a312d331ff597fbcc1c5f9c8523cc370.png

其中,  是对原输入序列  的最粗粒度估计。  则是原序列不同分辨率下的结果,即小波在不同频段下的表现形式。在金融时间序列非常粗糙的情况下,可以反复应用离散小波变换,来降低过拟合的风险。在本文中,采用两次小波变换进行数据预处理。

栈式自编码器

最简单的单层自编码器即是一个三层的神经网络模型,如下图所示。训练单层自编码器的目的是使输入向量与重建向量之间的误差最小。

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第4张图片

单层自编码器正向传播的第一步是将输入向量映射到隐含层,而第二步是通过将隐含向量映射到重构层来重构输入向量。这两个步骤可以表述为:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第5张图片

栈式自编码器则是由多个自编码器堆叠而成,下图展示了一个具有5层的栈式自编码器,其中包含了四个自编码器:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第6张图片

对于栈式自编码器的训练过程即是将单层自编码器变成多层,然后一层一层进行训练。其中过程是,单层自编码器映射输入的变量到第一个隐层向量,训练第一单层自编码器后,去掉第一单层自编码器的重构层,然后保留隐含层作为第二单层自编码器的输入层,然后一直重复这个过程。一般来说,后续的自编码器的输入层就是之前自编码器的隐含层。每一层使用相同的梯度下降算法进行训练。

LSTM

RNN是一种深度神经网络结构,在时间维度上具有深层结构。因此,它常被广泛应用于时间序列建模中。传统神经网络假设输入向量的所有单位都是相互独立的,因此,传统的神经网络不能很好地利用序列信息。相比之下,RNN模型增加了一个由时间序列的序列信息生成的隐藏状态,以及依赖于隐层状态的输出。通常的RNN结构如下图所示:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第7张图片

虽然RNN能很好地对时间序列建模,但由于梯度消失问题的存在,很难学习长期依赖关系。LSTM通过利用记忆单元来对抗消失梯度的问题。其中,记忆单元由输入门、输出门、遗忘门和自循环神经元组成。这些门控制邻近的记忆细胞和记忆细胞本身之间的相互作用,而输入信号是否能改变存储单元的状态则由输入门控制。另一方面,输出门可以通过改变记忆单元的状态来控制记忆单元的状态。此外,遗忘门则可以选择记住或忘记它的前一时刻状态。下面是LSTM和记忆单元的基本结构:

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第8张图片

matlab lstm时间序列预测,解读:一种金融时间序列预测方法:基于栈式自编码器、小波变换以及LSTM的深度学习框架..._第9张图片

在这篇文章中,LSTM网络的架构包括隐藏层数和延迟数,延迟数指的是用于训练和测试的时候用到的过去数据的数量,即时间窗口的大小。目前,没有经验法则来选择延迟和隐藏层的数量。在本工作中,通过将隐含层数和延迟数设置为5和4。金融时间序列分为三个子集:即训练集、验证集和测试集,训练占80%,验证占10%,测试占10%。模型采用反向传播算法进行训练,以及实验对照方法用到了WLSTM(结合了小波变换和LSTM)、LSTM和RNN模型。训练批次的大小为60,批次数为5000。收敛速度由学习速率控制,学习速率是时间的递减函数,学习率初始值为0.05。

3

实验验证

你可能感兴趣的:(matlab,lstm时间序列预测)