代码编织梦想

摘要:

概况论文内容,包含解决的问题,解决的方法,成果

金融时间序列由于高噪声性以及序列间的相关性,导致传统模型的预测精度和泛化能力往往较低。为了克服这一问题,提出一种基于注意力机制的循环神经网络预测模型。利用金融时间序列的技术指标作为特征序列,通过GRU 得 到隐藏状态,再利用注意力机制将其重构,并与目标序列一起作为新的 GRU 的输入,提高目标序列的预测效果。利用上证综指数据,分别使用加入注意力机制的门控循环网络与标准门控循环网络进行预测。在 6 个输入维度的情况下,基于注意 力机制的 GRU模型平均绝对百分比误差为 0.76%,低于标准 GRU 模型的 0.90%;在 48 个输入维度的情况下,基于注意力机 制的 GRU模型平均绝对百分比误差为 0.73%,低于标准 GRU 模型的 1.61%。结果表明,加入注意力机制后门控循环网络的预测效果得到提升,并且在特征序列的输入维度增大时,其预测效果提升更为明显。

引言

传统时间序列模型受限于固定的模型框架,无法对复杂的金融时间序列做出准确的预测,而基于深度学习的方法从数据本身出发能更好地应对“非理想化”的时间序列。近年来,具有非线性处理能力的方法,如支持向量机、BP 神经网络、小波神经网络以及循环神经网络被应用于分析时间序列,也有经典计量模型与机器学习方法的组合模型,取得了不错的效果。
目前而言,RNN(循环神经网络)及其变种 LSTM(长短期记忆网络)由于其关注历史信息的网络结构而广泛被应用。LSTM 可与进化算法结合以提升预测能力。Althelaya 等使用双向 LSTM 以及堆叠 LSTM 提高性能。基于金融时间序列高噪声的特点,也有在使用 LSTM 预测之前,对原始序列做相关处理:Li 和 Tam 对原始序列进行小波去噪;Bao 等在此基础上加入堆叠自编码器;Singh 等利用双向二维主成分分析对原始序列降维提取特征;Zhang等在 LSTM 单元内的遗忘门以及输入门后将状态向量分解为多频率信息,最后在输出门前做聚合重构。
可以看出,一般通过优化网络结构或者对原始数据进行前期处理两个角度来提升预测能力。然而,对于特征序列对目标序列在时间维度上的影响的关注却很少,本文利用被广泛应用于情感分析和机器翻译的注意力机制,对只有特征序列输入的 RNN 的每一时间步的隐藏状态通过注意力机制进行重构,并与目标序列共同作为新的 RNN 输入进行预测。结果表明,加入注意
力机制的 RNN 具有较好的预测性能,尤其是在特征维度增加的情况下,其预测效果相较于标准 RNN 提升更为明显。

方法与模型

GRU 原理和结构介绍

循环神经网络的网络层接收当前时刻的输入 xt 以及上一个时刻的网络状态 ht - 1,得到当前时刻的网络状态 ht 并作为下一时刻的输入。循环神经网络关注历史因素的影响使其适合处理时间序列问题,其工作原理如下:
在这里插入图片描述
式(1)表示状态更新过程,式(2)表示预测输出过程。式中:xt 为 t 时刻的特征输入;ht 为 t 时刻的状态向量;ot为 t时刻的输出。
标准的循环神经网络更新状态向量常常表示如下:
在这里插入图片描述
由于标准循环网络的结构过于简单,常常无法长期保存有效信息,即短时记忆问题。为了有效延长这种短时记忆,提出 LSTM(长短期记忆网络)并取得了不错的效 果 ,同 时 其 简 化 的 变 种 门 控 循 环 网 络(Gated Recurrent Unit,GRU)也被广泛应用。GRU 将 LSTM 的内部状态向量和输出向量合并为状态向量,同时门控数量也由 3 个(遗忘门、输入门、输出门)减少到 2 个(复位门、更新门)。虽然 GRU 是在 LSTM 的基础上做出简化,但在大部分情况下两者的效果相差不大,更为重要的是GRU 的参数相比于 LSTM 要少 1/ 3,计算代价降低的同时减轻了过拟合的可能。
GRU 的 网 络 结 构 如 图 1 所 示 ,状 态 的 更 新 规 则如下:
在这里插入图片描述
在这里插入图片描述
其中,式(4)和式(5)表示复位门的过程,控制上一时刻的状态 h~t -1~进入 GRU 的量。r 表示复位门门控向量,由当前输入 xt 和上一时刻的状态
h t-1 得到,由于激活函数使用了 sigmoid 函数,r的取值范围在 0 和 1 之间,所以可以控制 ht-1 的接收量并与 x~t ~共同得到新输入h t 。式(6)和式(7)表示更新门的过程,用于控制新输入ht 与上一时刻状态 ht-1 对当前时刻状态 ht的贡献量。z 表示更新门门控向量,同样使用 sigmoid 函数作为激活函数,以 1 - z 作为上一时刻状态 ht-1 对 ht 的贡献程度,以 z 作为新输入h t 对 ht的贡献程度。

