付 琦
(山東農(nóng)業(yè)工程學(xué)院,濟(jì)南 250100)
一種基于遺傳算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法
付 琦
(山東農(nóng)業(yè)工程學(xué)院,濟(jì)南 250100)
近年來,人工神經(jīng)網(wǎng)絡(luò)(ANN)提供了一種新的方法來模擬復(fù)雜而又難以定義的問題,ANN已經(jīng)在智能控制、機(jī)器人、模式識別、計算機(jī)視覺、生產(chǎn)過程優(yōu)化和信息處理等多種領(lǐng)域中取得了廣泛應(yīng)用[1~4]。研究結(jié)果表明,如果ANN的網(wǎng)絡(luò)結(jié)構(gòu)太大,將導(dǎo)致歸納性較差,反之,太小的網(wǎng)絡(luò)結(jié)構(gòu)則會造成學(xué)習(xí)能力偏低。因此,如何能夠快速而準(zhǔn)確地設(shè)計ANN網(wǎng)絡(luò)結(jié)構(gòu)一直以來都是工程領(lǐng)域和研究領(lǐng)域備受關(guān)注的熱點問題[5]。ANN網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化問題就是要確定ANN網(wǎng)絡(luò)中隱藏層的最優(yōu)數(shù)量,每一層中的神經(jīng)元數(shù)量及合適的激活函數(shù),以便盡量提高人工神經(jīng)網(wǎng)絡(luò)的性能[6]。
ANN網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法有很多種,文獻(xiàn)[7]利用主成分分析法確定輸入層結(jié)點數(shù),可使問題得到一定的解決,但是當(dāng)樣本數(shù)據(jù)很大時,樣本集本身沒有包含全部樣本的特征,將導(dǎo)致預(yù)測的結(jié)果出現(xiàn)較大的誤差。文獻(xiàn)[8]利用模糊聚類法首先對樣本進(jìn)行分類,然后再從每一類中按一定比例選擇學(xué)習(xí)樣本,但在分類時,究竟應(yīng)將樣本數(shù)據(jù)分為幾類往往隨意性很大。文獻(xiàn)[9]針對小波神經(jīng)網(wǎng)絡(luò)提出了一種基于自適應(yīng)投影算法的結(jié)構(gòu)優(yōu)化方法,但該方法計算量較大,處理過程相對較復(fù)雜。文獻(xiàn)[10]針對神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)存在冗余的問題, 提出了一種利用粗糙集優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的方法,該方法以粗糙集數(shù)據(jù)分析為基礎(chǔ),缺乏對決策原理的滲入闡述。
本文提出了一個新的基于數(shù)學(xué)規(guī)劃的ANN網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法,應(yīng)用遺傳算法找到最佳的隱藏層、激活函數(shù)和矩陣的權(quán)重,并將這個問題作為一個具有非混合約束的線性規(guī)劃,最終通過遺傳算法來解決。這樣設(shè)計之后,可以調(diào)整用于學(xué)習(xí)或者訓(xùn)練的ANN結(jié)構(gòu)權(quán)重矩陣,得到最佳的網(wǎng)絡(luò)結(jié)構(gòu)。本文的組織如下:第2節(jié)介紹了人工神經(jīng)網(wǎng)絡(luò),第3節(jié)提出了神經(jīng)優(yōu)化問題的架構(gòu)和建模思路,第4節(jié)展示了如何通過遺傳算法來解決這個問題,第5節(jié)進(jìn)行試驗驗證,第6節(jié)總結(jié)全文。
1969年,研究人員M. Minsky和S. Papert首次提出多層神經(jīng)網(wǎng)絡(luò)(MLN)的概念[11]。MLN網(wǎng)絡(luò)在輸入和輸出層間有一或多個隱藏層,其結(jié)構(gòu)如圖1所示,同一層中神經(jīng)元間沒有鏈路。一般來說,每個神經(jīng)元與下一層中的所有神經(jīng)元相連。
如圖1所示,本質(zhì)上來說,人工神經(jīng)網(wǎng)絡(luò)屬于暗箱運算,利用一組非線性基函數(shù)將輸出與輸出聯(lián)系起來。ANN網(wǎng)絡(luò)的基本單元是神經(jīng)元,包括簡單的同步處理元素,由生物神經(jīng)系統(tǒng)激活。利用一組輸入數(shù)據(jù)及實際測量值得出的相應(yīng)輸出數(shù)據(jù)(輸入/輸出對)來訓(xùn)練ANN網(wǎng)絡(luò),以便使一組輸入盡可能準(zhǔn)確地得出一組目標(biāo)輸出。許多研究已經(jīng)證明,MLN網(wǎng)絡(luò)可有效求解多種復(fù)雜問題。
在訓(xùn)練ANN網(wǎng)絡(luò)時需要調(diào)整神經(jīng)元間每條鏈路的權(quán)重,直到每組輸入數(shù)據(jù)計算出來的輸出與實驗數(shù)據(jù)輸出盡可能地接近。連續(xù)層中的神經(jīng)元互相連接,每個神經(jīng)元計算其輸入的權(quán)重之和,而輸出需要計算該值經(jīng)過激活函數(shù)調(diào)整過的值。比如,該激活函數(shù)可為S形函數(shù):
訓(xùn)練過后,網(wǎng)絡(luò)不僅可以對學(xué)習(xí)基點再生理想的輸出,對其他輸入也可以再生理想輸出,這個過程稱為泛化。
輸出層中的神經(jīng)元可收集hN隱藏層的輸出,輸出層的神經(jīng)元計算如下:
為了對神經(jīng)架構(gòu)優(yōu)化問題建模,神經(jīng)網(wǎng)絡(luò)的輸出可計算如下:
其中,U=[u1,…,ui,…,uN-1],其中向量ui的取值為0或1。
如圖2(a)所示,首個隱藏層的輸出可計算如下:
隱藏層i計算出來的輸出:
如圖2(b)所示,最后一個隱藏層計算如下:
如圖2(c)所示,神經(jīng)網(wǎng)絡(luò)的輸出計算如下:
優(yōu)化目標(biāo)函數(shù):數(shù)學(xué)規(guī)劃模型的目標(biāo)函數(shù)表示計算輸出和預(yù)期輸出間的誤差:
最后約束可保證存在隱藏層:
在本文中,我們的優(yōu)化目標(biāo)是調(diào)整ANN網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)重矩陣,我們將上述問題表述為一種固定變量非線性規(guī)劃問題下,并通過遺傳算法對其進(jìn)行解決。
遺傳算法(Genetic Algorithm,GA)屬于“進(jìn)化算法”概率方法,已經(jīng)在通信、路由、調(diào)度等多種領(lǐng)域的優(yōu)化問題中得到應(yīng)用[12]。GA算法以選擇和變異規(guī)則為基礎(chǔ)。每一個解表示一個或多個染色體被編碼的一個個體,這些染色體表示問題中的變量。首先,生成由固定數(shù)量個體組成的初始種群,對選擇出來的一組個體進(jìn)行繁殖操作,交換其適應(yīng)度。這一步驟一直持續(xù)至到達(dá)最大數(shù)量迭代次數(shù)為止,具體步驟如下:
1)初始種群
圖2 神經(jīng)網(wǎng)絡(luò)各層之間的計算方法
隨機(jī)產(chǎn)生N個初始串結(jié)構(gòu)數(shù)據(jù),每個串結(jié)構(gòu)數(shù)據(jù)稱為一個個體。N個個體,構(gòu)成了一個群體,這個參數(shù)N需要根據(jù)問題的規(guī)模而確定。初始種群中的個體隨機(jī)生成,其中向量“u”的變量取值0或1,權(quán)重矩陣從IR空間中隨機(jī)取值。
2)個體評估
計算交換產(chǎn)生的新個體的適應(yīng)度,適應(yīng)度用來度量種群中個體優(yōu)劣(符合條件的程度)的指標(biāo)值,這里的適應(yīng)度就是特征組合的判據(jù)的值。這個判據(jù)的選取是GA的關(guān)鍵所在。在該步驟中,根據(jù)個體表現(xiàn)為各個個體相應(yīng)分配一個稱為適應(yīng)度的數(shù)值;從本質(zhì)上來講,它取決于該個體的目標(biāo)函數(shù)值。個體的適應(yīng)度越大,匹配度越高。本文中的適應(yīng)度如下:
其中,M是一個遠(yuǎn)大于零數(shù)值,使“objective”目標(biāo)函數(shù)值最小,等價于使適應(yīng)度函數(shù)的值最大。
3)選擇
選擇的目的是為了從交換后的群體中選出優(yōu)良的個體,使它們有機(jī)會作為父代為下一代繁殖子孫。采用RWS(Roulette Wheel Selection)輪盤方法作為本文的選擇方法;該方法是一種比例型選擇方法,根據(jù)個體的適應(yīng)度來選擇個體,這一步驟的存在使得當(dāng)前群體是所有搜索過的解之中是最優(yōu)的前N個的集合。
4)變異
變異是算法中非常重要的一個步驟。該步驟中,根據(jù)種群中選擇出來的個體(父母)來生成新的個體(子嗣)。子個體構(gòu)建方法如下:我們固定一個變異點,母個體在該點切開,母個體1的第1部分與母個體2的第2部分屬于子個體1,其他部分屬于子個體2。在我們采用的變異策略中選擇不同的變異點,第1個變異點指向權(quán)重矩陣,第2個針對向量U。
我們在本小節(jié)將通過一些數(shù)值示例來闡述本文方法的驗證,本文采用多層網(wǎng)絡(luò)架構(gòu),該架構(gòu)使用的激活函數(shù)為:
這里,我們采用均方根誤差(RMSE)來評估統(tǒng)計性能,計算方法如下:
其中,Yi表示實際數(shù)值(計算出來的),d表示預(yù)測數(shù)值,其中第ith個觀測值從1~Q計數(shù),Q表示總觀測值的數(shù)量。
試驗結(jié)果如表2所示,可以看出,針對不同的ANN,通過本文的算法優(yōu)化均可以給出最佳的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化策略,優(yōu)化后的最佳隱藏層數(shù)量比設(shè)計值降低了30%左右,平均RMSE指標(biāo)小于1,從中可以看出本文中理論結(jié)果及新模型的有效性。
表1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化試驗結(jié)果
本文針對神經(jīng)網(wǎng)絡(luò)架構(gòu)優(yōu)化問題提出了一種基于遺傳算法的結(jié)構(gòu)優(yōu)化方法,尤其適合于求解復(fù)雜的非線性問題。經(jīng)測試,該方法可確定ANN網(wǎng)絡(luò)中隱藏層的最優(yōu)數(shù)量及最優(yōu)權(quán)重矩陣,以便使預(yù)期(預(yù)測)輸出與計算輸出間的誤差最小。這些參數(shù)的確定對ANN網(wǎng)絡(luò)的性能具有一定影響。此外,本文方法從本質(zhì)上來講非常容易實現(xiàn)并行化。
[1]梁捷,陳力.執(zhí)行器受限空間機(jī)器人的模糊神經(jīng)網(wǎng)絡(luò)控制[J].工程力學(xué).2014,(11):190-197.
[2]李震宇.基于神經(jīng)網(wǎng)絡(luò)的計算機(jī)網(wǎng)絡(luò)安全評價研究[J].電子制作.2014,(19):118.
[3]黃芳,吳小良.基于BP神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)爐出鋼過程氧含量預(yù)測及優(yōu)化[J].熱加工工藝.2013,(01):48-50.
[4]龔靜,陳向東,時子青.基于CS和神經(jīng)網(wǎng)絡(luò)的傳感器網(wǎng)絡(luò)模式識別研究[J].傳感器與微系統(tǒng).2011,(12):62-64.
[5]楊鐘瑾,史忠科.神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法[J].計算機(jī)工程與應(yīng)用.2004,(25):52-54.
[6]Wang D.Fast Constructive-Covering Algorithm for neural networks and its implement in classification[J].Applied Soft Computing.2008,8 (1):166-173.
[7]陳小前,羅世彬,王振國,等.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用中的前后處理過程研究[J].系統(tǒng)工程理論與實踐.2002,(01):65-70.
[8]何勇,項利國.基于模糊聚類的BP神經(jīng)網(wǎng)絡(luò)模型研究及應(yīng)用[J].系統(tǒng)工程理論與實踐.2004,(02):79-82.
[9]潘玉民,張曉宇,張全柱,等.基于量子粒子群優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)預(yù)測模型[J].信息與控制.2012,(06):741-746.
[10]夏紅霞,王惠營,胡磊.基于粗糙集的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法[J].計算機(jī)與數(shù)字工程.2010,(05):49-51.
[11]Cichoki A, Unberhuen R.Neural Network for Optimization and signal processing.
[12]李敏遠(yuǎn),都延麗.基于遺傳算法學(xué)習(xí)的復(fù)合神經(jīng)網(wǎng)絡(luò)自適應(yīng)溫度控制系統(tǒng)[J].控制理論與應(yīng)用.2004,(02):242-246.
A novel method for neural network structure optimization based on genetic algorithm
FU Qi
神經(jīng)網(wǎng)絡(luò)隱藏層數(shù)量的選擇以及權(quán)重值的確定對訓(xùn)練算法的收斂性有很大影響,為了解決神經(jīng)網(wǎng)絡(luò)(ANN)訓(xùn)練過程中結(jié)構(gòu)復(fù)雜的問題,提出了一種基于遺傳算法(GA)的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法。試驗結(jié)果表明,在訓(xùn)練樣板數(shù)量較大時,優(yōu)化后的ANN能夠計算出隱藏層的最佳數(shù)量,從而提高整體的性能,具有較好的泛華能力。
神經(jīng)網(wǎng)絡(luò);結(jié)構(gòu)優(yōu)化;遺傳算法;非線性優(yōu)化
付琦(1982 -),男,山東濟(jì)南人,講師,碩士,研究方向為計算機(jī)科學(xué)與技術(shù)。
book=74,ebook=406
TP18
A
1009-0134(2015)07(下)-0071-04
10.3969/j.issn.1009-0134.2015.07(下).22
2015-03-18