您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [民生证券]:从增量学习到元学习:深度学习训练新框架 - 发现报告

从增量学习到元学习:深度学习训练新框架

2024-02-02 叶尔乐 民生证券 Lumière
报告封面

量化专题报告 从增量学习到元学习:深度学习训练新框架 2024年02月02日 增量学习对传统的批量学习提升效果不大。增量学习是指在现有模型的基 础上,通过加入新的数据来更新模型的过程。与传统的批量学习不同,增量学习可以更好地适应数据的变化,同时也更加高效,因为只需要处理新增的数据而无需重新训练整个模型。在股票趋势预测的增量学习中,我们通过一系列增量任务来逐步更新模型参数。在每个任务中,我们使用增量数据来微调模型参数,并在测试数据上进行预测并评估模型性能。用这样的方法在LSTM深度神 分析师叶尔乐 经网络上进行训练,IC从3.6%提升到了4.2%,提升效果不大。 执业证书:S0100522110002 元学习旨在学习一个机器学习模型的设定,使得这一模型在所有的训练任 邮箱:yeerle@mszq.com 务中表现最好。一个典型的元学习模型MAML(Model-AgnosticMeta- 相关研究1.量化分析报告:一月社融预测:59852亿元-2024/02/01 2.量化周报:流动性支持下有望震荡上涨-20 24/01/283.量化专题报告:基金交易三维刻画:胜率、赔率和频率-2024/01/254.基金分析报告:基金季报2023Q4:公募行业重仓易位-2024/01/23 5.量化周报:风险有所释放,机会仍需等待- 2024/01/21 Learning),即“模型无关的元学习”是17年发表在机器学习顶级会议ICML上的一种通用优化算法,适用于任何基于梯度学习的模型。MAML旨在为基模型提供初始化参数,以便面对新任务时能快速学习。用MAML对机器学习模型进行适应,应用至增量学习训练框架中,可以显著提升预测因子IC,LSTM模型因子的RankIC从4.2%提升至6%,效果明显。 双步适应训练框架对数据与模型都进行元学习,来适应新的在线任务场 景。传统的增量学习存在的问题是,在线场景中,新数据会不断到来,而增量数据与历史数据可能具有不同的联合分布,包括条件分布和协变量分布的变化。若数据分布变化较快,则增量学习无法适应。用数据适应器对数据分布进行适应可以解决这一问题。数据适应器也是一种元学习器,包含2个对于训练数据进行线性变化的函数,用来学习怎样调整训练数据的分布才能更好的适应分布变化,以获得更好的预测准确率。将数据适应器和模型适应器即MAML一起使用,形成双步适应训练框架DA,可进一步提升预测效果。 双步适应训练框架对传统深度学习模型都有提升。实证表明,双步适应训 练框架DA对于市场中流行的深度神经网络LSTM和GRU都有明显提升。若只用模型适应器MAML,可以显著提升预测因子IC,但多头端收益提升不明显。在加入数据适应器后可以显著提升因子多头端组合表现,其中LSTM_DA因子多头组合在中证500内年化收益14%,年化超额收益17.6%,信息比率2.37,表现优秀。 风险提示:量化模型基于历史数据,市场未来可能发生变化,策略模型有 失效可能。 目录 1从批量学习到增量学习3 1.1传统的批量学习法3 1.2增量学习法4 2元增量学习—双步适应训练框架7 2.1增量学习存在问题7 2.2MAML元学习8 2.3DA双步适应训练框架9 3元增量学习对传统深度学习模型的增强13 3.1LSTM模型13 3.2GRU模型16 3.3总结对比20 4总结与思考21 5风险提示22 6参考文献23 插图目录24 表格目录24 1从批量学习到增量学习 1.1传统的批量学习法 传统的批量学习法存在一定改进空间。在传统的深度学习方法中,我们常用批量学习,即滚动训练(RollingRetraining,RR)来进行模型的训练与预测。在这样的框架中,我们常用某固定时间框架的训练数据进行训练与验证,并用未来的一段时间进行预测。下图是批量学习方法的示意。一般来说,在股票历史回测的框架内,因为深度学习计算效率与消耗资源较大,我们常用每半年至一年训练一次模型的方式进行滚动训练与预测,并且用最近一年左右的时间作为验证集。这就导致大多时候,模型无法获取最新数据进行训练,即模型无法包含最近数据分布的信息。且若训练数据随时间增长,模型参数较多,模型计算效率将更加缓慢,超参数的搜索过程将耗费大量时间与资源。 图1:传统批量学习法示意 资料来源:民生证券研究院 一个典型的批量学习法的数据处理与模型细节如下,下文中,若无特殊说明,我们仍沿用相同的数据与模型设定。本文中的数据处理与模型结构都参考了微软深度学习开源量化金融平台qlib中的设置,因参考论文(LifanZhao,etal(2023),后文中有详细说明)中选用的数据集为qlib中的alpha360,即过去60个交易日的高开低收价格数据以及成交量和均价,我们也选取这6个变量,并在此基础上增加成交额,来进行深度学习的模型搭建。批量学习第一次训练,训练集取2010-2014年,验证集2015年,测试集2016年,随后每年滚动训练一次,预测下一年的因子值。 图2:模型结构,特征处理与训练参数 特征X:中证500过去60个交易日的高、开、低、收、成交额、成交量、VWAP,维度为(n,60,7) 特征处理特征处理:对过去60日的量价指标除以最新一天的值 标签y:个股相对中证500七个交易日open-to-open超额收益,T+1-T+8 LSTM:input_size=7,hidden_size=64,num_layers=2模型结构Dropout:dropout概率为0.1 MLP:全连接层,输入维度64,输出维度1损失函数:MSE 训练参数batch_size:20天样本数据即8000-10000;epoch:100,早停:20,学习率:0.001,优化器:Adam 资料来源:民生证券研究院 在这样的训练框架下,LSTM模型输出的因子在2016年-2023年在中证500 内的周度RankIC均值为0.036,ICIR0.48,表现一般。 图3:批量学习的LSTM基准模型表现 资料来源:Wind,民生证券研究院 1.2增量学习法 基于批量学习的上述问题,有些研究者则开始使用增量学习的方法来进行股票模型的训练。增量学习是指在现有模型的基础上,通过加入新的数据来更新模型的过程。与传统的批量学习不同,增量学习可以更好地适应数据的变化,同时也更加高效,因为只需要处理新增的数据而无需重新训练整个模型。在股票趋势预测的增量学习中,我们通过一系列增量任务来逐步更新模型参数。在每个任务中,我们使用增量数据来微调模型参数,并在测试数据上进行预测并评估模型性能。在示意图中,我们每过r日即可以建立一个新的增量学习任务,在下文中,若无特殊说明,我们取r=20。 图4:增量学习数据集结构 资料来源:民生证券研究院 增量学习有很多类别,本篇研究的基准为微调(fine-tuning)类增量学习。它分为2个步骤,离线学习(offline-training)和在线推断(online-inference)。离线学习数据窗口对应上图中T日之前,包含训练集与验证集。在离线学习中,我们首先训练一个基模型,如LSTM。训练方式与批量训练类似,但在训练集中,我们不再固定batchsize,而是用20个交易日的样本为一个batch。而在验证集中,我们将验证集的样本同样分为多份20个交易日的验证子集,对于每份验证 子集,我们都用上20个交易日的样本在基模型上进行微调,随后用微调后的模型预测这一子集的股票收益。最后取所有验证子集的平均IC作为衡量验证集表现的指标。具体地,以中证500成分股为例,对于每次epoch,我们进行如下训练: 图5:离线学习部分训练结构 资料来源:民生证券研究院 离线学习模型输出最终的初始模型后,即开始在线推断(online-inference),以离线学习多轮训练中验证集表现最好的基模型进行增量训练任务。在在线环境中,与验证集不同的是,我们在每次增量数据输入原有模型进行预测后将更新模型的参数,使得模型中保有最新数据所蕴含的规律,即将最近的信息纳入到模型中,预测未来一段时间的股票收益。 图6:在线推断部分训练结构 资料来源:民生证券研究院 增量学习下的LSTM模型表现略好于批量学习。增量学习LSTM因子在中证500内的周度RankIC平均为0.042,ICIR0.61,表现有稳定提升,但效果仍然较弱。 图7:增量学习下的LSTM模型表现 资料来源:Wind,民生证券研究院 2元增量学习—双步适应训练框架 2.1增量学习存在问题 股票市场的数据分布很容易随时间变化而发生变化,这会对增量学习构成挑战。尽管在在线推断中,新数据会不断到来,但增量数据与历史数据可能具有不同的联合分布,包括条件分布和协变量分布的变化。这意味着在进行增量学习时需要平衡模型更新的程度,以避免过拟合或欠拟合模型。下图展示了2019年不同时期的沪深300股票量价指标与收益率的联合分布密度函数(构图参见LaurensvanderMaatenandGeoffreyHinton.2008.Visualizingdatausingt-SNE.)。我们用上一期增量数据(图中紫色线)的数据对模型进行微调,从而影响本期期模型在预测集上的预测。在图(a)中的2019年9-10月,分布由增量数 据至测试数据逐渐变化,是增量学习较为适合的应用环境。而在图(b)中的2019 年4-5月,增量数据与测试数据的联合分布差异较大,这时增量学习法适用性较弱,参照对比第一节中的因子表现我们就会发现,这时增量学习较传统的批量学习法更差。 图8:不同时期下沪深300股票量价与下一期收益的联合分布 资料来源:LifanZhao,etal(2023) 除此之外,传统的微调类增量学习在前一个任务的模型基础上更新参数,分布的突然变化(如上图b中的abruptshift)可能导致模型落入局部优化,从而过拟合增量数据。因此,我们需要寻找一个更优的模型初始化参数,以至于这一参数既保留了历史信息的规律,又可以提取增量数据的信息,即从数据和模型两个部分,对于训练流程进行改进。 基于上述问题,LifanZhao等人在2023年的机器学习KDD会议中发表了论文DoubleAdapt:AMeta-learningApproachtoIncrementalLearningforStockTrendForecasting,并在论文中提出了双步适应训练框架——DA元增量学习(DoubleAdapt),旨在通过适应数据和模型来解决增量学习中的分布变化问题。该方法包括两个适应器,一个用于数据适应,用来调整数据分布;一个用于模型适应,用来调整增量训练中的模型参数初始化,并通过元学习进行优化。本篇研究在上述论文的基础上进行了改进并复现。 接下来,我们先介绍论文中提到的模型适应器,即MAML元学习,再将数据适应器加入到元增量学习框架中,形成双步适应训练框架,作为最终模型。 2.2MAML元学习 元学习(meta-learning)旨在训练一个AI模型,让这个模型能迅速学会训练新数据,并有较好的泛化能力。一个典型的元学习模型MAML(Model-AgnosticMeta-Learning),即“模型无关的元学习”是17年发表在机器学习顶级会议ICML上的一种通用优化算法,适用于任何基于梯度学习的模型。MAML旨在训练输出一组基模型的初始化参数,以便拥有这一初始参数的基模型面对新任务时能快速学习。传统的深度学习模型初始化参数的方式是随机的,而元学习可以为深度学习模型提供一组适合新任务场景的超参数,包括模型的初始化参数,学习率等。从而让这一深度学习模型有更好的预测效果。 相比传统训练,MAML在数据的划分上更有层次,它引入了训练任务的概念,每一个训练任务都包含自己的训练集与测试集,为了避免混淆,我们将子训练任务的训练集称为support-set,测试集称为query-set。并且不同的训练任务可以训练不同的数据类别,有不同的x和y。在本篇研究中,我们将每40个交易日的股票数据作