基于DNN模型的智能选股策略
1、DNN原理介紹
?1.1 神經(jīng)元
?1.2 DNN
?1.3 反向傳播
2、實例:DNN模型選股
?2.1 策略步驟和模型參數(shù)
?2.2 回測結(jié)果
1. DNN原理介紹
1.1 神經(jīng)元
神經(jīng)網(wǎng)絡(luò)的每個單元結(jié)構(gòu)如下:
圖1.神經(jīng)元結(jié)構(gòu)其對應(yīng)公式如下:
hW,b(x)=f(WTx)=f(∑i=13wixi+b)h_{W,b}(x)=f(W^Tx)=f(\sum_{i=1}^3w_ix_i+b)hW,b?(x)=f(WTx)=f(i=1∑3?wi?xi?+b)
這相當于進行了兩步:
- 先計算各項輸入的加權(quán)和:∑=w1x1+w2x2+w3x3+b\sum=w_1x_1+w_2x_2+w_3x_3+b∑=w1?x1?+w2?x2?+w3?x3?+b
- 然后使用激活函數(shù),將和作為輸入計算得到輸出結(jié)果:a=f(∑)a=f(\sum)a=f(∑), f即為激活函數(shù).
神經(jīng)網(wǎng)絡(luò)中常用到的激活函數(shù)如下表所示:
表1.激活函數(shù)特點對比表1.激活函數(shù)特點對比表1.激活函數(shù)特點對比
上述激活函數(shù)的函數(shù)圖形如下圖所示:
圖2. 激活函數(shù)圖像1.2 DNN
DNN是一個包含輸入層,輸出層和多個隱藏層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),每一層又包含多個1.1中所述的神經(jīng)元。其基本結(jié)構(gòu)如下圖所示:
圖3.DNN網(wǎng)絡(luò)結(jié)構(gòu)圖3. DNN網(wǎng)絡(luò)結(jié)構(gòu)圖3.DNN網(wǎng)絡(luò)結(jié)構(gòu)
如上圖所示,黃色方塊標記的為輸入層,最后的y為輸出層,中間各種顏色的圓形層為其隱藏層,DNN中的層與層之間是屬于完全連接的結(jié)構(gòu),即任意層的神經(jīng)元與它相鄰層的所有神經(jīng)元都是相互連接的。(這是DNN與CNN的主要區(qū)別,DNN是全連接的而CNN的局部連接的,如果對CNN感興趣,可以前往平臺的另一篇專題研究:【專題研究】基于一維CNN模型的智能選股策略)
1.3 反向傳播
反向傳播算法在 【專題研究】基于一維CNN模型的智能選股策略 中也有介紹,一句話簡單概括就是: 前向傳遞輸入信號直至輸出產(chǎn)生誤差,反向傳播誤差信息更新權(quán)重矩陣。
DNN往往含有多個隱藏層,這里我們看一個帶隱藏層的神經(jīng)網(wǎng)絡(luò)示意圖:
圖4. 反向傳播示意圖其中小女孩代表隱藏層節(jié)點,小黃帽代表輸出層節(jié)點,小女孩左側(cè)接受輸入信號,經(jīng)過隱層節(jié)點產(chǎn)生輸出結(jié)果,小藍貓代表了誤差,指導參數(shù)往更優(yōu)的方向調(diào)整。由于小藍貓可以直接將誤差反饋給小黃帽,所以與小黃帽直接相連的左側(cè)參數(shù)矩陣可以直接通過誤差進行參數(shù)優(yōu)化(實縱線);而與小女孩直接相連的左側(cè)參數(shù)矩陣由于不能得到小藍貓的直接反饋而不能直接被優(yōu)化(虛棕線)。但由于反向傳播算法使得小藍貓的反饋可以被傳遞到小女孩那進而產(chǎn)生間接誤差,所以與小女孩直接相連的左側(cè)權(quán)重矩陣可以通過間接誤差得到權(quán)重更新,迭代幾輪,誤差會降低到最小。
反向傳播主要由梯度下降+鏈式求導法則來實現(xiàn),具體數(shù)學公式可以參考:機器學習:一步步教你理解反向傳播方法。
2. 實例:DNN模型選股
2.1 策略步驟和模型參數(shù)
圖5. DNN選股策略步驟如圖所示,DNN模型選股實例中包含下列步驟:
-
數(shù)據(jù)獲取:A股所有股票,2010-2015年數(shù)據(jù)用作訓練,2016-2019年數(shù)據(jù)用作測試
-
特征提取:選擇了7個因子進行計算作為特征
-
數(shù)據(jù)標注:計算未來5日的收益作為標注
-
數(shù)據(jù)處理:進行缺失值處理;去掉特征異常的股票,比如某個特征值高于99.5%或低于0.5%的;標準化處理,去除特征量綱/數(shù)量級差異的影響。
-
窗口滾動:窗口大小為1
-
建立模型:建立一個簡單的兩個全連接層兩個dropout層的DNN網(wǎng)絡(luò)
-
訓練和測試:分別用訓練集數(shù)據(jù)和測試集數(shù)據(jù)對模型進行訓練和測試。
-
模型評價:進行策略回測并根據(jù)回測結(jié)果對模型進行評價。
DNN模型參數(shù)如下:
-
輸入層:選用了7個因子,窗口大小為1,因此輸入層形狀為一維,大小為7
-
全連接層:共有3個全連接層。前兩個為隱藏層,輸出空間維度分別為256和128,這個數(shù)字可以根據(jù)需要進行改動,數(shù)字越大,模型越復(fù)雜。根據(jù)表1,這里選擇relu激活函數(shù)。權(quán)重使用glorot_uniform初始化方法,偏置向量使用Zeros初始化方法。最后一個全連接層為輸出層,因此選擇linear激活函數(shù),輸出維度為1,其他設(shè)置不變。
-
dropout層:dropout將在訓練過程中每次更新參數(shù)時,按一定概率(即rate參數(shù))隨機斷開輸入神經(jīng)元,用于防止過擬合。這里rate參數(shù)設(shè)為0.1。
-
訓練次數(shù)率 :epochs值為5,共訓練5輪,以mse作為評估指標
2.2 回測結(jié)果
模型回測結(jié)果如下所示:
圖7.回測結(jié)果圖7.回測結(jié)果圖7.回測結(jié)果
從圖中可以看到,相比于基準收益,DNN模型有著非常突出的表現(xiàn)。所以,我們認為將DNN深度神經(jīng)網(wǎng)絡(luò)應(yīng)用于資本市場因子選股是很有前景的。在本次的策略中,我們提取了7個因子,構(gòu)建了兩層的DNN模型,因子的選擇提取,模型的深度和具體的模型參數(shù)都還有很大的調(diào)整空間,歡迎大家繼續(xù)嘗試探索。
2.3 克隆策略
csdn無法克隆策略,若有需要請前往社區(qū)克隆。
總結(jié)
以上是生活随笔為你收集整理的基于DNN模型的智能选股策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度思考:无关生智,局外生慧
- 下一篇: Mysqk 多表连接查询的 “打字练习”