基于混合量子−经典神经网络模型的股价预测

2022-01-26 12:42张晓旭高振涛卢明静
电子科技大学学报 2022年1期
关键词:比特量子神经网络

张晓旭,高振涛,吴 磊,李 鑫,卢明静

(1.建信金融科技有限责任公司 上海 浦东新区 200120;2.四川元匠科技有限公司 成都 611730)

近年来,随着计算机计算能力的提升及各行业应用大数据的积累,深度学习得到迅速发展。凭借人工神经网络自动提取特征的特点,深度学习在众多应用场景中展现了巨大应用价值,尤其在图像识别、自然语言处理、棋牌游戏等方面甚至超过了人类。量化投资作为金融领域中最依赖大数据的部分,天然契合人工智能技术的应用场景[1-2]。

股票市场预测一直是一个经典而又富有挑战性的问题,同时受到经济学家和计算机科学家的关注。但股票价格数据仍然很难预测,市场受到投资者基于情感和认知因素的影响,会产生如短期投机行为、恐慌性抛售和非理性繁荣等现象,直接催生了价格泡沫这类高噪声数据。所以从总体上看,大盘的股价数据是非线性、非平稳、非结构和高噪声的。得益于中国金融市场的逐步完善,有效的金融数据得到大量积累,深度学习在量化投资中的运用在国内也得以快速发展。最近用于预测股价数据的热门方法之一就是深度学习[3]。本文成功地训练了一个24 维特征的深度神经网络(deep neural network,DNN),实现了对每日股价涨跌的二分类预测。

尽管深度学习在解决各方面问题时有很好的表现,但深度学习必须使用大量数据进行训练,否则这种方法将经历过拟合。因此,为了提取海量大数据的特征,包含上亿权重参数的神经网络被广泛地采用,其对经典计算机的运算能力提出越来越高的要求。然而随着摩尔定律的失效,集成电路上晶体管密度接近工艺制造的物理极限,导致经典算力的瓶颈到来,人工智能需要寻找新型算力平台[4]。量子计算作为全新的计算模式,比起经典计算,在一些特定算法上有着指数加速的能力,有望给深度学习提供足够的计算能力。开发适用于量子计算机的量子神经网络,使得更复杂的神经网络模型得以训练,并加速模型的训练速度[5],这些潜在的量子优势使得量子人工智能成为了一个活跃的研究领域[6-8]。

本文针对量子计算的特性,充分利用量子比特的叠加性和纠缠性,搭建了混合量子−经典神经网络模型(hybrid quantum-classical neural network),然后在量子线路学习(quantum circuit learning,QCL)框架下,对股价特征数据进行监督学习(supervised learning)。训练后的量子神经网络可以对输入的股票特征进行准确分类,给出涨跌标签。其中,量子神经网络(quantum neural network,QNN)仅指在量子计算机上执行的参数化量子线路(parameterized quantum circuit,PQC)。

此外,本文证明了量子神经网络对股票数据具有良好的表达性,能够实现与经典深度神经网络类似的分类能力。量子神经网络成功地对股票数据进行拟合,证明了量子金融领域的巨大潜力。

1 金融量化分析

股票分析常用的手段有基本面分析(fundamental analysis)和技术面分析(technical analysis)[9]。基本面分析是从宏观上评估企业价值或预测股票价值的走势,考虑因素一般为政府政治决策、企业负面舆情、国家宏观经济指数发布、产业分析、自然灾害、恐怖袭击等不可抗力。技术面分析是利用金融量化模型和拟合工具,依靠股票市场历史上的交易价格(price)和成交量(volume)及其衍生出的一系列指标(indicators)来定量分析预测股票价格。

量化模型是研究股票价格波动的数学原理,建立股票价格S与时间t之间的数量关系。金融学中用于描述股价变化的模型是几何布朗运动(geometric Brownian motion,GBM),即式(1)中的Wt项。根据随机波动假设下S(t)连续但不可导的性质,应用伊藤引理后可以得到描述股价的随机偏微分方程。随机波动模型需要市场波动率σ 和收益率α 两个重要参数,但真实市场中σ(t,St)和α(t,St)也是时间与股价的函数,所以股票方程只是理论模型,实际预测能力有限。

