社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

中金 | 机器学习系列(1):深度强化学习模型探索因子构建范式

中金量化及ESG • 3 月前 • 306 次点击  

摘要


强化学习模型作为机器学习模型的重要分支在各领域应用广泛,从AlphaGo到ChatGPT均不乏其身影。在金融领域强化学习同样具备无需独立同分布假设等优势。本文结合强化学习和特征提取的结构生成的选股因子在多个股票池中均取得良好选股表现,且模型表现对参数敏感性较低,样本外稳定性高。




为什么在量化中尝试强化学习模型


作为机器学习重要的发展分支之一,不论是在近几年讨论度较高的LLM大语言模型还是在围棋领域战胜世界冠军的AlphaGo中都不乏强化学习的身影。强化学习已被证实在不同应用场景下对多种任务都有较好表现。我们认为强化学习在金融领域特别是量化策略中可能将具有良好效果,主要出于强化学习模型以下四个特点:1.适合处理序列决策任务;2.输入数据无需遵从独立同分布的假设;3.通过与环境交互探索来不断优化当前策略;4.数据无需具备标签。



因子构建的本质:数据与操作符的有机结合


数据+操作符:因子挖掘的过程本质上属于寻找数据与操作符的结合方式,挖掘方式可以被分为人工挖掘或模型挖掘两种。我们在之前的一系列因子手册中展示的因子均为通过一定逻辑采用人工构建的方式得到。而通过人工构建的方式在确定性上虽然比机器更高,但效率理论上来说远不及机器学习模型。


特征提取模块+强化学习模型:为寻求机器挖掘因子的高确定性,我们通过结合强化学习模型和特征提取模块,构建了包含6个常见日度价量特征的数据集,并定义了22个操作符算子和19个常数算子的数据集合。特征提取模块将主要通过对因子表达式进行线性或非线性方法提取特征,强化学习模型则主要负责学习如何将数据特征和操作符以及常数算子有机结合起来,高效寻找合理因子范式。



TRPO样本外稳定性较高


在我们的测试框架下,强化学习模型在样本外的表现均明显优于作为比较基准的遗传算法和传统机器学习方法。其中TRPO_LSTM和A2C_Linear两种组合方案在中证1000范围回测结果表现突出:ICIR约为0.90,样本外超额夏普均超过1.1,并且在今年年初市场快速回撤环境下表现仍然平稳。相比之下,两组对照方法的收益净值曲线在今年年初出现了明显的回撤,超额收益不足2%。


机器学习模型的稳定性也一直是投资者关注的重点之一。我们分别固定强化学习模型和特征提取模块,统计合成因子在样本外回测的ICIR及超额收益的平均表现。实验结果表明,TRPO、A2C和PPO模型参与因子范式挖掘得到的合成因子具有较为稳定的ICIR表现,均超过0.80。特征提取模块中,Transformer参与组合的模型输出的因子具有相对最好的ICIR表现,达到0.79。

TRPO相对稳定的模型结构解释:1)相较于其他强化学习模型,TRPO使用了信任域优化的方法,通过限制策略更新的步幅,确保策略改进过程的平滑和稳定。2)TRPO在每次更新时会自适应地调整学习率来保持策略更新在信任域内,因此其对学习率参数不是特别敏感。3)TRPO优化的目标函数使用了广义优势估计(GAE)来估计策略梯度,并且结合了值函数的估计来减小方差,该设计使其对于奖励函数中的噪声和估计误差敏感性降低。


► 风险提示


模型基于历史数据构建,未来可能存在失效风险。


正文


量化领域下的强化学习



为什么选择强化学习


作为机器学习重要的发展分支之一,不论是在近几年讨论度较高的LLM大语言模型还是在围棋领域战胜世界冠军的AlphaGo中都不乏强化学习的身影。强化学习已被证实在不同应用场景下对多种任务都有较好表现。

我们在使用传统统计模型和机器学习模型时,经常容易忽略的一点就是关于数据的假设。例如对于线性回归、逻辑回归、朴素贝叶斯以及KNN等机器学习模型来说,一个基础的假设就是输入数据需要服从独立同分布。而对于金融数据来说,独立同分布很多时候都是一个过于严格的前提。

► 时间相关性: 金融数据通常是时间序列数据,相邻时间点的数据之间可能存在相关性。例如,股票价格在短时间内可能会呈现出一定的自相关性或者相关性结构。

► 波动性聚集: 金融市场中的波动通常会出现波动性聚集(volatility clustering)的现象,即波动性的大幅度变化往往会聚集在一起,而不是均匀分布。这意味着金融数据的波动性不是独立同分布的。

► 异方差性: 金融数据中常见的异方差性(heteroscedasticity)表现为不同时间点的数据具有不同的方差。这违反了独立同分布的假设,因为方差并不是恒定的。

► 非正态分布: 许多金融数据并不遵循正态分布,而是具有偏态、厚尾或者其它非正态的分布特征。

由于这些特殊性质存在,我们将金融数据应用在使用机器学习或深度学习模型时,需要谨慎考虑其适配性,而不是强行将数据直接输入模型中。但强化学习则不需要输入数据满足这一要求。此外强化学习通过与环境交互进行试错探索,进而对当前策略进一步优化的模式与量化策略的更新迭代也有诸多相似之处。

我们认为强化学习在金融领域特别是量化策略中可能将具有良好效果,主要出于强化学习模型以下四个特点:1.适合处理序列决策任务;2.输入数据无需遵从独立同分布的假设;3.通过与环境交互探索来不断优化当前策略;4.数据无需具备标签。

