蒲興成,林炎欽(.重慶郵電大學(xué)計(jì)算機(jī)學(xué)院,重慶400065;2.重慶郵電大學(xué)數(shù)理學(xué)院,重慶400065)
基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法
蒲興成1,2,林炎欽1
(1.重慶郵電大學(xué)計(jì)算機(jī)學(xué)院,重慶400065;2.重慶郵電大學(xué)數(shù)理學(xué)院,重慶400065)
針對(duì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)問(wèn)題,提出了一種混合修剪算法。該算法首先利用合作型協(xié)同進(jìn)化遺傳算法和反向傳播算法的不同優(yōu)勢(shì),完成了對(duì)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值的初步調(diào)整;然后,在保證模型泛化能力的前提下,通過(guò)計(jì)算隱層神經(jīng)元的顯著性,借此修剪網(wǎng)絡(luò)中顯著性較小的神經(jīng)元,進(jìn)一步簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)。最后,將給出的基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法用于股票市場(chǎng)的預(yù)測(cè)。仿真結(jié)果表明,該改進(jìn)算法與其他優(yōu)化算法相比,具有更好的泛化能力和更高的擬合精度。
顯著性分析;神經(jīng)網(wǎng)絡(luò);合作型協(xié)同進(jìn)化遺傳算法;修剪算法;股票市場(chǎng)
一直以來(lái),多層前饋神經(jīng)網(wǎng)絡(luò)都是國(guó)內(nèi)外學(xué)者研究的熱點(diǎn)。它具有學(xué)習(xí)能力強(qiáng)、泛化能力強(qiáng)、穩(wěn)定性高、結(jié)構(gòu)簡(jiǎn)單且易于實(shí)現(xiàn)等優(yōu)點(diǎn),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。對(duì)它的研究目前主要集中在2個(gè)方面:學(xué)習(xí)算法研究和網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化。由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)與最終網(wǎng)絡(luò)的性能關(guān)系密切,一直以來(lái)都受到業(yè)界人士的廣泛關(guān)注[1?2]。一方面,如果神經(jīng)網(wǎng)絡(luò)的規(guī)模太小,雖具有較強(qiáng)的泛化能力,卻因未能充分學(xué)習(xí)訓(xùn)練樣本,而導(dǎo)致對(duì)復(fù)雜問(wèn)題處理能力不夠;另一方面,如果網(wǎng)絡(luò)的規(guī)模太大,此時(shí)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練樣本性能雖好,卻會(huì)降低網(wǎng)絡(luò)的計(jì)算效率,且容易產(chǎn)生“過(guò)擬合”現(xiàn)象,致使網(wǎng)絡(luò)泛化能力下降。為了解決神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化問(wèn)題,近年來(lái)學(xué)者們提出了許多優(yōu)化方法:1)試湊法,由網(wǎng)絡(luò)模型來(lái)查找出優(yōu)化結(jié)構(gòu),通過(guò)訓(xùn)練和比較不同結(jié)構(gòu)的方法來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化的目的,用得較多的方法有:1)交叉校驗(yàn)[3?4],此法雖簡(jiǎn)單易行,但需要若干個(gè)候選網(wǎng)絡(luò),所以過(guò)程繁瑣費(fèi)時(shí),且易陷入局部極小值;2)修剪法[5?6],比較著名的是最優(yōu)腦外科算法(OBS),通過(guò)初始化構(gòu)造一個(gè)有冗余節(jié)點(diǎn)的網(wǎng)絡(luò),并逐漸除去對(duì)網(wǎng)絡(luò)輸出貢獻(xiàn)較小的節(jié)點(diǎn),以達(dá)到誤差精度的要求,此法雖可以降低網(wǎng)絡(luò)復(fù)雜性,提高網(wǎng)絡(luò)的泛化能力,但它是通過(guò)逐個(gè)刪除具有最小特征值的權(quán)值來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的修剪,大大增加了程序計(jì)算量和運(yùn)行時(shí)間;3)遺傳進(jìn)化算法[7?8],通過(guò)在解空間的多個(gè)點(diǎn)上進(jìn)行全局搜索,對(duì)神經(jīng)網(wǎng)絡(luò)的各種群分別實(shí)施選擇、交叉、變異等相關(guān)遺傳操作,產(chǎn)生新的子種群并從中選出最優(yōu)個(gè)體組合代表整個(gè)網(wǎng)絡(luò),具有較強(qiáng)的搜索能力和較強(qiáng)的魯棒性,不足之處是權(quán)重編碼長(zhǎng)度過(guò)長(zhǎng)導(dǎo)致搜索效率低下。
針對(duì)上述問(wèn)題,將BP算法、合作型協(xié)同進(jìn)化遺傳算法(CCGA)和顯著性修剪算法有機(jī)結(jié)合,提出了基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法,并將其應(yīng)用于股票市場(chǎng)的預(yù)測(cè)上。通過(guò)相關(guān)實(shí)驗(yàn)對(duì)比,表明了該結(jié)構(gòu)優(yōu)化方法的有效性。
遺傳算法是一種求解最優(yōu)化問(wèn)題的全局搜索算法。它可以優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值,但同時(shí)優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值效果并不明顯。而近年來(lái)出現(xiàn)的合作型協(xié)同進(jìn)化遺傳算法卻能夠很好地同時(shí)優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值。因此,筆者首先采用合作型協(xié)同進(jìn)化遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)值,將待優(yōu)化神經(jīng)網(wǎng)絡(luò)進(jìn)行分割,把一個(gè)復(fù)雜的神經(jīng)網(wǎng)絡(luò)分割為多個(gè)相互關(guān)聯(lián)的相對(duì)簡(jiǎn)單的子神經(jīng)網(wǎng)絡(luò),并對(duì)分割后的多個(gè)子神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼,形成多個(gè)子種群,各個(gè)子種群獨(dú)立實(shí)施遺傳操作,如選擇、交叉和變異等。在進(jìn)化過(guò)程中,只在進(jìn)行個(gè)體評(píng)價(jià)時(shí),各個(gè)子種群間才有信息交換,因?yàn)榇齼?yōu)化的神經(jīng)網(wǎng)絡(luò)是由來(lái)自不同種群的個(gè)體共同組成的,各子種群只有相互合作才能共同進(jìn)化,從而完成相應(yīng)的優(yōu)化任務(wù)。同時(shí)在優(yōu)化的過(guò)程中,利用顯著性分析方法和啟發(fā)式結(jié)構(gòu)優(yōu)化方法來(lái)修剪神經(jīng)網(wǎng)絡(luò),從而降低算法的計(jì)算復(fù)雜性,并提高收斂速度。
1.1 種群分割
假設(shè)要優(yōu)化的神經(jīng)網(wǎng)絡(luò)包含p+2層,也就是說(shuō)有1個(gè)輸入層、p個(gè)隱含層和1個(gè)輸出層。由于股票市場(chǎng)本身是一個(gè)非線性問(wèn)題,只有2層的神經(jīng)網(wǎng)絡(luò)是一種感知器神經(jīng)網(wǎng)絡(luò),它不能用在股票這種非線性問(wèn)題的預(yù)測(cè)上。所以,在此把3層的子神經(jīng)網(wǎng)絡(luò)做為一個(gè)模塊,它是一個(gè)包含輸入層、隱層、輸出層的完整的神經(jīng)網(wǎng)絡(luò)模型,這種劃分方式既保存網(wǎng)絡(luò)的完整性,又提高了網(wǎng)絡(luò)的性能。因此,本文對(duì)該神經(jīng)網(wǎng)絡(luò)進(jìn)行縱向分割,如圖1所示,從第1層(輸入層)到第3層(第2個(gè)隱含層)之間的部分為第1個(gè)模塊,第2層(第1個(gè)隱含層)到第4層(第3個(gè)隱含層)之間的部分為第2個(gè)模塊,第p層(第p-1個(gè)隱含層)到第p+2層(輸出層)之間的部分為第p個(gè)模塊。對(duì)一個(gè)模塊,采用一個(gè)進(jìn)化子種群優(yōu)化結(jié)構(gòu)和連接權(quán)值,這些進(jìn)化子種群分別記為P1,P2,...,Pp,因此,共有p個(gè)進(jìn)化子種群,也就是說(shuō)合作型協(xié)同進(jìn)化遺傳算法包含的子種群個(gè)數(shù)為p。
圖1 種群分割圖Fig.1 Population segmen tation
1.2 決策變量編碼
不失一般性,現(xiàn)在考慮神經(jīng)網(wǎng)絡(luò)的第p個(gè)模塊,它是第p層到第p+2層之間的部分,由第p個(gè)進(jìn)化子種群優(yōu)化,為了同步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值,對(duì)其結(jié)構(gòu)采用二進(jìn)制編碼,僅考慮有連接關(guān)系的神經(jīng)元,這樣能減小編碼長(zhǎng)度;連接權(quán)值采用實(shí)數(shù)編碼,避免了采用二進(jìn)制編碼對(duì)權(quán)值表示精度的限制。
1.2.1 結(jié)構(gòu)編碼
設(shè)第p個(gè)模塊有M個(gè)神經(jīng)元,序號(hào)是從1到M排列的輸入層(第p層)、隱層(第p+1層)、輸出層節(jié)點(diǎn)(第p+2層)。將第p個(gè)模塊的連接關(guān)系用矩陣表示,即SM×M。在矩陣中,S(i,j)的元素表示從第i個(gè)神經(jīng)元到第j個(gè)神經(jīng)元的連接關(guān)系,“0”表示沒(méi)有連接,“×”表示沒(méi)有關(guān)聯(lián),“1”表示有連接。因此,可以用矩陣SM×M表示第p個(gè)模塊進(jìn)化子種群的個(gè)體的拓?fù)浣Y(jié)構(gòu)編碼。同時(shí),可以將該矩陣按自左到右、自上而下順序連接起來(lái),展開(kāi)成二進(jìn)制串。下面以圖2所示結(jié)構(gòu)展開(kāi)說(shuō)明。
圖2 神經(jīng)網(wǎng)絡(luò)編碼圖Fig.2 Neural network coding
以圖2為例,則2個(gè)子網(wǎng)的結(jié)構(gòu)編碼矩陣依次為
該矩陣等價(jià)于結(jié)構(gòu)碼串:
該矩陣等價(jià)于結(jié)構(gòu)碼串:101 011 11。
1.2.2 權(quán)值編碼
如果兩節(jié)點(diǎn)之間沒(méi)有連接關(guān)系,則其連接權(quán)值一定為0。因此,沒(méi)有必要考慮該連接權(quán)值的編碼,這樣,連接權(quán)值受結(jié)構(gòu)編碼控制,只有結(jié)構(gòu)編碼為1,才考慮連接權(quán)值的編碼,并且連接權(quán)值編碼的長(zhǎng)度等于結(jié)構(gòu)編碼中1的個(gè)數(shù)。當(dāng)然,隨著結(jié)構(gòu)編碼變化,連接權(quán)值編碼的長(zhǎng)度也隨著不斷變化,這種動(dòng)態(tài)編碼方法能夠有效地降低算法的計(jì)算復(fù)雜性。仍以圖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 交叉操作
由于筆者進(jìn)化子種群的個(gè)體編碼包括結(jié)構(gòu)部分和連接權(quán)值部分,并且不同部分采用的編碼方式不同,因此,需要設(shè)計(jì)相應(yīng)的遺傳操作。對(duì)于結(jié)構(gòu)部分,由于采用二進(jìn)制編碼,利用標(biāo)準(zhǔn)遺傳算法中的交叉操作,如單點(diǎn)交叉、多點(diǎn)交叉或一致交叉等;對(duì)于連接權(quán)值部分,由于采用實(shí)數(shù)編碼,且實(shí)數(shù)編碼的長(zhǎng)度等于結(jié)構(gòu)編碼中1的個(gè)數(shù),因此,實(shí)數(shù)編碼串的交叉點(diǎn)應(yīng)該依賴(lài)于結(jié)構(gòu)部分交叉點(diǎn)的位置。更確切地講,實(shí)數(shù)編碼交叉點(diǎn)前的串長(zhǎng)應(yīng)該等于相應(yīng)的結(jié)構(gòu)編碼交叉點(diǎn)前1的個(gè)數(shù),即所謂的對(duì)等交叉。
仍以圖2為例,考慮第2子種群的2個(gè)父代個(gè)體,它們的編碼如圖3(a)。對(duì)于結(jié)構(gòu)部分,隨機(jī)選取第4位作為交叉點(diǎn),即101 011 11和011 111 01,得到的交叉操作后的子代個(gè)體的結(jié)構(gòu)部分為101 001 01和011 111 11;對(duì)于連接權(quán)值部分,交叉點(diǎn)的選取如圖3(b)所示,得到的交叉操作后的子代個(gè)體的連接權(quán)值部分為3,-1,-2,-1和2,-3,1,-2,1,1,-2;因此,交叉操作后2個(gè)子代的編碼如圖3(c)。
圖3 交叉操作圖Fig.3 Crossover operation chart
1.3.2 變異操作
同樣,分別考慮進(jìn)化個(gè)體的結(jié)構(gòu)部分和連接權(quán)值部分。對(duì)于結(jié)構(gòu)部分,采用標(biāo)準(zhǔn)遺傳算法的變異操作,如單點(diǎn)變異、多點(diǎn)變異或一致變異等;對(duì)于連接權(quán)值部分,由于其編碼受結(jié)構(gòu)部分的影響,因此當(dāng)結(jié)構(gòu)部分某位的編碼由1變異為0時(shí),相應(yīng)的連接權(quán)值部分的編碼應(yīng)該刪除。反之,當(dāng)結(jié)構(gòu)部分某位的編碼由0變異為1,相應(yīng)的連接權(quán)值部分的編碼應(yīng)在一定范圍內(nèi)隨機(jī)生成。根據(jù)結(jié)構(gòu)部分的變異結(jié)果,對(duì)調(diào)整后的連接權(quán)值部分采用非一致變異操作,實(shí)現(xiàn)其變異[9]。這樣,使該算法具有局部隨機(jī)搜索能力,同時(shí)維持種群多樣性。
1.4 基于顯著性分析的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化
符號(hào)說(shuō)明:λ為拉格朗日乘子;H為Hessian矩陣;w為連接權(quán)值;為權(quán)值平均值增量;li為除了第i個(gè)元素為1以外其他元素均為零的單位向量;wij為與神經(jīng)元i相連的第j個(gè)連接權(quán)值;Eav為誤差函數(shù)。
顯著性分析算法是基于誤差函數(shù)Eav的泰勒級(jí)數(shù)展開(kāi)模型,將最小化的性能函數(shù)用誤差函數(shù)Eav(w)表示。在訓(xùn)練過(guò)程中,根據(jù)誤差函數(shù)Eav(w)的要求不斷調(diào)整網(wǎng)絡(luò)權(quán)值w,利用所有與第i個(gè)隱層神經(jīng)元相連接權(quán)值的均值來(lái)計(jì)算其顯著性Si大小,除去Si較小的神經(jīng)元,從而達(dá)到修剪網(wǎng)絡(luò)的目的。
假設(shè)神經(jīng)網(wǎng)絡(luò)已訓(xùn)練并趨于局部極小,可得:
因?yàn)榫W(wǎng)絡(luò)已訓(xùn)練并趨于局部極小點(diǎn),所以可以將式(1)的一階項(xiàng)去掉,并忽略高階項(xiàng),得到
由此,可得到其Hessian矩陣:
式(3)中是對(duì)H中的某一連接權(quán)值wi進(jìn)行的,為減少計(jì)算量,利用與第i個(gè)神經(jīng)元相連接的所有k個(gè)權(quán)值平均值i來(lái)進(jìn)行計(jì)算,令=則式(3)可寫(xiě)成:
為了便于分析隱層神經(jīng)元的顯著性,先引入拉格朗日函數(shù):
其對(duì)應(yīng)的第i個(gè)神經(jīng)元的顯著性可表示為
以下是顯著性分析修剪算法概要:
1)訓(xùn)練給定的相對(duì)復(fù)雜的初始神經(jīng)網(wǎng)絡(luò),使得網(wǎng)絡(luò)均方誤差趨于局部極小值。
2)計(jì)算Hessian矩陣的逆H-1。
3)計(jì)算每個(gè)隱層神經(jīng)元i的顯著性Si,如果Si的值遠(yuǎn)小于均方誤差Eav,那么刪去相應(yīng)的神經(jīng)元,再轉(zhuǎn)到4);否則,轉(zhuǎn)到5)。
4)根據(jù)式(6)對(duì)網(wǎng)絡(luò)中所有連接權(quán)值進(jìn)行調(diào)整校正,再轉(zhuǎn)到2)。
5)當(dāng)網(wǎng)絡(luò)中不再有可被除去神經(jīng)元時(shí),終止。
同時(shí),在優(yōu)化的過(guò)程中,可以利用神經(jīng)網(wǎng)絡(luò)的知識(shí),降低優(yōu)化算法的計(jì)算量。由于進(jìn)化個(gè)體的結(jié)構(gòu)編碼與神經(jīng)網(wǎng)絡(luò)的某一模塊的連接關(guān)系一一對(duì)應(yīng),而這一結(jié)構(gòu)編碼是采用矩陣來(lái)表示的。有些矩陣的形式比較特殊,它的某一行可能全部為零,或某一列可能全部為零,或兩者皆有。例如考慮類(lèi)似于圖2所示的神經(jīng)網(wǎng)絡(luò),圖4(a)和(b)是其2個(gè)模塊編碼的矩陣,對(duì)應(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的行對(duì)應(yīng)的第3個(gè)節(jié)點(diǎn)沒(méi)有輸入,且這一節(jié)點(diǎn)在隱含層,這在神經(jīng)網(wǎng)絡(luò)中不應(yīng)該出現(xiàn),應(yīng)該刪除該節(jié)點(diǎn)。再考慮圖4(b),在矩陣S2中全為0的列對(duì)應(yīng)的第5個(gè)節(jié)點(diǎn)沒(méi)有輸出,且這一節(jié)點(diǎn)也在隱含層,這在神經(jīng)網(wǎng)絡(luò)中也不應(yīng)該出現(xiàn),應(yīng)該刪除該節(jié)點(diǎn)。刪除這些節(jié)點(diǎn),意味著相應(yīng)的連接權(quán)值也被刪除。因此,進(jìn)化個(gè)體編碼的長(zhǎng)度將會(huì)縮短,從而有效地降低算法的復(fù)雜性。
在計(jì)算某進(jìn)化子種群的個(gè)體的適應(yīng)度時(shí),首先檢查該進(jìn)化個(gè)體的結(jié)構(gòu)部分,如果有為0的行或列,就調(diào)整合作團(tuán)體中相應(yīng)的代表個(gè)體的結(jié)構(gòu)編碼。具體地講,當(dāng)Sp的第k行(列)為0時(shí),相應(yīng)的節(jié)點(diǎn)應(yīng)被刪除,代表個(gè)體Sp+1相應(yīng)的節(jié)點(diǎn)也應(yīng)該被刪除;當(dāng)Sp結(jié)構(gòu)部分編碼變化后,代表個(gè)體Sp+1的連接權(quán)值部分的編碼也應(yīng)變化,即刪除相應(yīng)的連接權(quán)值編碼。
與本文工作密切相關(guān)的參考文獻(xiàn)[6]所提出的感知器神經(jīng)網(wǎng)絡(luò)顯著性修剪算法,而本文的方法主要是在引入合作型協(xié)同進(jìn)化神經(jīng)網(wǎng)絡(luò)的同時(shí),融合了啟發(fā)式修剪算法。這種混合修剪算法對(duì)于神經(jīng)網(wǎng)絡(luò)的優(yōu)化效果更佳。用顯著性修剪的多層感知器神經(jīng)網(wǎng)絡(luò),雖是一種具有很好的非線性映射能力的多層前饋神經(jīng)網(wǎng)絡(luò)模型,但它采用的是BP算法。因此,網(wǎng)絡(luò)收斂速度較慢且容易陷入局部極小值。而所引入的合作型協(xié)同進(jìn)化神經(jīng)網(wǎng)絡(luò),它融合了遺傳算法和BP算法等方法,優(yōu)勢(shì)互補(bǔ),很好地克服這些不足,且在非線性問(wèn)題的處理上更顯其優(yōu)勢(shì)。
1.5 適應(yīng)度函數(shù)及代表個(gè)體選擇
個(gè)體適應(yīng)度值計(jì)算公式[10]為
式中:tpi和ypi分別表示第p個(gè)樣本,神經(jīng)網(wǎng)絡(luò)的第i個(gè)輸出單元的期望輸出和實(shí)際輸出;T為樣本總數(shù);n為神經(jīng)網(wǎng)絡(luò)的輸出單元數(shù);α為一個(gè)小的正數(shù),它能夠保證整個(gè)分母不為0,取值可以取α≥10-4。
在合作型協(xié)同進(jìn)化遺傳算法中,代表個(gè)體的選擇非常重要。Potter[11]給出了2種代表個(gè)體的選擇方法:1)直接選擇其他進(jìn)化種群當(dāng)前代最優(yōu)個(gè)體為代表個(gè)體;2)從其他子種群中選擇2個(gè)個(gè)體作為代表個(gè)體,分別為當(dāng)前代的最優(yōu)個(gè)體和隨機(jī)選擇子種群中的一個(gè)個(gè)體。其中,前者計(jì)算量較小,在子種群相關(guān)性不大的問(wèn)題中適用;而后者適用于子種群相關(guān)性較大的問(wèn)題。由于筆者考慮的神經(jīng)網(wǎng)絡(luò)的各個(gè)模塊之間的輸入輸出是密切相關(guān)的,因此,這里選擇后者。
1.6 算法流程
筆者提出的基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法,采用合作型協(xié)同進(jìn)化遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò),同時(shí)在確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)候,引入顯著性分析方法,對(duì)顯著性較小的各神經(jīng)元進(jìn)行修剪,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的調(diào)整,以此簡(jiǎn)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法的相應(yīng)步驟為:
1)創(chuàng)建一個(gè)初始的神經(jīng)網(wǎng)絡(luò),將待優(yōu)化神經(jīng)網(wǎng)絡(luò)分割成p個(gè)模塊P1,P2,...,Pp。
2)當(dāng)t=0時(shí),在每個(gè)子種群各自搜索空間里,初始化p個(gè)進(jìn)化子種群P1(t),P2(t),...,Pp(t)。
3)對(duì)每個(gè)進(jìn)化子種群的個(gè)體,選擇其代表個(gè)體,將其組合成一個(gè)合作團(tuán)體,解碼后得到相應(yīng)的神經(jīng)網(wǎng)絡(luò),依式(8)計(jì)算適應(yīng)度。
4)按照筆者所述方法,實(shí)施交叉和變異操作,優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),保留最優(yōu)個(gè)體,形成下一代進(jìn)化子種群。
5)判定是否滿足算法終止條件(即網(wǎng)絡(luò)誤差足夠小或達(dá)到進(jìn)化代數(shù))。若滿足,進(jìn)化結(jié)束,并輸出優(yōu)化后的神經(jīng)網(wǎng)絡(luò);否則t=t+1,轉(zhuǎn)到3)。
影響股票價(jià)格預(yù)測(cè)的因素相當(dāng)多,比如開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、成交量等歷史基本信息,也有MA5、MA10、KDJ等經(jīng)過(guò)處理后能間接反應(yīng)出股票走勢(shì)趨向的信息。本文選取開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)、成交量、漲跌幅、MA5、MA10等8個(gè)指標(biāo)作為輸入項(xiàng)。選擇上證綜指(000001)和中國(guó)石化(600028)作為研究對(duì)象,數(shù)據(jù)來(lái)源為大智慧軟件收集的2012年7月12日-2013年5月27日之間的210個(gè)交易日數(shù)據(jù)作為原始數(shù)據(jù)。其中前200組數(shù)據(jù)作為訓(xùn)練樣本,分別用來(lái)訓(xùn)練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ù)的收盤(pán)價(jià)作為預(yù)測(cè)數(shù)據(jù),來(lái)驗(yàn)證所訓(xùn)練網(wǎng)絡(luò)的預(yù)測(cè)性能。
2.1 數(shù)據(jù)預(yù)處理
由于原始數(shù)據(jù)單位不同,數(shù)據(jù)大小也有很大差別,同時(shí)原始數(shù)據(jù)中包含有一些不確定的屬性值,比如噪聲,為了減少這些因素對(duì)預(yù)測(cè)結(jié)果的影響,需要先對(duì)原始數(shù)據(jù)進(jìn)行歸一化預(yù)處理,其轉(zhuǎn)換公式為
式中:max x和min x分別表示樣本數(shù)據(jù)中最大值和最小值,xi表示原始數(shù)據(jù),x′i表示預(yù)處理后范圍在[0,1]內(nèi)的數(shù)據(jù)。
2.2 性能評(píng)價(jià)指標(biāo)
為了檢驗(yàn)預(yù)測(cè)結(jié)果,需要設(shè)定一些評(píng)價(jià)的標(biāo)準(zhǔn),在此主要使用均方誤差與正確趨勢(shì)率。
1)均方誤差(MSE)。
假設(shè)系統(tǒng)預(yù)測(cè)值為Yi,對(duì)應(yīng)的實(shí)際值為T(mén)i,預(yù)測(cè)誤差為Ei,且Ei=Y(jié)i-Ti,則
2)正確趨勢(shì)率(PCD)。
所謂的正確趨勢(shì)率,是將連續(xù)的2次預(yù)測(cè)值的變化趨勢(shì)和實(shí)際值的變化趨勢(shì)相比較,若變化方向一致,即都是降價(jià)、不變或都是漲價(jià),則變化趨勢(shì)正確;否則,變化趨勢(shì)不正確。定義如下:
2.3 實(shí)驗(yàn)結(jié)果分析
選取適當(dāng)?shù)某跏季W(wǎng)絡(luò),將促使所得網(wǎng)絡(luò)更加簡(jiǎn)單、學(xué)習(xí)速度更快和歸納性更好。相關(guān)研究[12]表明:具有S形函數(shù)的非線性3層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以逼近任何的非線性函數(shù),但是,在這種只有單個(gè)隱層的神經(jīng)網(wǎng)絡(luò)里,各個(gè)神經(jīng)元之間相互影響,不利于函數(shù)逼近性的改進(jìn);而B(niǎo)lum和Li[13]通過(guò)實(shí)驗(yàn)證明:擁有2個(gè)隱層的神經(jīng)網(wǎng)絡(luò),其全局函數(shù)逼近性更好,且更易于改進(jìn)。因此,在本文中,筆者采用4層的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,輸入層有上述的8個(gè)節(jié)點(diǎn),輸出層只有一個(gè)節(jié)點(diǎn),表示的是下一個(gè)交易日收盤(pán)價(jià)。采用的HCCGA算法包含2個(gè)種群,分別為輸入層——隱層1——隱層2和隱層1——隱層2——輸出層。運(yùn)用MATLAB7.0作仿真實(shí)驗(yàn)預(yù)測(cè),其中相關(guān)參數(shù)設(shè)置為:種群大小設(shè)為10,最大進(jìn)化代數(shù)設(shè)為100,交叉概率設(shè)為0.4,結(jié)構(gòu)變異概率與權(quán)值變異概率分別設(shè)為0.002和0.03。
將上述學(xué)習(xí)后的神經(jīng)網(wǎng)絡(luò)應(yīng)用到上證綜指(000001)和中國(guó)石化(600028)的預(yù)測(cè)上,下面是結(jié)果分析。
2.3.1 HCCGA?BP與FOBS預(yù)測(cè)結(jié)果比較
圖(5)、圖(6)分別是上證綜指(000001)和中國(guó)石化(600028)的預(yù)測(cè)收盤(pán)價(jià)格。
圖5 上證綜指(000001)預(yù)測(cè)收盤(pán)價(jià)格Fig.5 SHCOMP(000001)closing p rice
圖6 中國(guó)石化(600028)預(yù)測(cè)收盤(pán)價(jià)格Fig.6 SINOPEC(600028)closing price
表1 上證綜指(000001)性能比較Table 1 SHCOMP(000001)performance comparison
表2 中國(guó)石化(600028)性能比較Table 2 SINOPEC(600028)performance comparison
從預(yù)測(cè)的結(jié)果可以看出,所采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以較為理想地逼近上證綜指(000001)和中國(guó)石化(600028)的運(yùn)行情況,正確趨勢(shì)率(PCD)均大于90%,均方誤差(MSE)分別從0.007 3減小到0.000 24,從0.013 46減小到0.001 1。由此可見(jiàn),該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于股票的預(yù)測(cè)擬和度較高,具有較高的預(yù)測(cè)精度。同時(shí)從表1和表2中看到,基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法極大地提高了系統(tǒng)的收斂速度,同時(shí)也明顯地提高了預(yù)測(cè)精度。
圖7 上證綜指(000001)預(yù)測(cè)均方誤差對(duì)比Fig.7 SHCOMP(000001)error com parison
圖8 中國(guó)石化(600028)預(yù)測(cè)均方誤差對(duì)比Fig.8 SINOPEC(600028)error com parison
通過(guò)對(duì)比實(shí)驗(yàn)可知,基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法比FOBS算法不僅在收斂速度上有明顯提高,而且在預(yù)測(cè)精度和誤差上也有明顯提高。因此,與基于顯著性修剪的多感知器神經(jīng)網(wǎng)絡(luò)(FOBS)對(duì)于股票的預(yù)測(cè)相比,HCCGA?BP神經(jīng)網(wǎng)絡(luò)在收斂速度、預(yù)測(cè)精度、誤差對(duì)比上的優(yōu)勢(shì),都說(shuō)明該預(yù)測(cè)模型的有效性。
2.3.2 HCCGA?BP與CCGA?BP、GA?BP預(yù)測(cè)結(jié)果比較
圖9、圖10分別是上證綜指(000001)和中國(guó)石化(600028)的預(yù)測(cè)收盤(pán)價(jià)格。
圖9 上證綜指(000001)預(yù)測(cè)收盤(pán)價(jià)格Fig.9 SHCOMP(000001)prediction cosing price
圖10 中國(guó)石化(600028)預(yù)測(cè)收盤(pán)價(jià)格Fig.10 SINOPEC(600028)prediction closing price
表3 上證綜指(000001)性能比較Table 3 SHCOMP(000001)performance com parison
表4 中國(guó)石化(600028)性能比較Table 4 SINOPEC(600028)performance com parison
從上面的預(yù)測(cè)圖(圖9、圖10)、誤差對(duì)比圖(圖11、圖12)及性能比較表(表3、表4)可以看出,所采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以較為理想地逼近上證綜指(000001)和中國(guó)石化(600028)的運(yùn)行情況。
圖11 上證綜指(000001)預(yù)測(cè)均方誤差對(duì)Fig.11 SHCOMP(000001)prediction error com parison
圖12 中國(guó)石化(600028)預(yù)測(cè)均方誤差對(duì)比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ì)率較高;迭代代數(shù)和計(jì)算時(shí)間也相對(duì)較少。實(shí)驗(yàn)結(jié)果表明,神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)大量和充分的訓(xùn)練之后,確實(shí)在外部形式上擬和了數(shù)據(jù),在股市數(shù)據(jù)內(nèi)部總結(jié)出了所蘊(yùn)藏的變化規(guī)律。與CCGA?BP神經(jīng)網(wǎng)絡(luò)、GA?BP神經(jīng)網(wǎng)絡(luò)相比,基于顯著性分析的神經(jīng)網(wǎng)絡(luò)混合修剪算法模型對(duì)于股票的預(yù)測(cè),無(wú)論是在收斂速度,還是在預(yù)測(cè)精度以及誤差對(duì)比上,都說(shuō)明混合修剪算法預(yù)測(cè)模型的有效性。
筆者針對(duì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)問(wèn)題,提出了基于顯著性修剪的合作型神經(jīng)網(wǎng)絡(luò),并將其應(yīng)用到股票預(yù)測(cè)上。通過(guò)實(shí)驗(yàn)結(jié)果比較可知,該模型很適合解決股票市場(chǎng)這樣的非線性問(wèn)題。與傳統(tǒng)遺傳神經(jīng)網(wǎng)絡(luò)模型相比,避免傳統(tǒng)遺傳神經(jīng)網(wǎng)絡(luò)編碼方案過(guò)長(zhǎng)、結(jié)構(gòu)優(yōu)化不明顯、計(jì)算量大等不足;相比之下,該算法對(duì)股票預(yù)測(cè)結(jié)果更為精確。由此證明了該算法模型的有效性,有一定的實(shí)用價(jià)值。然而,股票本身是一個(gè)非常復(fù)雜的動(dòng)態(tài)非線性系統(tǒng),影響因素眾多,比如國(guó)家經(jīng)濟(jì)政策、市場(chǎng)本身的影響等都會(huì)對(duì)其走勢(shì)產(chǎn)生一定的影響,而且所選取的輸入數(shù)據(jù)很多都是主觀確定的,缺乏股票預(yù)測(cè)理論的指導(dǎo);同時(shí),該算法也一定的局限性,如對(duì)實(shí)際優(yōu)化問(wèn)題的決策變量進(jìn)行了人為的分解、代表個(gè)體的選擇等,這些方面都需要一定程度上的改進(jìn)。雖然改進(jìn)模型提高了預(yù)測(cè)精度,但也只能給投資者提供一些參考意見(jiàn)。
[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)學(xué)報(bào),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è)計(jì)[M].北京:科學(xué)出版社,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]吳鵬.基于語(yǔ)法引導(dǎo)的遺傳編程在神經(jīng)樹(shù)中的應(yīng)用[D].濟(jì)南:濟(jì)南大學(xué),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]周明,孫樹(shù)棟.遺傳算法原理及應(yīng)用[M].北京:國(guó)防工業(yè)出版社,1999:1?26.
[10]鞏敦衛(wèi),孫曉燕.基于合作式協(xié)同進(jìn)化算法的神經(jīng)網(wǎng)絡(luò)優(yōu)化[J].中國(guó)礦業(yè)大學(xué)學(xué)報(bào),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年生,副教授,博士,主要研究方向?yàn)榉蔷€性控制、隨機(jī)系統(tǒng)和智能控制等.主持和參與省部級(jí)基金項(xiàng)目8項(xiàng),發(fā)表學(xué)術(shù)論文40余篇,出版學(xué)術(shù)專(zhuān)著1部、教材1部。
林炎欽,男,1983年生,碩士,主要研究方向?yàn)橹悄苡?jì)算、智能信息處理及應(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)學(xué)報(bào),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.
國(guó)家自然科學(xué)基金資助項(xiàng)目(51075420);重慶市教委科學(xué)技術(shù)研究資助項(xiàng)目(113156,KJ1400432);科技部國(guó)際合作資助項(xiàng)目(2010DFA12160).
蒲興成.E?mail:puxingcheng@sina.com.