1. 程式人生 > >AI量化策略,我該如何理解你?

AI量化策略,我該如何理解你?

人工智慧(AI)技術得到了飛速發展,其在各個領域的運用也不斷取得成果。機器學習被評為人工智慧中最能體現人類智慧的技術,因此開發AI量化策略可以理解為將機器學習應用在量化投資領域。

理解機器學習演算法——以StockRanker為例

機器學習演算法太多,本文討論只針對適用於金融資料預測的常用有監督型機器學習(Supervised Machine Learning)演算法:StockRanker。假設我們要去預測某個連續變數$ Y

,
未來的取值,並找到了影響變數 Y 取值的 K$ 個變數,這些變數也稱為特徵變數(Feature Variable)。機器學習 即是要找到一個擬合函式 f
( X 1 , X 2 , , X K Θ ) f(X_1,X_2,\ldots,X_K|\Theta)
去描述 Y Y 和特徵變數之間的關係, Θ \Theta 為這個函式的引數。

要找到這樣的函式,必須要足夠量的觀測資料,假設有 N 個樣本資料$ { y_1,y_2,\ldots,y_n }$和 x 1 i , x 2 i , , x K i x_{1i},x_{2i},\ldots,x_{Ki} (其中 i = 1 , 2 , , n i=1,2,\ldots,n )。然後定義一個函式 L L 來衡量真實觀測資料和模型估計資料偏差,函式 L 也稱作損失函式(Loss Function)。基於歷史觀測資料,我們可以求解下列的最化問題來得到引數 Θ \Theta 的估計值 。
在這裡插入圖片描述
求解(1.1)過程稱作模型訓練(Model Traing)。基於特徵變數的最新觀測值和訓練出來的模型引數就可以預測 y y 的數值。 接下來,我們以一個具體的AI量化策略看一下用機器學習方法開發策略的具體流程。

開發AI量化策略的流程

使用機器學習開發策略的流程如下圖所示:
在這裡插入圖片描述
為便於理解,以StockRanker為例介紹。StockRanker是一種監督式股票排序學習演算法,假設我們要預測個股未來 n n 天的收益率,然後將其進行排序, 使用該演算法在新的一天資料上進行預測,可以向我們推薦應該買入哪些股票。我們結合上圖介紹下使用StockRanker演算法來開發量化策略的流程。

  • 首先,確定目標。因為是監督學習,因此需要對收益率資料進行標註。
  • 接著,資料劃分。將所有資料劃分為訓練資料和測試資料,訓練資料用來訓練模型,測試資料用來檢驗模型的表現。
  • 然後,特徵構造。特徵構造是至關重要的一步,特徵構造的好將會直接影響模型效果和策略表現。在這一步,你在金融行業的專業知識和投資經驗將發揮很大的作用。
  • 然後,訓練和預測。在特徵構造完畢後,就可以訓練好StockRanker演算法並進行預測。
  • 最後,策略回測。根據StockRanker預測結果進行策略回測,獲取策略表現。

關於AI策略的預測能力

量化交易人員對機器學習的態度很複雜,一方面自己實際投資中發現選股因子和股票收益之間關係並非完全線性,需要能力更強的分析預測工具,另一方面又擔心機器學習工具過於複雜,導致資料探勘,樣本內過擬合的結果外推性不強,經濟含義也不好解釋。我們這裡想說明的是,ML(Machine learning)雖然沒法完全避免過擬合的可能性,但配合使用一些方法是可以降ML低過擬合的概率,提升樣本外預測能力的。

假設輸入變數$ X$ 和輸出變數 Y Y 的真實關係可以表示為 Y = f ( X ) + ϵ Y=f(X)+\epsilon , ϵ \epsilon 為誤差項,滿足

E ( ϵ ) = 0 E(\epsilon)=0 ,KaTeX parse error: Expected 'EOF', got '}' at position 32: …\sigma_\epsilon}̲^2 。投資者者通過 ML 方法找到了 f ( X ) f(X) 的一個擬合函式 f ( x ) ^ \hat{f(x)} 。對於一個新的資料點 X = x 0 X=x_0 , 它的預測偏差定義為:

E r r ( X 0 ) = E [ ( Y f ( X 0 ^ ) ) 2 X = x 0 ] Err(X_0)=E[(Y-\hat{f(X_0}))^2|X=x_0]
= σ ϵ 2 + [ E f ( x 0 ^ ) f ( x 0 ) ] 2 + E [ f ( x 0 ) ^ E f ( x 0 ) ^ ] 2 ={\sigma_\epsilon}^2+[E \hat{f(x_0}) -f(x_0)]^2 + E[\hat{f(x_0)}-E\hat{f(x_0)}]^2
= σ ϵ 2 + B i a s 2 f ( x 0 ) ^ + V a r ( f ( x 0 ) ^ )                      ( 1.2 ) ={\sigma_\epsilon}^2+ Bias^2\hat{f(x_0)} + Var(\hat{f(x_0)}) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1.2)

ML模型的預測偏差取決於(1.2)的這三項,第一項取值與 ML 模型選擇無關,第二項 B i a s Bias 和第三項 V a r i a n c e Variance 的理解可以參考下圖,兩者都受 ML 模型複雜度的影響;
在這裡插入圖片描述
一般來講,模型複雜度越高, B i a s Bias 越小,但 V a r i a n c e Variance 越大;模型複雜度越低, B i a s Bias 越大, V a r i a n c e Variance 越小。從下圖可以看出,當模型複雜度較高的時候,雖然偏差很小,但是模型方差很大,因此模型的泛化能力不高。
在這裡插入圖片描述
因此要想提高 ML模型的預測能力,模型並不是越複雜越好,而是要在 B i a s Bias V a r i a n c e Variance 間做權衡,降低總體預測誤差,也就是所謂的 B i a s V a r i a n c e    t r a d e o f f Bias -Variance \ \ trade-off

對待機器學習,我們應該擺脫固有的“黑箱“和”過擬合“概念,一些 ML 演算法的邏輯非常直白,而且 ML 在求解優化問題估計模型引數時,通常會帶正則化約束條件,通過交叉驗證的方式來選擇引數,避免過擬合。 眾多的實踐研究說明, ML 方法的預測能力大部分情況下都強於線性模型。

總結

AI量化策略在收益和穩健性上都要比傳統的線性模型高,更重要的是它可以幫助我們省去Barra結構風險模型中”因子篩選“、”因子加權“和”組合優化“的過程,提升策略開發效率。感興趣的朋友可以前往BigQuant平臺進行體驗~


原文連結:《AI量化策略,我該如何理解你?

BigQuant—人工智慧量化投資平臺