注意力机制

注意力机制实现了每一时刻的输入对于当前时刻的输出的贡献差异,通过构造得分函数得到相应的权重,通过加权平均的方法重构新的输入用来预测当前输出。注意力机制多在编码⁃解码模型(Encoder⁃Decoder)中使用**,对于循环神经网络而言,编码器所有时刻的隐藏状态对于某一时刻解码器的隐藏状态的贡献度应表现出差异,才能更有效地完成预测任务。**这种贡献度的度量可以通过得分函数式(8)获得,具体形式多样,如式(9)、式(10)所示。得分函数需要归一化才能表现为权重,一般使用 softmax 函数式(11),最后将编码器的隐藏状态加权平均即可得到新的解码器输入式(12)。
在这里插入图片描述
在这里插入图片描述式 中 :s t-1 表 示 解 码 器 在 t - 1 时 刻 的 隐 藏 状 态 ;h =( h1 , h2 ,…, hT)表示编码器的各个时刻的隐藏状态;et 表示贡献度的得分;at表示得到的权重;ct表示解码器的新输入。

基于注意力机制的 GRU

将金融时间序列分为特征序列与目标序列,设定时间窗大小为 T,以特征序列为输入,建立 GRU 网络作为编码器,将输出的所有时刻状态与解码器的每一时间步的状态使用注意力机制重构新的解码器输入分量,并与目标序列一起作为解码器 GRU 网络的输入。基于注意力机制的 GRU 结构如图 2所示。
在这里插入图片描述

实证分析

数据说明与预处理

本文的实证数据来自于上证指数,上证指数反映了上海证券交易所上市的所有股票价格的变动情况,其变动趋势在一定程度上能够反映中国宏观经济的走势。本文的预测目标是上证指数的收盘价,收盘价作为交易所每一个交易日的最后一笔交易价格,既是当日行情的标准,又是下一个交易日的开盘价的依据,具有重要的意义。为了更为准确地考量模型的预测效果,考虑不同
维度的特征输入下模型的性能变化。因此,这里选择两个不同维度的特征输入,一个是 6 个输入维度的上证指数开盘价、最高价、最低价、交易量、成交额以及收盘价本身;另一个是在此基础上增加了与上证指数相关的7个综合指数(上证 A 指、上证 B 指、上证工业类指数、上证商业类指数、上证房地产指数、上证公用事业股指数、上证综合股指数)的开盘价、收盘价、最高价、最低价、交易量和成交额作为特征输入,即 48个输入维度。

为了克服序列之间不同量纲的影响,提升模型精度,并提高迭代求解的收敛速度,在训练模型之前选择以训练集的序列数据的最大值和最小值对所有的特征序列以及目标序列做归一化处理:
在这里插入图片描述
式中:x为所有原始数据;x train 为训练集数据;x′ 为所有归一化后的数据。
将归一化后的数据输入模型,模型变成对归一化后的收盘价的预测,因此需再将最终输出的结果进行反归一化处理,即得到最终的预测结果。

衡量指标

