【华泰金工林晓明团队】cGAN应用于资产配置——华泰人工智能系列之四十五
新浪财经
来源:华泰金融工程
林晓明 S0570516010001
SFC No. BPY421 研究员
李子钰 S0570519110003 研究员
何 康 S0570520080004 研究员
王晨宇 S0570119110038 联系人
报告发布时间:2021年4月19日
摘要
人工智能系列45:将条件生成对抗网络cGAN应用于大类资产配置
本文将生成对抗网络(GAN)的使用场景拓展至投资实践,采用GAN的变式条件生成对抗网络(cGAN)预测未来20个交易日各类资产收益率协方差矩阵,并应用于量化资产配置。cGAN的核心思想是将随机数和资产收益率真实历史序列结合,训练条件生成器生成模拟未来序列,再训练条件判别器区分模拟和真实未来序列。重复生成多次进而得到多资产预期收益率协方差矩阵。对沪深300、中债-国债总财富指数、黄金9999三类资产进行资产配置策略实证,自2012年初至2021年3月底,cGAN相比于传统风险平价模型夏普比率从1.41提升至1.62,Calmar比率从0.60提升至1.19。
cGAN从贝叶斯学派视角重新定义风险,克服了传统方法的不足
资产协方差矩阵是开展风险管理的基础。传统方法基于历史收益率序列计算资产协方差矩阵。其基本思想是适应性预期。然而,历史通常不等于未来。其次,传统方法估计的资产协方差矩阵通常只包含历史序列中的线性成分,而丢弃了其中蕴含的非线性信息,导致评估结果与真实情况发生偏差。针对传统方法的不足,本文使用cGAN从贝叶斯学派视角重新定义风险。cGAN基于市场未来隐状态和过去一段时间内的市场规律,预测未来一段时间的收益率后验分布,并根据收益率后验分布计算资产协方差矩阵。
条件生成器借鉴自编码器结构,充分利用条件序列蕴含的有效信息
条件生成器借鉴了自编码器的结构,旨在根据条件序列生成预测序列。其中,卷积层能够从条件序列中提取浓缩了资产收益率信息的特征序列,转置卷积层通过对特征序列与随机数序列的拼接序列进行上采样,生成预测序列。考虑到不同资产在不同时期的收益率及其波动差异较大,不利于模型训练,因此在输入条件生成器之前,需要对条件序列进行3σ标准化,并且对生成序列使用相同的标准化参数进行反标准化。
条件判别器使用WGAN-GP损失函数,缓解训练不稳定与模式崩溃
条件判别器的主体结构是卷积层,旨在对生成序列的真实性进行评价。为了缓解cGAN在交替训练的过程中可能出现的训练不稳定与模式崩溃等问题,条件判别器使用WGAN-GP损失函数,来稳定梯度分布。出于与条件生成器相同的考虑,条件序列以及对照序列或生成序列在输入条件判别器之前均需要进行3σ标准化。为了不引入未来函数,三者均应使用条件序列的均值和标准差进行标准化。
cGAN优于传统风险平价方法,且在不同因素改变时彰显出鲁棒性
本研究以多资产风险平价组合为例,对比cGAN与传统风险平价模型在回测表现上的优劣。选取沪深300指数、中债-国债总财富指数、SGE黄金9999作为大类资产的代表,采用滚动窗口的方式进行回测。结果表明,改变模型训练代数(分别取300、400、500、600代)、训练过程随机数种子(分别取0和1)、生成过程随机数种子(分别取0和1)、回测起始日期(延后10个交易日)、多资产组成(改为中证800指数、标普500指数、英国富时100指数),cGAN的表现均优于传统方法,彰显出较高鲁棒性。
风险提示:cGAN模型的训练结果对随机数种子较为敏感;cGAN模型换手率较高,而本文回测未考虑交易成本的影响;模型根据历史规律总结,历史规律可能失效;模型结论基于统计工具得到,在极端情形下或存在解释力不足的风险。
正文
研究背景
在华泰金工前期系列研究中,我们介绍了生成对抗网络(Generative Adversarial Network,简称GAN)的概念及多种变式,使用GAN生成金融资产收益率虚假序列,并对生成序列的质量开展评价。结果表明,无论是生成单个资产还是多种资产,相对于Bootstrap重采样和GARCH模型等金融时间序列生成方法,GAN生成的序列更为“逼真”。
GAN的潜在应用场景包括数据增强、检测过拟合等方面,在各种应用场景中,投资者普遍感兴趣的方向是如何使用GAN预测未来指导投资实践。GAN本身不具备预测能力,但GAN的变式条件生成对抗网络(conditional Generative Adversarial Network,简称cGAN)将监督学习引入GAN中,从而使预测成为可能。本文将介绍cGAN在投资实践方面的应用,具体而言我们将使用cGAN技术构建大类资产配置策略,并与传统风险平价模型进行对比。
随着市场套利力量的增加和信息技术的飞速发展,市场有效性逐步提升——信息和预期以更快的速度反映在资产价格中,使得预测资产收益变得愈发困难。同时,越来越多的市场参与者开始关注资产收益率的不确定性,即风险。一旦资产在未来某一截面的风险得到合理评估,诸多成熟的框架将成为市场参与者开展风险管理的利器,如Makowitz模型、风险平价组合模型等。
传统的风险评估方法是采用适应性预期,即基于过去一段时间内的资产价格序列计算投资组合风险度量指标,如方差、在险价值、期望损失等,作为对截面风险的评估结果。然而,传统方法存在三个明显缺陷。首先,适应性预期以历史时间序列的波动代表未来某一时点的截面风险,存在度量维度不一致的问题。其次,由于资本市场瞬息万变,历史通常不等于未来。再次,传统方法估计的风险度量指标通常只包含历史序列中的线性成分,而丢弃了其中蕴含的非线性信息,导致评估结果与真实情况发生偏差。
对此,本文将使用cGAN来重新定义风险。cGAN的基本结构包括条件生成器和条件判别器。条件生成器以过去一段较长时间内的真实序列(下文称条件序列)和随机数序列为输入,生成未来一段较短时间内的虚假序列(下文称生成序列)。其中,条件序列代表历史信息,条件生成器通过一系列线性和非线性运算能够提取出其中蕴含的线性和非线性信息;随机数序列反映资产未来收益率在隐空间中的状态,是风险的重要来源之一。
条件判别器以条件序列以及生成序列或与生成序列同时期的真实序列(下文称对照序列)为输入,评价生成序列与对照序列之间的差异。其中,对照序列起到了监督学习的作用,赋予cGAN预测未来的能力。我们将使用训练充分的条件生成器生成若干组虚假序列,并以虚假序列收益率的分布来刻画未来某一时点的截面风险。
本文将以大类资产配置为具体案例,对比传统方法定义的风险与本文重新定义的风险在风险管理中的表现。传统方法对风险的定义与本文对风险的重新定义之间的对比,本质上是频率学派与贝叶斯学派在风险管理上的一次较量。
现有风险管理体系回顾
常见的风险管理模型:资产协方差矩阵是基础
常见的风险管理工具包括Makowitz模型和风险平价模型,其最优解分别为市场组合和风险平价组合。下文将简要介绍两者的原理。读者将不难发现,两者都需要事先对资产协方差矩阵进行估计。其中,Makowitz模型还需要对资产收益率进行预测。不过,预测收益率属于资产定价的范畴,而不属于风险管理的范畴,本文暂时不作讨论。如何合理估计协方差矩阵是本文重点探讨的问题。
Makowitz模型
市场组合是这样一种投资组合:给定资产组成,市场组合在不同权重的投资组合中,具有最高的夏普比率(Makowitz, 1959)。记r为资产收益率向量,Σ为资产协方差矩阵,w为各资产的权重向量,rf为无风险利率。如果我们以方差(或标准差)来度量投资组合的风险,则投资组合的整体收益和风险分别为:
投资组合的夏普比率等于:
根据市场组合的定义,市场组合中各资产权重就是以下优化问题的解:
风险平价模型
风险平价组合是这样一种投资组合:单个资产对投资组合的整体风险具有相同的风险贡献率。首先,资产i的边际风险等于投资组合的整体风险对资产i的权重求偏导:
资产i的风险贡献率等于边际风险乘以资产i的权重,再除以投资组合的整体风险:
根据风险平价组合的定义,风险平价组合中各资产权重需要满足的条件为:
该方程组通常难以求得解析解,因此需要将其转化为以下优化问题:
该优化问题可用循环坐标下降(Cyclic Coordinate Descent,简称CCD)算法求解,详见华泰金工研报《行业轮动系列之七:“华泰周期轮动”基金组合改进版》(2019-05-14)。
频率学派视角的风险定义方式:适应性预期
传统方法采用适应性预期来估计资产协方差矩阵,即使用过去一段时间内资产收益率的波动状况来衡量未来某一时点的截面风险(图表1)。这种做法本质上遵循频率学派的观点。频率学派认为,尽管未来事件存在不确定性,但未来事件所处的空间是客观存在的,尽管这个空间的参数是未知的,但这些参数在一段时期内是固定不变的。对此,频率学派尝试用历史样本的统计规律去估计事件空间的参数,从而来刻画未来事件的不确定性。
虽然适应性预期仍然是目前投资领域的主流方法,但是它存在被人诟病的地方。首先,适应性预期以历史时间序列的波动代表未来某一时点的截面风险,存在度量维度不一致的问题。其次,由于资本市场瞬息万变,历史通常不等于未来。再次,传统方法估计的资产协方差矩阵通常只包含历史序列中的线性成分,而丢弃了其中蕴含的非线性信息,导致评估结果与真实情况发生偏差。虽然已经有研究者提出了更多风险度量指标,如在险价值、期望损失等,并在具体的场景中展示了其相对于方差的优势,但是这些指标的计算仍然依赖协方差矩阵,无法避免上述三个缺陷。
贝叶斯学派视角对风险的全新定义:条件生成对抗网络
与频率学派不同,贝叶斯学派认为未来事件所处的空间并非客观存在。具体来说,市场未来运行状态主要由隐空间中的状态z决定,即先验分布p(z),同时受到历史信息p(x|z)影响,对先验分布作出相应地修正,得到后验分布p(z|x)。这种思想以数学公式表达,就是贝叶斯公式:
著名的蒙提霍尔问题(三门问题)是应用贝叶斯思想解决的典型案例:最初,玩家面对三扇关闭的门,其中一扇门的后面是一辆汽车,另外两扇门后面没有任何奖品。当玩家选定了一扇门(假定是a门)之后,主持人将开启剩下两扇门的其中一扇(假定是c门),里面没有任何奖品。此时玩家面临的问题是:是否应该更换最初的选择,而选择b门?
从直觉上来看,在剩下的两扇门中选择任何一扇门都有50%的概率中奖。设在不更换选择(仍然选择a门)的情况下中奖为事件A,在更换选择(选择b门)的情况下中奖为事件B,根据直觉,玩家的先验分布为P(A)=P(B)=0.5。然而,主持人的行为为玩家提供了信息。设主持人为了给玩家展示一扇空门而选择c门为事件C。假设事件A发生,那么主持人可以随机在b门和c门中开一扇向玩家展示,事件C发生的条件概率P(C|A)=0.5;假设事件B发生,那么主持人只能将c门打开,事件C发生的条件概率P(C|B)=1。
根据贝叶斯公式可知,如果玩家能够利用主持人提供的信息及时修正先验分布,更换选择,那么中奖的概率将增大:
为了将这种思想应用于风险管理,同时将资产价格序列中蕴含的非线性信息体现在对风险的度量中,本文尝试使用cGAN来重新定义风险,如图表1所示。市场未来运行状态由隐空间中的状态z决定,z无法预知,因此资产未来收益率存在不确定性,即风险。z的分布即先验分布p(z),一般用标准多元正态分布N(0,I)刻画。
我们基于历史信息,对z的先验分布进行修正。记条件序列为R_W,代表历史信息;记对照序列为R_T,代表未来信息。我们将两者之间的映射关系记作R_W→R_T,并将这种关系在特定市场状况下的分布(即市场规律)记作p(R_W→R_T|z)。以一系列R_W→R_T|z的样本对cGAN开展半监督学习。通过反向传播算法,得到z的后验分布p(z|R_W→R_T|)。整个半监督学习的过程可以用贝叶斯公式描述:
给定一组新的R_W,我们对p(z|R_W→R_T)进行随机采样,经过cGAN的一系列线性和非线性变换,预测出不同的R_T,据此可以近似拟合R_T的后验分布。我们可以根据R_T的后验分布来估计未来时期T的资产协方差矩阵。此外,cGAN基于深度神经网络构建,能够提取出R_W中蕴含的非线性信息。综上所述,cGAN克服了传统方法的三大缺陷。
基于条件生成对抗网络的风险定义
条件生成对抗网络的基本结构
cGAN的基本结构包括条件生成器和条件判别器。cGAN基本原理与华泰金工研报《人工智能31:生成对抗网络GAN初探》(2020-05-08)介绍的GAN相同,即“以子之矛,攻子之盾”。条件生成器的目标是生成尽可能逼真的“赝品”,条件判别器的目标是尽可能将真品和“赝品”区分开,在交替训练的过程中,两者共同进步。
GAN和cGAN的区别在于,除了以随机数为输入之外,cGAN还需要以条件为输入。条件的作用相当于向模型施加约束,使模型输出满足用户的定制需求,而不再随心所欲。例如,我们训练GAN生成人脸,GAN可以“天马行空”地生成老人、小孩、女人、男人的人脸。而如果我们在训练集中增加人脸对应的“标签”(即条件),那么当我们向训练后的cGAN输入“女性”的条件时,cGAN就能够定向生成女性人脸。
接下来,我们将详细介绍用于重新定义风险的cGAN的具体实现细节。
条件生成器的基本结构及参数
条件生成器网络采用类似于自编码器的结构,如图表2所示。首先,K个资产长度为W的条件序列矩阵M_b被排列为长度为W、通道数为K的形式,通过一维卷积层和全连接层的作用,每个资产的特征数均被降维至6。然后,提取的特征序列与相同长度的随机数序列拼接,使每个资产维度均达到12。最后,拼接序列通过全连接层和转置卷积层的作用,被升维至长度为T、通道数为K的生成序列矩阵M~_f。其中,每一通道代表一种资产的生成序列。转置卷积的概念请参考华泰金工研报《人工智能44:深度卷积GAN实证》(2021-04-13)。
上述网络结构最早由Mariani et al.(2019)提出。我们在借鉴其结构和参数的同时,对其中的实现细节进行了优化,使网络具备更强大的生成能力:
1. 本文采用资产价格对数收益率序列作为输入和输出,而原文采用资产价格序列作为输入和输出。这是考虑到资产价格序列非平稳,可能导致模式学习困难。
2. 本文将每个资产的特征数降维至6,而原文则将其降维至1。这是考虑到仅用1个特征来表征序列自身及序列之间的统计性质容易丢失过多信息。
3. 我们删去了最后一层转置卷积层的激活函数,而原文则保留ReLU激活函数。第一个原因是因为根据上述第一点,本文拟生成资产价格对数收益率序列,其既有正值又有负值。第二个原因是,尽管原文使用ReLU是为了保证生成的资产价格序列不出现负值,然而ReLU不能保证资产价格序列不出现零值。更严重的是,一旦资产价格序列出现大量零值,会使条件生成器梯度消失。从这个意义上来说,取消最后一层转置卷积层的激活函数,反而有利于条件生成器的学习。
条件生成器网络的结构参数详见图表3。其中,步长为2的卷积核能够在提取序列特征时保证时序因果关系,与时间卷积网络(详见附录)有异曲同工之妙。需要注意的是,无论是时间序列维度还是截面维度,资产的收益率和波动率均可能存在较大差异,易造成训练过程中梯度剧烈变化,导致模型收敛困难。对此,在训练之前,我们还需要对输入数据进行标准化,具体做法是采用3σ标准化。对于每一种资产的对数收益率序列x_t,我们首先对其减去均值,然后除以三倍标准差,使绝大部分数值在-1和1之间;相应地,对于生成序列y~_t,我们再使用条件序列的均值和标准差对其进行反标准化:
条件判别器的基本结构及参数
条件判别器网络的结构与前期报告提出的结构相似,如图表4所示。条件序列与对照序列或生成序列拼接,并且被排列为长度为W+T、通道数为K的形式,依次通过一维卷积层和全连接层的作用,得到判别值。判别值越大,表明条件判别器认为输入序列越“逼真”。条件判别器网络的结构参数详见图表5。
出于与条件生成器相同的考虑,条件序列、对照序列、生成序列在输入条件判别器之前均需进行3σ标准化。为了不引入未来函数,三者均应使用条件序列的均值和标准差进行标准化。需要强调的是,在训练条件判别器的过程中,为了提高条件判别器的鲁棒性,防止其过拟合,我们对卷积层的输出进行Dropout;而在训练条件生成器的过程中,为了充分发挥条件判别器识别真伪的能力,Dropout被关闭。
损失函数的定义与训练模式
cGAN的训练过程与普通的GAN相同,即条件判别器和条件生成器的训练交替进行。原始GAN存在训练不稳定、模式崩溃等问题(Goodfellow et al.,2014),对此本文采用WGAN-GP中使用的损失函数(Gulrajani et al.,2017)。WGAN-GP在华泰金工前期研报《人工智能35:WGAN应用于金融时间序列生成》(2020-08-28)已有介绍。记G为条件生成器函数,是随机数序列的函数,输出生成序列;D为条件生成器函数,以对照序列或者生成序列为输入,输出判别值;p(z)为随机数序列先验概率密度分布;p(data)为真实序列的概率密度分布。条件生成器的目标是“欺骗”条件判别器,“想方设法”让条件判别器给予生成序列尽可能大的判别值。对于小批次训练来说,条件生成器的目标等于最大化期望判别值,如下式所示:
条件判别器的目标是尽可能地区分对照序列和生成序列,给予对照序列尽可能大的判别值,给予生成序列尽可能小的判别值,等价于最大化对照序列判别值和生成序列判别值之差,即Wasserstein距离(Arjovsky et al., 2017)。这便是WGAN中“W”的来源。此外,为了获得稳定的梯度分布,WGAN-GP进一步在Wasserstein距离的基础上增加了梯度惩罚项。梯度惩罚项基于判别值对输入序列的平均梯度构建,旨在将梯度大小控制在一定范围内,既不会导致梯度爆炸,也不会导致梯度消失,其中,ϵ~U(0,1)。至此,对于小批次训练来说,条件判别器的目标可用下式表达:
在使用pytorch等深度学习框架对其进行训练时,由于优化器默认使用随机梯度下降算法开展损失函数的最小化,因此相关的损失函数需要取相反数。需要注意的是,条件判别器不能使用批标准化,一方面是因为条件判别器需要独立评价每个样本的真实性,另一方面是因为WGAN-GP对小批次中的每个样本独立地施加梯度惩罚,而批标准化会引入样本之间的相互依赖关系。其它训练参数详见图表6。
资产协方差矩阵预测
为了预测资产协方差矩阵,我们首先对随机数序列空间进行随机采样,得到n组随机数序列,输入经过充分训练的条件生成器,随机生成n组长度为T的资产价格对数收益率序列。然后,我们将反标准化后的对数收益率序列转换为T日收益率:
对于资产k,我们可以计算n个T日收益率的预测值{R1_k, R2_k, ... , Rn_k},该结果近似代表了资产k未来T日收益率的后验分布R~_k。最后,基于各资产的T日收益率后验分布,容易估计未来T日的资产协方差矩阵:
随机数序列的生成
使R~_k尽可能接近真实的T日收益率后验分布的前提是,在随机数序列的先验空间进行随机采样时,要尽可能使样本均匀分布在整个概率空间[0,1]^6K。然而,蒙特卡洛采样的结果容易受随机数种子的影响,当n不是非常大时,采样结果的均匀性可能并是不特别理想,将导致重复实验的结果产生较大差异。
自然而然能想到的一种解决方式是网格采样法,具体做法是:首先对概率空间的每一维度进行s等分,从而将整个d维概率空间划分为了s^d个边长为1/s的超立方体,然后再对每个超立方体进行蒙特卡洛采样,最终将得到s^d组样本。不难理解,s越大,概率空间被划分得越细,采样结果越接近真实分布。但是,这种做法面临“维度的诅咒”。以三资产场景为例,输入条件生成器的随机数高达18维,即使对每一维度只进行二等分,采样次数也将高达2^18≈3×10^5,更何况二等分无法保证采样均匀性。因此,由于采样效率限制,网格采样只适合低维简单的应用场景。
对此,本文使用一种更高效的随机采样方法——拉丁超立方采样来估计资产协方差矩阵。与网格采样相同的是,拉丁超立方采样同样需要对概率空间的每一维度进行s等分;与网格采样不同的是,拉丁超立方采样并不对每个超立方体都进行蒙特卡洛采样,而是只对其中s个超立方体进行采样,且采样的结果需满足类似“数独”的规则,即正交于任何轴的任一超平面最多只有一个样本,从而将采样复杂度从O(s^d)降低至O(s)。
拉丁超立方采样在二维(拉丁方阵采样)和三维(拉丁立方采样)情况下的示意图如图表7所示:对于二维概率空间而言,任意行或任意列最多只能有一个样本;对于三维概率空间而言,任意平面最多只能有一个样本。最后,选择不同的随机数种子重复上述过程M次,就能够得到比较均匀的采样结果。仍然以三资产场景为例,我们可以对概率空间的每一维度进行20等分,并重复采样过程50次,即只需1000次采样,我们就可以得到均匀性较好的样本。我们将在接下来的实证研究中见证拉丁超立方采样的“威力”。
需要注意的是,网格采样和拉丁超立方采样都是对概率空间而非随机数的概率分布进行采样,采样的结果是概率p值。所以,如果原始分布不是标准均匀分布的话,我们还需要通过累积概率分布的逆函数将p值转化为随机数的实际值z。
生成序列质量评价指标体系
为了评价cGAN定义的风险是否合理,本文将从两个角度考察:
1) 其回测表现是否优于传统方法定义的风险;
2) 生成序列与真实序列的相关统计性质是否接近。
其中,回测方案将在下一部分结合实证案例介绍。本节着重介绍生成序列质量评价指标体系。华泰金工研报《人工智能31:生成对抗网络GAN初探》(2020-05-08)构建了自相关性、厚尾分布、波动率聚集、杠杆效应、粗细波动率相关、盈亏不对称性等6项指标评价GAN(仅以随机数序列为输入)生成的单资产序列的质量。不过,对于cGAN生成的多资产序列,我们不能直接将上述6项指标迁移至本文。
首先,后文将尝试论证,随机数序列z的分布,在某种程度上刻画了市场未来所处的隐状态。如果对z的分布随机采样,得到一种利好或利空某一资产的隐状态,那么由于其恒作用于整个考察区间内生成序列的预测过程,将可能使得预测得到的生成序列呈现持续上涨或持续下跌的趋势。换句话说,在cGAN的生成序列中,除了条件序列,随机数序列对资产价格的涨跌走势也将起到至关重要的作用。在这种情况下,杠杆效应、盈亏不对称性等与资产价格涨跌有关的指标便不再适用于本研究了。
同时,本研究更关注风险,所以本文的评价指标体系在前期报告的基础上,增加了衡量资产收益率波动和多资产相关关系的指标,详见图表8。从多样性的角度来说,不同随机数序列生成的虚假序列的评价指标应具有一定的差异性;从真实性的角度来说,真实序列的评价指标应在n组生成序列评价指标构成的区间内,且尽可能地接近区间均值。
自相关性
记资产日收益率序列为r,其均值和标准差分别为μ和σ。自相关性指标用滞后1~k阶(建议k取奇数,本研究取5)的自相关系数的均值定义:
自相关性衡量了收益率序列是否存在自回归(Autoregressive, AR)的成分。如果收益率序列存在AR的成分,那么自相关系数将随着滞后阶数的增加呈现拖尾的特征,使自相关性指标显著不为0。在弱有效市场中,如果不考虑资产收益的再投资,那么收益率序列不存在自相关,该指标接近0;如果考虑收益的再投资,那么该指标应大于0。
偏自相关性
偏自相关性指标用滞后1~k阶(建议k取奇数,本研究取5)的偏自相关系数的均值定义:
偏自相关系数φ_ss评价了r_t和r_(t+s)在排除了rt+1至rt+s-1影响后的相关性。偏自相关性衡量了收益率序列是否存在滑动平均(Moving Average, MA)的成分。如果收益率序列存在MA的成分,那么偏自相关系数将随着滞后阶数的增加呈现拖尾的特征,使偏自相关性指标显著不为0。在弱有效市场中,如果不考虑资产收益的再投资,那么收益率序列不存在偏自相关,该指标接近0;如果考虑收益的再投资,那么该指标应大于0。
非正态性
对于真实序列而言,资产收益率通常不服从正态分布,一是呈现厚尾,二是呈现右偏,这是因为“黑天鹅”事件发生的频率更高。不过,由于随机数序列出现重大利好环境和出现重大利空环境的概率是相等的,因此我们对生成序列的要求从右偏放宽到有偏。其中,厚尾可用峰度(kurtosis)评价,有偏可用偏度(skewness)评价。Jarque-Bera统计量同时考虑了峰度和偏度,我们据此构建非正态性指标。首先,偏度和峰度计算公式如下:
Jarque-Bera统计量基于偏度和峰度计算:
Jarque-Bera统计量渐进服从自由度为2的卡方分布。据此,进一步将其转化为p值,作为非正态性指标。Jarque-Bera检验的零假设为样本来自于正态总体。因此,如果一个收益率序列有偏且厚尾,那么其Jarque-Bera统计量的p值应低于显著性水平。实证检验表明,真实收益率序列的p值接近0。
平均波动率
取窗口宽度等于生成序列长度T,移动步长取1,将移动窗口作用于全收益率序列,得到一系列长度为T的收益率子序列,并计算各子序列的标准差:
平均波动率指标等于vol_t的中位数,衡量了资产收益率在较长时期内的平均波动水平:
实证检验表明,权益类资产的平均波动率一般大于债权类资产的平均波动率。
波动率聚集
真实收益率序列存在波动率聚集现象——存在短时程的自相关性。以收益率绝对值表征波动,若波动率存在短时程自相关和长时程不相关,则收益率绝对值的自相关系数应随着滞后阶数k的提升而衰减,一般以幂律衰减刻画:
拟合得到的β就是波动率聚集指标,对于真实序列而言,一般介于0.1和0.5之间。
粗细波动率相关
定义过去5个交易日的区间收益率(即周收益率)的绝对值为粗波动率,定义过去5个交易日的日收益率绝对值之和为细波动率,粗细波动率相关指标使用粗波动率领先细波动率5阶(可视作一周)的相关系数以及粗波动率滞后细波动率5阶的相关系数之差定义:
细波动率含有信息量较多,粗波动率含有信息量较少。理论上说,当前细波动率对未来粗波动率的预测能力,应当优于当前粗波动率对未来细波动率的预测能力。换言之,滞后±5阶的相关系数是不对称的。对于真实序列而言,Δ(ρ^τ)_cf(t) 一般小于0。
平均交叉相关性
平均交叉相关性是单资产自相关性在两资产场景下的推广,衡量了一段较长时期内两种资产的平均相关关系。我们首先两种资产收益率序列的相关系数:
然后,考虑到两资产之间可能存在资产i影响资产j的价格走势或者资产j影响资产i的价格走势的关系,我们仿照单资产滞后k阶自相关系数的计算方式,计算两种资产收益率序列的k期时滞交叉相关系数:
平均交叉相关性指标用相关系数和k期时滞交叉相关系数(本研究取k=1)定义:
均交叉相关性指标显著大于0,表明两种资产的收益率序列长期呈现正相关关系;如果平均交叉相关性指标显著小于0,表明两种资产的收益率序列长期呈现负相关关系;如果平均交叉相关性指标接近0,表明两种资产的收益率序列不存在长期相关关系。
相关关系不稳定性
由于越来越多的统计套利者参与市场交易,多资产之间很难维持较长时间的固定相关关系。尤其是在大类资产配置领域,股票、债券、商品之间的相关关系时常会出现相关关系强弱变化、正负反转的现象。前期研报《人工智能38:WGAN生成:从单资产到多资产》(2020-11-23)已经通过绘制相关系数分布,揭示了这种现象的普遍性。对此,本研究进一步使用相关系数分布的四分位距(75%分位数和25%分位数之差),设计了相关关系不稳定性指标,来衡量上述现象。
为了获得相关系数分布,我们采用与计算平均波动率指标相似的方式。取窗口宽度等于生成序列长度T,移动步长取1,将移动窗口分别作用于资产i和资产j的全收益率序列,得到一系列长度为T的收益率子序列,我们依次计算每一个移动窗口内两资产收益率子序列的相关系数,从而得到相关系数分布:
于是,相关关系不稳定性指标是:
相关关系不稳定性指标越大,表明在较长时期内,两资产之间的短期相关关系越不稳定。
多资产风险平价组合的实证研究
本文以多资产风险平价组合为案例,对比基于cGAN定义的风险与传统方法定义的风险在回测表现中的差异。风险平价组合可使用循环坐标下降算法优化,感兴趣的读者可以参考《“华泰周期轮动”基金组合改进版》(2019-05-14)。本研究选取沪深300指数、中债-国债总财富指数、SGE黄金9999,作为股票、债券、商品等三类资产的代表。其基本信息及其自2012年以来的走势分别如图表9和图表10所示。
回测方案
我们采用滚动窗口的方式开展回测。
对于cGAN风险平价方法,具体步骤如图表11所示:
1. 以2012年第一个交易日为回测起点,设调仓频率为20个交易日;
2. 获取调仓日之前(不含调仓日)1000个交易日的各资产价格的对数收益率序列;
3. 以“40个交易日条件序列+20个交易日对照序列”的模式滚动生成941条样本,使用条件序列的均值和标准差对条件序列和对照序列均开展3σ标准化,然后对cGAN交替训练M代(以全部样本被学习一次算一代);
4. 以距离调仓日最近的40个交易日的3σ标准化后的对数收益率序列为条件序列,使用相同的随机数种子(本研究取1)和拉丁超立方采样对随机数空间进行随机采样,获取1000组随机数序列,使用训练后的cGAN随机生成1000组自调仓日起(含调仓日)未来20个交易日的对数收益率序列,并使用条件序列的标准化参数反标准化;
5. 基于生成的对数收益率序列估计未来20日收益率的后验分布,并计算资产协方差矩阵;
6. 优化风险平价组合,获取调仓信号,在调仓日进行调仓;
7. 等到下一个调仓日,重复2至6,直至2021年3月31日终止回测。
对于传统风险平价方法,具体步骤如图表12所示:
1. 以2012年第一个交易日为回测起点,设调仓频率为20个交易日;
2. 获取调仓日之前(不含调仓日)1000个交易日的各资产价格的对数收益率序列;
3. 选取第1~20、21~40、…、981~1000个交易日的子序列计算对应时期的20日收益率,得到长度为50的历史20日收益率序列,并计算资产协方差矩阵;
4. 优化风险平价组合,获取调仓信号,在调仓日进行调仓;
5. 等到下一个调仓日,重复2至4,直至2021年3月31日终止回测。
可以看到,对于每一次调仓,cGAN和传统方法利用的信息都是过去1000个交易日资产对数收益率序列的信息。这保证了两者结果的可比性。
在开展回测之前,首先需要确定每一个滚动窗口内cGAN的训练代数。图表13展示了第一个滚动窗口(2007年11月27日至2011年12月30日)cGAN的(最小化)损失函数随着训练代数的变化。结果显示,梯度惩罚项很快就收敛至较小的值,表明WGAN-GP能够很快地稳定梯度分布,使得接下来的训练过程顺利进行。训练约130代后,条件生成器损失持续提升,而条件判别器基本收敛。
尽管随着训练代数的增加,cGAN趋向于收敛,但是仍需警惕过拟合现象的出现。过拟合体现在cGAN对于随机数序列不再敏感——条件判别器变得过于强大,几乎能够区分对照序列和生成序列;条件生成器也学会了一劳永逸的“欺骗”手段,只生成与对照序列十分接近的序列。为了确定合理的训练代数,本研究将首先考察模型训练代数对模型表现的影响。
改变模型训练代数对回测表现的影响
保持其他参数不变,依次选取模型训练代数为300、400、500、600,回测结果净值曲线分别如图表14至图表17所示,回测结果评价指标如图表18所示。结果表明,净值曲线走势在四种场景下差异不大,年化收益率、夏普比率、最大回撤、Calmar比率等评价指标均显著优于传统方法。这说明cGAN在300~600的训练代数范围内,其表现稳定优于传统方法。
在接下来的研究中,我们将以训练600代后的cGAN(后文简称“基础cGAN模型”)为例,考察更多其他因素对回测表现的影响。
改变其他因素对回测表现的影响
本节在基础cGAN模型的基础上,依次改变训练过程的随机数种子、生成过程的随机数种子、回测起始日期、多资产组成,并进一步考察在这些因素变化的情况下,cGAN的回测表现是否仍然优于传统方法。各实验组细节如下:
实验组一:将训练过程的随机数种子改成0;
实验组二:将生成过程的随机数种子改成0;
实验组三:回测起始日期相对于基础cGAN模型延后10个交易日,即建仓日为2012年1月18日;
实验组四:将多资产组成改成中证800指数、英国富时100指数、标普500指数,开展全球股票资产配置。各资产基本信息及其自2012年以来的走势详见图表19和图表20。
各实验组回测结果净值曲线分别如图表21至图表24所示,回测结果评价指标如图表25所示。结果表明,在各实验组的回测结果中,年化收益率、夏普比率、最大回撤、Calmar比率等评价指标均优于传统方法,进一步彰显出cGAN模型具有较高的鲁棒性。
值得关注的是,与基础cGAN模型相比,仅改变生成过程随机数种子对回测表现没有显著影响,而仅改变训练过程随机数种子则使得回测结果产生了与基础cGAN模型较大的差异。该结果从侧面印证了拉丁超立方采样相对于蒙特卡洛采样的优势——采样结果在概率空间中分布的均匀性,能够弥补因随机数种子带来的偶然性。
遗憾的是,拉丁超立方采样暂时很难应用于训练过程。训练过程涉及的随机因素较多,具体包括神经网络参数初始化、条件判别器中的Dropout、小批次样本的选取顺序、小批次样本对应的随机数序列、梯度惩罚项中的ϵ等。其中,如果对前两个因素做改进,需要对深度学习框架的底仓代码进行修改,实现难度较大;如果对后三个因素做改进,由于小批次规模的限制,随机数规模过小,即使使用拉丁超立方采样也很难保证采样结果均匀性。对于这种看似“无解”的困境,我们建议在实际应用中,可以选取不同的随机数种子,并对结果进行bagging集成。
尝试揭开cGAN的“思考”过程
cGAN是一个“黑箱”模型。为了进一步增强cGAN结果的可信度,本节将以基础cGAN模型为例,从价格走势、评价指标、持仓变化等三个方面对比cGAN和传统风险平价方法的异同,尝试揭开“黑箱”的“思考”过程。
价格走势对比
针对每一种资产,我们取10组生成序列,并将其还原为价格序列,结果如图表26至图表28所示,从中至少能够得出如下三点结论。
首先,我们看到生成序列较为松散地分布在真实序列的两侧,且细节上并没有出现与真实序列完全相同的情况,表明cGAN还未进入过拟合阶段,生成序列具有一定的多样性。
其次,我们看到个别序列呈现长期上涨或长期下跌的态势。回顾回测流程(图表11),每一个滚动窗口在生成未来20个交易日的对数收益率序列时都使用了相同的随机数种子,这保证了相同的随机数序列恒作用于同一组生成序列的整个预测过程。考虑到随机数序列反映了市场未来隐空间中的状态,每一组随机数序列都代表了不同的隐状态。如果某种隐状态未来利好或利空某类资产,那么,既然这种隐状态判断恒作用于整个预测过程,自然会导致预测得到的生成序列呈现长期上涨或下跌的态势。以上分析正是我们不选用与资产价格涨跌有关的指标的原因,其不仅从侧面印证了随机数序列的经济学含义,而且同样表明cGAN还未进入过拟合阶段,因为生成序列随着随机数序列的改变而显著不同。
最后,我们也能看到生成序列与真实序列在波动趋势上具有较高相似度,例如沪深300指数在2015年大牛市和接踵而至股灾中的大起大落、以及从2018年底到2019年初的触底回升。这些细节的复现存在一定的时滞,这可能是因为条件生成器中类似于编码器的结构能够从条件序列中提取出浓缩了资产收益率信息的有效特征,而类似于解码器的结构在生成预测序列时在一定程度上复现了这些特征。
评价指标对比
自相关性和偏自相关指标的对比如图表29至图表32所示。结果显示,真实序列的评价指标在生成序列评价指标的取值范围之内,且与模拟均值较为接近。事实上,真实的沪深300指数和SGE黄金9999均不存在显著的自相关性和偏自相关性,而中债-国债总财富指数存在显著为正的自相关性和偏自相关性。导致上述差异的原因在于,国债是一种低风险资产,长期来看,其收益率较为稳定。而且,中债-国债总财富指数在构建过程中引入了债券利息再投资的机制。cGAN较好地复现了真实序列在自相关性和偏自相关性方面的特征。
非正态性指标的对比如图表33和图表35所示。结果显示,无论何种资产,真实收益率序列的Jarque-Bera检验的p值接近0,表明真实的收益率序列不满足正态分布。除极个别生成序列外,绝大部分生成序列的Jarque-Bera检验的p值也接近0。cGAN较好地复现了真实序列不满足收益率正态性的特征。
平均波动率指标的对比如图表34和图表36所示。结果显示,尽管真实序列的评价指标在生成序列评价指标的取值范围之内,但均低于模拟均值,表明cGAN容易系统性地高估资产收益的长期平均波动水平。这可能是因为生成序列中更容易出现持续快速上涨和持续快速下跌等极端情况,放大了收益率序列的波动。不过,cGAN正确地复现了三种资产平均波动率的相对大小:沪深300指数>SGE黄金9999>中债-国债总财富指数。
波动率聚集和粗细波动率相关指标的对比如图表37至图表40所示。结果显示,真实序列的评价指标均在生成序列评价指标的取值范围之内。其中,真实序列的波动率聚集指标与模拟均值较为接近,表明cGAN能够较好地复现波动率存在短时程自相关和长时程不相关的特征。然而,沪深300指数和SGE黄金9999真实序列的粗细波动率显著小于0,而cGAN的模拟均值在0附近,两者不一致,表明cGAN较难复现粗细波动率中蕴含的信息量的差异。这可能是因为该指标本身就存在噪音较大的缺陷(Takahashi et al.,2019),也有可能是因为转置卷积层在生成预测序列的过程中,没有考虑时序因果关系,导致粗波动率领先细波动率的相关系数与粗波动率滞后细波动率的相关系数并未呈现出不对称。
平均交叉相关性和相关关系不稳定性指标的对比如图表41至图表44所示。结果显示,真实序列的评价指标均在生成序列评价指标的取值范围之内。真实序列的平均交叉相关性指标均在0附近,而相关关系不稳定性指标显著大于0。这表明从长期来看,多资产之间并不存在稳定的相关关系。cGAN的模拟均值同样呈现出平均交叉相关性指标在0附近、相关关系不稳定性指标显著大于0的情况,且与真实值较为接近,表明cGAN能够较好地复现真实多资产序列在一段较长时期内的相关关系。
综上所述,除粗细波动率相关指标外,cGAN能够较好地复现真实序列的典型化事实。
仓位变化对比
最后,我们通过对比cGAN与传统风险平价方法的仓位变化,来尝试揭示cGAN的回测表现优于传统方法的可能原因。
图表46、图表48和图表50分别展示了cGAN和传统方法计算得到的三种资产的仓位变化对比。结果显示,cGAN与传统方法下仓位变化的趋势较为一致,表明cGAN与传统方法对于每种资产加仓或减仓方向的长期趋势判断一致。这可能是因为cGAN和传统方法在判断加仓或减仓方向时,利用的都是相邻两个滚动窗口交错部分(即上一个滚动窗口最早20个交易日与当前滚动窗口最近20个交易日)的信息差,如图表45所示。
不同的是,cGAN的仓位波动更剧烈。这可能是因为传统方法在计算资产协方差矩阵时,赋予过去1000个交易日信息同样的权重(图表12),相邻两个滚动窗口的信息差相对于1000个交易日的信息而言,占比较小,因而对协方差矩阵的计算结果的影响较小,所以仓位变化幅度较小。而对于cGAN,尽管训练阶段同样平等对待过去1000个交易日的信息,但这只是为了从历史样本中学习出如何用40日序列预测20日序列的模式;而在生成预测序列时,cGAN更重视最近40个交易日的信息(图表11),相邻两个滚动窗口信息差相对于40个交易日而言,占比较大,因而对协方差矩阵的计算结果的影响较大,所以仓位变化幅度较大。
正因为如此,cGAN能够更敏锐地捕捉到市场的变化,对资产风险作出更合理的评估。图表47、图表49和图表51分别展示了三种资产cGAN相对于传统方法的超配比例与资产价格走势的对比。在2016年下半年至2017年底、2020年5月底至8月底的两轮单边牛市行情中,cGAN均判断权益资产的风险较低,及时加仓沪深300指数,从而在牛市中获得更高收益。而在整个2015年以及2020年下半年至2021年3月底区间内,cGAN均判断权益资产的风险较高,减仓沪深300指数,尽管放弃了前半程冲顶行情下的部分收益,但成功规避了后半程的急跌行情,控制了策略的最大回撤。
除此之外,cGAN能够提取历史序列中的线性和非线性成分,而传统方法只利用了其中的线性成分。贝叶斯学派思想的引入将资产协方差矩阵的计算过程从时间序列维度“拉回”至截面维度。这些也可能是使得cGAN表现优于传统方法的原因。
总结与展望
本文针对GAN在投资策略实践方面的应用开展了初步的尝试——基于cGAN对风险进行重新定义。与传统的仅基于历史收益率序列直接计算资产协方差矩阵不同,cGAN基于市场未来隐状态(先验分布)和过去一段时间内的市场规律(似然信息),对未来一段时间内的资产协方差矩阵进行预测。
cGAN的基本结构包括条件生成器和条件判别器。其中,条件生成器借鉴了自编码器的结构,旨在根据条件序列生成预测序列。其中,卷积层能够从条件序列中提取浓缩了资产收益率信息的特征序列,转置卷积层通过对特征序列与随机数序列的拼接序列进行上采样,生成预测序列。条件判别器的主体结构是卷积层,旨在对生成序列的真实性进行评价。条件判别器使用WGAN-GP损失函数,来缓解GAN的训练不稳定与模式崩溃等问题。如此构建的cGAN收敛性较好,模型训练不足300代,损失函数便接近稳定。通过对条件判别器和条件生成器进行交替训练,生成序列最终能够实现“以假乱真”的效果。
为了预测未来一段时间内的资产协方差矩阵,我们使用拉丁超立方采样获得1000组随机数序列,将其和最近40个交易日的对数收益率序列一同输入经过充分训练条件生成器,得到1000组生成序列。其中,条件序列需要开展3σ标准化,生成序列需要使用相同的标准化参数反标准化。我们进一步将生成序列转化为未来20日收益率,并据此估计未来20日收益率的后验分布。基于该分布,可以计算资产协方差矩阵。
我们将cGAN应用于多资产风险平价组合,同时考察了其回测表现关于模型训练代数、训练过程随机数种子、生成过程随机数种子、回测起始日期和多资产组成等五类因素的灵敏度。结果表明,在设计的各项场景中,cGAN的回测表现均优于传统风险平价方法的回测表现,彰显出较高的鲁棒性。通过对比生成序列和真实序列的价格走势、评价指标、仓位变化,“黑箱”的神秘面纱被逐渐揭开,进一步增强了结果的可信度。
相对于传统方法,深度神经网络使得cGAN能够利用历史序列中的非线性成分,半监督学习使得cGAN能够对市场变化作出更灵敏的反应,贝叶斯学派思想的引入将资产协方差矩阵的计算过程从时间序列维度“拉回”至截面维度(图表52)。上述原因使得cGAN能够对资产的真实风险作出更合理的评估。本文的探索是对现有风险管理体系的有益补充,也是贝叶斯学派与频率学派在风险管理中的又一次较量。
在研究过程中,我们也产生了一些新的思考。首先,生成序列与真实序列在波动趋势上的相似性表明条件生成器中类似自编码器的结构能够从条件序列中提取出浓缩了资产收益率信息的有效特征。既然这些特征凝聚了资产收益率信息,那么是否有可能将其作为alpha因子应用于选股?而且,如果在条件序列中增加更多的交易信息,如交易量,是否有可能进一步提升模型的预测能力?
此外,cGAN将随机数序列单独作为神经网络的一个输入,并用其线性组合的先验分布来刻画市场未来在隐空间中的状态。另一种更直接的刻画隐状态的方式是对神经网络的权重赋予先验分布,然后通过监督学习修正先验分布,得到权重的后验分布,进而输出预测结果的后验分布。这便是贝叶斯神经网络的原理。与cGAN相比,贝叶斯神经网络在收敛上相对容易一些。它同样具备从贝叶斯学派视角重新定义风险的潜力。
参考文献
[1] Arjovsky M. 2017. Wasserstein GAN. Papers 1701.07875v3, arXiv.org.
[2] Bai S., et al. 2018. An empirical evaluation of generic convolutional and recurrent networks for sequence modeling. Papers 1803.01271v2, arXiv.org.
[3] Goodfellow, I., et al. 2014. Generative adversarial nets. In Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2 (NIPS’14). MIT Press, Cambridge, MA, USA, 2672–2680.
[4] Gulrajani I., et al. 2017. Improved training of Wasserstein GANs. Papers 1704.00028v3, arXiv.org.
[5] Mariani G., et al. 2019. PAGAN: Portfolio analysis with generative adversarial networks. Papers 1909.10578, arXiv.org.
[6] Markowitz H.M., et al. 1959. Portfolio Selection: Efficient Diversification of Investments. New York: Wiley.
[7] Takahashi S., et al. 2019. Modeling financial time-series with generative adversarial networks. Physica A, 527: 121261.
[8] 邱锡鹏. 2020. 神经网络与深度学习. 北京: 机械工业出版社.
附录
时间卷积网络
在使用卷积神经网络提取时间序列特征时,通常需要保证每一步骤的时序因果关系不能颠倒,即t时刻提取的特征仅由t时刻及更早的输入序列合成。对此,Bai et al. (2018)提出了时间卷积网络(Temporal Convolutional Network, TCN),其通过膨胀率成倍增加的膨胀卷积核,来保证时序因果关系,如图表53所示。本研究在构建条件生成器和条件判别器时,都借鉴了TCN的思想。不过,为了快速实现时间序列的降维,本研究仅选取图表53的蓝色路径,作为用来提取序列特征的组件。不难证明,蓝色路径可以通过直接对原始序列进行大小为5、步长为2的卷积操作近似实现。
风险提示
cGAN模型的训练结果对随机数种子较为敏感;cGAN模型换手率较高,而本文回测未考虑交易成本的影响;模型根据历史规律总结,历史规律可能失效;模型结论基于统计工具得到,在极端情形下或存在解释力不足的风险。
免责声明与评级说明
公众平台免责声明
本公众平台不是华泰证券股份有限公司(以下简称“华泰证券”)研究所官方订阅平台。相关观点或信息请以华泰证券官方公众平台为准。根据《证券期货投资者适当性管理办法》的相关要求,本公众号内容仅面向华泰证券客户中的专业投资者,请勿对本公众号内容进行任何形式的转发。若您并非华泰证券客户中的专业投资者,请取消关注本公众号,不再订阅、接收或使用本公众号中的内容。因本公众号难以设置访问权限,若给您造成不便,烦请谅解!本公众号旨在沟通研究信息,交流研究经验,华泰证券不因任何订阅本公众号的行为而将订阅者视为华泰证券的客户。
本公众号研究报告有关内容摘编自已经发布的研究报告的,若因对报告的摘编而产生歧义,应以报告发布当日的完整内容为准。如需了解详细内容,请具体参见华泰证券所发布的完整版报告。
本公众号内容基于作者认为可靠的、已公开的信息编制,但作者对该等信息的准确性及完整性不作任何保证,也不对证券价格的涨跌或市场走势作确定性判断。本公众号所载的意见、评估及预测仅反映发布当日的观点和判断。在不同时期,华泰证券可能会发出与本公众号所载意见、评估及预测不一致的研究报告。
在任何情况下,本公众号中的信息或所表述的意见均不构成对客户私人投资建议。订阅人不应单独依靠本订阅号中的信息而取代自身独立的判断,应自主做出投资决策并自行承担投资风险。普通投资者若使用本资料,有可能会因缺乏解读服务而对内容产生理解上的歧义,进而造成投资损失。对依据或者使用本公众号内容所造成的一切后果,华泰证券及作者均不承担任何法律责任。
本公众号版权仅为华泰证券股份有限公司所有,未经公司书面许可,任何机构或个人不得以翻版、复制、发表、引用或再次分发他人等任何形式侵犯本公众号发布的所有内容的版权。如因侵权行为给华泰证券造成任何直接或间接的损失,华泰证券保留追究一切法律责任的权利。本公司具有中国证监会核准的“证券投资咨询”业务资格,经营许可证编号为:91320000704041011J。