作者:随机森林之外
题图:随机森林之外微信公众号

但在机器学习量化中,一些高度过参数化的模型,样本外表现并没有随复杂度上升而迅速崩溃。
问题是,没有崩溃,并不意味着我们已经知道模型为什么有效。
一段出色的样本外净值,最多说明这套规则在一段未参与拟合的数据上赚过钱,却没有回答钱是怎么赚的。
2024 年,Kelly 等人把这个问题推到了一个更极端的设定。
他们只用 12 个月的滚动训练窗口,却通过随机傅里叶特征(RFF)把少量预测变量扩展到上万个。按照传统的过拟合直觉,这样的组合并不让人乐观。结果,模型没有如预想中迅速失效,反而表现出可观的市场择时能力。
这种看似反常的结果,也有一个很形象的名字:“复杂性之德”(The Virtue of Complexity in Return Prediction)。
而真正值得讨论的,也恰恰从这个漂亮的结果开始。
模型没有崩,也确实赚到了钱。可这些收益究竟来自新的预测信息,还是复杂模型用另一种方式,重新实现了我们已经知道的东西?

▾没崩溃 ≠ 发现了信号
过参数化模型为何没有如预期般迅速失效,现代机器学习已经给出了一部分答案。
双下降与良性过拟合表明,即使模型拟合了训练噪声,样本外误差也未必随着参数增加而持续恶化。
但模型不崩溃,并不自动带来新的预测信息。
Guo 等人(2026)从另一个角度检验复杂模型的价值——它能不能真正超过简单基准?
在ridgeless模型中,可以观察到明显的双下降。但加入正则化之后,ridge 的表现始终更好,只是随着过参数化程度越来越高,两者的差距逐渐缩小。最终,无论 ridge 还是 ridgeless,都没有稳定超过简单的历史均值基准。
模型可以不崩,却未必因此比简单方法做得更好。
要把这两件事分开,我们需要一个真正可比的基准。复杂模型的价值,不能只看它自己赚了多少,还要看:相对于一个合理的简单策略,它究竟多带来了什么?
▾它可能只是重新实现了动量
2025 年,Nagel 对前面提到的 RFF 做了一次很有意思的拆解。
当特征数远多于训练样本时,RFF 预测可以近似理解为历史收益的加权平均,权重取决于当前变量与历史状态的相似程度。
如果训练窗口很短,而宏观变量又高度持续,“状态相似”就很容易接近“时间相邻”。一个看起来高度非线性的预测器,最后可能走回了我们熟悉的地方:近期收益加权,再叠加一层波动率择时。
当然,这个解释有明确的边界。它依赖短训练窗口和高持续性的预测变量,不能直接推广到所有过参数化模型。而且即使与 12 个月时间序列动量相比,模型仍然表现出一定的增量。
这就留下了一个更具体的问题:如果模型与动量高度相似,却又没有完全被动量解释,剩下的差异究竟来自哪里?
表现得像动量,不等于背后的机制就是动量。额外的信息可能来自预测变量本身,也可能来自模型结构对某类交易规则的偏好。只比较最终收益,还不足以把两者分开。
一个直接的做法是,比较复杂模型与简单动量的预测、仓位和收益相关性,再控制动量与波动率择时,看还有多少增量 alpha 留下来。
但历史数据里的相关性仍然很难告诉我们,这种相似究竟从哪里来。把数据生成机制从动量换成反转,结果会更有辨识力。如果模型仍然倾向构造类似动量的策略,并因此表现恶化,那么历史上的优势就未必完全来自对市场结构的学习,也可能是模型本身的结构偏好。
即便最后发现,复杂模型主要是在重新实现已有策略,也不意味着增加的复杂度没有价值。

新的预测信息只是价值的一种来源。模型也可能改善仓位配置和风险控制,或通过降低换手、交易成本和回撤,让同一个信号变得更容易交易。此时真正发生变化的,不是我们发现了一个新的 alpha,而是原有信号被更有效地转化成了策略收益。
要知道改善究竟发生在哪里,可以把模型放回完整的策略链路里,逐个替换其中的模块:

单模块替换看到的仍然只是局部贡献。如果新的预测器同时改变了输出尺度、尾部特征和交易频率,风险模块面对的输入也会跟着变化。这时还需要组合实验或消融,把模块之间的交互与单项贡献分开。
而归因最终取决于我们选择了什么作为基准。基准不同,同一套模型被识别出来的“增量”也可能不同。
▾CTA 里的 ML 在做什么?
在 CTA 策略里,机器学习(ML)并不总是在做同一件事。
有时它直接预测收益或方向,有时趋势信号本身并没有改变,ML 只是负责过滤、仓位调整、风险控制或执行。放在不同的位置,模型需要证明的东西也不一样。
这也是为什么股票择时中的 RFF 结论不能直接搬到期货趋势策略上。预测对象、持仓期限和交易结构都不一样。我们真正可以迁移的,是背后的验证原则:先明确 ML 在系统里承担什么角色,再决定它该和谁比。
从这个角度看,ML 大致有两种角色。
一类是优化型 ML。它保留原有的趋势方向,只负责过滤、仓位调整、风险控制或执行。此时的研究问题不是“它有没有发现新的趋势信号”,而是相对于未经 ML 改造的同一个策略原型,它有没有改善成本、回撤、容量或风险调整收益。
另一类是替代型 ML。模型直接预测未来收益或方向,试图替代原来的趋势信号。此时趋势、carry、波动率择时这些已有机制都应该成为对照。控制这些暴露之后仍然留下稳定的样本外增量,才更有理由把改善归入新的预测信息。
同样是样本外表现改善,发生在这两类模型里,含义可能完全不同。前者的价值可能来自风险控制或策略实现,后者才涉及新的预测信息。ML 承担的角色不同,判断增量的基准也应该不同。