一般来说,金融工程是一门专业性很强的学科,传统量化模型中要求专业人员提出合理解释市场的特征因子,这需要很强的证券投资知识的储备。但量价时间序列数据具有非线性、非平稳、非结构和高噪声的特点,大部分公共事件,如舆论、政策,甚至天气、群体心理等都会通过大家的逐利行为反映到一个单一的变量,即股价上面。因此需要量化分析专家深刻理解金融数学模型的原理和数据分析应用场合,他们的先验经验是非常重要的。

但是深度学习几乎不需要处理原始数据,深度神经网络模型有良好的非线性拟合能力,能自动学习最有预测性的特征,这使得数据分析师在基本了解证券市场知识的情况下,也能像金融工程专家一样寻找证券市场波动背后的规律。同时,深度神经网络模型还具有强大的表达能力和泛化能力。应用深度学习方法寻找股市规律正逐渐受到业界重视。

具体来说,如果目标是预测股票的具体价值,这属于回归问题(regression);如果目标是预测价格的运动方向,如上升或下降,这属于分类问题(classification)。设第k组数据中的特征(feature)为一个向量X{k},对应的标签(label)为标量y{k}∈{0,1}。输入M个训练样本 [X{k},y{k}],k=0,1,···,M−1,得到训练后的神经网络,再输入训练集外任意一天的股市特征X{h},都能输出涨跌的预测标签y{h}。

2 经典深度神经网络预测器

由于股民的短期投机行为会引起层出不穷的价格波动,所以金融数据样本越小则噪音越大,必须基于较长时间段的多维度特征向量才能训练出表达性强、准确率高的神经网络。

当前市场中的证券数目是相当大的,A 股市场的股票数目现在有3 000 多只,如果再加上期货、基金可能会有上万种投资标的。基于大盘数据就可以充分利用深度神经网络对高维大数据进行拟合或分类。本章以沪深300 股指期货为例,选取一段时间内的日K 线数据进行训练,根据预测结果,设定每日交易策略:1) 看涨,今日继续持有,明日买入;2) 看跌,今日卖出,明日买回;3) 趋势不明,保存现金,股票不操作。

2.1 经典深度神经网络模型

神经网络模型是深度学习算法的核心,神经网络最简单的形式是一种两层神经网络,也叫感知机(perceptron),它有若干个输入值和一个输出值,最早在1957 年由R.Rosenblatt 提出,其结构如图1 所示。输入值向量先经过仿射变换Z变为一个标量,然后由激活函数a做非线性映射,完成特征提取。

图1 感知机模型

多层感知机构成了神经网络,神经网络层可分为3 类,即输入层、隐藏层和输出层。而DNN 就是有多个隐藏层的神经网络,它可以提取更复杂的数据特征。整个DNN 中的信息是朝着一个方向传播的,第l层感知机把处理的结果传递给第l+1 层,并且每层感知机都包含自己的仿射变换Z和激活函数a,形如:a{0}→Z{1}→a{1}→···→Z{L}→a{L}。一般化的DNN 可以用一个有向图来表示,如图2 所示。

图2 神经网络隐藏层间的连接映射过程

通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射,映射过程可由式(2)计算。容易看出,各层神经网络的权重矩阵W{l}和偏置向量b{l}就是待训练的神经网络参数[10]。

此外,还需要用损失函数来衡量神经网络参数是否合理。损失函数可以定量描述由神经网络前向传播得到的结果与真实值之间的差距,拟合常用均方误差(mean squared error,MSE),分类常用交叉熵(cross entropy)。

训练过程就是不断修正神经网络参数使得损失函数越来越小的过程,这需要高效的误差反向传播算法来进行参数调整,一般这是一个迭代收敛的过程。训练前馈神经网络最著名的方法是梯度下降法(gradient descent),通常基于TensorFlow、PyTorch、Jax 等高效可靠的可微编程工具[11]。

2.2 股市数据的训练参数设计

首先是数据集的准备,包括训练集(training)、测试集(testing)、特征(features)和标签(labels)。数据来源为沪深300 股指从2019 年1 月2 日−2021 年7 月6 日的所有K 线量价指标,取前400 天数据为训练数据,剩下为测试数据。

如图3 所示,日K 线原始数据包括5 个量价指标,即开盘价O、收盘价C、当日最高价H、当日最低价L和总量V。标签y的取值只有两个{0,1},连续两个交易日的收盘价C[k+1]>C[k],则y[k]=1,表示上涨;若C[k+1]