我们从强化学习的基本原理开始。以AlphaGo训练为例,它主要是通过不断进行下棋的尝试,以获得足够多成功或者失败的经验,从而不断地进行策略的优化。结合强化学习的示意图:AlphaGo对标强化学习中的智能体;它进行下棋尝试的棋盘就是示意图中的环境;每次棋局,AlphaGo落子前棋面的情况,即环境传递给智能体的状态();AlphaGo落子的位置对应示意图中智能体传递回环境的动作();棋局结束时AlphaGo成功或失败的结果对应着示意图中环境反馈给智能体的奖励r;每一轮棋局称作一个回合(Episode);回合中包含的落子次数称作当前回合的步长(Step)。由此,可以得到强化学习的定义为:智能体学习如何在复杂、不确定的环境下优化策略使奖励最大化。

图表1:强化学习模型示意图

资料来源:“StockFormer: Learning hybrid trading machines with predictive coding.” Siyu Gao等(2023),中金公司研究部



强化学习在金融领域中的应用


强化学习模型作为机器学习的重要分支近年来发展迅速。2015年由DeepMind研究专家提出的DQN模型,首次将深度学习与Q学习算法相结合,成功地在多个Atari游戏中表现超越了人类水平;2016年以其为核心的AlphaGo在更复杂的围棋比赛中,战胜了世界围棋冠军李世石。2022年,OpenAI参照强化学习的范式通过对大语言模型ChatGPT进行了微调(RLHF)将人工智能带入了新的阶段。目前,强化学习已经在许多领域中得到了实际应用,其中在金融领域的订单执行、市场做市以及投资组合优化等任务中都取得了成功的探索。


图表2:强化学习发展历史

资料来源:Wind,中金公司研究部


在金融领域方面,目前较为成熟的应用包括资产配置/资产管理任务。例如,Liu等人在2021年提出的FinRL框架[1],首次将前沿的强化学习算法系统的应用到了资产配置任务中,并开源了对应的算法框架;Gao等人在2023年基于FinRL提出的StockFormer模型[2],结合了预测编码良好的建模能力和强化学习策略灵活性的优势,优化交易策略。与传统的强化学习方案不同,该模型借助Transformer模型显式考虑了未来趋势和不同投资资产之间的相关性。此外,也有少量研究在因子挖掘及合成任务上取得了突破性的进展[3]。


图表3:FinRL整体框架

资料来源:“FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance.” Xiaoyang Liu等(2021),中金公司研究部


图表4:StockFormer整体框架

资料来源:“StockFormer: Learning hybrid trading machines with predictive coding.” Siyu Gao等(2023),中金公司研究部


如何寻找因子的构建范式



因子构建本质:数据与操作符的有机结合


如何寻找因子的构建范式

本文利用强化学习模型来寻找有效的因子构建范式,因子构建范式具体指代包含量价等数据特征和数学操作符的因子表达公式。在实际操作中,我们使用树结构来表示因子范式:非叶节点代表操作符,节点的子节点代表操作数,本文将每个节点称为算子(token),并借助逆波兰表达式的思想将树结构保存为其后序遍历的序列,有效发挥了逆波兰表达式不含歧义,以及易于被计算机程序解析和计算的优势。与直接预测收益率任务相比,该任务具有更好的解释性。

图表5:数据与操作符的结合方式--逆波兰表达式

资料来源:“Generating Synergistic Formulaic Alpha Collections via Reinforcement Learning.” Shuo Yu等(2023),中金公司研究部
注:(A) 因子范式的示例;(B) 因子范式对应的树结构;(C) 使用逆波兰表示法(RPN)的结果,其中BEG和SEP表示序列指示符;(D) 在一个示例时间序列上逐步计算这个Alpha因子。

强化学习模型的数学基本框架为马尔可夫决策过程(MDP),它共包含五个核心元素:(S, A, T, R, γ),其目标为最大化每一个回合累计奖励值,公式如下,其中P表示当前回合的总步长,τ表示一个轨迹(或回合),即智能体从开始到结束在环境中经历的一系列状态、动作和奖励的序列,π表示策略,策略是从状态到动作的映射,定义了智能体在给定状态下选择动作的概率分布,形式上,策略π(a|s)表示在状态s下选择动作a 的概率。


对因子构建范式挖掘任务,每个元素的定义如下:

► S表示可观测的数据集合(强化学习示意图中的状态集合),定义为t时刻下的逆波兰表达式序列,固定为“BEG”标识符开始。考虑到因子的可解释性,以及公式过长带来的解释性降低,我们将公式的长度阈值(max_expr_length)限制在20个算子以内。具体实现方面,我们对所有算子(图表9)使用整数编码进行标识,利用离散的编码构建表达式序列。

► A表示动作集合(强化学习示意图中的动作集合),定义为合法的候选算子(包括操作数或操作符,需要根据当前序列筛选有效的算子)。当因子范式包含的算子数量超过提前设置好的阈值(max_expr_length)或当前选择的动作为结束符“SEP”,当前回合结束。

► T表示状态转移概率方程,表示采取动加入表达式序列后的因子范式。

► R表示奖励函数(强化学习示意图中的),可以根据预期的策略进行针对性的设计。本文的任务本质是一个稀疏函数的马尔可夫决策过程,对于尚未完全形成的序列,环境不提供即时奖励。只有在回合结束时且因子范式有效的情况下,才会进行表达式解析,因子回测等后续操作。我们首先将当前因子与历史挖掘到的有效因子进行合成,而后回测合成因子的IC值,将其作为强化学习模型奖励值,而无效的因子范式则统一设置-1的奖励值。

