社区所有版块导航
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学习  »  机器学习算法

基于新型收益加权损失函数的深度学习模型

QuantML • 2 月前 • 70 次点击  

1.  引言:金融决策的挑战与人工智能的崛起

在瞬息万变且波动剧烈的股票市场中,持续做出有利可图的金融决策一直是一项艰巨的任务。长期以来,金融专业人士致力于构建理论模型来预测价格走势和评估证券价值,其中最著名的当属资本资产定价模型(CAPM)和有效市场假说(EMH)。这些理论为后续研究奠定了基础,并催生了诸如三因子模型、四因子模型和五因子模型等更为复杂的模型。

近年来,人工智能(AI)在资产定价领域的应用日益广泛。尽管深度学习模型因其“黑箱”特性而缺乏可解释性,但其在金融行业的地位却不断巩固。本文旨在进一步提升人工智能在金融领域的潜力和实用性,具体方法是引入一种基于收益加权的损失函数。该函数旨在推动顶尖增长机会的捕捉,同时向机器学习模型提供有限的信息。

2.  核心目标:构建高效日交易系统,捕捉顶尖增长机会

本文的研究目标明确,即构建一个高效日交易系统,该系统能够利用公开可用的股票数据(开盘价、收盘价、最高价、最低价、交易量、板块信息)以及基于这些数据构建的若干技术指标,检测出顶尖的增长机会。具体而言:

  • 输入数据:  对于每只股票,模型接收一个二维矩阵作为输入,矩阵大小为 ,其中  是特征数量, 是特征回溯的天数。换句话说,模型在预测第  天的行动时,会考虑从第  天到第  天的特征时间序列。

  • 输出分数:  该分数用于对第  天的所有股票进行排名,以确定在第   天开盘时买入并持有至至少第  天开盘时的有利程度。分数计算分为两个步骤:

  1. 概率分布映射:  首先,模型将输入数据  映射到 5 个标签(强卖、卖、持有、买、强买)的概率分布 。这一步可以通过线性回归或卷积神经网络(CNN)模型实现,具体将在第 4 节中详细讨论。
  2. 分数计算:  然后,将预测的概率分布  与向量  进行点积,得到每只股票的分数。最后,根据分数对股票进行排名。

3.  数据管理:数据来源、处理与标准化

3.1 数据来源与处理

  • 数据来源:  本研究的数据来自公开的雅虎财经数据库,包括每日股票价格(开盘价、收盘价、最高价、最低价)、交易量数据和板块信息。
  • 数据筛选:  为了避免因交易量过低导致订单无法及时执行的问题,研究人员首先剔除了平均每日美元交易量低于 1000 万美元的股票。此外,对于在选定时间段内价格和交易量出现显著下降的股票,研究人员手动将其每日回报率设置为 0,并将其视为“死亡”股票。这些股票仍然保留在数据集中,但不会对损失函数或模拟结果产生显著影响。
  • 时间范围选择:  为了涵盖 2008 年金融危机及其余波、2020 年新冠疫情以及 2022 年左右因高通胀、经济衰退担忧和地缘政治因素导致的市场波动加剧,研究人员选择了 2006-2010 年和 2019-2024 年两个时间段。

3.2 特征工程

  • 特征集构建:  研究人员从价格和交易量数据中构建了两组特征:
    • 基本特征:  包括动量指标和基本统计数据,如移动平均线和标准差。
    • 技术特征:  从技术分析(TA)库中获取的一组更复杂的技术指标,如随机 RSI、随机振荡器、动量振荡器等。
  • 特征数量限制:  为了提高资源利用效率,研究人员限制了每组特征的数量,最终总共只有 12 个基本特征和 16 个技术特征。
  • 特征选择:  研究人员首先广泛选择技术特征,然后删除与现有特征高度相关的特征。

3.3 数据标准化与训练设置

  • 标准化方法:  研究人员采用固定大小的移动窗口进行训练、验证和测试。标准化集包含训练/验证集之前 200 天的数据。对于训练/验证和测试集中的每个特征 ,其标准化值为:

    其中, 和  分别表示特征  在标准化集上的均值和标准差。

  • 训练/验证/测试划分:  训练/验证集跨度为 200 天,测试集包含紧随其后的 20 天。每 20 个交易日形成一个测试周期。在下一个测试周期,所有数据集向前移动 20 天,并保持其大小不变。

  • 数据分布:  研究人员采用时间维度的标准化方法,旨在充分利用股票数据的时间序列特性。这种方法与使用横截面数据进行预测的研究不同,后者通常进行归一化并将横截面特征排名映射到预定的区间。

4.  方法论:新型损失函数与模型架构

4.1 新型损失函数

  • 传统损失函数局限性:  传统的均方误差(MSE)损失函数在处理资产定价任务时存在局限性,例如对异常值敏感、无法有效捕捉股票收益的非线性关系以及无法区分不同预测误差的金融影响。

  • 交叉熵损失函数问题:  交叉熵(CE)损失函数虽然擅长分类任务,但会将错误分类同等对待,即使它们具有截然不同的金融影响。例如,将“强卖”和“持有”错误分类会导致相同的交叉熵损失。

  • 新型损失函数:  为了解决上述问题,研究人员提出了一种基于收益加权的损失函数,其公式为:

    其中, 和  分别表示真实标签和预测概率分布,CE 表示交叉熵,  是每日百分比回报率的截断版本,定义如下:

    该损失函数通过将交叉熵损失与收益的绝对值相乘,使得模型在训练过程中更加关注那些具有高增长潜力和高风险损失的股票。

