蒲興成,林炎欽(.重慶郵電大學計算機學院,重慶400065;2.重慶郵電大學數(shù)理學院,重慶400065)
基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法
蒲興成1,2,林炎欽1
(1.重慶郵電大學計算機學院,重慶400065;2.重慶郵電大學數(shù)理學院,重慶400065)
針對神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計問題,提出了一種混合修剪算法。該算法首先利用合作型協(xié)同進化遺傳算法和反向傳播算法的不同優(yōu)勢,完成了對神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值的初步調(diào)整;然后,在保證模型泛化能力的前提下,通過計算隱層神經(jīng)元的顯著性,借此修剪網(wǎng)絡(luò)中顯著性較小的神經(jīng)元,進一步簡化網(wǎng)絡(luò)結(jié)構(gòu)。最后,將給出的基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法用于股票市場的預測。仿真結(jié)果表明,該改進算法與其他優(yōu)化算法相比,具有更好的泛化能力和更高的擬合精度。
顯著性分析;神經(jīng)網(wǎng)絡(luò);合作型協(xié)同進化遺傳算法;修剪算法;股票市場
一直以來,多層前饋神經(jīng)網(wǎng)絡(luò)都是國內(nèi)外學者研究的熱點。它具有學習能力強、泛化能力強、穩(wěn)定性高、結(jié)構(gòu)簡單且易于實現(xiàn)等優(yōu)點,是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。對它的研究目前主要集中在2個方面:學習算法研究和網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化。由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計與最終網(wǎng)絡(luò)的性能關(guān)系密切,一直以來都受到業(yè)界人士的廣泛關(guān)注[1?2]。一方面,如果神經(jīng)網(wǎng)絡(luò)的規(guī)模太小,雖具有較強的泛化能力,卻因未能充分學習訓練樣本,而導致對復雜問題處理能力不夠;另一方面,如果網(wǎng)絡(luò)的規(guī)模太大,此時網(wǎng)絡(luò)學習訓練樣本性能雖好,卻會降低網(wǎng)絡(luò)的計算效率,且容易產(chǎn)生“過擬合”現(xiàn)象,致使網(wǎng)絡(luò)泛化能力下降。為了解決神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化問題,近年來學者們提出了許多優(yōu)化方法:1)試湊法,由網(wǎng)絡(luò)模型來查找出優(yōu)化結(jié)構(gòu),通過訓練和比較不同結(jié)構(gòu)的方法來實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化的目的,用得較多的方法有:1)交叉校驗[3?4],此法雖簡單易行,但需要若干個候選網(wǎng)絡(luò),所以過程繁瑣費時,且易陷入局部極小值;2)修剪法[5?6],比較著名的是最優(yōu)腦外科算法(OBS),通過初始化構(gòu)造一個有冗余節(jié)點的網(wǎng)絡(luò),并逐漸除去對網(wǎng)絡(luò)輸出貢獻較小的節(jié)點,以達到誤差精度的要求,此法雖可以降低網(wǎng)絡(luò)復雜性,提高網(wǎng)絡(luò)的泛化能力,但它是通過逐個刪除具有最小特征值的權(quán)值來實現(xiàn)對網(wǎng)絡(luò)結(jié)構(gòu)的修剪,大大增加了程序計算量和運行時間;3)遺傳進化算法[7?8],通過在解空間的多個點上進行全局搜索,對神經(jīng)網(wǎng)絡(luò)的各種群分別實施選擇、交叉、變異等相關(guān)遺傳操作,產(chǎn)生新的子種群并從中選出最優(yōu)個體組合代表整個網(wǎng)絡(luò),具有較強的搜索能力和較強的魯棒性,不足之處是權(quán)重編碼長度過長導致搜索效率低下。
針對上述問題,將BP算法、合作型協(xié)同進化遺傳算法(CCGA)和顯著性修剪算法有機結(jié)合,提出了基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法,并將其應(yīng)用于股票市場的預測上。通過相關(guān)實驗對比,表明了該結(jié)構(gòu)優(yōu)化方法的有效性。
遺傳算法是一種求解最優(yōu)化問題的全局搜索算法。它可以優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值,但同時優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值效果并不明顯。而近年來出現(xiàn)的合作型協(xié)同進化遺傳算法卻能夠很好地同時優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值。因此,筆者首先采用合作型協(xié)同進化遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值,將待優(yōu)化神經(jīng)網(wǎng)絡(luò)進行分割,把一個復雜的神經(jīng)網(wǎng)絡(luò)分割為多個相互關(guān)聯(lián)的相對簡單的子神經(jīng)網(wǎng)絡(luò),并對分割后的多個子神經(jīng)網(wǎng)絡(luò)進行編碼,形成多個子種群,各個子種群獨立實施遺傳操作,如選擇、交叉和變異等。在進化過程中,只在進行個體評價時,各個子種群間才有信息交換,因為待優(yōu)化的神經(jīng)網(wǎng)絡(luò)是由來自不同種群的個體共同組成的,各子種群只有相互合作才能共同進化,從而完成相應(yīng)的優(yōu)化任務(wù)。同時在優(yōu)化的過程中,利用顯著性分析方法和啟發(fā)式結(jié)構(gòu)優(yōu)化方法來修剪神經(jīng)網(wǎng)絡(luò),從而降低算法的計算復雜性,并提高收斂速度。
1.1 種群分割
假設(shè)要優(yōu)化的神經(jīng)網(wǎng)絡(luò)包含p+2層,也就是說有1個輸入層、p個隱含層和1個輸出層。由于股票市場本身是一個非線性問題,只有2層的神經(jīng)網(wǎng)絡(luò)是一種感知器神經(jīng)網(wǎng)絡(luò),它不能用在股票這種非線性問題的預測上。所以,在此把3層的子神經(jīng)網(wǎng)絡(luò)做為一個模塊,它是一個包含輸入層、隱層、輸出層的完整的神經(jīng)網(wǎng)絡(luò)模型,這種劃分方式既保存網(wǎng)絡(luò)的完整性,又提高了網(wǎng)絡(luò)的性能。因此,本文對該神經(jīng)網(wǎng)絡(luò)進行縱向分割,如圖1所示,從第1層(輸入層)到第3層(第2個隱含層)之間的部分為第1個模塊,第2層(第1個隱含層)到第4層(第3個隱含層)之間的部分為第2個模塊,第p層(第p-1個隱含層)到第p+2層(輸出層)之間的部分為第p個模塊。對一個模塊,采用一個進化子種群優(yōu)化結(jié)構(gòu)和連接權(quán)值,這些進化子種群分別記為P1,P2,...,Pp,因此,共有p個進化子種群,也就是說合作型協(xié)同進化遺傳算法包含的子種群個數(shù)為p。