► γ表示折扣因子,值域为(0,1),表示对未来奖励值打折扣。当折扣因子为0时,智能体只关注当前的奖励;当其值为1时,表示对未来的奖励并没有打折扣,未来获得的奖励与当前的奖励是一样的。考虑对因子范式长度没有特别的需求,我们将折扣因子设置为γ=1。


图表6:马尔可夫决策过程示意图

资料来源:“StockFormer: Learning hybrid trading machines with predictive coding.” Siyu Gao等(2023),中金公司研究部


模型架构:强化学习驱动的Alpha生成器

模型架构层面,本文将多因子挖掘任务及因子合成任务使用串联的形式集成到端到端的强化学习框架内,发挥其强大的探索能力。具体来说,框架主要包含基于强化学习的Alpha生成器和Alpha组合模型两个模块。Alpha生成器的主要作用为挖掘因子范式,并将有效的因子范式加入到因子池中,赋予随机的合成权重。随后Alpha组合模型采用梯度下降的优化方式对因子池中的因子进行线性组合,优化各自权重。我们对组合模型输出的因子进行回测,将IC结果用作奖励信号,以训练基于策略梯度算法的Alpha生成器中的强化学习策略。采用这样的训练架构和流程,能促使Alpha生成器在重复的训练和优化中产生提升组合模型的因子,从而增强整体的预测能力。

此外,我们设置了一个阈值(pool_size)来限制因子池的大小,仅保留具有最大绝对权重的主要因子。如果扩展集合中的因子数量超过了这一阈值,权重最小的非主要因子将连同其对应的权重一起从集合中移除。


图表7:强化学习因子挖掘框架

注:(A) 一个生成表达式的Alpha生成器,通过策略梯度算法进行优化。 (B) 一个维护主要因子加权组合的组合模型,同时提供评估信号以指导生成器。

资料来源:“Generating Synergistic Formulaic Alpha Collections via Reinforcement Learning.” Shuo Yu等(2023),中金公司研究部


Alpha生成器包含两个核心模块:强化学习模块和特征提取模块。

► 强化学习模块:考虑到本文任务为挖掘因子范式,建模的马尔可夫决策过程中使用了定义在离散空间的动作集合,且每一次新的动作采取需要根据当前序列筛选合法的算子,因此我们主要考虑了采用Actor-critic架构的强化学习模型和Maskable(遮罩)机制。

  • Actor-critic框架:主要包含一个价值网络(value network)和一个策略网路(policy network),其中价值网络负责评估当前强化学习策略的好坏,通常通过估计价值函数来实现;而策略网路负责选择动作,即直接对策略进行参数化。策略网络输出动作的概率分布,从中可以采样以决定下一步要采取的动作。

  • Maskable机制:能够在每个时间步过滤掉非法行动,只保留合法的行动供策略选择。这样做可以确保生成的序列始终符合逆波兰表达式的语法要求。

► 特征提取模块:特征提取模块主要负责将离散的算子序列也即因子表达式转换为连续的抽象表征,以作为强化学习网络模块的输入。强化学习模型的价值网络和策略网路共享一个输入特征的提取模块。

考虑到合成因子环节的可解释性,本文仅采用传统的线性组合方案,并未引入其他机器学习/深度学习的方法,因而该模块的技术细节在此不做过多赘述,损失函数的含义及推导过程详见附录。


强化学习优势:透明度与计算效率

深度强化学习作为深度学习的重要分支,常和其他深度学习模型比较。与深度学习和遗传算法有一些类似之处,但在不同的场景下具备其独特的优势。

图表8:强化学习与深度学习和遗传算法的比较

资料来源:“StockFormer: Learning hybrid trading machines with predictive coding.” Siyu Gao等(2023),Wind,中金公司研究部


► 透明度:算法决策过程的可解释性和可理解性

强化学习:透明度取决于所采用的模型和策略复杂性。例如,基于表格的方法相对透明,采用深度网络结构的强化学习方法的透明度较低。在本文的因子范式挖掘任务,强化学习表现出了良好的可解释性。

深度学习:可解释性通常较低,尤其是在深层神经网络中,其决策过程被认为是一个“黑盒”,难以解释和理解。

遗传算法:相对于深度学习,遗传算法在透明度上表现更好。尽管其搜索过程可能复杂,但是算法的运作原理(选择、交叉、变异)相对容易理解。

► 效率:算法达到目标所需的资源(如时间、算力)

强化学习:效率可能因任务而异,对于复杂环境和策略,可能需要大量的交互和数据来学习有效的策略,影响效率。实验结果表明强化学习在因子范式搜索任务上具有较高的搜索效率。

深度学习:在拥有充足标注数据和计算资源的情况下,深度学习可以较为高效地处理大规模数据集。但训练深度模型通常计算密集且耗时。

遗传算法:虽然遗传算法不需要训练数据,但通常需要大量的迭代和评估才能收敛到好的解,这可能导致效率较低。

► 稳定性:算法输出的一致性和对输入扰动的稳定性

强化学习:稳定性可能受到探索策略和学习率的影响,环境的变化或初始化的不同可能导致学习结果的显著差异。

深度学习:在相同条件下,深度学习模型通常能够给出一致的预测结果。但是,它们可能对数据分布的改变和输入扰动敏感。

遗传算法:稳定性取决于种群的多样性和进化过程的设计。结果可能在不同运行间有所变化,但通常可以通过足够的迭代次数找到稳定解。


测试框架:特征提取+强化学习


数据集构造


