专栏首页人工智能利用显著-偏置卷积神经网络处理混频时间序列

利用显著-偏置卷积神经网络处理混频时间序列

显著-偏置卷积神经网络简介

金融时间序列通常通常包含多个维度,不同维度数据的采样频率也不一致。例如螺纹钢研究员通常关心螺纹钢的因素有日频更新的现货螺纹钢价格,周频更新的螺纹钢库存,高炉开工率和线螺采购量,而月频更新的则有商品房销售面积等。如果其中某些可观测因子发生了变化,投资者对未来螺纹钢期货涨跌的预期也应发生变化,但是如何处理这些不同频率的数据是量化模型的一大难题。一种比较简单直接的方法就是降低数据的采样频率,例如把日频数据统一为周频(甚至更低如月频),再基于周频数据进行预测。但这种方法的缺点也很明显,期货本身波动就比较大,通过低频采样的数据只能按低频预测的结果来交易,如果在一周中期货价格发生了大变,也无法根据量化模型做出合理的应对。另外某些影响期货价格的数据也并非在周末统一更新,例如周频发布的螺纹钢库存通常坐在周四更新而同是周频发布的线螺采购量则可能是周五更新。如果模型统一为周频则有可能错过了最佳的投资入场点。

本报告介绍一种可用于处理混频时间序列的神经网架构:显著-偏置卷积神经网络(Significance-Offse Convolutional Neural Network,SOCNN),这种网络架构由Mikolaj Binkowski等人在最近提出(Autoregressive Convolutional Neural Networks for Asynchronous Time Series,2017),并成功应用到多个混频金融数据集中,他们发现使用这种网络架构处理混频数据要比经典的向量自回归、卷积神经网络和长短时记忆网络等方法要好。虽然这种方法初步的研究阶段,但是由于其新颖的网络构造方法以及应用前景而值得了解。

在本报告里首先介绍了显著-偏置卷积神经网络架构,然后尝试利用周频的螺纹钢库存数据和日频的螺纹钢期货主力数据进行预测,发现这种网络架构在处理混频数据上有一定潜力。

SOCNN研究背景

在同频率时间序列的处理上,宏观经济或计量上用得较多的是自回归(Autoregression, AR)、向量自回归(Vector Autoregression, VAR)和向量自回归—移动平均(Vector autoregressive–moving-average, VARMA )等线性模型。这类模型的优势是模型的参数就是可观测因子的系数,通过检测系数的统计显著性可以分析出因子对待预测变量的影响,因而能够协助研究人员找出经济变量直接的因果关系。在混频时间序列的处理上,则通常会使用状态空间模型,即假设存在一系列不可观测的状态,这些不可观测状态往往代表的是低频因子,再通过可观测的高频数据对不可观测的状态进行推断,最后根据这些状态进行预测。虽然这些传统的经济学模型具有良好的可解释性,但是由于其简单的线性关系在预测的准确度往往有所欠缺。

在进行预测方面,当前的研究热点是深度神经网络模型,这类模型在图像处理和自然语言处理等多个领域里都能取得较好的预测效果,但是这类模型相当于一个黑盒子,并不具备可解释性,把其直接应用到期货交易上有一定的潜在风险。经济学研究强调的是变量之间的因果关系,但是期货交易则更强调预测的准确性。如果量化模型能同时具备可解释性和预测准确性当然就完美了,而当两者不可兼得时,往往就要牺牲一方而换取另一方的提高。而且金融时间序列的预测与语言序列的特征并非完全一致,这意味着直接把经典的深度学习模型应用在可能仍需要一些改进。

在这种背景下,Mikolaj Binkowski等人提出了显著-偏置卷积神经网络(Significance-Offse Convolutional Neural Network,SOCNN),这种网络架构把传统的经济学自回归模型与深度学习相结合用于处理混频时间序列。这种模型的原理是仿照自回归模型保留待预测变量的时间序列特征,而该时间序列的权重则不再是简单的固定系数,而是一个卷积神经网络。另外SOCNN里也有经典的神经网络选通机制(gating mechanism):

SOCNN原理

SOCNN的数据结构

在期货预测中使用到的变量因子通常都是在不同时间点观测得到的,例如螺纹钢期货的收盘价在每天收盘后获得,而螺纹钢库存则通常在周四下午公布,如果周四是非交易日,则没有螺纹钢期货的收盘价,而库存的发布则由于节假日等原因有可能延迟发布。这些不同频率的时间序列很难利用传统的同频率模型进行处理。所以Mikolaj Binkowski等人提出来了SOCNN的网络架构来处理这个问题。他们首先把多维混频的时间序列使用了一种新的方法表示,如下图所示。图中包含了X和Y两个按不同频率采样的时间序列。由于采样时间完全不一样,这两个时间序列的值可以合并到一个维度,然后再分别使用X和Y两个指标来表示当前列的意义,还有一个维度就是用来表示该值持续的时间间隔。例如第一列中X指示的值为1,Y指示的值为0表明的是当前时间序列上的值为X=4.0,持续时间是0.3.。第二列上X指示的值为0,Y指示的值为1,表明当前时间序列上的值为Y=7.5,持续时间为0.7。

