林晓明 S0570516010001
SFC No. BPY421 研究员
李子钰 S0570519110003
SFC No. BRV743 研究员
何 康 S0570520080004
SFC No. BRB318 研究员
报告发布时间:2022年01月09日
摘要
人工智能系列 52:初步探索基于神经网络的组合优化
在基于因子的量化投资流程中,因子生成、多因子合成、组合优化是三个重要步骤。组合优化一般是指通过凸优化方法将收益预测转换为资产权重的步骤,本文将尝试把组合优化融入到神经网络中,构建端到端的量化投资框架, 该框架输入资产的原始数据,通过神经网络进行特征提取和合成,再通过可传播梯度的凸优化层(如CvxpyLayers)优化得到资产权重,目标函数可直接定义为资产组合的收益率或其他指标,并以该目标优化整个神经网络。本文以资产配置中的风险预算模型为例,测试了基于神经网络的组合优化效果。在合理限制下,模型在两组资产配置测试中均能获得更好的收益表现。
CvxpyLayers能突破传统组合优化方法的局限
相对于因子生成和多因子合成,传统组合优化方法是一个独立的过程,不能传播梯度,因此无法借助神经网络进行端到端的优化,可能会有以下局限:(1)无法通过端到端的方式影响到组合优化的输入(如预期收益、风险预算);(2)组合优化中的参数(如风险厌恶系数)只能通过遍历的方式来确定;(3)一般只进行单期优化。CvxpyLayers在Cvxpy的基础上,将凸优化过程作为网 络层嵌入到神经网络中,使得梯度传播成为可能,从而具有突破以上局限的潜力。CvxpyLayers项目目前由斯坦福大学凸优化研究组维护。
本文介绍了三个使用CvxpyLayers进行组合优化的案例及代码
针对量化投资可能涉及的不同组合优化场景,本文介绍了三个使用CvxpyLayers进行组合优化的案例,并提供相关问题的凸优化形式证明。具体包含:(1)Softmax函数的凸优化形式;(2) 风险预算模型的凸优化形式;(3)马科维茨模型。其中Softmax函数和风险预算模型的凸优化形式均采用 拉格朗日乘子法进行证明。本文也给出了以上三个案例的样例代码。
本文介绍了基于CvxpyLayers的风险预算模型构建细节
实证方面,本文构建了两个基于CvxpyLayers的风险预算模型:(1)因子模型FactorModel:人工构建大类资产因子,然后输入神经网络映射为风险预算,再对接CvxpyLayers优化得到资产权重。FactorModel整合了因子合成和组合优化两个步骤。(2)端到端模型LSTMModel:直接将大类资产的原始日频收益率数据输入神经网络的LSTM层映射为风险预算,再对接CvxpyLayers优化得到资产权重。两个模型都以最大化组合收益作为预测目标,并通过反向传播动态学习更优的风险预算。LSTMModel整合了因子挖掘、因子合成和组合优化三个步骤。
基于CvxpyLayers的模型在两组资产配置测试中均能获得更好的收益表现
我们选取国内外比较典型的股票、债券、商品大类资产指数,测试基于CvxpyLayers的风险预算模型在国内外资产配置和国内资产配置的表现,对比基准为风险平价模型。在对风险预算的上下限进行合理限制后,FactorModel和LSTMModel均能相对基准获得更好的收益表现。我们进一步分析LSTMModel的超额收益来源,可知在国内外资产配置中,标普500和彭博贵金属子指数的偏配是主要的超额收益来源;在国内资产配置中,中证500和SGE黄金9999的偏配是主要的超额收益来源。
风险提示:通过神经网络构建的资产配置策略是历史经验的总结,存在失效的可能。神经网络受随机性影响较大,可解释性较低,使用需谨慎。
将组合优化融入端到端的神经网络框架中
华泰金工人工智能系列报告致力于将人工智能方法应用于量化投资的各个流程环节。如图表1所示,在基于因子的量化投资流程中,因子生成、多因子合成、组合优化是三个重要步骤。传统的机器学习方法(遗传规划、随机森林等)能针对单个步骤提供改进方案。但在分 开执行不同步骤时,可能会存在目标函数不一致、信息损耗的问题。为了实现多个步骤的端到端(end to end)优化,需要借助神经网络和深度学习。我们在《人工智能 32:AlphaNet:因子挖掘神经网络》(2020.6.14)中构建了深度学习模型 AlphaNet,能实现端到端的因子挖掘和因子合成,但尚未将组合优化纳入。
本文将关注如何将组合优化也融入到神经网络和深度学习中,从而打通量化投资的三个步骤,实现全流程的端到端优化。具体而言我们将借助CvxpyLayers,在进行凸优化的同时传播梯度。在一个理想的端到端神经网络框架中,输入资产的原始数据,通过神经网络进行特征提取和合成,再通过CvxpyLayers优化得到资产权重,目标函数可直接定义为资产组合的收益率或其他指标,并使用该目标函数优化整个神经网络。
基于神经网络的组合优化工具:CvxpyLayers
传统组合优化方法的局限
我们以马科维茨模型为例,来说明传统组合优化方法:
式中
评论留言