本文使用中证1000指数成分股的历史数据对模型进行训练,将其6个常见的日度价量特征作为强化学习模型所需的特征算子。此外,操作符算子包括截面运算符(一元运算符和二元运算符)和时序运算符(如均值和标准差)共22个,以及常数算子包括截面常数14个和时序常数5个。


图表9:算子定义表

资料来源:Wind,中金公司研究部


数据集按照2015/01/05-2018/12/31、2019/01/02-2020/12/31、2021/01/04-2024/03/01三个区间被依次划分为训练集、验证集和测试集。我们利用验证集筛选模型参数,并在测试集上比较模型的表现。

本文特别考虑了使用全历史股票池范围可能存在的数据泄露问题。在使用训练集评估因子表达式的IC均值时,我们只考虑了当期截面上有效的成分股范围,并未引入任何未来的成分股数据以干扰因子评估的准确性。

测试过程

本文所定义的强化学习任务具有离散型的动作空间,我们选择了与之适配的PPO、TRPO和A2C模型,以及常用于连续型动作空间下的SAC模型(对连续型动作空间进行离散化处理),并将上述四个模型与四类不同的特征提取模块LSTM、GRU、Transformer和Linear分别进行组合。考虑到强化学习模型本身存在的随机性,上述组合均使用三个不同的随机数对模型参数初始化并进行训练。

本文测试提及的强化学习和特征提取模块较多,各类模型都具有独特的应用场景和特点,我们将具体模型介绍置于附录部分便于参考,下表为主流强化学习模型的各项特点对比,我们在后续的测试中也同样能寻找到与模型特点吻合的测试结果。


图表10:强化学习主流方法各项特点对比

资料来源:“StockFormer: Learning hybrid trading machines with predictive coding.” Siyu Gao等(2023),Wind,中金公司研究部


由于强化学习模型无法直接读取离散形态的因子表达式,因此在本模型结构中特征提取模块将主要通过对因子表达式进行线性或非线性方法提取特征,强化学习模型则主要负责学习如何将数据特征和操作符以及常数算子有机结合起来,寻找到合理的特征与操作符结合的策略。


图表11:特征提取模块和强化学习模型组合,前者负责提取因子表达式的抽象特征

资料来源:Wind,中金公司研究部


为了验证深度强化学习模型在因子挖掘任务上的有效性,本文同时考虑了在因子范式构建任务上具有广泛应用的遗传算法(Symbolic Regression模型)和传统机器学习方法代表XGBoost,并将以上两组模型设为对照组。由于XGBoost的架构并不适用于因子范式挖掘任务,我们使用日度价量特征作为模型输入,将模型的优化目标定义为全市场股票20交易日后的收益率。

上述所有模型均可在一张GeForce RTX 3080Ti上完成训练,模型代码均由基于Pytorch的开源三方库实现。强化学习模型在因子范式挖掘任务上的共性参数有如下定义(模型超参定义详见第三章):


图表12:强化学习模型在因子范式挖掘任务上的共性参数定义

资料来源:Wind,中金公司研究部


评测框架

本文对模型输出的因子采用IC检验和分组回测检验,展示不同因子的有效性水平。我们将对各个模型多次训练后输出的因子分别在中证1000和全市场范围内进行IC检验与分组回测检验,分析不同模型在测试集上收益率预测的稳定性、单调性、有效性和与其他常见因子的相关性。其中因子测试框架如下:

► 全样本测试区间:2015.01.02 – 2024.03.01;样本外测试区间:2021.01.04 – 2024.03.01

► 股票池:全市场、中证1000中剔除ST、停牌、一字板和上市未满一年股票

► 换仓频率:月度,并在每月第一个交易日换仓

► 分组回测组数:按照因子值由小到大的顺序将股票池等分为10组

使用多种指标展示因子的有效性水平。在IC检验中,我们使用IC均值、ICIR绝对值等指标展示因子暴露与下期收益率的秩相关性,反映因子对收益率的预测能力。在分组回测中,使用多头年化收益率、多头年化超额收益率、多头超额最大回撤等指标展示多头组合的选股能力。


TRPO+LSTM:兼顾收益与稳定



回测结果:TRPO+LSTM样本外表现更优稳定性高


全样本测试最优:A2C_Linear

强化学习算法和特征提取模块组合后输出的合成因子在全样本范围中取得较好回测表现的有A2C_Linear, A2C_Transformer, PPO_Transformer, TRPO_LSTM和TRPO_Transformer。其中,A2C_Linear模型全样本表现较好,ICIR为0.95,超额收益和超额夏普分别为10.53%和1.94,且与常见的相关因子的截面相关性较小。此外,与Transformer模块组合后表现较好的三种强化学习模型,它们的合成因子在全样本的ICIR均超过了0.80,多空收益稳定在23%以上,超额收益的平均表现超过7%。上述方法分组年化超额收益均具有良好的单调性。


图表13:强化学习模型输出因子在中证1000范围全样本月度回测的有效性检验结果

注:1)样本区间为2015-03-01至2024-03-01;2)强化学习及遗传算法模型均使用不同随机数初始化参数进行3次训练,获取平均结果

资料来源:Wind,中金公司研究部


图表14:中证1000范围内表现较好的强化学习模型合成因子的年化多空收益统计(全样本)

资料来源:Wind,中金公司研究部


图表15:中证1000范围内表现较好的强化学习模型合成因子的超额收益统计(全样本)

资料来源:中金公司研究部


图表16:A2C_Linear模型因子与常见因子相关系数

资料来源:Wind,中金公司研究部

注:1)统计时间为2015-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)相对净值的比较基准为中证1000成分股等权


