社区所有版块导航
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):使用深度强化学习模型探索因子构建范式

中金点睛 • 3 月前 • 411 次点击  

中金研究

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

点击小程序查看报告原文


Abstract

摘要



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


作为机器学习重要的发展分支之一,不论是在近几年讨论度较高的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)来估计策略梯度,并且结合了值函数的估计来减小方差,该设计使其对于奖励函数中的噪声和估计误差敏感性降低。


风险


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


Text

正文


量化领域下的强化学习




为什么选择强化学习模型


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


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


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


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


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


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


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


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


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

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


如何寻找因子的构建范式




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


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


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

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


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


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

注:(A) 一个生成表达式的Alpha生成器,通过策略梯度算法进行优化。(B) 一个维护主要因子加权组合的组合模型,同时提供评估信号以指导生成器。
资料来源:“Generating Synergistic Formulaic Alpha Collections via Reinforcement Learning.” Shuo Yu等(2023),中金公司研究部



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


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


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


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


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


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


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

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


TRPO+LSTM:兼顾收益与稳定




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


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


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

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



强化学习性能与透明度更优


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


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

注:1)样本区间为2021-03-01至2024-03-01;2)强化学习及遗传算法模型均使用不同随机数初始化参数进行3次训练得到平均值
资料来源:Wind,中金公司研究部



模型的参数敏感度分析


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


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


TRPO使用了信任域优化的方法,通过限制策略更新的步幅,确保策略改进过程的平滑和稳定,从而减少了因大幅度更新而导致的性能崩溃的风险。


TRPO在每次更新时会自适应地调整步长(或学习率),以保持策略更新在信任域内。由于它会自动调整步长以满足KL散度的约束,该算法对学习率不是特别敏感。


TRPO优化的目标函数使用了广义优势估计(GAE)来估计策略梯度,并且结合了值函数的估计来减小方差。该设计使其对于奖励函数中的噪声和估计误差敏感性降低。


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


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

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


Source

文章来源

本文摘自:2024年4月7日已经发布的《机器学习系列(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


Legal Disclaimer

法律声明

特别提示

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

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

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

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

一般声明

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

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

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

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

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