圖1 種群分割圖Fig.1 Population segmen tation
1.2 決策變量編碼
不失一般性,現(xiàn)在考慮神經(jīng)網(wǎng)絡(luò)的第p個模塊,它是第p層到第p+2層之間的部分,由第p個進化子種群優(yōu)化,為了同步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值,對其結(jié)構(gòu)采用二進制編碼,僅考慮有連接關(guān)系的神經(jīng)元,這樣能減小編碼長度;連接權(quán)值采用實數(shù)編碼,避免了采用二進制編碼對權(quán)值表示精度的限制。
1.2.1 結(jié)構(gòu)編碼
設(shè)第p個模塊有M個神經(jīng)元,序號是從1到M排列的輸入層(第p層)、隱層(第p+1層)、輸出層節(jié)點(第p+2層)。將第p個模塊的連接關(guān)系用矩陣表示,即SM×M。在矩陣中,S(i,j)的元素表示從第i個神經(jīng)元到第j個神經(jīng)元的連接關(guān)系,“0”表示沒有連接,“×”表示沒有關(guān)聯(lián),“1”表示有連接。因此,可以用矩陣SM×M表示第p個模塊進化子種群的個體的拓撲結(jié)構(gòu)編碼。同時,可以將該矩陣按自左到右、自上而下順序連接起來,展開成二進制串。下面以圖2所示結(jié)構(gòu)展開說明。

圖2 神經(jīng)網(wǎng)絡(luò)編碼圖Fig.2 Neural network coding
以圖2為例,則2個子網(wǎng)的結(jié)構(gòu)編碼矩陣依次為

該矩陣等價于結(jié)構(gòu)碼串:

該矩陣等價于結(jié)構(gòu)碼串:101 011 11。
1.2.2 權(quán)值編碼
如果兩節(jié)點之間沒有連接關(guān)系,則其連接權(quán)值一定為0。因此,沒有必要考慮該連接權(quán)值的編碼,這樣,連接權(quán)值受結(jié)構(gòu)編碼控制,只有結(jié)構(gòu)編碼為1,才考慮連接權(quán)值的編碼,并且連接權(quán)值編碼的長度等于結(jié)構(gòu)編碼中1的個數(shù)。當然,隨著結(jié)構(gòu)編碼變化,連接權(quán)值編碼的長度也隨著不斷變化,這種動態(tài)編碼方法能夠有效地降低算法的計算復雜性。仍以圖2為例,相應(yīng)的權(quán)值編碼如下:
S1→-1,1,-3,-2,1,3,-1,-2,1,
S2→3,-1,-2,1,1,-2。
1.3 遺傳操作
1.3.1 交叉操作
由于筆者進化子種群的個體編碼包括結(jié)構(gòu)部分和連接權(quán)值部分,并且不同部分采用的編碼方式不同,因此,需要設(shè)計相應(yīng)的遺傳操作。對于結(jié)構(gòu)部分,由于采用二進制編碼,利用標準遺傳算法中的交叉操作,如單點交叉、多點交叉或一致交叉等;對于連接權(quán)值部分,由于采用實數(shù)編碼,且實數(shù)編碼的長度等于結(jié)構(gòu)編碼中1的個數(shù),因此,實數(shù)編碼串的交叉點應(yīng)該依賴于結(jié)構(gòu)部分交叉點的位置。更確切地講,實數(shù)編碼交叉點前的串長應(yīng)該等于相應(yīng)的結(jié)構(gòu)編碼交叉點前1的個數(shù),即所謂的對等交叉。
仍以圖2為例,考慮第2子種群的2個父代個體,它們的編碼如圖3(a)。對于結(jié)構(gòu)部分,隨機選取第4位作為交叉點,即101 011 11和011 111 01,得到的交叉操作后的子代個體的結(jié)構(gòu)部分為101 001 01和011 111 11;對于連接權(quán)值部分,交叉點的選取如圖3(b)所示,得到的交叉操作后的子代個體的連接權(quán)值部分為3,-1,-2,-1和2,-3,1,-2,1,1,-2;因此,交叉操作后2個子代的編碼如圖3(c)。

圖3 交叉操作圖Fig.3 Crossover operation chart
1.3.2 變異操作
同樣,分別考慮進化個體的結(jié)構(gòu)部分和連接權(quán)值部分。對于結(jié)構(gòu)部分,采用標準遺傳算法的變異操作,如單點變異、多點變異或一致變異等;對于連接權(quán)值部分,由于其編碼受結(jié)構(gòu)部分的影響,因此當結(jié)構(gòu)部分某位的編碼由1變異為0時,相應(yīng)的連接權(quán)值部分的編碼應(yīng)該刪除。反之,當結(jié)構(gòu)部分某位的編碼由0變異為1,相應(yīng)的連接權(quán)值部分的編碼應(yīng)在一定范圍內(nèi)隨機生成。根據(jù)結(jié)構(gòu)部分的變異結(jié)果,對調(diào)整后的連接權(quán)值部分采用非一致變異操作,實現(xiàn)其變異[9]。這樣,使該算法具有局部隨機搜索能力,同時維持種群多樣性。
1.4 基于顯著性分析的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化
符號說明:λ為拉格朗日乘子;H為Hessian矩陣;w為連接權(quán)值;為權(quán)值平均值增量;li為除了第i個元素為1以外其他元素均為零的單位向量;wij為與神經(jīng)元i相連的第j個連接權(quán)值;Eav為誤差函數(shù)。
顯著性分析算法是基于誤差函數(shù)Eav的泰勒級數(shù)展開模型,將最小化的性能函數(shù)用誤差函數(shù)Eav(w)表示。在訓練過程中,根據(jù)誤差函數(shù)Eav(w)的要求不斷調(diào)整網(wǎng)絡(luò)權(quán)值w,利用所有與第i個隱層神經(jīng)元相連接權(quán)值的均值來計算其顯著性Si大小,除去Si較小的神經(jīng)元,從而達到修剪網(wǎng)絡(luò)的目的。
假設(shè)神經(jīng)網(wǎng)絡(luò)已訓練并趨于局部極小,可得:

