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

写在前面

下面这篇文章的内容主要是来自发表于Plos One的一篇文章《A deep learning framework for financial time series using stacked autoencoders and long-short term memory》。这篇文章提出了一种基于深度学习技术的金融时间序列预测方法,其中,小波变换(wavelet transforms)用于对金融数据去噪,栈式自编码器用于进一步特征提取,最后,经过去噪和栈式自编码器得到的特征用于LSTM模型的训练。实验验证了提出的模型相较于其他类似模型要有更好的预测效果和盈利能力。原论文在文末进行获取。

1

摘要

金融时间序列预测通常被认为是时间序列预测中最具挑战性的问题之一,由于其中包含噪声和具有多变的特征,因此,如何准确地预测股票的走势,对于现代的一系列研究来说,仍然是一个有待解决的问题。虽然,如今已经有很多机器学习以及深度学习模型在金融时间序列有所应用,像SVR、ANNs、CNN、LSTM等,但是,考虑到金融时间序列的复杂性,将深度学习与金融市场预测相结合仍被认为是最具吸引力的课题之一。

为了解决上面的问题,在这篇文章中,作者首次将栈式编码器(Stacked Autoencoders,SAEs)方法被应用于金融市场预测中,并结合小波变换以及LSTM用于金融时间序列的预测。因此,该模型由小波变换(WT)、栈式编码器(SAEs)和长短期记忆(LSTM)三部分组成。其中,SAEs是模型的主要组成部分,用于无监督学习金融时间序列的深层特征。具体来说,SAEs是一个由多个单层自编码器组成的神经网络,其中每一层的输出特征被连接到连续层的输入。在无监督的训练中,通过最小化输出数据和输入数据之间的误差,来一次一个单层自编码器的训练。因此,SAEs模型能够成功地学习抽象特征。除此之外,小波变换是一种广泛应用的滤波和挖掘一维信号的技术,所以它被用来修复包含噪声的时间序列。最后,为了提高预测的准确性,LSTM被用于后续的模型训练。在这篇文章中,作者提出的模型简称为WSAEs-LSTM。

2

模型介绍

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

小波变换

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

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

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

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

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

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

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

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

栈式自编码器

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


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

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

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

LSTM

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

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

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

3

实验验证

这部分将介绍实验用到的数据集,和用到的数据特征以及实验结果。不同市场的市场状况可能会影响模型的潜在有效性,因此选取来自多种市场的样本数据能有助于缓解这个问题。其中,数据集用到了六种股票指数,分别是沪深300,印度Nifty 50,香港恒生指数,东京日经225指数,标准普尔500以及道琼工业指数。

数据的输入特征除了基本的价格,成交量,持仓量数据之外,还包括一些像MACD,ATR等技术指标和一些宏观变量指标,具体如下表所示:

模型的预测包括三个部分,第一个部分即是通过训练集来训练模型并更新模型参数,第二部分是通过验证集进行参数调优,第三部分则是通过测试集进行模型测试,测试时通过模型预测每个季度的表现,过程持续六年,过程如下图所示:

为了衡量预测的结果,用到了下面的预测指标:

下面是部分的预测结果:

下图直观展示了提出的模型与对比模型在六种市场中在2010.10.01到2011.09.30这段时间的预测结果:

除了通过基本的预测指标进行模型验证之外,文中还通过了一种buy-sell策略来验证模型的盈利能力。其中,当模型的预测结果大于当前值时就进行买入,低于时则进行卖出。策略的收益计算方式如下,其中,B和S表示买入和卖出的手续费。

通过上面这个规则和收益指标得到的统计结果如下表所示,可以看出提出的模型具有一定的收益能力。

4

总结

本文建立了一个基于深度学习预测框架,并对不同金融市场交易的六种股票指数进行了收盘价预测。该预测框架的构建过程如下,首先,采用Haar离散小波变换生成去噪后的时间序列;其次,通过SAEs在无监督的情况下提取深层特征;第三,LSTM被用来以监督的方式产生下一时刻的输出。输入的特征变量包括每日开高低收价格、技术指标和宏观经济变量。这项工作的主要贡献是首次尝试引入SAEs方法来提取金融时间序列的深层特征。此外,文章提出了带有一套完整模块的深度学习框架,包括去噪、深度特征提取代替传统选择以及金融时间序列拟合。在此框架下,可以将去噪、深度特征提取和时间序列拟合的几个部分采用最新的方法进行替代,从而建立新的预测模型。

参考文献:

Bao W, Yue J, Rao Y (2017) A deep learning framework for financial time series using stacked autoencoders and long-short term

memory. PLoS ONE 12(7): e0180944

关注《人工智能量化实验室》公众号,后台发送040可获取原论文。

了解更多人工智能与
量化金融知识

<-请扫码关注

让我知道你在看

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值