為什麼機器學習在投資領域不好使

運籌OR帷幄發表於2018-05-24

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 不無關係。畢竟,從長期來看,絕大多數基金經理都跑不贏指數,那麼要這些基金經理還有什麼用呢?

引用我的合夥人高老闆的話也許可以更好的理解貝萊德的這個決定:

超額收益越來越貴,開源不行,就想辦法節流。最終投資市場的均衡狀態是超額收益的邊際成本恰好等於超額收益。這樣成本高的投資基金終將不斷被成本低的基金擠出市場。

為什麼機器學習在投資領域不好使大資料人工智慧時代的運籌學
旨在普及運籌學(優化理論)
及其在供應鏈管理和人工智慧的應用

相關文章