1. 引言
随着经济的快速发展,居民的投资方式逐渐由储蓄这一单一途径演变为投资资金、股票、国债等,居民希望通过买卖其波动性资产,获得更大的收益。比特币是一种具有极度非线性、非平稳性等特征的资产,人们希望通过预测比特币价格的走势来获得更多的利润并且规避风险,深度学习和神经网络的发展有力推动了价格预测的研究。
郭思涵 [1] 基于改进循环神经网络构建了比特币价格预测模型;张宁等 [2] 在长短时记忆网络基础上构建了混合预测模型,发现混合模型预测准确性优于单一LSTM模型。本文同样先分别构建单一LSTM模型与CNN模型得到预测结果,再建立CNN-LSTM混合模型对预测精度进行对比。
2. 长短期记忆神经网络(LSTM)
长短期记忆神经网络(LSTM)是一种特殊循环神经网络(RNN),在RNN的基础上引入了门控单元系统,采用输入门、遗忘门和输出门对信息进行选择性控制,适当遗忘历史信息并依据新信息更新细胞状态。其基本结构如图1所示:
LSTM的计算过程 [3] [4] 可分为以下三步:
1) 遗忘门
遗忘门的任务是接受上一个单元模块的输出
并决定保留和遗忘
的哪个部分。其数学原理为将
时刻的长期记忆输入
乘以遗忘因子
实现对长期记忆的遗忘。遗忘因子的计算公式如下:
(1)
其中
是sigmoid函数;
为遗忘门的权重矩阵;
是
时刻的LSTM单元输出;
为
时刻记忆单元值;
为遗忘门的偏置项。
2) 输入门
输入门的任务是在细胞状态中加入新的记忆。其基于
和
,通过sigmoid神经网络层得到数值
决定被更新的信息,通过tanh神经网络层得到候选记忆单元值
,最终将
与
相乘加入细胞状态,实现从
到
的更新。具体计算过程如下:
(2)
(3)
(4)
其中
、
分别为对应的权重矩阵,
、
为对应的偏置项。
3) 输出门
输出门的任务是更新得到短期记忆
。与输入门类似,其基于
和
,经过一个sigmoid神经网络层输出数值
,将它与经过tanh函数的
相乘得到输出信号
,同时
也作为输入信号传递到下一个时刻。具体计算过程如下:
(5)
(6)
其中
为对应的权重矩阵,
为对应的偏置项。
3. LSTM模型实证分析
3.1. 数据选取
选取纳斯达克证券交易所的比特币2016年9月11日至2021年9月10日共1826个交易日的数据作为初始数据。从图2中可看出比特币的价格变化幅度并不稳定,无明显规律。
为了提取比特币价格数据的时间序列特征,将数据生成为堆叠数据类型,结合窗口滑动特征进行预测,例如:假设时间窗口大小为10天,要预测
时刻的价格,需输入
时刻到t时刻的数据。除价格数据外,选取RSI14、DIFF、DEA、MACD、Up20、Down20六个指标 [5] [6] 作为输入向量预测未来3日比特币的价格数据,他们的含义如下:
• RSI14:相对强弱指标,测量一定时期(14天)内价格上涨总幅度平均值占价格变化总幅度平均值的比例;
• DIFF:价格短期和长期指数平滑移动平均线间的差值;
• DEA:DIFF线的M日指数平滑移动平均线,常与DIFF线和MACD线搭配判断;
• MACD:平滑异同移动平均线,DIFF线与DEA线的差,利用两线的聚合与分离状况对买进卖出时机做出研判;
• Up20:唐安琪通道中的上线,为过去20天的最高价;
• Down20:唐安琪通道中的下线,为过去20天的最低价。
3.2. 模型建立
对于数据集的选取,为了保留时间相关性和验证模型的准确性,数据集的时间跨度以4年为例,把数据集分为训练集、验证集、测试集,在4年的数据中,训练集为前80%时间的数据,验证集为前80%到90%时间的数据,测试集为后10%时间的数据。为了防止时间序列过拟合,在各层之间加入了dropout层,dropout层在神经网络的训练过程中,对于一次迭代中的某一层神经网络,先随机选择其中一些神经元并将其临时隐藏,然后再进行本次训练和优化,在下一次迭代中,继续随机隐藏一些神经元,如此直至训练结束,减少权重使得网络对丢失特定神经元连接的鲁棒性提高,同时也提高模型的非线性预测能力 [7]。
在构建LSTM模型时,采用MAPE评价指标来评价模型的准确度,其计算公式为:
(7)
其中 是预测值, 是真实值。
建立LSTM模型对比特币价格进行预测,此时的模型参数为:LSTM层数为3层,dense层数为3层,dropout层数为5层,MAPE值为10.14,得到的预测与真实数据对比图以及残差图如图3、图4所示:
![](//html.hanspub.org/file/66-2622358x52_hanspub.png?20220630103008697)
Figure 3. The contrast chart of predicted and real price data in the test set (LSTM)
图3. 测试集中预测与真实价格数据对比图(LSTM)
![](//html.hanspub.org/file/66-2622358x53_hanspub.png?20220630103008697)
Figure 4. The residuals chart of the predicted and real price data (LSTM)
图4. 预测与真实价格数据残差图(LSTM)
图4中曲线存在急剧下降的原因是比特币价格极度不稳定导致难以预测。从上图预测结果可以看出,单一的LSTM模型预测效果并不理想且有明显滞后性,为解决这一缺陷,需结合CNN模型,利用卷积层提取数据中的隐藏特征,并将其逐层结合,生成抽象的高层特征。
4. 卷积神经网络(CNN)
CNN模型 [8] [9] 对输入数据进行逐层卷积和池化操作,主要由输入层、卷积层、池化层、全连接层和输出层组成。
卷积神经网络的输入通常为原始图像
,这里用
表示第
层的特征图,那么
即为
。在卷积层中,
的产生过程可以用公式(8)表示:
(8)
其中,
为第
层卷积核的权重向量;运算符号“⨂”表示卷积操作;
为第
层的偏置项。
池化层通常跟随在卷积层之后,根据一定规则对特征图进行下采样,其功能主要为对特征图进行降维的同时一定程度上保持特征的尺度不变特性。其过程可概括为:
(9)
最后由全连接层在神经网络尾部进行分类任务,将卷积层输出的二维向量转化为一维向量。
4.1. CNN模型建立
与LSTM模型的构建类似,也需要将比特币的价格数据生成为堆叠数据类型,同时还在输入矩阵中添加了各变量的变动率作为额外的输入向量,例如,变量RSI(t)的变动率为
。
此外,深度卷积神经网络能够提高模型拟合能力,但多层的卷积和池化的运算将降低数据的有效维度 [10]。为规避上述风险并使得模型拟合更长跨度的时间特征,将滑动窗口参数设置为14,即输入模型样本尺寸为
的矩阵。
在数据集选取方面,本模型数据集选取思路与LSTM模型基本保持一致。但由于变动率特征的存在,原始时间序列的第一个样本将缺少变动率的特征。考虑到异常数据在全体中所占比例较小,故选择直接将原始时间序列的第一个样本剔除,从而保证特征的完备性。
考虑到CNN模型在预测系统中起到的作用主要是捕捉交叉特征,故引入膨胀卷积这一特殊的卷积模式,并使用残差学习和瓶颈方法来规避深化卷积神经网络带来的梯度消失问题,将原始特征直接作为全连接层的一部分特征加入到模型之中,以防止过拟合和退化问题。
为了评价模型的准确性并使得本模型训练结果能与LSTM进行比对,同样采取了MAPE指标进行评价。
4.2. 实证分析
建立CNN模型对比特币价格进行预测,此时的模型参数为:二维卷积层数为3层,平均池化层数为2层,flatten层数为1层,dense层数为3层,dropout层数为2层,MAPE值为9.29,得到的预测与真实数据对比图和残差图如图5、图6所示:
![](//html.hanspub.org/file/66-2622358x68_hanspub.png?20220630103008697)
Figure 5. The contrast chart of predicted and real price data in the test set (CNN)
图5. 测试集中预测与真实价格数据对比图(CNN)
![](//html.hanspub.org/file/66-2622358x69_hanspub.png?20220630103008697)
Figure 6. The residuals chart of the predicted and real price data (CNN)
图6. 预测与真实价格数据残差图(CNN)
从上图中可以发现,CNN模型相较于LSTM模型拥有更强大的动态捕捉能力。正是因为这个特点,模型往往在尚未完全跟随上一次数据波动的同时开始拟合近期数据的变化,这也导致模型往往存在上下垂直的误差,因而CNN模型需要结合LSTM的趋势信息以更准确的预测数据。
5. CNN-LSTM模型
在预测比特币价格时,可以将货币价格图像与同一数据的价格时间序列数据同时训练,从而使两个模型互补。针对LSTM-CNN结构的构建方法,方义秋等 [11] 提出了联合RMSE损失的LSTM-CNN模型。其构建过程为先分别建立CNN模型与LSTM模型,利用损失函数计算各模型的损失值,再按照一定比例联合两个模型的损失值使总RMSE损失尽可能小且预测精度较高。本文采取类似的构建方法,同样将CNN-LSTM模型的构建过程分三步进行。
第一阶段采用CNN模型架构,采用与上文单一CNN模型相同的架构;第二步建立LSTM模型,同样采用与上文LSTM模型相同的架构;而在第三步,本文采取按比例联合两个模型预测准确度的方法。设α和β分别为CNN模型与LSTM模型预测结果的权重,当LSTM模型与CNN模型单独训练时,都会产生一个MAPE值评价准确度,对于准确度更高的模型结果给予更高的权重,即MAPE值越小,权重越大,但当权重达到一定程度时反而会影响整个模型的预测精度,故应合理取值。经过反复实验,将权重α和β分别设置为0.1和0.9,此时混合模型达到最优。
确定两个单一模型的最优权重后,将两个模型分别预测的结果进行加权求和,以达到模型互补的效果。利用既有数据的白噪检验P值作为CNN-LSTM模型预测的置信水平,并通过公式(10)计算混合模型的预测数值:
(10)
其中,
表示第 时刻CNN分支部分的预测值,
表示第 时刻LSTM分支部分的预测值,
为两个分支预测值的加权和。此外,
表示白噪检验P值,
表示第
时刻比特币的真实价格。
CNN-LSTM模型的整体结构可如图7所示:
![](//html.hanspub.org/file/66-2622358x77_hanspub.png?20220630103008697)
Figure 7. The structure of CNN-LSTM model
图7. CNN-LSTM模型结构图
模型实证与对比
为对比单一模型与混合模型的预测效果,本文分别建立最优CNN/LSTM与最优CNN-LSTM模型,计算相应的MAPE值作为评价指标。
首先训练单一LSTM模型,使其预测效果达到最优,得到了如图8所示的模型结构图,其中LSTM层数为3层,dense层数为3层,dropout层数为5层,MAPE值为8.20。同时也得到在测试集上预测值与真实值的对比图与残差图,如图9、图10所示。从两图中可以看出,LSTM模型的预测效果总体趋势和真实情况接近,但存在一定滞后性。
![](//html.hanspub.org/file/66-2622358x78_hanspub.png?20220630103008697)
Figure 8. The structure of optimal LSTM model
图8. 最优LSTM模型结构图
![](//html.hanspub.org/file/66-2622358x79_hanspub.png?20220630103008697)
Figure 9. The contrast chart of predicted and real price data in the test set (optimal LSTM)
图9. 测试集中预测与真实价格数据对比图(最优LSTM)
![](//html.hanspub.org/file/66-2622358x80_hanspub.png?20220630103008697)
Figure 10. The residuals chart of the predicted and real price data (optimal LSTM)
图10. 预测与真实价格数据残差图(最优LSTM)
随后训练单一CNN模型,模型训练达到最优时同样得到了如图11所示的模型结构图,其中二维卷积层数为6层,平均池化层数为6层,dense层数为3层,dropout层数为2层,MAPE值为7.09。得到的测试集中预测与真实数据对比图和残差图如图12、图13所示,由图可知,CNN模型的预测效果滞后性得到一定程度的改善,且预测误差有所降低,但局部细微变化不明显,过于平缓。
![](//html.hanspub.org/file/66-2622358x81_hanspub.png?20220630103008697)
Figure 11. The structure of optimal CNN model
图11. 最优CNN模型结构图
![](//html.hanspub.org/file/66-2622358x82_hanspub.png?20220630103008697)
Figure 12. The contrast chart of predicted and real price data in the test set (optimal CNN)
图12. 测试集中预测与真实价格数据对比图(最优CNN)
![](//html.hanspub.org/file/66-2622358x83_hanspub.png?20220630103008697)
Figure 13. The residuals chart of the predicted and real price data (optimal CNN)
图13. 预测与真实价格数据残差图(最优CNN)
最后基于图8的LSTM结构与图11的CNN结构,建立了CNN-LSTM模型,训练达到最优时在测试集上的预测值与真实值对比图与残差图分别如图14和图15所示。从图中明显可以看出,CNN-LSTM模型结合了LSTM模型与CNN模型的优点,无论是模型预测值的总体趋势、局部表现以及滞后性都比单一模型要好。至于图15中几处明显差值是由于比特币自身价格的极度不稳定性造成的。
由MAPE值也可以看出,CNN-LSTM模型达到最优时的MAPE值为4.74,均小于单一LSTM模型与CNN模型的MAPE值。
![](//html.hanspub.org/file/66-2622358x84_hanspub.png?20220630103008697)
Figure 14. The contrast chart of predicted and real price data in the test set (optimal CNN-LSTM)
图14. 测试集中预测与真实价格数据对比图(最优CNN- LSTM)
![](//html.hanspub.org/file/66-2622358x85_hanspub.png?20220630103008697)
Figure 15. The residuals chart of the predicted and real price data (CNN-LSTM)
图15. 预测与真实价格数据残差图(CNN-LSTM)
6. 结论
本文先后建立了LSTM模型、CNN模型与CNN-LSTM混合模型,发现单一的LSTM模型有明显的滞后性,为解决滞后性,需要结合CNN模型生成抽象的高层特征。CNN模型虽动态捕捉能力更强,但容易导致上下垂直的误差,故需结合LSTM的趋势信息以更准确地预测数据。最终通过将两个模型进行加权得到CNN-LSTM混合模型,其预测效果均优于两个单一模型,有效融合了LSTM提取时序特征的优点和CNN提取深层特征的优点。
参考文献