因為網(wǎng)絡(luò)已訓練并趨于局部極小點,所以可以將式(1)的一階項去掉,并忽略高階項,得到

由此,可得到其Hessian矩陣:

式(3)中是對H中的某一連接權(quán)值wi進行的,為減少計算量,利用與第i個神經(jīng)元相連接的所有k個權(quán)值平均值i來進行計算,令=則式(3)可寫成:

為了便于分析隱層神經(jīng)元的顯著性,先引入拉格朗日函數(shù):


其對應(yīng)的第i個神經(jīng)元的顯著性可表示為

以下是顯著性分析修剪算法概要:
1)訓練給定的相對復雜的初始神經(jīng)網(wǎng)絡(luò),使得網(wǎng)絡(luò)均方誤差趨于局部極小值。
2)計算Hessian矩陣的逆H-1。
3)計算每個隱層神經(jīng)元i的顯著性Si,如果Si的值遠小于均方誤差Eav,那么刪去相應(yīng)的神經(jīng)元,再轉(zhuǎn)到4);否則,轉(zhuǎn)到5)。
4)根據(jù)式(6)對網(wǎng)絡(luò)中所有連接權(quán)值進行調(diào)整校正,再轉(zhuǎn)到2)。
5)當網(wǎng)絡(luò)中不再有可被除去神經(jīng)元時,終止。
同時,在優(yōu)化的過程中,可以利用神經(jīng)網(wǎng)絡(luò)的知識,降低優(yōu)化算法的計算量。由于進化個體的結(jié)構(gòu)編碼與神經(jīng)網(wǎng)絡(luò)的某一模塊的連接關(guān)系一一對應(yīng),而這一結(jié)構(gòu)編碼是采用矩陣來表示的。有些矩陣的形式比較特殊,它的某一行可能全部為零,或某一列可能全部為零,或兩者皆有。例如考慮類似于圖2所示的神經(jīng)網(wǎng)絡(luò),圖4(a)和(b)是其2個模塊編碼的矩陣,對應(yīng)的模塊結(jié)構(gòu)分別是圖4(c)和(d)。


圖4 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化Fig.4 Neural network structure optim ization
首先,考慮圖4(a),在矩陣S1中全為0的行對應(yīng)的第3個節(jié)點沒有輸入,且這一節(jié)點在隱含層,這在神經(jīng)網(wǎng)絡(luò)中不應(yīng)該出現(xiàn),應(yīng)該刪除該節(jié)點。再考慮圖4(b),在矩陣S2中全為0的列對應(yīng)的第5個節(jié)點沒有輸出,且這一節(jié)點也在隱含層,這在神經(jīng)網(wǎng)絡(luò)中也不應(yīng)該出現(xiàn),應(yīng)該刪除該節(jié)點。刪除這些節(jié)點,意味著相應(yīng)的連接權(quán)值也被刪除。因此,進化個體編碼的長度將會縮短,從而有效地降低算法的復雜性。
在計算某進化子種群的個體的適應(yīng)度時,首先檢查該進化個體的結(jié)構(gòu)部分,如果有為0的行或列,就調(diào)整合作團體中相應(yīng)的代表個體的結(jié)構(gòu)編碼。具體地講,當Sp的第k行(列)為0時,相應(yīng)的節(jié)點應(yīng)被刪除,代表個體Sp+1相應(yīng)的節(jié)點也應(yīng)該被刪除;當Sp結(jié)構(gòu)部分編碼變化后,代表個體Sp+1的連接權(quán)值部分的編碼也應(yīng)變化,即刪除相應(yīng)的連接權(quán)值編碼。
與本文工作密切相關(guān)的參考文獻[6]所提出的感知器神經(jīng)網(wǎng)絡(luò)顯著性修剪算法,而本文的方法主要是在引入合作型協(xié)同進化神經(jīng)網(wǎng)絡(luò)的同時,融合了啟發(fā)式修剪算法。這種混合修剪算法對于神經(jīng)網(wǎng)絡(luò)的優(yōu)化效果更佳。用顯著性修剪的多層感知器神經(jīng)網(wǎng)絡(luò),雖是一種具有很好的非線性映射能力的多層前饋神經(jīng)網(wǎng)絡(luò)模型,但它采用的是BP算法。因此,網(wǎng)絡(luò)收斂速度較慢且容易陷入局部極小值。而所引入的合作型協(xié)同進化神經(jīng)網(wǎng)絡(luò),它融合了遺傳算法和BP算法等方法,優(yōu)勢互補,很好地克服這些不足,且在非線性問題的處理上更顯其優(yōu)勢。
1.5 適應(yīng)度函數(shù)及代表個體選擇
個體適應(yīng)度值計算公式[10]為