图表17:中证1000范围内表现较好的强化学习模型输出的合成因子分组年化超额收益统计(全样本)

资料来源:Wind,中金公司研究部

注:1)统计时间为2015-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)超额收益的比较基准为中证1000成分股等权;3)Group0为因子值最小一组,Group9为因子值最大一组

A2C_Linear或存在过拟合,样本外TRPO_LSTM稳定性高
中证1000数据集样本外回测结果中表现突出的组合方案是TRPO_LSTM模型。其输出的合成因子IC均值为6.35%,多空收益为22.99%,具有7.83%的超额收益以及1.56的超额夏普率。与全样本表现较好的A2C_Linear模型相比,通过多次随机数初始化参数训练得到的TRPO_LSTM方法在样本外具有更好的平均表现和稳定性。此外,在与常见因子相关系数的计算中,该因子的截面相关性均保持在0.5以内。

图表18:强化学习和特征提取模块组合模型的合成因子在中证1000范围样本外月度回测的有效性检验结果

注:1)样本区间为2021-03-01至2024-03-01;2)强化学习及遗传算法模型均使用不同随机数初始化参数进行3次训练,获取平均结果

资料来源:Wind,中金公司研究部


图表19:中证1000范围内表现较好的强化学习模型合成因子的年化多空收益统计(样本外)

资料来源:Wind,中金公司研究部


图表20:中证1000范围内表现较好的强化学习模型合成因子的超额收益统计(样本外)

资料来源:Wind,中金公司研究部


图表21:中证1000范围内表现较好的强化学习模型合成因子的年化多空收益稳定性统计(样本外)

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)虚线为3次训练标准差波动;4)相对净值的比较基准为中证1000成分股等权


图表22:中证1000范围内表现较好的强化学习模型合成因子的超额收益稳定性统计(样本外)

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)虚线为3次训练标准差波动;4)相对净值的比较基准为中证1000成分股等权


图表23:TRPO_LSTM模型合成因子与常见因子相关系数

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)相对净值的比较基准为中证1000成分股等权


图表24:中证1000范围内表现较好的强化学习模型输出合成因子的分组年化超额收益统计(样本外)

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)超额收益的比较基准为中证1000成分股等权;3)Group0为因子值最小一组,Group9为因子值最大一组


图表25:TRPO_LSTM模型因子池中表现较好因子的表达式及合成权重

注:1)样本区间为2021-03-01至2024-03-01;2)强化学习模型TRPO_LSTM使用单次训练结果;3)回测范围中证1000

资料来源:Wind,中金公司研究部


我们将在中证1000数据集下训练得到的强化学习模型应用到范围更广的全市场股票域内进行测试发现:TRPO_LSTM模型依然具有较好的回测表现。其ICIR为1.14,多空收益超过了30%,超额收益稳定在8.43%,超额夏普为1.92。上述测试结果表明TRPO_LSTM模型在不同股票域的样本外测试依然能够保证较好的稳定性。

此外,全市场范围内样本外回测结果表现较好的模型还有PPO_Linear,PPO_Transformer,A2C_Linear和TRPO_Transformer,它们的ICIR表现均稳定在1.0以上,IC均值稳定在7.5%之上,PPO_Transformer模型输出的合成因子具有28.33%的多空收益,而A2C_Linear模型输出的合成因子具有8.14%的超额收益。上述方法在全市场范围内分组年化超额收益依然保持较好的单调性和区分度。


图表26: 强化学习模型输出因子在全市场范围样本外月度回测的有效性检验结果

注:样本外区间为2021-03-01至2024-03-01,强化学习及遗传算法模型均使用不同随机数初始化参数进行3次训练,获取平均结果

资料来源:Wind,中金公司研究部


图表27:全市场范围内表现较好的强化学习模型输出合成因子的年化多空收益统计(样本外)

资料来源:Wind,中金公司研究部


图表28:全市场范围内表现较好的强化学习模型输出合成因子的超额收益统计(样本外)

资料来源:Wind,中金公司研究部


图表29:全市场范围内表现较好的强化学习模型合成因子的年化多空收益稳定性统计(样本外)

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)虚线为3次训练标准差波动;4)相对净值的比较基准为全市场等权


图表30:全市场范围内表现较好的强化学习模型合成因子的超额收益稳定性统计(样本外)

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)虚线为3次训练标准差波动;4)相对净值的比较基准为全市场等权


图表31:PPO_Linear模型因子与常见因子相关系数

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)相对净值的比较基准为全市场等权


图表32:全市场范围内表现较好的强化学习模型输出的合成因子分组年化超额收益统计(样本外)

资料来源:Wind,中金公司研究部

注:1)统计时间为2021-03-01至2024-03-01;2)强化学习均使用不同随机数初始化参数进行3次训练,获取平均结果;3)超额收益的比较基准为全市场等权;3)Group0为因子值最小一组,Group9为因子值最大一组



算法对比:强化学习性能与透明度更优


我们经过试验对比发现强化学习模型在样本外的表现均明显优于遗传算法和机器学习方法。其中TRPO_LSTM和A2C_Linear两种组合方案在中证1000范围内样本外回测的平均结果较为突出:ICIR约为0.90,超额夏普均超过了1.1,并具有累计7.83%和5.32%的超额收益。相比之下,两组对照方法的收益净值曲线在今年年初出现了明显的回撤,超额收益不足2%。

以XGBoost为代表的机器学习(深度学习)方法属于“黑盒”模型,模型从输入的量价数据到输出的预测结果过程中缺乏可解释性,且预测结果相比本文的因子范式也缺少一定的透明度。因此当模型性能在样本外下降时,这类模型的优化和调整将成为新的挑战。

