吳永明,吳 晟
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650051)
改進(jìn)的遺傳算法在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化中的應(yīng)用
吳永明,吳 晟
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650051)
為了解決人工神經(jīng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)目難以確定的問題,針對(duì)三層BP神經(jīng)網(wǎng)絡(luò)提出了一種最大上限隱層節(jié)點(diǎn)數(shù)模型,并用改進(jìn)的遺傳算法對(duì)其優(yōu)化。最后,將優(yōu)化的神經(jīng)網(wǎng)絡(luò)對(duì)語音特征信號(hào)進(jìn)行分類。仿真結(jié)果表明優(yōu)化后的神經(jīng)網(wǎng)絡(luò)具有很好的泛化能力,驗(yàn)證了該方法的有效性。
遺傳算法;神經(jīng)網(wǎng)絡(luò);結(jié)構(gòu)優(yōu)化
人工神經(jīng)網(wǎng)絡(luò)[1](ANN)和遺傳算法[2](GA)都是將生物學(xué)原理運(yùn)用到智能計(jì)算研究中。人工神經(jīng)網(wǎng)絡(luò)是對(duì)人腦和動(dòng)物神經(jīng)的若干特點(diǎn)的人工模擬[3],具有一個(gè)隱含層的神經(jīng)網(wǎng)絡(luò)就能逼近任意復(fù)雜的連續(xù)函數(shù)[4]。但在實(shí)際運(yùn)用中,隱含層的節(jié)點(diǎn)數(shù)目、初始的權(quán)值或閾值的確定都依賴于使用者的經(jīng)驗(yàn)[5-6],隱含層的節(jié)點(diǎn)數(shù)太少,擬合的精度很難達(dá)到要求,反之,則可能出現(xiàn)過擬合現(xiàn)象,從而增加了訓(xùn)練的時(shí)間。遺傳算法是從自然界生物的進(jìn)化中得到啟示,利用遺傳算子進(jìn)行全局搜索尋優(yōu)。因此,利用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)具有十分重要的意義。由于神經(jīng)網(wǎng)絡(luò)的初始化具有很大的隨機(jī)性,輸入和輸出節(jié)點(diǎn)數(shù)一般根據(jù)具體問題而定,即便有確定的隱層節(jié)點(diǎn)數(shù)目,針對(duì)同一問題,得出的結(jié)論也可能不同。這是因?yàn)榻⒕W(wǎng)絡(luò)時(shí),初始的權(quán)值或閾值都是系統(tǒng)隨機(jī)分配的。近年來,許多研究者對(duì)神經(jīng)網(wǎng)絡(luò)的研究都是在隨機(jī)性的基礎(chǔ)上,這樣就沒有一個(gè)共同的初始權(quán)值和閾值的標(biāo)準(zhǔn),參考文獻(xiàn)[7]中提出用混合編碼來優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),雖然同一起始權(quán)值或閾值條件得到了保證,但是對(duì)于高維輸入的編碼太長,不利于遺傳優(yōu)化計(jì)算。例如,輸入、隱層、輸出的節(jié)點(diǎn)數(shù)分別為 24、30、4,不加入閾值只對(duì)權(quán)值進(jìn)行編碼,編碼的長度就達(dá)到了近千位。
為了統(tǒng)一起始權(quán)值和閾值標(biāo)準(zhǔn),使節(jié)點(diǎn)數(shù)優(yōu)劣的比較都局限在一個(gè)框架下,克服編碼長度過長等問題,本文首先確定一個(gè)隱層節(jié)點(diǎn)數(shù)的上限,以隱層節(jié)點(diǎn)數(shù)上限建立一個(gè)初始網(wǎng)絡(luò),一旦網(wǎng)絡(luò)初始化,網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)、權(quán)值、閾值被唯一確定在這個(gè)模型范圍內(nèi),利用遺傳算法在同一框架下優(yōu)化后得到最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)。
在大量的BP應(yīng)用實(shí)例中,對(duì)于三層的BP神經(jīng)網(wǎng)絡(luò),輸入和輸出節(jié)點(diǎn)數(shù)目一般按照具體的情況而定,而隱層節(jié)點(diǎn)數(shù)目沒有明確的理論依據(jù)[8],大多數(shù)BP網(wǎng)絡(luò)中隱層節(jié)點(diǎn)數(shù)的確定仍采用試湊的方式。根據(jù)Kolmogorov定理,最佳的隱層節(jié)點(diǎn)可以參考式(1):
其中,l為隱層節(jié)點(diǎn)數(shù),m為輸入層節(jié)點(diǎn)數(shù),n為輸出層節(jié)點(diǎn)數(shù),a為0~10之間的常數(shù)。在實(shí)際問題中,隱含層節(jié)點(diǎn)數(shù)的選擇首先是參考公式來確定節(jié)點(diǎn)數(shù)的大概范圍。為了使最佳隱層節(jié)點(diǎn)數(shù)落在模型的范圍內(nèi),本文的思想是將這個(gè)范圍適當(dāng)擴(kuò)大(即隱層節(jié)點(diǎn)數(shù)的上限)。在后面的仿真中,輸入節(jié)點(diǎn)數(shù)為24,輸出節(jié)點(diǎn)數(shù)為4,由式(1)得出l<6+10=16。為了得出最好的測(cè)試效果,l取上限取值為30建立神經(jīng)網(wǎng)絡(luò),然后用改進(jìn)的遺傳算法對(duì)其優(yōu)化。
遺傳算法[9]是基于自然選擇和生物進(jìn)化的全局優(yōu)化方法,通常由選擇、交叉和變異三種基本操作組成。遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的具體步驟如下:
(1)建立一個(gè)上限隱層節(jié)點(diǎn)數(shù)的BP神經(jīng)網(wǎng)絡(luò),將網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù)用一個(gè)二進(jìn)制字符串進(jìn)行編碼,用遺傳算法求得最優(yōu)隱層節(jié)點(diǎn)數(shù)目以及相應(yīng)的節(jié)點(diǎn)在網(wǎng)絡(luò)模型中的位置,提取相應(yīng)的權(quán)值和閾值。
(2)將提取得到的最優(yōu)節(jié)點(diǎn)數(shù)對(duì)應(yīng)的權(quán)值和閾值建立BP神經(jīng)網(wǎng)絡(luò),通過訓(xùn)練滿足要求后得到最優(yōu)的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的算法流程如圖1所示。
(1)編碼。為了在確定的BP模型中找到最優(yōu)的結(jié)構(gòu),本文采用二進(jìn)制符號(hào)串d1d2…di…dn對(duì)神經(jīng)網(wǎng)絡(luò)的隱層節(jié)點(diǎn)編碼,其中n為隱層節(jié)點(diǎn)數(shù)上限,di=1時(shí)表示該節(jié)點(diǎn)有效,di=0時(shí)表示該節(jié)點(diǎn)無效,如圖2所示。設(shè)隱層上限節(jié)點(diǎn)數(shù)為4的BP網(wǎng)絡(luò),當(dāng)編碼為1011時(shí),表明在網(wǎng)絡(luò)中選擇了第1、3、4個(gè)節(jié)點(diǎn),即建立了含有隱層節(jié)點(diǎn)數(shù)目為3的BP神經(jīng)網(wǎng)絡(luò),同時(shí)被選中的節(jié)點(diǎn)有關(guān)的權(quán)值或閾值有效。
(2)初始種群的產(chǎn)生。為避免隨機(jī)方式產(chǎn)生初始個(gè)體在解空間上分布出現(xiàn)不均衡性,使搜索具有更高的全局性,本文采用式(2)產(chǎn)生初始種群:
其中,xi表示產(chǎn)生的第 i個(gè)個(gè)體中 1的個(gè)數(shù),xL、xU分別表示個(gè)體中1的個(gè)數(shù)的下界和上界,m表示種群的大小,這樣編碼的好處在于:搜索過程中最優(yōu)個(gè)體很容易被搜索到。
設(shè)種群的規(guī)模為m,即有m個(gè)個(gè)體,在遺傳算法的每一代中,對(duì)每個(gè)個(gè)體譯碼提取相應(yīng)的初始權(quán)值和閾值建立BP神經(jīng)網(wǎng)絡(luò),輸入N個(gè)樣本對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,設(shè)第 k個(gè)樣本的實(shí)際輸出和期望輸出分別為:yk和 vk,k=1,2,3…N,均方誤差 Ei的倒數(shù)作為適應(yīng)度函數(shù):
故個(gè)體函數(shù)的適應(yīng)度fi可以定義為:
進(jìn)行選擇操作時(shí),按照適應(yīng)度值的大小,采用輪盤賭算法進(jìn)行選擇,然后用父代中最優(yōu)個(gè)體代替選擇后的最差的個(gè)體,這樣在每一代中都保留了上一代的最優(yōu)個(gè)體,確保經(jīng)過遺傳運(yùn)算得到的下一代最優(yōu)個(gè)體的適用度不低于父代中最優(yōu)個(gè)體的適用度,能避免進(jìn)化過程中的振蕩現(xiàn)象,同時(shí)也加快了搜索速度。交叉操作中,本文采用單點(diǎn)交叉方式,自適應(yīng)動(dòng)態(tài)交叉率,保留最優(yōu)個(gè)體不進(jìn)行交叉,并且回避適應(yīng)度相近個(gè)體交叉。假設(shè)當(dāng)代的平均適應(yīng)度為favg,交叉的兩個(gè)個(gè)體的適應(yīng)度分別為ffirst、fsecond,設(shè)置交叉率的范圍為 0.5~1,動(dòng)態(tài)自適應(yīng)交叉率采用式(5):
在本算法中,為了使最優(yōu)個(gè)體得到保護(hù),將最優(yōu)個(gè)體復(fù)制直接進(jìn)入下一代。設(shè)總的遺傳代數(shù)為M,連續(xù)出現(xiàn)N代沒有產(chǎn)生新的最優(yōu)個(gè)體,對(duì)變異率的改進(jìn)如式(6):
其中,a、b是很小的常數(shù),可以根據(jù)具體情況調(diào)節(jié) a、b的大小,N值越大,變異概率會(huì)增加,縮短了找到最優(yōu)個(gè)體的時(shí)間。變異得到最優(yōu)個(gè)體后,通過適應(yīng)度函數(shù)計(jì)算出新的適應(yīng)度值,對(duì)新的個(gè)體進(jìn)行下一輪的選擇、交叉和變異,直到找到最優(yōu)解或者次優(yōu)解。
本文將改進(jìn)的遺傳算法運(yùn)用在語音信號(hào)特征分類中,并與沒有經(jīng)過優(yōu)化的網(wǎng)絡(luò)進(jìn)行比較。本實(shí)驗(yàn)選取了民歌、古箏、搖滾和流行四種不同的音樂,每類音樂都用倒譜系數(shù)法提取500組24維語音特征信號(hào),提取的語音特征信號(hào)如圖3所示。
按第1節(jié)中隱層節(jié)點(diǎn)的估計(jì),本實(shí)驗(yàn)隱層節(jié)點(diǎn)數(shù)的上限設(shè)置為 30,輸入、輸出節(jié)點(diǎn)數(shù)分別為 24和 4,遺傳種群規(guī)模設(shè)為20,編碼長度為30,遺傳進(jìn)化次數(shù)為100。每類語音信號(hào)有500組數(shù)據(jù),樣本總數(shù)為2 000,隨機(jī)抽取1 500組數(shù)據(jù)用作網(wǎng)絡(luò)訓(xùn)練,剩下的500組作為測(cè)試數(shù)據(jù),對(duì)實(shí)驗(yàn)數(shù)據(jù)歸一化后實(shí)驗(yàn),遺傳算法優(yōu)化過程中最佳適應(yīng)度以及平均適應(yīng)度值的變化如圖4所示。
用改進(jìn)的遺傳算法對(duì)上限BP神經(jīng)網(wǎng)絡(luò)優(yōu)化后,得到的最佳隱層節(jié)點(diǎn)數(shù)為12,經(jīng)過訓(xùn)練后的BP神經(jīng)網(wǎng)絡(luò)對(duì)語音特征信號(hào)測(cè)試數(shù)據(jù)進(jìn)行分類,先分別將民歌、古箏、搖滾、流行音樂編號(hào)為 1、2、3、4類,將預(yù)測(cè)的輸出結(jié)果與期望分類編號(hào)比較(有負(fù)值的情況),得出分類誤差如圖5所示。
為了比較用遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)與沒有優(yōu)化神經(jīng)網(wǎng)絡(luò)的性能,隨機(jī)地從模型中選擇隱層節(jié)點(diǎn)數(shù)為10、15、20、25、30 與節(jié)點(diǎn)數(shù)為 12 的 BP 神經(jīng)網(wǎng)絡(luò)的進(jìn)行比較,初始的權(quán)值和閾值仍然來源于本實(shí)驗(yàn)中建立的上限隱層節(jié)點(diǎn)數(shù)BP神經(jīng)網(wǎng)絡(luò),分類正確率如表1所示。
表1 不同隱層節(jié)點(diǎn)數(shù)正確識(shí)別率的比較
從表1的數(shù)據(jù)可以看出,在同一個(gè)上限隱層節(jié)點(diǎn)數(shù)的BP神經(jīng)網(wǎng)絡(luò)模型中,古箏的識(shí)別正確率都達(dá)到了100%,但優(yōu)化后得出的隱層節(jié)點(diǎn)數(shù)目為12的BP神經(jīng)網(wǎng)絡(luò)的平均正確識(shí)別率高達(dá)93.3%,明顯好于沒有經(jīng)過優(yōu)化的網(wǎng)絡(luò),并且每一類的正確率比較均衡。
針對(duì)BP神經(jīng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)很難確定的問題,本文根據(jù)實(shí)際的問題建立了上限隱層節(jié)點(diǎn)數(shù)的BP神經(jīng)網(wǎng)絡(luò),克服了每次建立BP神經(jīng)網(wǎng)絡(luò)分配權(quán)值和閾值的隨機(jī)性,使評(píng)判的標(biāo)準(zhǔn)都統(tǒng)一在建立好的上限隱層節(jié)點(diǎn)數(shù)的BP網(wǎng)絡(luò)模型范圍內(nèi),并利用改進(jìn)的遺傳算法優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),最終找到網(wǎng)絡(luò)結(jié)構(gòu)的最優(yōu)解或者次優(yōu)解。該算法為選擇隱層節(jié)點(diǎn)數(shù)提供了一種具有指導(dǎo)意義的方法,獲得了更加合理的網(wǎng)絡(luò)結(jié)構(gòu),運(yùn)用到實(shí)際分類過程中也取得了較好的效果。
[1]TAKAHAMA S S.Structural learning of neural networks[J].IEEE International Conference on Systems. Man and Cybernetics.2004,12(1):3507-3512.
[2]ZHOU Ming.Genetic algorithms:theory and application[M].Beijing:National Defence Industry Press,2001.
[3]ROVITHAKIS G A,CHALKIADAKIS I,ZERVAJIS M E.High-order neural network structure selection using genetic algorithms[J]. IEEE Transactions on Systems,Man and Cybernetics,2004,34(1):150-158.
[4]HOMIK K M,STINCHCOMBE M. Multilayer feedforward networks are universal approximators[J].Neural Networks,1989,2(2):359-366.
[5]KURKOVA V,KAINEN P C,KREINOVICH V.Estimates of the number of hidden units and variation with respect to halfspace[J].Neural Networks,1997,10(6):1068-1078.
[6]MAIOROV V,MEIR R S.Approximation bounds for smooth functions in C(Rd)by neural and mixture networks[J].IEEE Transactions on Neural Networks,1998,9(5):969-978.
[7]張偉棟,葉貞成,錢鋒.基于混合編碼的遺傳算法在神經(jīng)網(wǎng)絡(luò)優(yōu)化中的應(yīng)用[J].華東理工大學(xué)學(xué)報(bào),2008,34(1):108-111.
[8]王建軍,徐宗本.多元多項(xiàng)式函數(shù)的三層前向神經(jīng)網(wǎng)絡(luò)逼近方法[J].計(jì)算機(jī)學(xué)報(bào),2009,32(12):248-2488.
[9]范睿,李國斌,景韶光.基于實(shí)數(shù)編碼遺傳算法的混合神經(jīng)網(wǎng)絡(luò)算法[J].計(jì)算機(jī)仿真,2006,23(1):161-164.
Application of structural optimization of artificial neural network based on improved genetic algorithm
Wu Yongming,Wu Sheng
(School of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650051,China)
It is difficult to determine the number of hidden layer of BP artificial neural network.In order to solve the problem,a maximum number of hidden nodes model is proposed in this paper for three layers BP neural network,and optimized by using improved genetic algorithm.Finally,The voice signature is classified by using optimized BP neural network.The results show the effectiveness of the algorithm.
genetic algorithm;neural network;structural optimization
TP305
A
1674-7720(2011)03-0079-03
2010-09-08)
吳永明,男,1982年生,碩士,主要研究方向:網(wǎng)絡(luò)擁塞控制,人工智能。
吳晟,男,1960年生,教授,主要研究方向:人工智能,計(jì)算機(jī)網(wǎng)絡(luò),數(shù)據(jù)挖掘等。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年3期