在深度学习领域,回归任务是指预测连续型变量的任务,例如预测房价、气温或用户评分等。为了评估模型预测值与真实值之间的差异,我们需要定义一个损失函数。损失函数不仅用于评估模型性能,还作为优化算法的目标函数,通过最小化损失函数来调整模型参数,使模型更好地拟合数据。
在金融时序回归问题中,通常采用的MSE作为损失函数,除此之外,还有一些在金融预测中效果较好的损失函数。
根据损失函数的类型,大致可以分为三类,分别为单样本类损失函数,主要通过单一样本计算损失函数,常见的MSE,MAE,MAPE等拘束于此类, 第二类为分位数损失函数,需要模型预测不同的分位数结果进行加权,第三类为Batch类损失函数,信息系数IC即属于此类,通常将同一日的所有股票作为一个样本计算IC作为损失函数。
损失函数介绍
单样本类
1. 均方误差(Mean Squared Error, MSE)
均方误差是回归任务中最常用的损失函数之一。它计算的是预测值与真实值之间差值平方的平均值。MSE的数学定义如下:
其中, 是真实值, 是模型预测值, 是样本数量。MSE的一个显著特点是它对较大的预测误差给予了更大的惩罚,因为误差是平方的。这一特性使得MSE
对异常值非常敏感,可能导致模型在训练过程中过分关注这些异常值,从而影响整体性能。
2. 平均绝对误差(Mean Absolute Error, MAE)
平均绝对误差是另一种常用的回归损失函数。MAE计算的是预测值与真实值之间差值绝对值的平均值。MAE的数学定义如下:
与MSE
相比,MAE
对异常值的敏感度较低,因为它只计算误差的绝对值。因此,当数据集中存在异常值时,使用MAE
可以得到更加稳定的模型训练过程。
3. 平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)
平均绝对百分比误差计算的是预测值与真实值之间差异的百分比的平均值。MAPE
的数学定义如下:
MAPE
的一个主要优点是它对不同规模的数据具有良好的可比性,因为它是基于百分比的误差度量。然而,当真实值接近于零时,MAPE可能会变得非常大甚至无限大,因此在使用时需要注意避免这种情况。
4. Huber损失(Huber Loss)
Huber损失结合了MSE和MAE的优点,既保持了对异常值的鲁棒性,又能在误差较小时提供更快的收敛速度。Huber损失的定义如下:
其中, 是预测误差, 是一个阈值,用来区分线性和二次损失的区域。当误差小于时,Huber损失类似于MSE;当误差大于时,则类似于MAE。因此,Huber损失在处理异常值时表现良好,同时也能保证模型的快速收敛。
分位数类
分位数损失(Quantile Loss)是一种用于回归任务中的损失函数,特别适用于当关注于预测分布的特定分位数时。与传统的均方误差(MSE)或平均绝对误差(MAE)不同,分位数损失允许模型优化目标针对不同的分位点,从而提供关于整个预测分布的信息,而不仅仅是集中趋势。在一些SOTA模型(例如TFT)以及金融预测模型中都有使用
1. Quantile Loss
对于给定的分位数 (),分位数损失定义为:
这里 是观测值, 是预测值。根据这个定义,我们可以看到:
-
当真实值 大于预测值 时,即低估了实际值,损失是 倍的差值。
-
当真实值 小于或等于预测值 时,即高估了实际值,损失是 倍的差值。
特点
-
灵活性:通过调整 的值,可以控制模型对过高估计和过低估计的不同敏感程度。例如,如果 ,则分位数损失等同于 MAE,因为此时对高估和低估的惩罚相同。
-
鲁棒性:分位数损失在处理异常值方面比 MSE 更具鲁棒性,因为它不是基于误差的平方。
-
非对称性:分位数损失能够捕捉到数据分布的不对称性,并且可以根据需要调整来关注分布的不同部分。
应用场景
- 风险管理:在金融领域,可能更关心极端事件的风险,如市场崩盘或极端天气事件的概率。使用较低或较高的分位数(例如 或 )可以帮助评估这些风险。
2. HuberMQLoss
HuberMQLoss
是一种结合了 Huber 损失的鲁棒性和多分位数损失(Multi-Quantile Loss)的预测准确性的损失函数。
HuberMQLoss 定义和特点
-
HuberMQLoss 是对多分位数损失函数的修改版本,它结合了分位数损失和 Huber 损失的优点。
-
这种损失函数特别适用于处理包含异常值或重尾分布的数据的回归任务。
-
通过
delta
参数控制鲁棒性和预测精度之间的权衡。 -
根据
level
或quantiles
参数,该损失函数更加关注不同分位数的低估或高估。
HuberMQLoss 公式
其中,HuberQL
是 Huberized Quantile Loss,它以非对称的方式测量 Huber 损失,根据分位数参数 q
更多地关注低估或高估。
HuberMQLoss 参数
-
level
: 预测区间的概率水平列表,默认为中位数。 -
quantiles
: 作为level
的替代,直接从y
分布中估计的分位数列表。 -
delta
: 指定在哪个阈值下从 delta-scaled L1 损失转换为 L2 损失的参数。 -
horizon_weight
: 为预测窗口的每个时间戳指定权重的张量。
HuberMQLoss 应用
-
鲁棒性:通过 Huber 损失部分,
HuberMQLoss
对异常值具有鲁棒性,减少了异常值对模型预测的影响。 -
多分位数关注:通过多分位数损失部分,
HuberMQLoss
能够同时关注预测分布的不同分位数,提供了对预测不确定性的更全面评估。
Batch类
1.IC
IC 即 Spearman 相关系数(Spearman’s Rank Correlation Coefficient),通常简称为 Spearman ρ (rho),是一种非参数统计方法,用于衡量两个变量之间的单调关系强度。与皮尔逊相关系数不同,它不假设数据之间存在线性关系,而是基于变量值的秩次(即排序后的顺序)来计算。因此,Spearman 相关系数特别适用于评估那些可能不是线性但具有单调递增或递减趋势的关系。
定义
对于给定的两组数据 和 ,首先将它们转换为各自的秩次(即在各自数据集中的顺序排名)。然后,Spearman 相关系数 可以通过以下公式计算:其中,
-
是 和 中第 个元素的秩次差。
-
是样本数量。
或者,也可以使用皮尔逊相关系数的形式来定义,基于秩次而非原始值:这里,
-
和 分别是 和 的秩次。
-
是 和 的协方差。
-
和 分别是 和 的标准差。
特点
-
非参数性:Spearman 相关系数不要求数据符合特定的概率分布,也不要求数据之间存在线性关系。
-
鲁棒性:由于基于秩次计算,对异常值具有较好的鲁棒性。
-
适用范围广:可以用于连续型、序数型甚至部分名义型数据(当名义数据能够合理地被排序时)。
-
检测单调关系:能有效识别并量化两个变量之间的单调递增或递减关系,无论是线性的还是非线性的。
2. CCC
Concordance Correlation Coefficient (CCC) 是一种用于衡量两个变量之间一致性或一致程度的统计量。它不仅考虑了两组数据之间的相关性,还考虑了它们的均值和方差的一致性。因此,CCC 比单纯的相关系数(如皮尔逊相关系数)提供了更全面的信息,特别是在评估预测模型性能时。在九坤的kaggle比赛中曾有top组采用此方案。
CCC 的定义
给定两组数据 和 ,CCC 定义为:其中,
-
是 和 之间的皮尔逊相关系数。
-
和 分别是 和 的标准差。
-
和 分别是 和 的均值。
从定义可以看出,CCC 不仅考虑了 和 之间的线性相关性(通过 ),还考虑了它们的变异性(通过 和 )以及位置差异(通过 )。当且仅当 和 完全相同的时候,CCC 才能达到最大值1;而当两者完全不相关或存在显著的位置和尺度差异时,CCC 将接近0。
特点
-
全面评价:CCC 同时考虑了相关性、变异性和位置差异,提供了一个更加全面的评估指标。
-
适用于回归任务:特别适合于那些不仅要求预测准确,而且希望预测结果与实际观测保持一致性的回归问题。
-
对异常值敏感度较低:相对于简单的相关系数,CCC 对异常值的影响较小,因为它考虑到了数据的整体分布特性。
QuantML-Qlib实现
常见的损失函数如MSE均可以按照标准做法实现,不存在技术难度,主要对于mqloss以及batch类损失函数,在实现时需要对输入数据或者数据输出格式做出相应的改变。
首先对于mqloss类函数,由于需要拟合预测的分布情况,需要设置不同的分位数预测值,预测结果不仅可以为1维,也可以是多维数据,需要在最后的fc 层进行相应的设置。
对于batch类,由于与传统的sample构建方式不同,这里我们重新定义了TSDateSampler
,利用index_map轻松将数据转换为以日期构建样本(hints: 单日数据作为样本势必导致总样本数量大幅减少,这里可以使用bootstrap增加样本数量,有兴趣可以自行尝试实现),再结合相应的IC或者CCC损失函数进行优化。
具体实现案例在qlib/contrib/model/pytorch_gru_ts.py
,仅需在config文件中设置相应的loss函数(loss: ccc)即可。
(QuantML-Qlib目前已融入了各类SOTA模型以及因子,支持多种底层数据库直接读取,更多功能欢迎加入测试)
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