对于本文所提出的因子范式挖掘及合成任务,实验结果表明强化学习模型相比遗传算法具有更强的搜索效率。当固定因子池的大小为20时,以TRPO_LSTM为代表的强化学习模型搜索到的因子范式,在样本外回测得到的ICIR和超额收益表现均明显优于遗传算法搜索到的结果如下表所示。对比发现对照组ICIR不足0.5,TRPO_LSTM模型ICIR可达0.9,也具有显著更高的超额收益。


图表33:强化学习模型(部分)及对照方法合成因子在中证1000范围样本外月度回测的有效性检验结果

注:1)样本区间为2021-03-01至2024-03-01;2)强化学习及遗传算法模型均使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部


图表34:中证1000范围合成因子年化多空收益统计

注:1)超额收益相对基准为全市场等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型及遗传算法均使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部


图表35:中证1000范围合成因子年化超额收益统计

注:1)超额收益相对基准为全市场等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习及遗传算法模型均使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部

图表36:强化学习和遗传算法因子池中表现较好的因子在中证1000范围样本外回测的IC_IR统计

注:1)样本区间为2021-03-01至2024-03-01;2)强化学习模型TRPO_LSTM及遗传算法均使用单次训练结果

资料来源:Wind,中金公司研究部


图表37:强化学习和遗传算法因子池中表现较好的因子在中证1000范围样本外回测的超额收益统计

注:1)样本区间为2021-03-01至2024-03-01;2)强化学习模型TRPO_LSTM及遗传算法均使用单次训练结果

资料来源:Wind,中金公司研究部



模型的参数敏感度分析


因子表现对特征提取模块与强化学习模型组合的敏感度

本节主要就因子表现对特征提取模块和强化学习模型组合的敏感度进行分析。分别固定强化学习模型和特征提取模块,统计合成因子在样本外回测的ICIR及超额收益的平均表现。实验结果表明,TRPO、A2C和PPO模型参与因子范式挖掘得到的合成因子具有较为稳定的ICIR表现,均超过0.80。特征提取模块中,Transformer参与组合的模型输出的因子具有相对最好的ICIR表现,为0.79。

► 对不同的强化学习模型: TRPO模型具有更好的因子范式搜索能力,与其结合的特征提取模块训练得到的合成因子兼顾较好的ICIR及超额收益表现。此外,A2C和PPO模型输出的合成因子回测表现也具有较好的ICIR结果。SAC模型本身适用于连续动作空间的任务,对于当前离散动作空间下(且需要掩码处理)的因子范式搜索任务,其性能无法得到有效发挥,因此其输出结果的ICIR和超额收益表现都较为落后。

► 对不同特征模块:因子表现对特征提取模型敏感度不高,四类特征提取模块参与组合的模型输出的合成因子均具有超过0.70的ICIR表现及4%左右的超额收益。本文认为,由于因子范式长度固定值设为20,对特征提取模块的网络结构及网络深度并未提出较高的要求,故时序模型、注意力机制,甚至是常规的全连接层都发挥了较好的特征提取效果。


图表38:因子表现对强化学习模型敏感度

注:1)超额收益相对基准为中证1000成分股等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型使用不同随机数初始化参数进行3次训练得到平均值,并对当前强化学习模型组合过的所有特征提取模块表现计算平均值

资料来源:Wind,中金公司研究部


图表39:因子表现对特征模块的敏感度

注:1)超额收益相对基准为中证1000成分股等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型使用不同随机数初始化参数进行3次训练得到平均值,并对当前特征提取模块所有组合过的强化学习模型表现计算平均值

资料来源:Wind,中金公司研究部

强化学习模型TRPO_LSTM稳定性的来源

本节主要从因子池和模型超参两个角度探索TRPO_LSTM组合模型性能对参数的稳定性。相较于其他强化学习模型,TRPO的性能表现较为稳定,对于参数变化较为不敏感。我们认为主要可能有以下原因。

► 从TRPO的设计原理出发:

  • TRPO使用了信任域优化的方法,通过限制策略更新的步幅,确保策略改进过程的平滑和稳定,从而减少了因大幅度更新而导致的性能崩溃的风险。
  • TRPO在每次更新时会自适应地调整步长(或学习率),以保持策略更新在信任域内。由于它会自动调整步长以满足KL散度的约束,该算法对学习率不是特别敏感。
  • TRPO优化的目标函数使用了广义优势估计(GAE)来估计策略梯度,并且结合了值函数的估计来减小方差。该设计使其对于奖励函数中的噪声和估计误差敏感性降低。

► 从实验结果出发:

  • 模型性能与因子池规模并无严格的正相关关系。因子池规模由10增大到50时,模型输出的合成因子样本外的ICIR表现呈现上升趋势;然而当因子池规模继续增大至200时,合成因子的表现有所下降且趋于稳定。本文认为,这是由于算子种类较为有限所致,因此简单的扩大因子池不能直接合成具有更好表现的因子。
  • 模型超参:本文从学习率、单次更新步数及批量大小三个参数探索了模型性能与参数变化的关系。实验结果表明,在学习率lr=1e-3,单次更新步数nsteps=2048,批处理大小batch_size=128时,模型具有相对更好的性能表现。

本文所采用的强化学习模型始终贯彻着计算效率和存储开销间的平衡。诚然更大的网络隐藏层维度及更深的网络层数有可能带来更好的拟合效果,但复杂的网络结构面临着计算效率的降低及模型过拟合的风险。因此在实际应用中,如何权衡这两者间的关系也是不可忽视的问题。