4.2 模型架构

  • MLP/DNN 模型:  多层感知器(MLP)和深度神经网络(DNN)因其数据准备和实现相对简单而被广泛应用于金融领域。然而,它们只能处理一维输入,无法有效利用数据的更高维结构。
  • 行业embedding:  为了将静态的分类行业数据与连续的时间序列特征数据相结合,研究人员将行业的一维独热向量嵌入到 28 维空间,并将嵌入矩阵与模型的其他参数一起训练。这种方法类似于 Transformer 模型中使用的位置嵌入,但在此应用中,嵌入与时间点无关。
  • CNN 模型:  卷积神经网络(CNN)最初用于处理图像数据。在本研究中,研究人员对时间维度执行一维卷积,以捕捉每个特征随时间变化的趋势。由于无法合理地对特征进行排序以使所有相邻特征相互影响,因此不对特征进行卷积。
    • 模型架构:  在行业嵌入被添加到输入数据后,数据通过多个没有时间维度的填充的 Keras 一维卷积层,从而减少时间维度并增加特征维度。最终,通过全局平均池化层去除时间维度,然后将结果传递给一系列全连接层。模型输出每个股票在五个可能标签(强卖、卖、持有、买、强买)上的概率分布。
    • 训练策略:  研究人员训练了三个独立的模型,并采用两种方法将它们组合成最终模型进行测试。第一种方法是一个简单的集成,使用三个模型的预测平均值。第二种方法是专家混合模型,根据每个模型的过往表现动态分配权重。
  • 其他损失函数:  为了比较新损失函数与传统的 MSE 和 CE 损失函数的表现,研究人员设置了更多具有相同架构的 CNN 模型,但这些模型使用 MSE 损失函数时输出为一维。

5.  性能分析:模型评估与结果展示

5.1 收益分析

  • 模型表现:  所有模型的表现都优于等权重市场基准。尽管最终投资组合价值不同,但所有 CNN 模型在两个时间段内都表现出持续的增长潜力,这归因于在第二个测试周期及以后的学习率重置策略。
  • 收益与风险调整收益:  在收益和风险调整收益(夏普比率)方面,新损失函数的表现优于其他传统损失函数,尤其是在 2019-2024 年期间。新损失函数还显示出较小的最大回撤和更快的恢复时间,即使在 2008 年金融危机和 2020 年新冠疫情的艰难时期也是如此。
  • 统计显著性:  统计分析表明,新损失函数的优势在近期不太可能是偶然的。在 2019-2024 年期间,新损失函数的 CNN 模型具有最高的夏普比率 1.18 和最高的年回报率 61.73%,并且其  值和  值表明其收益具有统计显著性。

5.2  其他分析

  • 最大回撤与恢复时间:  新损失函数的最大回撤值最小,分别为 2005-2010 年期间的 -58.86% 和 2019-2024 年期间的 -30.99%,表明新方法具有更好的资本保值能力。新损失函数的恢复时间也最短,在 2008 年经济危机期间仅需 185 天,而其他方法中最快的需要 422 天。
  • 集成策略:  研究人员模拟了一个包含所有使用新损失函数训练的专家混合模型(2019-2024 年期间 8 个,2006-2010 年期间 6 个)的等权重策略,以增加投资组合的持有能力并避免任何可能的个体模型偏差。集成策略的夏普比率(2005-2010 年期间为 0.79,2019-2024 年期间为 1.08)比研究人员生成的最佳模型低 0.1-0.2,表明该方法具有显著的稳定性。

6.  结论与未来方向

本论文构建并测试了一个高效日交易系统,该系统利用新型损失函数来捕捉顶尖增长机会。研究人员将行业嵌入添加到特征维度中,对时间维度执行一维卷积,使用全连接层达到概率分布输出,并使用新型收益加权损失函数对模型进行训练。在每个重新训练周期,研究人员重置学习率,使模型能够适应不断变化的市场条件。通过专家混合模型集成来组合各个模型并提高稳定性。

在收益和风险调整收益方面,新损失函数的表现优于其他传统损失函数,尤其是在 2019-2024 年期间。新损失函数还显示出较小的最大回撤和更快的恢复时间,即使在 2008 年金融危机和 2020 年新冠疫情的艰难时期也是如此。统计分析表明,新损失函数的优势在近期不太可能是偶然的。

未来研究方向包括:

  • 引入更多特征:  例如基本面特征(如市盈率、每股收益和市值)和文本输入(如新闻稿和 10-K 报告),以进一步提高模型性能。
  • 应用注意力机制:  当有更多输入来源时,特别是结构化数据(如新闻文章),注意力机制无疑是下一步。
  • 探索其他模型架构:  例如结合 CNN 和双向 LSTM 的模型,以捕捉更复杂的特征关系。
  • 更深入地分析模型预测:  例如通过可解释性技术来理解模型决策过程。

总而言之,本研究为将实际金融影响纳入模型构建提供了新的思路,并提高了机器学习模型在金融市场的实用性。





代码见星球,加入QuantML星球,与750+专业人士一起交流学习:


往期回顾

       QuantML-Qlib开发版:



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