当然,问题不只在于模型和谁比较。一个预测短期收益的模型,即使预测精度有所提高,也可能因为频繁减仓,让长期趋势策略过早退出真正的大行情。此时的问题未必是模型“学到了噪声”,也可能只是模型做对了它被要求做的事,却没有做对策略真正需要的事。
判断 ML 带来的增量,最终还是要回到策略本身。持仓周期、风险预算和交易目标一致之后,我们才能判断,这部分改善应该归因于什么。
▾让增量经得起验证
到这里,增量归因最终要落实到几个具体问题上。
1. 基准是否公平?
资产池、信息时点、成本口径和风险预算尽量保持一致,基准也要与 ML 承担的功能匹配。优化仓位的模型,不该靠击败一个弱方向信号来证明价值;直接预测收益的模型,也不能绕开已有的趋势、carry 和波动率择时暴露。
2. 证据是否仍然独立?
关键不在于模型“有没有再训练”,而是:规则是什么时候确定的,后来的改变又受到了哪些信息影响?
如果再训练频率、触发条件和特征更新方式在查看后续结果之前已经确定,那么季度再训练还是月度再训练,都只是模型规则的一部分。但如果原本约定季度再训练,看到测试或实盘表现不佳后又改成月度,这就已经不是原模型的正常更新,而是一次新的研究决策。
同样的判断也适用于参数、特征和策略逻辑。只要后来的结果参与了修改,这些结果与新版本之间就不再是独立的。
促成修改的数据仍然可以用于机制诊断和稳健性分析,却不该再承担新版本的独立验证。新的确认性证据,需要来自更晚的前瞻数据,或者此前真正没有参与研究决策的样本。
3. 增量究竟来自哪里?
比较复杂模型与简单策略的仓位、收益暴露、换手和回撤,控制趋势、carry、波动率择时这些已有机制,再区分改善究竟来自预测、风险控制、策略实现,还是模块之间的交互。
4. 离开最有利的设定以后,还剩多少?
除了夏普、alpha 和样本外预测表现,还要看不同子区间、参数邻域和成本变化后的结果,并对保证金、成交限制和容量做压力测试。

这里还有一个容易被忽略的问题:
模型复杂度,不等于研究复杂度。
一个拥有一万个参数、按事前规则训练的模型,未必比一个只有两个参数、却从几千次回测中筛选出来的策略更容易产生虚假发现。前者涉及模型如何拟合数据,后者面对的却是多重检验与选择偏差。
如果研究过程中已经测试过大量特征、模型和参数组合,这些搜索同样构成了研究过程的一部分。最终留下来的结果,不能脱离这条路径单独评价。
▾结果之后
机器学习让我们有能力构造更复杂的策略,也更容易出现传统方法难以解释的结果。
样本外表现的改善,可能来自新的预测信息,也可能只是风险控制和策略实现变得更有效。甚至看起来全新的结果,背后仍然是熟悉的交易机制,只是换了一种更复杂的表达。收益都是真实的,它们代表的东西却并不相同。
一个漂亮的样本外结果因此还可以继续往下拆:区分新增的预测信息、已有机制的重新组合,以及可能被错误归因的价值。
最终,结果只有一个,但通向它的原因可能完全不同。
而把这些原因分清,我们才更接近实盘真正关心的问题:这份收益依靠什么存在,又会因为什么消失?
免责声明:
您在阅读本内容或附件时,即表明您已事先接受以下“免责声明”之所载条款:
1、本文内容源于作者对于所获取数据的研究分析,本网站对这些信息的准确性和完整性不作任何保证,对由于该等问题产生的一切责任,本网站概不承担;阅读与私募基金相关内容前,请确认您符合私募基金合格投资者条件。
2、文件中所提供的信息尽可能保证可靠、准确和完整,但并不保证报告所述信息的准确性和完整性;亦不能作为投资决策的依据,不能作为道义的、责任的和法律的依据或者凭证。
3、对于本文以及文件中所提供信息所导致的任何直接的或者间接的投资盈亏后果不承担任何责任;本文以及文件发送对象仅限持有相关产品的客户使用,未经授权,请勿对该材料复制或传播。侵删!
4、所有阅读并从本文相关链接中下载文件的行为,均视为当事人无异议接受上述免责条款,并主动放弃所有与本文和文件中所有相关人员的一切追诉权。