图3 涨跌K 线图

具体因子包括X=[O_log,C_log,H_log,L_log,V_log_1,V_log_2,V_log_3,V_log_4,V_log_5,PPC_1,PPC_2,PPC_3,PPC_4,PPC_5,CO_gap_1,CO_gap_2,CO_gap_3,CO_gap_4,CO_gap_5,HL_gap_1,HL_gap_2,HL_gap_3,HL_gap_4,HL_gap_5]。这24 个因子定义如下:O_log 开盘价取对数;C_log 收盘价取对数;H_log 当日最高价取对数,高点也叫阻力位;L_log 当日最低价取对数,低点也叫支撑位;V_log_5 是日交易量取对数的5日滑动平均值,其余V_log_1-4 含义类似;PPC_5 是5 日价格变动百分比的滑动平均值,其余PPC_1-4含义类似;CO_gap_5 是收盘价减去开盘价的5 日滑动平均值,其余CO_gap _1-4 含义类似,这也是著名的动量特征;HL_gap_5 是单日震荡幅度的5 日滑动平均值,其余HL_gap _1-4 含义类似。

取对数是为了保证特征因子的大小在同一数量级,避免梯度下降过程中损失函数进入振荡。针对特别大和特别小的数据要进行恰当的缩放,如成交量是远大于股价的。综上所述,用于神经网络训练与测试的数据集如表1 所示。

表1 大盘数据预处理生成数据集

本文用DNN 算法模型进行股价预测器的训练。如图4 所示,训练的DNN 总共有4 层:输入层有24 个神经元,激活函数ReLU;隐藏层1 有12 个神经元,激活函数ReLU;隐藏层2 有12 个神经元,激活函数ReLU;隐藏层3 有6 个神经元,激活函数ReLU;输出层有两个神经元,经过激活函数Sigmoid 以后给出涨的概率P(raise ≡ 1)和跌P(fall ≡ 0)的概率。

图4 深度神经网络股价分类结构

2.3 预测器的盈利能力检测

神经网络的输出经过sigmoid 函数的转换,可以将数值压缩到(0,1)之间,如神经网络以概率P[k]把第k日的标签y{k}归类于1,以概率P[k+1]把第k+1 日的标签y{k}归类于0。

但P是连续的,不能简单认为P>0.5 就看涨,而是要在可能性很大的情况下才看涨。根据多次实验结果,本文的策略是对神经网络输出结果进行修剪,设定P>0.95 看涨,P<0.05 看跌,其余区间属于趋势不明,这样最终得到了3 个标签,恰好可以指导3 种操作策略。

预测股价上涨则做多,即明日开盘买入,记作do=1。预测股价下跌则做空,记作do=−1,即明日开盘卖出,套现开盘的高价股价。无法预测则选择不操作,即保持现金,既不把现金换成股票,也不把股票换成现金,记作do=0。

把3 类预测结果y转化为对应的投资策略do以后就能进行评估分析了。这里采用了回测法,在训练集的真实市场数据上检验本文投资策略盈利情况。不同于衡量拟合器性能的回测曲线,针对分类器的性能指标是累积收益(cumulative return)。设定首日累积收益率CR[0]=1,第k日的累计收益率为CR[k],股价为S[k],那么k+1 日的累计收益率计算为:

当策略do 与真实市场涨跌相同时,累积收益率就持续增长。如股价今日100 元,神经网络模型预测明日会跌,即do=−1,但是实际第二天股价涨到110 元了,错误的决策就导致第二天的累积收益率降低10%。

训练集上检测的投资结果如图5 所示。可以看出在2020 年9 月1 日−2021 年7 月6 日测试时间段内,大部分时间都是持续盈利的,最高收益在2021 年2 月底出现,达到了25%。这证明了该神经网络分类器的准确性较高,表现稳定。

图5 投资策略的累积收益率结果测试

3 混合量子−经典神经网络预测器

