摘要:針對(duì)BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)效率低、容易陷入局部最優(yōu)等缺點(diǎn),提出了一種基于主成分分析的混合蛙跳算法(Shuffle Frog Leaping Algorithm)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)模型。使用主成分分析法對(duì)高維數(shù)據(jù)進(jìn)行特征提取,作為網(wǎng)絡(luò)輸入;采用混合蛙跳算法優(yōu)化 BP 神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)和閾值,構(gòu)建基于混合蛙跳算法神經(jīng)網(wǎng)絡(luò)的帕金森病分類(lèi)模型。最后,以UCI中Parkinson數(shù)據(jù)為例,實(shí)驗(yàn)表明,新模型優(yōu)于傳統(tǒng)的BP網(wǎng)絡(luò)。
關(guān)鍵詞:主成分分析;混合蛙跳算法;BP神經(jīng)網(wǎng)絡(luò);帕金森氏??;分類(lèi)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)04-0861-05
Based-on PCA of SFLABP Neural Network Model in Application of Parkinson Disease’S Classification
ZHANG Zhi-hao,TANG De-yu
(College of Medical Information Engineering,Guangdong Pharmaceutical University,ZhongShan 528458,China)
Abstract:For the shortcomings of BP neural network which is low learning efficiency and is easy to trap into local optimum, according to these problems, a new BP neural network model optimized by Shuffle Frog Leaping Algorithm based on Principal Component Analysis is proposed. Using Principle Component Analysis to extract the features of high dimensional data, the input variables; the bias of BP neural network are optimized by Shuffle Frog Leaping Algorithm and then build the classification model of Parkinson's disease based on SFLABP neural network. At last, taking the data of Parkinson from UCI for example, the experiment result demonstrates the new model is better than the traditional BP neural network.
Key words:principal component analysis (PCA); shuffle frog leaping algorithm (SFLA); BP neural network; Parkinson; classification
隨著智能計(jì)算的不斷發(fā)展,人工神經(jīng)網(wǎng)絡(luò)由于其自身的適應(yīng)能力和學(xué)習(xí)能力,在醫(yī)療診斷上的應(yīng)用越來(lái)越廣泛,其中BP神經(jīng)網(wǎng)絡(luò)[1]是人工神經(jīng)網(wǎng)絡(luò)中應(yīng)用最廣的一種神經(jīng)網(wǎng)絡(luò),但由于其具有學(xué)習(xí)效率低、參數(shù)選擇敏感、網(wǎng)絡(luò)結(jié)構(gòu)難確定、易陷入局部收斂等缺點(diǎn),給實(shí)際應(yīng)用帶來(lái)了一定的困難,尤其是當(dāng)網(wǎng)絡(luò)輸入變量過(guò)多時(shí),網(wǎng)絡(luò)結(jié)構(gòu)更復(fù)雜,網(wǎng)絡(luò)訓(xùn)練負(fù)擔(dān)過(guò)重,學(xué)習(xí)效率驟降,將高維數(shù)據(jù)在不影響較多期望的前提下降維,網(wǎng)絡(luò)的學(xué)習(xí)效率才會(huì)有所提高,BP網(wǎng)絡(luò)的實(shí)際應(yīng)用也將更有價(jià)值。
混合蛙跳算法,是2003年由Eusuff 和Lansay提出的一種基于啟發(fā)式搜索的全局優(yōu)化群體智能算法,它具有全局搜索能力強(qiáng)、參數(shù)少、原理簡(jiǎn)單易實(shí)現(xiàn)等特點(diǎn),將混合蛙跳算法與BP網(wǎng)絡(luò)結(jié)合,利用SFLA的全局搜索優(yōu)化BP網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù),可以有效解決BP網(wǎng)絡(luò)易陷入局部最優(yōu)等問(wèn)題。
為了解決BP網(wǎng)絡(luò)中的缺陷,該文利用了主成分分析法降維與SFLA 全局搜索能力強(qiáng)等優(yōu)點(diǎn),網(wǎng)絡(luò)輸入使用PCA降維,網(wǎng)絡(luò)參數(shù)使用SFLA優(yōu)化,提高了BP網(wǎng)絡(luò)的學(xué)習(xí)效率,實(shí)驗(yàn)證明,新模型更優(yōu)。
1 主成分分析
主成分分析是由霍特林于1933年第一個(gè)提出的,主要是根據(jù)降維的思想,在損失較少信息期望的前提下,將多個(gè)相互關(guān)聯(lián)的指標(biāo)轉(zhuǎn)化為幾個(gè)綜合指標(biāo)的多元統(tǒng)計(jì)分析方法。其主要計(jì)算步驟為:
設(shè)有m個(gè)指標(biāo)
1)對(duì)
2)計(jì)算各指標(biāo)的相關(guān)系數(shù)矩陣R與R的特征值
3)確定主成分的個(gè)數(shù)
計(jì)算各個(gè)主成分的方差貢獻(xiàn)率
4)計(jì)算主成分的因子載荷矩陣I
5)根據(jù)因子載荷矩陣,確定各主成分表達(dá)式,得到各主成分得分。
2 混合蛙跳算法
混合蛙跳算法[2],在模擬青蛙群體尋找食物時(shí),將蛙群分為幾個(gè)子種群,每個(gè)子種群以及每只青蛙覓食的思想相互傳遞相互影響,將全局信息混合交換與局部信息深度搜索相結(jié)合,局部深度搜索能夠快速有效地在一個(gè)特定區(qū)域內(nèi)尋優(yōu),加快尋優(yōu)速度;而全局混合交換可以避免個(gè)體陷入局部最優(yōu),使得算法能夠跳出局部最優(yōu),不斷靠近全局最優(yōu)。算法的基本流程[3]如下:
1)初始化種群X。確定青蛙的數(shù)量F、種群以及每個(gè)種群青蛙的個(gè)數(shù)m,n,與青蛙最大步長(zhǎng)
2)隨機(jī)產(chǎn)生初始青蛙,計(jì)算各個(gè)蛙的個(gè)體適應(yīng)度值
3)將青蛙進(jìn)行分組,將青蛙分成m個(gè)子種群,每個(gè)子種群有n只青蛙,分組規(guī)則如下:
即將第1只青蛙放入第1個(gè)子種群,第2只青蛙放入第2個(gè)子種群,…,第m只青蛙放入第m個(gè)子種群,第m+1只青蛙放入第1個(gè)子種群,第m+2只青蛙放入第2個(gè)子種群,依此類(lèi)推,直至全部青蛙分組完畢。
4)對(duì)每一個(gè)分組進(jìn)行模因進(jìn)化,即局部搜索最優(yōu)。進(jìn)化過(guò)程如下:
a)找出該分組中個(gè)體適度值最差
b)對(duì)個(gè)體適度值最差的個(gè)體進(jìn)行更新,更新策略為:
i.蛙跳步長(zhǎng)更新:
ii.位置更新:
如果
2)重新將進(jìn)化完的各個(gè)分組進(jìn)行混洗,對(duì)青蛙進(jìn)行重新排序和分組,得到最優(yōu)解
3)重復(fù)計(jì)算(3)(4)(5)直至滿(mǎn)足迭代條件為止。
3 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)[1]是一種單向傳播的多層前饋網(wǎng)絡(luò),其主要特點(diǎn)是信號(hào)前向傳遞,誤差反向傳播。其拓?fù)浣Y(jié)構(gòu)如圖所示:
由圖1可知,BP神經(jīng)網(wǎng)絡(luò)是一種具有三層或三層以上的神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層和輸出層,層與層之間多采用全連接的方式,可以被看成是一個(gè)從輸入到輸出的高度非線(xiàn)性映射,即:
以典型的3層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為例,轉(zhuǎn)移函數(shù)采用Sigmoid函數(shù),
則:
其中
4 PCA-SFLA-BP神經(jīng)網(wǎng)絡(luò)模型
標(biāo)準(zhǔn)的BP網(wǎng)絡(luò)算法學(xué)習(xí)效率低,收斂速度慢。當(dāng)輸入層的節(jié)點(diǎn)數(shù)較多時(shí),也易陷入“維數(shù)災(zāi)”的問(wèn)題,同樣會(huì)影響其收斂的速度。
主成分分析[4]基于降維的思想,可以減少BP網(wǎng)絡(luò)陷入“維數(shù)災(zāi)”的問(wèn)題;混合蛙跳算法是一種群體智能優(yōu)化算法,通過(guò)個(gè)體間的協(xié)作與競(jìng)爭(zhēng)來(lái)實(shí)現(xiàn)在多維空間中對(duì)最優(yōu)解的搜索。
因此,在進(jìn)行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),我們使用PCA對(duì)網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)進(jìn)行降維,使用混合蛙跳算法改進(jìn)優(yōu)化BP網(wǎng)絡(luò)的權(quán)值和閾值,從而提高網(wǎng)絡(luò)的學(xué)習(xí)效率[5][6]。其中適應(yīng)度函數(shù)定義如下:
式中,N為網(wǎng)絡(luò)輸入節(jié)點(diǎn)數(shù),
整個(gè)模型流程圖如圖2所示:
5 實(shí)驗(yàn)結(jié)果與分析
為了驗(yàn)證模型的有效性,選用UCI機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)中的Parkinson數(shù)據(jù)集作為測(cè)試,該數(shù)據(jù)集有195個(gè)樣本,由Little于2007年所建,主要針對(duì)31位病人,用生物醫(yī)學(xué)儀器進(jìn)行約6次的發(fā)音測(cè)試后記錄而成,共有23個(gè)字段,其中有22個(gè)字段為測(cè)試的屬性,如:MDVP、FO、Jitter、Shimmer、RAP、PPQ、HNR等一些聲學(xué)參數(shù),1個(gè)類(lèi)標(biāo)號(hào)(status),其值為0和1,1表示為確定病例。其中1有147例 ,0有48例。
上述數(shù)據(jù)集兩類(lèi)中分別隨機(jī)選取100例和36例作為網(wǎng)絡(luò)訓(xùn)練,其余的作為網(wǎng)絡(luò)測(cè)試。并對(duì)網(wǎng)絡(luò)輸出重新定義,即將類(lèi)標(biāo)號(hào)進(jìn)行了處理,其中[0 1]表示0,[1 0]表示1。
隱含層節(jié)點(diǎn)數(shù)l采用公式:其中n為輸入層節(jié)點(diǎn)數(shù),m為輸出層節(jié)點(diǎn)數(shù),a取1-10。
構(gòu)建BP神經(jīng)網(wǎng)絡(luò)n-l-m,且本文中混合蛙跳算法的各參數(shù)分別為:青蛙規(guī)模F=20,子種群數(shù)量(模因組組數(shù))m=5,每組中蛙的數(shù)量n=4,模因進(jìn)化迭代次數(shù)Ne=10,全局迭代次數(shù)max gen=10,相當(dāng)于總迭代次數(shù)為在這種平臺(tái)上得到了本次實(shí)驗(yàn)結(jié)果。
5.1利用主成分分析選取網(wǎng)絡(luò)的輸入變量
將UCI中Parkinson[8]數(shù)據(jù)集的22個(gè)屬性作為原始數(shù)據(jù),按照前面主成分分析的步驟對(duì)原始數(shù)據(jù)進(jìn)行主成分分析。得到特征值碎石圖見(jiàn)圖3,累計(jì)方差貢獻(xiàn)率見(jiàn)表1。由表1可確定前4個(gè)特征值的累計(jì)方差貢獻(xiàn)率已大于80%,所以選取4個(gè)主成分,同時(shí)也可得出各主成分的表達(dá)式與主成分得分,將主成分得分作為網(wǎng)絡(luò)的輸入變量。其中之一的表達(dá)式如下:
5.2構(gòu)建SFLA-BP的帕金森病分類(lèi)模型
利用主成分得分作為網(wǎng)絡(luò)的輸入,即輸入層為4,分別以隱含層為4,6,8,10,輸出層為2構(gòu)造SFLA-BP神經(jīng)網(wǎng)絡(luò)的Parkinson分類(lèi)模型,隱實(shí)驗(yàn)結(jié)果以隨機(jī)某10次結(jié)果的平均值,其中得到某次實(shí)驗(yàn)(隱含層節(jié)點(diǎn)數(shù)為10)的均方誤差圖見(jiàn)圖4,結(jié)果見(jiàn)表2。
由圖4可得,應(yīng)用了主成分分析法,減少網(wǎng)絡(luò)的輸入變量個(gè)數(shù),網(wǎng)絡(luò)的結(jié)構(gòu)得到了簡(jiǎn)化,以及應(yīng)用了SFLA優(yōu)化BP的網(wǎng)絡(luò)參數(shù),學(xué)習(xí)率得到提高,網(wǎng)絡(luò)訓(xùn)練的次數(shù)減少,由表2可知:網(wǎng)絡(luò)的預(yù)測(cè)效果比較精確,模型有效可用。
5.3 預(yù)測(cè)結(jié)果比較
為了更好地對(duì)新模型與傳統(tǒng)BP模型進(jìn)行比較,該文多做了以下兩個(gè)實(shí)驗(yàn),對(duì)未經(jīng)過(guò)主成分分析的數(shù)據(jù),建立三層BP神經(jīng)網(wǎng)絡(luò)模型與SFLA-BP模型,實(shí)驗(yàn)結(jié)果仍然以隨機(jī)某10次結(jié)果的平均值,其中得到某兩次實(shí)驗(yàn)的均方誤差圖見(jiàn)圖5,6,結(jié)果見(jiàn)表3,4。
可見(jiàn):對(duì)于Parkinson數(shù)據(jù)集,PCASFLABP分類(lèi)模型訓(xùn)練速率與準(zhǔn)確率都優(yōu)于SFLABP網(wǎng)絡(luò),更優(yōu)于傳統(tǒng)的BP網(wǎng)絡(luò),能較好地改善BP網(wǎng)絡(luò)。
6 結(jié)束語(yǔ)
通過(guò)對(duì)BP神經(jīng)網(wǎng)絡(luò)的研究,該文提出的模型明顯優(yōu)于單純的BP網(wǎng)絡(luò)。該模型通過(guò)主成分分析對(duì)數(shù)據(jù)集進(jìn)行降維,SFLA全局優(yōu)化網(wǎng)絡(luò)參數(shù),較好地解決了BP神經(jīng)網(wǎng)絡(luò)參數(shù)復(fù)雜、易早熟的問(wèn)題,得到了較好地分類(lèi)效0KBbP/eeYVFnuC5XUffX3rjc2ZmIthvbJJkK+lW+0v4=果,將對(duì)Parkinson診斷方面有較大的幫助。
參考文獻(xiàn):
[1] Haykin S.神經(jīng)網(wǎng)絡(luò)原理[M].北京:機(jī)械工業(yè)出版社,2004.
[2] Eusuff M M, Lansey K E. Optimization of water distribution network begin using shuffled frog leaping algorithm[J].Journal of Water Resources Planning and Management,2003,129(3):210-225.
[3] 王曉笛,何燦.混洗蛙跳算法的研究[J] 電腦知識(shí)與技術(shù),2011,7(19):4661-4664.
[4] 許新征,丁世飛,楊勝?gòu)?qiáng),等.煤與瓦斯突出的PCA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型研究[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(28):219-222.
[5] 智晶,張冬梅,姜鵬飛.基于主成分的遺傳神經(jīng)網(wǎng)絡(luò)股票指數(shù)預(yù)測(cè)研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(26):210-212.
[6] 余華,黃程韋,張瀟丹,等.混合蛙跳算法神經(jīng)網(wǎng)絡(luò)及其在語(yǔ)音情感識(shí)別中的應(yīng)用[J].南京理工大學(xué)學(xué)報(bào),2011,5(35):659-663.
[7] 傅薈璇,趙紅.MATLAB神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2010.
[8] 常崇旺,高國(guó)棟,陳洪,等.人工神經(jīng)網(wǎng)絡(luò)診斷帕金森病的應(yīng)用研究[J].中國(guó)臨床康復(fù),2003(28),7:3818-3819.