式中:tpi和ypi分別表示第p個樣本,神經(jīng)網(wǎng)絡(luò)的第i個輸出單元的期望輸出和實際輸出;T為樣本總數(shù);n為神經(jīng)網(wǎng)絡(luò)的輸出單元數(shù);α為一個小的正數(shù),它能夠保證整個分母不為0,取值可以取α≥10-4。
在合作型協(xié)同進化遺傳算法中,代表個體的選擇非常重要。Potter[11]給出了2種代表個體的選擇方法:1)直接選擇其他進化種群當前代最優(yōu)個體為代表個體;2)從其他子種群中選擇2個個體作為代表個體,分別為當前代的最優(yōu)個體和隨機選擇子種群中的一個個體。其中,前者計算量較小,在子種群相關(guān)性不大的問題中適用;而后者適用于子種群相關(guān)性較大的問題。由于筆者考慮的神經(jīng)網(wǎng)絡(luò)的各個模塊之間的輸入輸出是密切相關(guān)的,因此,這里選擇后者。
1.6 算法流程
筆者提出的基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法,采用合作型協(xié)同進化遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò),同時在確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的時候,引入顯著性分析方法,對顯著性較小的各神經(jīng)元進行修剪,實現(xiàn)對網(wǎng)絡(luò)結(jié)構(gòu)的調(diào)整,以此簡化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法的相應(yīng)步驟為:
1)創(chuàng)建一個初始的神經(jīng)網(wǎng)絡(luò),將待優(yōu)化神經(jīng)網(wǎng)絡(luò)分割成p個模塊P1,P2,...,Pp。
2)當t=0時,在每個子種群各自搜索空間里,初始化p個進化子種群P1(t),P2(t),...,Pp(t)。
3)對每個進化子種群的個體,選擇其代表個體,將其組合成一個合作團體,解碼后得到相應(yīng)的神經(jīng)網(wǎng)絡(luò),依式(8)計算適應(yīng)度。
4)按照筆者所述方法,實施交叉和變異操作,優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),保留最優(yōu)個體,形成下一代進化子種群。
5)判定是否滿足算法終止條件(即網(wǎng)絡(luò)誤差足夠小或達到進化代數(shù))。若滿足,進化結(jié)束,并輸出優(yōu)化后的神經(jīng)網(wǎng)絡(luò);否則t=t+1,轉(zhuǎn)到3)。
影響股票價格預測的因素相當多,比如開盤價、收盤價、成交量等歷史基本信息,也有MA5、MA10、KDJ等經(jīng)過處理后能間接反應(yīng)出股票走勢趨向的信息。本文選取開盤價、最高價、最低價、收盤價、成交量、漲跌幅、MA5、MA10等8個指標作為輸入項。選擇上證綜指(000001)和中國石化(600028)作為研究對象,數(shù)據(jù)來源為大智慧軟件收集的2012年7月12日-2013年5月27日之間的210個交易日數(shù)據(jù)作為原始數(shù)據(jù)。其中前200組數(shù)據(jù)作為訓練樣本,分別用來訓練GA?BP神經(jīng)網(wǎng)絡(luò)、基于顯著性修剪的多感知器神經(jīng)網(wǎng)絡(luò)(FOBS)、修剪前的CCGA?BP神經(jīng)網(wǎng)絡(luò)、修剪后的CCGA?BP神經(jīng)網(wǎng)絡(luò)(HC?CGA?BP),后10組數(shù)據(jù)的收盤價作為預測數(shù)據(jù),來驗證所訓練網(wǎng)絡(luò)的預測性能。
2.1 數(shù)據(jù)預處理
由于原始數(shù)據(jù)單位不同,數(shù)據(jù)大小也有很大差別,同時原始數(shù)據(jù)中包含有一些不確定的屬性值,比如噪聲,為了減少這些因素對預測結(jié)果的影響,需要先對原始數(shù)據(jù)進行歸一化預處理,其轉(zhuǎn)換公式為