图表40:TRPO_LSTM模型主要参数设置及影响分析

资料来源:“Generating Synergistic Formulaic Alpha Collections via Reinforcement Learning.” Shuo Yu等(2023),Wind,中金公司研究部


图表41:TRPO_LSTM模型样本外表现随因子池规模变化的趋势

注:1)超额收益相对基准为中证1000成分股等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部


图表42:TRPO_LSTM模型样本外表现随学习率变化的趋势

注:1)超额收益相对基准为中证1000成分股等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部

图表43:TRPO_LSTM模型样本外表现随单次更新中步数大小变化的趋势

注:1)超额收益相对基准为中证1000成分股等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部


图表44:TRPO_LSTM模型样本外表现随batch_size数量变化趋势

注:1)超额收益相对基准为中证1000成分股等权;2)样本区间为2021-03-01至2024-03-01;3)强化学习模型使用不同随机数初始化参数进行3次训练得到平均值

资料来源:Wind,中金公司研究部



附录



因子合成模块的损失函数及其推导


图7(B)的因子合成模块采用如下定义的损失函数。其中n表示股票的数量;表示回测所使用的数据集(指代股票在任意交易日的特征数量);k表示因子池中有效因子的数量;i和j分别表示因子池中有效因子表达式的索引,表示第i个因子的权重,表示第i个因子表达式在回测数据的输出结果;表示为第i个和第j个因子在回测数据的皮尔逊相关系数(当期的皮尔逊相关系数计算符表示为)平均值;表示第i个因子和目标收益率在回测数据的皮尔逊相关系数平均值(IC)。

该损失函数是由如下所示的原始公式演变得到,原始公式的含义为因子合成模块的输出()和预测目标(,即下期收益率)之间的均方误差,其中T为回测时间范围长度。

► 推导第一步:归一化后的因子输出方差为。本文对挖掘到的因子输出均采用了归一化操作(),使其均值为0,长度为1,该操作有效保证了因子合成环节因子表达式输出结果的量级一致。因此通过下述推导可得到归一化后的因子输出方差为。(为了表述简便,后文也使用u和v表示任意两个因子表达式的输出向量。)


► 推导第二步:任意两个因子的皮尔逊相关系数等于因子内积。

► 推导第三步:原始损失函数简化,有助于减少因子合成的计算量(简化后损失函数表达式不含)。


特征提取模块和强化学习模型


本文用到的特征提取模块主要有以下几种:LSTM (Long Short-Term Memory)、GRU (Gated Recurrent Unit) 和 Transformer 都是深度学习领域中用于处理序列数据的模型,特别是在自然语言处理 (NLP) 和时间序列预测等任务中应用广泛。其中LSTM和GRU是基于循环结构的序列模型,而Transformer则是基于注意力机制的模型。选择哪种模型取决于具体的任务需求以及计算资源等因素。

► LSTM (Long Short-Term Memory)

LSTM 是一种循环神经网络(RNN)的变种,设计用来解决传统RNN中的梯度消失和梯度爆炸问题。LSTM 中引入了三个门控结构:遗忘门(forget gate)、输入门(input gate)和输出门(output gate),以及一个细胞状态(cell state),这些门控结构帮助网络选择性地记住或忽略输入数据的不同部分。LSTM 的长期记忆特性使得它能够捕捉到序列中的长距离依赖关系,因此在处理长序列数据或需要长期记忆的任务上表现优异。

► GRU (Gated Recurrent Unit)

GRU 也是一种用于解决 RNN 中梯度消失和梯度爆炸问题的变种。与 LSTM 类似,GRU 也引入了门控结构,但相对于LSTM,它只有两个门:更新门(update gate)和重置门(reset gate)。GRU的设计更加简单,参数量较少,因此在一些轻量级的模型或资源受限的环境中表现更好。同时由于其较少的门控结构,GRU在一些任务上的表现也可以与 LSTM 相媲美。

► Transformer

Transformer是一种基于注意力机制的模型,被广泛应用于处理序列数据,尤其是在 NLP 中的翻译、摘要、文本生成等任务上取得了显著的成果。Transformer 不同于传统的 RNN 架构,它完全摒弃了循环结构,而是使用了注意力机制来实现序列之间的交互。Transformer 由编码器(Encoder)和解码器(Decoder)组成,每个编码器和解码器模块都包含多层自注意力层和前馈神经网络层。Transformer模型的并行计算和长距离依赖建模能力使其在处理长序列数据时具有较好的性能,同时也在一些NLP任务中取代了传统的RNN模型。

目前强化学习领域常用的模型类型主要有以下几种:A2C、PPO、TRPO、SAC和DDPG等。根据不同算法的特点,它们可被应用到不同场景下的任务中。

► TRPO(Trust Region Policy Optimization)

TRPO是一种基于策略梯度的强化学习算法,其特点在于使用信任域来约束策略更新,以确保每次更新不会引起显著的策略变化,从而保证了策略优化的稳定性。然而,由于需要解决一系列的优化问题来确保策略的更新在信任域内,TRPO在计算开销上较大,但具有良好的稳定性。在对资源开销和计算效率不敏感的任务中,TRPO可以发挥较大的价值。

► PPO(Proximal Policy Optimization)

PPO旨在解决TRPO较高计算复杂度的问题,通过使用代理损失函数来近似 KL 散度,并且使用剪切或投影来确保策略更新不会太远离当前策略。这使得 PPO 在训练效率和计算开销之间取得了良好的平衡。因此PPO的主要优点在于简单使用以及良好的训练效率。在考虑计算开销的前提下,PPO具有更高的性价比。但其性能可能略逊于 TRPO。