为了对比基于注意力机制的 GRU 与标准形式的GRU 的预测效果,本文用绝对偏差和相对偏差两个衡量指标进行表示。绝对偏差的衡量指标选择测试集的收 盘 价 预 测 值 和 真 实 值 的 均 方 误 差(Mean Square Error ,MSE),其计算公式为:
在这里插入图片描述
相对偏差的衡量指标选择测试集的收盘价预测值和 真 实 值 的 平 均 绝 对 百 分 比 误 差(Mean Absolute Percentage Error,MAPE),其计算公式为:
在这里插入图片描述
式中:n 为样本总数;y ′i 为收盘价的预测值;yi 为收盘价的真实值。

网络结构设定

为了尽可能减少参数,降低模型复杂度,选择式(10)作为注意力机制的得分函数。另外,基于注意力机制的GRU 模型的一些参数设定如下:编码器与解码器的GRU 隐藏层神经元个数均为 64;时间窗大小为 30;批处理大小为 128(每训练 128组样本迭代更新一次参数);训练次数为 150 次(将所有训练集样本完整训练 150 次);以归一化后的收盘价的预测值和真实值的均方误差MSE作为损失函数,使用 Adam 优化算法更新参数。

实证结果

以上证指数收盘价为预测目标,分别将 6 个输入维度的特征序列和 48 个输入维度的特征序列放入模型训练,将测试集数据输入训练好的模型,得到实验结果。表 1和表 2分别给出了 6个输入维度以及 48个输入维度下标准形式的 GRU 与基于注意力机制的 GRU 在测试集上的预测效果。可以看出,无论是哪一种输入维度,基于注意力机制的 GRU 的预测效果均优于标准形式的 GRU,这说明在 GRU 中加入注意力机制是有利于预测性能提升的。在输入维度为 6 时,两种模型在测试集上的 MSE 与 MAPE 相差不大 ,标准形式的 GRU 在MAPE 上仅仅比基于注意力机制的 GRU 多 0.14%。但在输入维度为 48 时,由于输入维度的增加,导致模型的参数增加,模型复杂度上升,对于信息的整合能力下降。
在这里插入图片描述
相较于 6 个输入维度,此时 GRU 的 MAPE 增加了0.71%,增加了近 1 倍。而基于注意力机制的 GRU 预测性能变化不大,相反 MAPE 降低了 0.03%。相较于标准形式的 GRU,可以认为注意力机制的引入增强了 GRU应对更高维输入的能力。
图 3~图 6 也分别给出了 6 个输入维度以及 48 个输入维度下标准形式的 GRU 与基于注意力机制的 GRU 在测试集上的实际预测结果。通过与原始数据的直观对比,可以看出在 6 个输入维度下两种模型都有着不错的预测效果,2个模型在输入维度变为 48后才出现较为明显的预测差距。
在这里插入图片描述
在这里插入图片描述

结 语

本文通过在循环神经网络中加入注意力机制,探寻其在金融时间序列方面的应用。以上证指数为例,建立基于注意力机制的 GRU,并与标准形式的 GRU 进行对比,得出基于注意力机制的 GRU 可以提高预测金融时间序列的能力的结论。同时,考虑不同序列输入维度对模型的影响,发现随着输入维度的增加,标准形式的GRU 预测能力下降明显,而基于注意力机制的 GRU 预测性能变化不大。可以认为加入注意力机制后,GRU对于信息的整合能力有所提升。因此,在循环神经网络中加入注意力机制,对于金融时间序列的预测任务来说,不仅可以提升预测性能,还能在保证预测效果的同时应对更多维度输入的情况。

版权所有 彭祥 未经允许,禁止转载
本文链接:https://blog.csdn.net/pengxiang1998/article/details/127148920

基于keras用lstm进行时间序列预测(一)_poo_chai的博客-爱代码爱编程

如何基于Keras和Tensorflow用LSTM进行时间序列预测 李倩 发表于 2018-09-06 08:53:16 论智 +关注 编者按:本文将介绍如何基于Keras和Tensorflow,用LSTM进行时间序列预测。文章数据来自股票市场数据集,目标是提供股票价格的动量指标。 GitHub:github.com/jaungiers/LS

干货|如何使用最流行框架tensorflow进行时间序列分析?_i小码哥的博客-爱代码爱编程

如何使用最流行框架Tensorflow进行时间序列分析?(一) TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的

综述:基于深度学习的情感分析-爱代码爱编程