式中:max x和min x分別表示樣本數(shù)據(jù)中最大值和最小值,xi表示原始數(shù)據(jù),x′i表示預處理后范圍在[0,1]內(nèi)的數(shù)據(jù)。
2.2 性能評價指標
為了檢驗預測結(jié)果,需要設(shè)定一些評價的標準,在此主要使用均方誤差與正確趨勢率。
1)均方誤差(MSE)。
假設(shè)系統(tǒng)預測值為Yi,對應(yīng)的實際值為Ti,預測誤差為Ei,且Ei=Y(jié)i-Ti,則

2)正確趨勢率(PCD)。
所謂的正確趨勢率,是將連續(xù)的2次預測值的變化趨勢和實際值的變化趨勢相比較,若變化方向一致,即都是降價、不變或都是漲價,則變化趨勢正確;否則,變化趨勢不正確。定義如下:

2.3 實驗結(jié)果分析
選取適當?shù)某跏季W(wǎng)絡(luò),將促使所得網(wǎng)絡(luò)更加簡單、學習速度更快和歸納性更好。相關(guān)研究[12]表明:具有S形函數(shù)的非線性3層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以逼近任何的非線性函數(shù),但是,在這種只有單個隱層的神經(jīng)網(wǎng)絡(luò)里,各個神經(jīng)元之間相互影響,不利于函數(shù)逼近性的改進;而Blum和Li[13]通過實驗證明:擁有2個隱層的神經(jīng)網(wǎng)絡(luò),其全局函數(shù)逼近性更好,且更易于改進。因此,在本文中,筆者采用4層的BP神經(jīng)網(wǎng)絡(luò)預測模型,輸入層有上述的8個節(jié)點,輸出層只有一個節(jié)點,表示的是下一個交易日收盤價。采用的HCCGA算法包含2個種群,分別為輸入層——隱層1——隱層2和隱層1——隱層2——輸出層。運用MATLAB7.0作仿真實驗預測,其中相關(guān)參數(shù)設(shè)置為:種群大小設(shè)為10,最大進化代數(shù)設(shè)為100,交叉概率設(shè)為0.4,結(jié)構(gòu)變異概率與權(quán)值變異概率分別設(shè)為0.002和0.03。
將上述學習后的神經(jīng)網(wǎng)絡(luò)應(yīng)用到上證綜指(000001)和中國石化(600028)的預測上,下面是結(jié)果分析。
2.3.1 HCCGA?BP與FOBS預測結(jié)果比較
圖(5)、圖(6)分別是上證綜指(000001)和中國石化(600028)的預測收盤價格。

圖5 上證綜指(000001)預測收盤價格Fig.5 SHCOMP(000001)closing p rice

圖6 中國石化(600028)預測收盤價格Fig.6 SINOPEC(600028)closing price

表1 上證綜指(000001)性能比較Table 1 SHCOMP(000001)performance comparison

表2 中國石化(600028)性能比較Table 2 SINOPEC(600028)performance comparison
從預測的結(jié)果可以看出,所采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以較為理想地逼近上證綜指(000001)和中國石化(600028)的運行情況,正確趨勢率(PCD)均大于90%,均方誤差(MSE)分別從0.007 3減小到0.000 24,從0.013 46減小到0.001 1。由此可見,該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對于股票的預測擬和度較高,具有較高的預測精度。同時從表1和表2中看到,基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法極大地提高了系統(tǒng)的收斂速度,同時也明顯地提高了預測精度。

圖7 上證綜指(000001)預測均方誤差對比Fig.7 SHCOMP(000001)error com parison

圖8 中國石化(600028)預測均方誤差對比Fig.8 SINOPEC(600028)error com parison
通過對比實驗可知,基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法比FOBS算法不僅在收斂速度上有明顯提高,而且在預測精度和誤差上也有明顯提高。因此,與基于顯著性修剪的多感知器神經(jīng)網(wǎng)絡(luò)(FOBS)對于股票的預測相比,HCCGA?BP神經(jīng)網(wǎng)絡(luò)在收斂速度、預測精度、誤差對比上的優(yōu)勢,都說明該預測模型的有效性。
2.3.2 HCCGA?BP與CCGA?BP、GA?BP預測結(jié)果比較
圖9、圖10分別是上證綜指(000001)和中國石化(600028)的預測收盤價格。