采用这种混频数据格式的一个好处就是混频数据的表示更为紧凑,每个数据维度不需要单独的时间标记,取而代之的是用0和1标记数据维度,即使不同维度的数据长度可能不同,这种表示方法仍能把其紧凑地用矩阵表示。虽然这种方法在人类看来并不直观,但是对计算机的识别效率可能更高。

卷积神经网络原理

SOCNN由卷积网络堆积构成,上述的混频数据输入格式可以被这种网络直接读入,其原理可由下图表示。这里使用一维的卷积核,长度为4,该卷积核相当于一个4维的向量,然后点乘下表中每一列的值,由左往右依次进行,如果输入的时间序列有8列则经过这一层卷积层后由之前的4*8=32个数据被压缩为1*8个数据,这相当于一个降维压缩的过程。如果使用两个卷积核则可以得到2*8=16个数据,然后这16个数据再经过激活函数后进入下一个卷积层。这样通过卷积层的堆积就可以形成深度神经网络了。

SCONN架构

得到最终输出。

SOCNN应用实例

与经典的卷积神经网络相比,SOCNN没有使用池化层(pooling layer),所以输入的时间序列长度能够一直保持直到最后的全连层。正是这种做法才部分保留了神经网络最终输出的可解释性,即可以使用显著网络的权重对某个时间节点上变量的显著性做出分析。但另一方面如果选取的时间序列长度不恰当的话,则包含的数据实际维度在每个样本里都可能不一致。

在这一节里尝试使用SOCNN预测螺纹钢期货主力合约的收益率。预测是基于每周发布的螺纹钢库存以及主力期货合约的日度收盘价收益率这两个因子。训练样本的长度为10个交易日,通常包含1-2个周频数据,数据的组织形式如图1 所示,用于预测下个交易日期货的收益率。使用的数据为螺纹钢主力期货的日收益率和库存的周度变化率,数据日期从2009年3月至2017年11月,约2500个交易日。

SOCNN的keras源代码可以从作者Mikolaj Binkowski的github网站下载。这篇报告里使用的显著网络使用了2个卷积层,使用的卷积核个数为2,偏置网络则只使用了1个卷积层。目前由于使用日频和周频数据,样本数量不多,并没有添加过多的层数神经网络可调的参数控制在100个以下。SOCNN的训练使用简单的交叉验证法,约70%的样本用于训练集,10%的样本用于验证集,20%的样本用作测试集。神经网络训练时使用提早停止的方法,即验证集误差开始增大时停止。神经网络的超参数包括隐藏层神经元数量,学习速度和主成份个数等,由于神经网络训练耗时较长,这里并没有对超参数空间进行全局搜索,因此所使用的超参数并非最优。

目前该模型用于螺纹钢期货主力合约,每个交易日收盘后对下个交易日的收益率进行预测,收益为正则进场做多,反之则做空。下图给出了SOCNN模型在螺纹钢期货上的训练集(Training set)和验证集(Validation set)的表现。训练集和验证集的数据是从2009年4月至2016年3月,占所有样本数量的80%,在这些样本中再随即抽取所有样本数量的10%作为验证集,用于超参数筛选和训练的提前停止。在训练集和验证集这段时间内,螺纹钢主力期货基本呈现下跌趋势,直至2015年底开始出现回升,而SCONN策略则基本上能捕捉到2008年至2013年中旬的下跌趋势,但之后该策略便开始回撤,知道2015年11月才开始出现反弹,回撤幅度达到42.8%。在这段期间SOCNN策略的年化收益达到9.68%,年化波动率17.3%,夏普率0.56,胜率为51.57%。

图5给出的是SOCNM模型在测试集上的表现,时间从2016年4月中旬到2017年11月,可以看到螺纹钢主力期货在这段时间里先跌后涨,SOCNN策略的表现与之比较一致,但从曲线上看SOCNN的震荡幅度要小一些,整体收益不如螺纹钢的纯多头,只有年化19.1%,波动率为38.1%,夏普率为0.5,胜率为52.5%。回撤期是从2016年4月中旬到2016年11月初,时间接近半年,幅度达39%。