当前的量子算法研究者已经不是为完美的大规模量子计算设备设计算法,而是充分利用短期内的含噪声小规模的量子计算设备,为计算过程提供局部加速的混合量子−经典计算模型[14]。混合量子−经典计算概念的发展引出一系列新算法,如量子近似优化算法 (quantum approximate optimization algorithm,QAOA)[15]、变分量子本征求解器(variational quantum eigensolver,VQE)[16]、量子分类器[17]、量子生成对抗网络(quantum generative adversarial networks,QGANs)[18-19]和量子神经网络(QNN)[20]。量子神经网络既可以作为一种启发式算法,利用量子信息原理把输入特征映射到输出分类上[21-22];也可以在真实量子硬件平台上运行,如光量子平台[23]和钻石NV 色心平台[24]。

如图6 所示,混合量子−经典算法模型包括量子信息处理部分和经典信息处理部分,用一个经典优化器来训练一个含参量子线路(parameterized quantum circuit,PQC)。

图6 混合量子−经典方案

3.1 量子感知器

与经典神经网络类似,量子神经网络是由多层量子感知机(quantum perceptron,QP)组合而成。每个QP 都包括了前处理和后处理参数化量子门,分别对照仿射变换中的特征向量X与权重向量W。

图7 为一个量子感知机的实现方案,对比图1的经典感知机结构,它充分利用量子计算的两个特点来实现感知机的功能:1) 计算是可逆的。经典感知机把m维特征向量X通过仿射变换得到1 维标量z,而量子计算的酉变换需要输入量子比特数等于输出量子比特数,这里引入辅助量子比特(ancilla qubits)来寄存仿射变换结果,这里的量子比特数为ceil(log2m)+1;2) 量子逻辑门是酉矩阵的线性变换,而测量算符是埃米尔特矩阵(Hermitian matrix)的非线性变换。经过测量就会引入非线性,起到激活函数的作用。

图7 混合量子−经典感知机的部署方案,量子线路的多个输入态经过酉变换后,测量得到经典输出信息。虚线框内是等效的感知机原理图。

量子感知机完成仿射变换的原理如图8 所示。在N个量子比特张开的m=2N高维希尔伯特空间(Hilbert space)中,携带特征向量X的量子态|ψX〉向携带权重向量W的量子态|ψW〉上进行投影,就得到了仿射变换结果z=〈ψX|ψW〉。然后通过参数化量子线路U(θW),把z编码到任意计算基底|j〉上,这里0

图8 把仿射变换结果编码到| 11···11〉基底上

式(5)表示把投影结果〈ψX|ψW〉编码到基底|11···11〉=|m−1〉上,即态矢U(θW)|ψX〉与基矢|11···11〉共线,那么参数化量子线路的酉矩阵只要保证最后一行为WT就可以了。

在经典的神经元模型中,仿射变换后还需要经过一个激活函数为神经元的输出提供非线性,保证了多层网络的表达能力不会退化成单层线性网络。一个适当的激活函数可以大大增加分类任务的准确性,但由于量子线路内部是一系列酉矩阵相乘构成的,矩阵相乘必然不存在非线性,所以在量子感知机中,要通过变基底测量(computational basis changed measurement)产生不可逆的非线性映射[25-26]。如图8中的酉矩阵U(θW)起到了旋转量子态|ψW〉到计算基底|j〉的作用,也等价于坐标系基底的旋转。

通过多个纠缠量子门把前N个量子比特与辅助比特相连,就能把cm−1制备到辅助比特上。

根据式(5)发现,参数化酉矩阵U(θW)的设计不是唯一的,一个表达能力强的U(θW)搭配合适的泡利测量P就构造出了一个包含一些先验知识的假设线路(ansatz circuit)。如何根据目标构造有效的ansatz 是量子人工智能的重点研究方向,通常由一些单比特量子旋转门和多比特受控旋转门组合。

如图9 所示,每层量子神经网络包括多个量子感知机,多层量子神经网络构成了前馈神经网络(feedforward neural networks,ffNN)[26]。注意,虽然量子计算的线路模型中有延迟测量(deferred measurement)的技巧,但每个量子感知机的辅助量子比特的量子态必须立马测量[27],不能延迟到整个量子线路的末端,否则无法提供中间层的非线性激活[28],再多层的量子神经网络都只相当于一层。

图9 用量子感知机组成量子神经网络,测量后的经典信息通过量子控制操作加载到量子态上

3.2 振幅编码

量子编码是一个将经典信息转化为量子态的过程。在使用量子算法解决经典问题的过程中,量子编码是非常重要的一步。在量子神经网络中,第一步就是将经典信息编码到量子态中。大多数量子编码的方法都可以看作是作用在初始化|0〉N态上的参数化线路U(θX),并且参数化电路中的参数是由经典信息X决定的。