近年来,深度学习有了突破性发展,NLP 领域里的情感分析任务逐渐引入了这种方法,并形成了很多业内最佳结果。本文中,来自领英与伊利诺伊大学芝加哥分校的研究人员对基于深度学习的情感分析研究进行了详细论述。   目录 一、摘要 二、介绍 三、神经网络 四、深度学习 五、词嵌入 六、自动编码器和去噪自动编码器 七、卷积神经网络 八、循环神经网络

深度神经网络可视化技术-爱代码爱编程

深度神经网络可视化技术 深度学习模型表述的难点与意义深度神经网络的可视化云脑 Deepro 采用的 CNN 可视化独立单元激活的可视化图案和区域生成法云脑 Deepro 采用的 RNN 可视化LSTM 解释元与激活门统计人工智能模型可视化实例结语 深度学习模型表述的难点与意义 深度神经网络(Deep Neural Network,DNN)作为

综述—多智能体系统深度强化学习:挑战、解决方案和应用的回顾-爱代码爱编程

多智能体系统深度强化学习:挑战、解决方案和应用的回顾 摘要介绍背景:强化学习前提贝尔曼方程RL方法深度强化学习:单智能体深度Q网络DQN变体深度强化学习:多智能体挑战与解决方案MADRL应用结论和研究方向参考 摘要 强化学习算法已经存在了几十年,并被用于解决各种顺序决策问题。然而,这些算法在处理高维环境时却面临着巨大的挑战。深度学习的最新发展

【深度干货】强化学习应用简述-爱代码爱编程

来源:海豚数据科学实验室   强化学习 (reinforcement learning) 经过了几十年的研发,在一直稳定发展,最近取得了很多傲人的成果,后面会有越来越好的进展。强化学习广泛应用于科学、工程、艺术等领域。 下面简单列举一些强化学习的成功案例,然后对强化学习做简介,介绍两个例子:最短路径和围棋,讨论如何应用强化学习,讨论一些仍然存

告别RNN,迎来TCN!将深度学习应用于股市预测-爱代码爱编程

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 本文转自|计算机视觉联盟 本文介绍了 TCN 在股市趋势预测任务中的应用,表明在集成新闻事件和知识图谱后,TCN 的性能大幅超过 RNN。 本文主要介绍了以下几部分内容: 1. 金融时间序列(FTS)中的深度学习背景介绍; 2. 值得关注的

注意力机制新综述笔记,21年-爱代码爱编程

21年注意力机制小综述的翻译A review on the attention mechanism of deep learning Abstract 可以说,注意力已经成为深度学习领域最重要的概念之一。它的灵感来自于人类的生物系统,即在处理大量信息时倾向于关注独特的部分。随着深度神经网络的发展,注意力机制已被广泛用于不同的应用领域。本文旨在对近年来提

斯坦福NLP课程 | 第6讲 - 循环神经网络与语言模型-爱代码爱编程

作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI教程地址:http://www.showmeai.tech/tutorials/36本文地址:http://www.showmeai.tech/article-detail/240 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容

神经网络 深度神经网络,深度神经网络应用实例_阳阳2013哈哈的博客-爱代码爱编程

深度学习在现实生活中到底有什么作用?会给生活带来什么变化? 其实咱们的实际生活中已经有很多应用深度学习技术的案例了。 比如电商行业,在浏览淘宝时,页面中有很多都是符合你的爱好并且最近有意向购买的商品,这种个性化推荐中就涉及到深度学习技术,还有就是在购物界面能和你进行对话,解决疑问的淘宝智能机器人,也涉及深度学习技术。 比如交通领域,通过深度学习技

什么是卷积神经网络算法,卷积神经网络算法实现_快乐的小肥熊的博客-爱代码爱编程

简述深度学习的基本方法。 深度学习,需要怎么做到? 最佳答案1、深度学习,首先要学会给自己定定目标(大、小、长、短),这样学习会有一个方向;然后要学会梳理自身学习情况,以课本为基础,结合自己做的笔记、试卷、掌握的薄弱环节、存在的问题等,合理的分配时间,有针对性、具体的去一点一点的去攻克、落实。 2、可以学习掌握速读记忆的能力,提高学习复习效率。速读记