从收益方面来看SOCNN在测试集的收益比其在训练集还要高,但这主要是因为螺纹钢本身在测试集这段期间的波动比较大,在训练集和验证集的时间段里,螺纹钢的年化波动率只有17.3%,而到了测试集里则高达38.2%,是之前的2倍,而SOCNN的胜率在两段时间里的差异并不太大前者是51.57%,后者是52.5%,都不是特别高,但由于最近一年多时间里螺纹钢的波动比较剧烈,即使胜率不高,SOCNN策略也能有所盈利。另外SOCNN策略的回撤期比较长,达到半年甚至更长,回撤幅度也达到40%左右,这可能是因为只使用螺纹钢库存和日收益率动量这两个因子没法准确很好地预测螺纹钢走势,添加其他因子例如其现货或上下游产物等因素会有所帮助。另外SOCNN的作者Mikolaj Binkowski给出的源代码程序中,包含了大量的模型超参数,例如ResNet的使用,目标损失函数的选择以及激活函数的选择等也未在本报告中作进一步探索和优化。SOCNN的原始论文中使用的是训练数据样本在一万以上,远远高于目前螺纹钢的日频数据。样本数据的缺乏应该是目前限制深度神经网络使用的主要原因,因此一种可能的操作是把模型参数,即神经网络权重进行贝叶斯化,这将有助于解决神经网络参数过多,容易出现过度拟合的问题。

结果讨论

本报告首先对Mikolaj Binkowski等人提出的SOCNN网络,即显著-偏置网络模型进行了基本介绍,包括其原理、框架以及数据组织方法等。这种网络架构主要是为了适应混合频率的金融时间序列,其主要原理是使用了多重卷积网络对混频时间序列进行特征提取,然后计算时间序列上各个时间节点的权重,所以构造出的神经网络作者Mikolaj Binkowski等人是认为部分可解释的。在本报告里尝试使用了螺纹钢日频收益率和周频库存来训练SOCNN,并能取得一定效果,虽然策略的回撤大,夏普率也不高,但是SOCNN在处理混频数据上的创新性的尝试也为基本面量化的研究提供了一个新的思路。

本文来自企鹅号 - 华泰期货研究院媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何利用深度学习识别千万张图片?

    首先我们来谈一下什么是卷积神经网络,相信在深度学习中这是最重要的概念,首先你可以把卷积想象成一种混合信息的手段。想象一下装满信息的两个桶,我们把它们倒入一个桶中...

    企鹅号小编
  • 深度学习的57个名词解释及相关论文资料

    一、激活函数(AcTIvaTIon FuncTIon) 为了让神经网络能够学习复杂的决策边界(decision boundary),我们在其一些层应用一个非线性...

    企鹅号小编
  • 深度学习VGG模型核心拆解

    如今深度学习发展火热,但很多优秀的文章都是基于经典文章,经典文章中的一句一词都值得推敲和分析。此外,深度学习虽然一直被人诟病缺乏足够令人信服的理论,但不代表我们...

    企鹅号小编
  • 卷积和神经网络有什么关系?

    如上一段所述,卷积可以提取特征,但对于真实世界当中的大规模图片库,我们并不知道哪个局部特征有效,我们还是希望通过训练神经网络,自动学习出来,怎么做呢?还得用到前...

    马克java社区
  • 今日 Paper | ACEnet上下文编码网络;卷积网络生物系统;欺诈检测;DialogueGCN等

    论文名称:ACEnet: Anatomical Context-Encoding Network for Neuroanatomy Segmentation

    AI科技评论
  • 吊打一切的YOLOv4的tricks汇总!附参考论文下载

    阅读 YOLOv4 过程中有趣的部分是新技术已经应用来评估、修改并集成到YOLOv4中。而且它还做了一些改变,使检测器更适合在单个GPU上训练。

    AI算法与图像处理
  • CNN超参数优化和可视化技巧详解

    王小新 编译自 Towards Data Science 量子位 出品 | 公众号 QbitAI 在深度学习中,有许多不同的深度网络结构,包括卷积神经网络(CN...

    量子位
  • 为什么说卷积神经网络,是深度学习算法应用最成功的领域之一?

    目前,作为深度学习的代表算法之一,卷积神经网络(Convolutional Neural Networks,CNN)在计算机视觉、分类等领域上,都取得了当前最好...

    老肥码码码
  • 上海交通大学 ECCV 2018 四篇入选论文解读

    AI 研习社按:7月3日,国际人工智能及计算机视觉顶级会议ECCV 2018论文接收列表公布,今年的ECCV大会将在德国慕尼黑举行。据AI科技评论了解,上海交通...

    AI研习社
  • PCL 1.8.0+VS 2015配置经历分享

    作为一个新手,我这次配置该环境的主要目的是运行相关文件,因此对一些原理并没有深入了解,所以只能说一说我配置的过程。(其实很多情况弄得我摸不着头脑,仿佛又回到了做...

    点云PCL博主

扫码关注云+社区

领取腾讯云代金券