由于量子比特天然的叠加性,对m维经典数组能以ceil(log2m)个量子比特的空间复杂度进行存储计算,这里ceil 指向上取整。本次股价预测的特征因子X{k}=[x0{k},x1{k},···,x23{k}]的长度达到24,用振幅编码的方法需要5 位量子比特就能编码。

在Pennylane 量子计算框架中,把经典特征数据编码到量子态中的过程叫作嵌入(embedding),本文采用embeddings 类的AmplitudeEmbedding 方法加载经典特征向量X{k}。

3.3 量子神经网络的训练方法

参数化量子电路PQC 被认为是在量子计算中的一种神经网络的新范式,不同于经典神经网络的权重矩阵,PQC 是以量子门中的相位θ 作为训练参数,从而将量子初态变到期望的量子末态上。经过参数化量子变分线路的酉变换U(θ)输出了一个可观测量的期望值f(θ)。和经典神经网络相同,在训练PQC 时研究者同样希望找到其相位的梯度,从而使量子神经网络的损失函数(cost function)收敛。

首先需要定义损失函数。对于分类器,经典数据集{[X{k},y{k}]}的标签y{k}对应一个量子可观测量Y。经过编码量子线路后得到量子态|ψX〉,再经过ansatz 参数化量子线路,对Y的期望f(θ)进行观测,测量结果与标签y{k}的均方误差(mean-square error,MSE) 作为损失函数C(θ):

然后要用量子线路计算出梯度。基于量子线路的梯度计算与经典计算有很大的区别,要求PQC满足一个重要的性质,参数θ={θ1,θ2,···,θL}全部是泡利旋转矩阵的旋转角,如式(7)所示。这里σ 代表泡利矩阵。

这样的一块参数化量子线路U(θ)在计算测量期望值f(θ)的梯度时有独特的优势。结合式(6)和式(7),本文得到梯度如式(8)所示:

这样,同一个参数线路U(θ)不仅可以计算f(θ),还能计算梯度 ∇θf,线路结构不变,仅仅是线路参数θk不一样[29-30],这就是量子变分线路梯度计算的parameter-shift 方法。

神经网络的学习过程就是沿梯度进行参数调整的过程。量子线路输出梯度后,经过经典优化算法对量子参数θ 进行调整改善,再把新参数返回到量子线路,循环迭代,直到损失函数收敛到一定值。基于式(8)的梯度计算,可以应用很多经典的梯度下降算法,尤其是考虑到量子测量本身的随机性,自然地适用随机梯度下降法(stochastic gradient descent,SGD)。用变学习率的SGD 方法训练股价预测器量子神经网络的收敛过程如图10 所示。

图10 量子神经网络学习过程中损失函数的收敛

本文针对运行时间和最高累计回报率两项指标,对比经典深度神经网络DNN 与混合量子−经典神经网络HQCNN 的表现。每种算法模型训练10 次,取平均值,得到DNN 运行235.3 s,最大回报率25%,HQCNN 运行217.1 s,最大回报率28%。结果发现量子算法的运行时间比经典算法少了7.7%,且预测准确率更高导致回报率高出3%。证明了量子算法的表达力强、鲁棒性高。

4 结束语

股市预测拥有海量数据,是深度学习大展身手的应用场景。用复杂的神经网络对大量的股价样本进行训练是行之有效的,但非常消耗算力资源。量子神经网络旨在利用量子信息处理过程,把输入特征映射到输出分类上,在完成经典神经网络模型的任务同时,发挥量子优势,开发更高效准确的算法,设计能利用量子并行性和量子纠缠等量子效应的量子算法。

后续量子金融方法的改进,需要加入更复杂的交易策略模型,考虑更具体精细的指标,如收益曲线的最大回撤率等。同时针对量子神经网络进行优化,寻找更具表达能力的ansatz。更重要的一点是量子变分线路的梯度大小随着量子比特数目的增长而指数衰减,使得模型失去可训练性,这是量子人工智能领域急需解决的问题。

猜你喜欢
比特量子神经网络
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
“九章”,神秘量子界的中国先机
新量子通信线路保障网络安全
“量子纠缠”
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
《彭博》比特币有多贵?
比特币分裂
比特币一年涨135%重回5530元