► A2C(Advantage Actor-Critic)

A2C是Actor-Critic架构下较为经典的一类算法,结合了策略梯度方法和值函数估计。该方法同时更新策略网络和价值网络的参数,利用并行更新来提高计算效率。它还使用了优势函数来估计动作的优势值,从而更准确地指导策略的更新。A2C 在稳定性和学习速度方面表现良好,但对随机初始化的参数(利用随机数种子控制)较为敏感。

► SAC(Soft Actor-Critic)

SAC是一种基于最大熵理论的Actor-Critic算法,通过引入熵的概念来鼓励策略的探索性,同时采用软更新值函数来提高训练的稳定性。SAC在处理连续动作空间和高维状态空间的环境中表现良好。然而将其应用于离散行为空间下的因子范式挖掘任务中时,实验结果表明SAC模型表现较差,与本文任务适配度十分有限。

► DDPG(Deep Deterministic Policy Gradient)

DDPG是基于Q-Learning的Actor-Critic算法。与传统的随机策略梯度方法不同,它采用确定性策略(即给定状态下总是产生同一个动作),在连续动作空间问题中更为高效。通过引入“重放缓冲区”来随机抽样过去的经验进行学习,有助于打破时间相关性并稳定训练。尽管其在样本效率上有待提高,但仍可能需要大量样本才能收敛。考虑到该方法只适用于连续型动作空间以及策略缺乏随机性的特点,本文并未将其应用于因子范式挖掘任务中。


[1]FinRL: Deep reinforcement learning framework to automate trading in quantitative finance.

[2]StockFormer: Learning hybrid trading machines with predictive coding.

[3]“Generating Synergistic Formulaic Alpha Collections via Reinforcement Learning.” Shuo Yu等(2023).



文章来源

本文摘自:2024年4月6日已经发布的《机器学习系列(1):使用深度强化学习模型探索因子构建范式

分析员 周萧潇 SAC 执业证书编号:S0080521010006 SFC CE Ref:BRA090

分析员 郑文才 SAC 执业证书编号:S0080523110003 SFC CE Ref:BTF578

联系人 陈宜筠 SAC 执业证书编号:S0080122080368 SFC CE Ref:BTZ190

分析员 刘均伟 SAC 执业证书编号:S0080520120002 SFC CE Ref:BQR365



法律声明

向上滑动参见完整法律声明及二维码

特别提示

本公众号不是中国国际金融股份有限公司(下称“中金公司”)研究报告的发布平台。本公众号只是转发中金公司已发布研究报告的部分观点,订阅者若使用本公众号所载资料,有可能会因缺乏对完整报告的了解或缺乏相关的解读而对资料中的关键假设、评级、目标价等内容产生理解上的歧义。订阅者如使用本资料,须寻求专业投资顾问的指导及解读。

本公众号所载信息、意见不构成所述证券或金融工具买卖的出价或征价,评级、目标价、估值、盈利预测等分析判断亦不构成对具体证券或金融工具在具体价位、具体时点、具体市场表现的投资建议。该等信息、意见在任何时候均不构成对任何人的具有针对性的、指导具体投资的操作意见,订阅者应当对本公众号中的信息和意见进行评估,根据自身情况自主做出投资决策并自行承担投资风险。

中金公司对本公众号所载资料的准确性、可靠性、时效性及完整性不作任何明示或暗示的保证。对依据或者使用本公众号所载资料所造成的任何后果,中金公司及/或其关联人员均不承担任何形式的责任。

本公众号仅面向中金公司中国内地客户,任何不符合前述条件的订阅者,敬请订阅前自行评估接收订阅内容的适当性。订阅本公众号不构成任何合同或承诺的基础,中金公司不因任何单纯订阅本公众号的行为而将订阅人视为中金公司的客户。

一般声明

本公众号仅是转发中金公司已发布报告的部分观点,所载盈利预测、目标价格、评级、估值等观点的给予是基于一系列的假设和前提条件,订阅者只有在了解相关报告中的全部信息基础上,才可能对相关观点形成比较全面的认识。如欲了解完整观点,应参见中金研究网站(http://research.cicc.com)所载完整报告。

本资料较之中金公司正式发布的报告存在延时转发的情况,并有可能因报告发布日之后的情势或其他因素的变更而不再准确或失效。本资料所载意见、评估及预测仅为报告出具日的观点和判断。该等意见、评估及预测无需通知即可随时更改。证券或金融工具的价格或价值走势可能受各种因素影响,过往的表现不应作为日后表现的预示和担保。在不同时期,中金公司可能会发出与本资料所载意见、评估及预测不一致的研究报告。中金公司的销售人员、交易人员以及其他专业人士可能会依据不同假设和标准、采用不同的分析方法而口头或书面发表与本资料意见不一致的市场评论和/或交易观点。

在法律许可的情况下,中金公司可能与本资料中提及公司正在建立或争取建立业务关系或服务关系。因此,订阅者应当考虑到中金公司及/或其相关人员可能存在影响本资料观点客观性的潜在利益冲突。与本资料相关的披露信息请访http://research.cicc.com/disclosure_cn,亦可参见近期已发布的关于相关公司的具体研究报告。

本订阅号是由中金公司研究部建立并维护的官方订阅号。本订阅号中所有资料的版权均为中金公司所有,未经书面许可任何机构和个人不得以任何形式转发、转载、翻版、复制、刊登、发表、修改、仿制或引用本订阅号中的内容。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/168877
 
306 次点击