圖9 上證綜指(000001)預測收盤價格Fig.9 SHCOMP(000001)prediction cosing price

圖10 中國石化(600028)預測收盤價格Fig.10 SINOPEC(600028)prediction closing price

表3 上證綜指(000001)性能比較Table 3 SHCOMP(000001)performance com parison

表4 中國石化(600028)性能比較Table 4 SINOPEC(600028)performance com parison
從上面的預測圖(圖9、圖10)、誤差對比圖(圖11、圖12)及性能比較表(表3、表4)可以看出,所采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以較為理想地逼近上證綜指(000001)和中國石化(600028)的運行情況。

圖11 上證綜指(000001)預測均方誤差對Fig.11 SHCOMP(000001)prediction error com parison

圖12 中國石化(600028)預測均方誤差對比Fig.12 SINOPEC(600028)prediction error comparison
相比之下,修剪后的HCCGA?BP神經(jīng)網(wǎng)絡(luò)的均方誤差(MSE)比修剪前的CCGA?BP神經(jīng)網(wǎng)絡(luò)、GA? BP神經(jīng)網(wǎng)絡(luò)的均方誤差(MSE)要小得多;正確趨勢率較高;迭代代數(shù)和計算時間也相對較少。實驗結(jié)果表明,神經(jīng)網(wǎng)絡(luò)經(jīng)過大量和充分的訓練之后,確實在外部形式上擬和了數(shù)據(jù),在股市數(shù)據(jù)內(nèi)部總結(jié)出了所蘊藏的變化規(guī)律。與CCGA?BP神經(jīng)網(wǎng)絡(luò)、GA?BP神經(jīng)網(wǎng)絡(luò)相比,基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法模型對于股票的預測,無論是在收斂速度,還是在預測精度以及誤差對比上,都說明混合修剪算法預測模型的有效性。
筆者針對神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)問題,提出了基于顯著性修剪的合作型神經(jīng)網(wǎng)絡(luò),并將其應(yīng)用到股票預測上。通過實驗結(jié)果比較可知,該模型很適合解決股票市場這樣的非線性問題。與傳統(tǒng)遺傳神經(jīng)網(wǎng)絡(luò)模型相比,避免傳統(tǒng)遺傳神經(jīng)網(wǎng)絡(luò)編碼方案過長、結(jié)構(gòu)優(yōu)化不明顯、計算量大等不足;相比之下,該算法對股票預測結(jié)果更為精確。由此證明了該算法模型的有效性,有一定的實用價值。然而,股票本身是一個非常復雜的動態(tài)非線性系統(tǒng),影響因素眾多,比如國家經(jīng)濟政策、市場本身的影響等都會對其走勢產(chǎn)生一定的影響,而且所選取的輸入數(shù)據(jù)很多都是主觀確定的,缺乏股票預測理論的指導;同時,該算法也一定的局限性,如對實際優(yōu)化問題的決策變量進行了人為的分解、代表個體的選擇等,這些方面都需要一定程度上的改進。雖然改進模型提高了預測精度,但也只能給投資者提供一些參考意見。
[1]YONGMingjing,HUA Yingdong.Study on characteristic of fractional master?slave neural network[C]//Fifth Interna?tional Symposium on Computational Intelligence and Design.Hangzhou,China,2012:498?501.
[2]喬俊飛,張穎.一種多層前饋神經(jīng)網(wǎng)絡(luò)的快速修剪算法[J].智能系統(tǒng)學報,2008,3(2):622?627.QIAO Junfei,ZHANG Ying.Fast unit pruning algorithm for feed forward neural network design[J].CAAITransactions on Intelligent Systems,2008,3(2):622?627.
[3]MOOD Y J.Prediction risk and architecture selection for neural networks[C]//Statistics to Neural Networks:Theory and Pattern Recognition Applications,NATO ASISeries F.New York,1994:288?290.
[4]LIU Yong.Create stable neural networks by cross?validation[C]//International Joint Conference on IJCNN’06 Neural Networks.Vancouver,Canada,2006:3925?3928.
[5]DU Juan,ERMengjoo.A fast pruning algorithm for an effi?cient adaptive fuzzy neural network[C]//Eighth IEEE In?ternational Conference on Control and Automation.Xiamen,China,2010:1030?1035.
[6]喬俊飛,韓紅桂.前饋神經(jīng)網(wǎng)絡(luò)分析與設(shè)計[M].北京:科學出版社,2013:107?158.
[7]EUGENE S,MARIA S.A self?configuring genetic program?ming algorithm withmodified uniform crossover[C]//WCCI 2012 IEEE World Congress on Computational Intelligence.Brisbane,Australia,2012:1984?1990.
[8]吳鵬.基于語法引導的遺傳編程在神經(jīng)樹中的應(yīng)用[D].濟南:濟南大學,2007:69?102.WU Peng.The application of genetic programming in the neural tree based on grammar guide[D].Jinan:University of Jinan,2007:69?102.
[9]周明,孫樹棟.遺傳算法原理及應(yīng)用[M].北京:國防工業(yè)出版社,1999:1?26.
[10]鞏敦衛(wèi),孫曉燕.基于合作式協(xié)同進化算法的神經(jīng)網(wǎng)絡(luò)優(yōu)化[J].中國礦業(yè)大學學報,2006,35(1):114?119.GONG Dunwei,SUN Xiaoyan.Optimization of neural net?work based on cooperative co?evolutionary algorithm[J].Journal of China University of Mining&Technology,2006,35(1):114?119.
[11]POTTER M A.The design and analysis of a computational model of cooperative co?evolution[D].Fairfax:George Mason University,1997:21?66.
[12]HETCHT N R.Theory of the back propagation neural net?work[C]//Proceedings of the International Joint Confer?ence on Neural Networks.New York:IEEE Press,1989:593?611.
[13]BLUM E K,LI L K.Approximation theory and feed for?ward networks[J].Neural Net,1991,2(3):511?515.

