石川作者

为什么机器学习在投资领域不好使

文章转自微信公众号:量信投资。作者石川,清华大学工学学士和硕士,后于美国麻省理工学院获得博士学位。期间主要从事运筹学领域研究,涉及对具有不确定性的随机系统的建模及优化。

The essence of data snooping is that focusing on interesting events is quite different from trying to figure out which events are interesting. 译:关注有趣的事件与弄清楚哪些事件是有趣的是两码事,这就是数据迁就的本质。

题记

最近,一条新闻引爆了投资圈:世界上最大的投资管理公司贝莱德(BlackRock)宣布将使用机器(确切的说是人工智能 artificial intelligence 或机器学习算法 machine learning algorithm)来取代一些基金经理进行选股。近年来,随着其在人脸识别,信用反欺诈乃至国际象棋和围棋领域的应用和杰出表现,人工智能被越来越多的人所熟悉。很多人开始看好在不久的将来机器学习算法在二级市场投资上将会比人取得更加优异的成绩。而贝莱德的这一宣布无疑将人工智能又一次推上了风口浪尖。这其中最根本的观点是:

机器学习通过可以使用复杂的各种非线性算法(比如神经网络、决策树、遗传算法)来从大量的历史交易数据中挖掘出人类无法看到的投资模式。根据这些模式来选股就可以取得丰厚收益。

虽然身处并坚定地看好量化投资领域,但我对“机器学习在选股上能取代人类”这个观点上持保守和谨慎的态度。这是因为金融分析属于非实验性科学(nonexperimental science),因此无法进行对照实验(scientific control或controlled experiments)。这意味着虽然存在大量的金融交易数据,但是无法通过设计实验来控制自变量的变化、通过重复性试验来检验提出的假设(比如说机器学习发现的某种选股模式)。如此的数据分析得到的大多是看似显著但实际上是欺骗式的模式(尤其对样本外数据),这个现象称作数据迁就(data snooping)。 

数据迁就(data snooping):从数据中挖掘子虚乌有的模式(finding patterns in the data that do not exist)。

数据迁就问题存在于所有的非实验性研究中,而当我们把复杂的机器学习算法用于选股时,这种问题尤甚。这是因为复杂的非线性算法中包含大量的参数,通过这些参数的配合总能发现一些人类无法理解的、可以获得超额收益的选股模式。如果不能正确地理解并从业务上解释这些模式,数据迁就将使复杂的机器学习算法成为从历史数据中发现无效巧合的高效工具,正如本文开头的引用所说的那样。

使用伪素数选股

来看一个和股票八竿子打不着的选股算法。传统的基金经理恐怕绞尽脑汁也想不出这么个模式,但是机器学习算法可以轻易地(但是错误地)找出它。这个算法利用了素数(质数)的一个性质,它来自费马小定理的一个变种:除了 2 之外,任何一个素数 x 满足“2 的 x-1 次方被它自身除的余数为 1”。

举个例子,13 是一个素数,2 的 13-1(即 12)次方等于 4096。用它除以 13 得到 315,余数为 1。可以证明,所有 2 以外的素数都满足这个性质。但是满足这个性质的数不一定都是素数,它们被称为伪素数(又称为卡迈克尔数)。一万以内的伪素数有七个:561,1105,1729,2465,2821,6601,以及 8911。我们利用这些伪素数来对美股进行选股:选择股票编号中包含上述伪素数的股票进行投资。按照这个规则,Ametek公司(一个制造企业,股票编号03110510)脱颖而出。更令人称奇的是,它在过去 40 年取得了 95 倍的累计收益,远超道琼斯工业或标普 500 指数。

毫无疑问,这是一支非凡的股票,而我们的伪素数策略取得了巨大的成功。然而, 先别急着激动。我们需要好好审视一下:伪素数和选股到底有什么关系?答案是没有关系。那么这个策略是否真正找到了有效的选股模式?答案也是否定的。

有些人会马上跳出来说“只要管用就行,为什么有用不重要!”。这种认知是非常危险的。对于选股这种非实验性问题,由于无法通过对照实验来检验假设,那么至少从业务上明白机器学习的算法为什么有效就显得格外重要。因此,“只要管用就行”是非常不负责任的态度。

这个例子代表了很多机器学习算法的问题:我们总可以使用复杂的非线性算法(比如神经网络)、通过过度优化参数发现回测中无敌的选股模式。在这个过程中,我们已然落入了数据迁就的陷阱。

认知偏差加剧数据迁就

在以下这些条件下很容易发生数据迁就问题,很显然它们都存在于二级市场投资中:

1. 存在大量的数据。

2. 很多人都在使用同样的数据进行分析。

3. 缺乏业务理论或者无法控制变量。

4. 认知偏差“只要管用就行,为什么好使不重要”。

这其中前三条是市场的客观条件,而最后一条则植根于人们的认知错误。人类认知中总是倾向于追寻不同寻常的事件。只有当一些“不同寻常”的巧合发生时,我们才往往能关注到。瑞士心理学家荣格将人们对巧合的过度关注称为共时性(synchronicity)

共时性:指“有意义的巧合”,用于解释因果律无法解释的现象,如梦境成真,想到某人某人便出现等(“说曹操、曹操到”)。荣格认为,这些表面上无因果关系的事件之间有着非因果性、有意义的联系,这些联系常取决于人的主观经验。当两者同时发生时,便称为“共时性”现象。

通俗的说,当在时间和空间上毫无联系的两件事同时发生时,人们便会认为有一种超自然的神秘力量把它们联系在一起,并认为这种巧合具备某种意义。