蒲興成,男,1973年生,副教授,博士,主要研究方向為非線性控制、隨機系統(tǒng)和智能控制等.主持和參與省部級基金項目8項,發(fā)表學術(shù)論文40余篇,出版學術(shù)專著1部、教材1部。

林炎欽,男,1983年生,碩士,主要研究方向為智能計算、智能信息處理及應(yīng)用。
Hybrid pruning algorithm for the neural network based on significance analysis
PU Xingcheng1,2,LIN Yanqin1
(1.Department of Computer Science,Chongqing University of Post&Telecommunications,Chongqing 400065,China;2.Department of Mathematics&Physics,Chongqing University of Post&Telecommunications,Chongqing 400065,China)
This paper puts forward a kind of hybrid pruning algorithm for considering the problem of neural network structure design.Firstly,the algorithm uses the differentadvantages of cooperative co?evolutionary genetic algorithm and back propagation algorithm to optimize the structure and weights of neural networks.Secondly,by calculating the significance of the hidden layer neurons,it prunes the network that is not significant,further simplifying the structure of the network without reducing the generalization ability of themodel.Finally,the proposed hybrid prun?ing algorithm is used to forecast the stock market.The simulations showed that the improved algorithm has better generalization ability and higher fitting precision than other optimization algorithms.
significance analysis;neural network;cooperative co?evolutionary genetic algorithms;pruning algo?rithm;stock market
TP24
A
1673?4785(2014)06?0690?08
蒲興成,林炎欽.基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法[J].智能系統(tǒng)學報,2014,9(6):690?697.
英文引用格式:PU Xingcheng,LIN Yanqin.Hybrid pruning algorithm for the neural network based on significance analysis[J].CAAITransactions on Intelligent System s,2014,9(6):690?697.
10.3969/j.issn.1673?4785.201309062
http://www.cnki.net/kcms/doi/10.3969/j.issn.1673?4785.201309062.htm l
2013?09?19.
日期:2014?09?30.
國家自然科學基金資助項目(51075420);重慶市教委科學技術(shù)研究資助項目(113156,KJ1400432);科技部國際合作資助項目(2010DFA12160).
蒲興成.E?mail:puxingcheng@sina.com.