比如在上面的例子中,股票标码含有伪素数和股票获得了巨大的超额收益就是一个纯粹的巧合,这样的巧合被机器学习算法发现并呈现给使用者。如果使用者不试图去理解这两者到底是否真的有关系,便会由于共时性而将这种错误的巧合赋予某种意义,即机器学习发现了一个牛逼哄哄的选股模式。

运气还是实力

前面说了这么多,目的当然不是为了否定人工智能和机器学习在二级市场的应用前景。但我想说,对于人工智能发现的任何模式,它有效的前提是我们能够明白无误的理解它的含义。不能以此为基础便无法分辨出好的结果到底是来自运气还是实力。

之前,我写过一篇文章《出色不如走运?》。文中使用顺序统计量(order statistic)解释了这样一个道理:

在众多股票中,最好的那支总会有非常优秀的收益率;在众多的策略中,最厉害的那一个总会带来令人称奇的回报率。然而,通过计算独立样本的极值(顺序统计量)分布可知,这种结果实属必然。

我们回顾一下那篇文章中的例子。假设一个股票投资策略的年化收益率 X 符合均值为 10%,标准差为 20% 的正态分布。假设市场中有 m 个不同的策略,则它们中最好的那个的收益率 Y 是 X 的函数,Y = max(X1, X2, …, Xm)。下图是当 m = 3000 时,最好的那个的收益率分布和单一策略收益率分布的比较:最优策略的收益率分布在横坐标上向右移动且变的更窄。

下图为 prob(Y≥0.7) 随策略个数 m 变化的结果。同时也给出了 Y 的均值和标准差随 m 的变化。随着 m 的增大,我们越来越确定总会有一些策略脱颖而出,年化收益率超过 70%。这种判断也同样可以被 Y 的均值和方差来证明:随着策略个数的增大,最优策略的年化收益率的均值在增加,且标准差在减小。

这个结果说明,当存在大量不同的策略时,最好的那一个总会异常非凡。但我们真正关心的问题是:这个策略到底是在茫茫历史数据中找到了虚假的模式,还是发现了一套真正的科学投资模式?我们必须从业务层面弄清楚它是如何工作的。

As with any black box, if you don't know why it works, you won't realize when it's stopped working. Even a broken watch is right twice a day. 译:机器学习算法犹如一个黑匣子,如果你不知道它为什么好使,你就不会知道它何时回失效。就连一块停摆的手表每天也能正确两次。

人工智能前路漫漫

其实,人们使用算法来选股并不是什么新鲜事。风险多因子模型就可以算是一个算法选股的策略。当然,它之所以有效是因为它使用的因子,比如成长因子、规模因子、动量因子等,都有着清晰的业务基础。近几年,很多人使用机器学习的复杂算法,比如支持向量机,来改进多因子选股。这些非线性算法构建了很多非线性的因子。比如,如果算法告诉我们“雄安概念板块,且对数市值 ÷ 三个月动量的 e 次方大于 π”是一个好的模式,那我们就得好好琢磨琢磨了。

对于人工智能在二级市场投资的应用,一位具有丰富实战经验的量化投资前辈阐述过如下的观点,我对此十分认可:

我们可以相信它(人工智能)能够捕获到那些人类根本无法察觉到的细微模式。但是,这些模式能够持续吗?这些模式会不会只是一些不会重复的随机噪声?人工智能领域的专家向我们保证他们有许多防范措施用以过滤那些瞬间噪声。并且,这些工具确实在消费者营销和信用卡欺诈检测上效果显著。消费者行为和诈骗行为的模式显然都具有较长的持续期,这使得这些人工智能算法即使包含大量参数也能有效运行。然而,以我的经验来看,要对金融市场进行预测,这种防范措施是远远不够的,并且对历史数据噪声的过度拟合还会带来严重后果。……相对于可以获取的大量相互独立的消费者行为和信用交易数据,我们能够获取的在统计学意义上相互独立的金融数据是非常有限的。你可能会说,我们拥有大量分时金融数据可供使用。但实际上,这些数据是序列相关的,并不是相互独立的。

这位前辈对于人工智能何时有效给出了自己的见解:

1. 基于正确的计量经济学或理论基础,而不是随机发现的模式。

2. 所需的参数用到历史数据较少。

3. 只用到线性回归,并未使用复杂的非线性函数。

4. 概念上很简单。

5. 所有优化都必须在不含未来未知数据的移动窗口中实现,并且这种优化的效果必须不断地被未来未知的数据所证实。

策略的规则越多,模型的参数越多,就越有可能发生数据迁就。能经得起时间考验的往往是简单的模型。

再来看贝莱德的决定

作为全球最大的资产管理公司,贝莱德宣布使用人工智能代替基金经理无法令人忽视,且必然会一石激起千层浪。有机构预测,到 2025 年,全球金融机构将有 10% 的人工会被机器取代。这恐怕和越来越高昂的 alpha 不无关系。毕竟,从长期来看,绝大多数基金经理都跑不赢指数,那么要这些基金经理还有什么用呢?

引用我的合伙人高老板的话也许可以更好的理解贝莱德的这个决定:

超额收益越来越贵,开源不行,就想办法节流。最终投资市场的均衡状态是超额收益的边际成本恰好等于超额收益。这样成本高的投资基金终将不断被成本低的基金挤出市场。

大数据人工智能时代的运筹学
旨在普及运筹学(优化理论)
及其在供应链管理和人工智能的应用

『运筹OR帷幄』是大数据人工智能时代的运筹学,普及运筹学和优化理论,及其在人工智能和供应链中的应用。

理论运筹学机器学习量化投资
1
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

人脸识别技术
Facial recognition

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

线性回归技术
Linear Regression (function)

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

动量技术
Momentum

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

支持向量机技术
Support Vector Machines

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。