閔江濤
(楊凌職業(yè)技術(shù)學(xué)院水利工程學(xué)院 陜西楊凌 712100)
神經(jīng)網(wǎng)絡(luò)算法和遺傳算法己成為計(jì)算智能的兩大信息科學(xué),兩者各自有優(yōu)勢:神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的自學(xué)本領(lǐng),而遺傳算法擅長于全局尋優(yōu)。如將兩者融合起來,取長補(bǔ)短不僅在理論上顯示出不錯(cuò)的前景,在實(shí)踐應(yīng)用中也將取得進(jìn)展。
BP神經(jīng)網(wǎng)絡(luò)[1]是指由誤差反向傳播BP算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是目前應(yīng)用最廣泛的人工神經(jīng)網(wǎng)絡(luò)之一。
BP神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)有:
(1)學(xué)習(xí)率和穩(wěn)定性的沖突。BP算法的學(xué)習(xí)率比較小,學(xué)習(xí)過程的收斂速度也比較慢。如果問題太過麻煩,BP網(wǎng)絡(luò)算法的訓(xùn)練時(shí)間有可能會(huì)很長。
(2)訓(xùn)練過程容易陷于局部極小值。BP算法能使網(wǎng)絡(luò)的權(quán)值收斂到一個(gè)解,但并不能保證所求的解是全局的最小解,此解極有可能是一個(gè)局部最小解。
(3)學(xué)習(xí)率的選擇缺乏有效的方法。對于線性網(wǎng)絡(luò),學(xué)習(xí)率選擇太大,容易導(dǎo)致學(xué)習(xí)不穩(wěn)定;反之,學(xué)習(xí)率選擇太小,則可能出現(xiàn)過長的學(xué)習(xí)時(shí)間。
遺傳算法[2~3]是基于進(jìn)化論和遺傳學(xué)說的模仿自然界生物進(jìn)化機(jī)制的隨機(jī)全局搜索和優(yōu)化方法。遺傳算法采用適者生存的原則,在所有方案的種群中逐次操作,來產(chǎn)生一個(gè)接近最優(yōu)的方案。
遺傳算法的主要缺點(diǎn)有:
(1)遺傳算法容易早熟。尤其是群體規(guī)模較小時(shí),在進(jìn)化初期出現(xiàn)適應(yīng)度較高的個(gè)體,則群體多樣性容易受到破壞而出現(xiàn)早熟收斂現(xiàn)象。
(2)局部尋優(yōu)能力不足,遺傳算法能以極快的速度搜索到最優(yōu)解所在的小區(qū)間,可是卻需要很長的時(shí)間才能搜索到最優(yōu)解。
(3)遺傳操作中的交叉和變異的隨機(jī)性比較強(qiáng),致使搜索效率較低,表現(xiàn)為進(jìn)化過程中父代與子代之間最優(yōu)個(gè)體出現(xiàn)退化的現(xiàn)象。
2.3.1 遺傳算法與神經(jīng)網(wǎng)絡(luò)融合的可行性研究
根據(jù)BP算法的缺點(diǎn),其不可避免的會(huì)落入局部極小值;而遺傳算法擅長于全局搜索,但對局部的精確搜索卻顯得力不從心。通過把遺傳算法和BP算法融合在一起,將實(shí)現(xiàn)優(yōu)勢互補(bǔ),這樣既利用了遺傳算法的全局優(yōu)化功能,又利用了BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)推理和預(yù)測功能,一舉兩得。
2.3.2 遺傳算法與BP神經(jīng)網(wǎng)絡(luò)融合的反分析模型實(shí)現(xiàn)流程
其具體實(shí)現(xiàn)步驟如下:
(1)初始化參數(shù)及種群。以十進(jìn)制編碼方式產(chǎn)生N個(gè)個(gè)體,構(gòu)成初始群體,然后確定種群數(shù),最大迭代次數(shù),染色體的長度、范圍,期望輸出誤差等參數(shù);
(2)適應(yīng)度計(jì)算。按預(yù)測輸出值和期望輸出值之間誤差平方和的倒數(shù)作為各個(gè)個(gè)體的適應(yīng)度值F,則計(jì)算公式為:
式中:n為網(wǎng)絡(luò)輸出節(jié)點(diǎn)數(shù);ai為第i個(gè)節(jié)點(diǎn)的實(shí)際輸出值;yi為第i個(gè)節(jié)點(diǎn)的期望輸出值。
(3)交叉操作。根據(jù)適應(yīng)度函數(shù)值,從當(dāng)前代個(gè)體中選出較優(yōu)個(gè)體,分別對其進(jìn)行交叉操作和變異操作;
其中第k個(gè)染色體ak和第1個(gè)染色體a1在j位的交叉操作方法為:
式中:b 是[0,1]間的隨機(jī)數(shù)。
(4)變異操作。選擇第i個(gè)個(gè)體的第j個(gè)基因aij進(jìn)行變異,變異操作的方法如下:
式中:amax為基因aij的上界;amin為基因aij的下界;f(g)=r2(1-g/Gmax);r2為一個(gè)隨機(jī)數(shù);g為當(dāng)前迭代次數(shù);Gmax為最大進(jìn)化次數(shù);r為[0,1]間的隨機(jī)數(shù)。
(5)評價(jià)每個(gè)個(gè)體的適應(yīng)度函數(shù)值,再進(jìn)行選擇操作;
(6)如果終止準(zhǔn)則滿足,則確定結(jié)果轉(zhuǎn)至第八步;
(7)如果終止準(zhǔn)則不滿足,則世代數(shù)增加1,轉(zhuǎn)至第三步;
(8)獲取最優(yōu)的權(quán)值、閾值;
(9)用BP算法訓(xùn)練網(wǎng)絡(luò),調(diào)整各層之間的權(quán)值和閾值;
(10)計(jì)算各層網(wǎng)絡(luò)的誤差;
(11)若檢驗(yàn)誤差小于容許誤差,則滿足結(jié)束條件,否則轉(zhuǎn)至Step09;
(12)輸出優(yōu)化后的預(yù)測值,對程序的工作空間進(jìn)行保存,即對已形成的輸入-輸出之間的非線性映射關(guān)系進(jìn)行保存;
(13)調(diào)用Step12中的已經(jīng)形成的輸入-輸出間的非線性映射關(guān)系程序,利用這種映射關(guān)系以及BP神經(jīng)網(wǎng)絡(luò)所固有的泛化能力,通過輸入實(shí)測位移值,從而得到相應(yīng)本構(gòu)模型的參數(shù)值。
本文先對BP神經(jīng)網(wǎng)絡(luò)和遺傳算法進(jìn)行了簡單的概述;然后針對BP算法和遺傳算法的缺點(diǎn),將遺傳算法和BP算法結(jié)合起來,實(shí)現(xiàn)了優(yōu)勢互補(bǔ),通過對BP神經(jīng)網(wǎng)絡(luò)和遺傳算法結(jié)合的可行性研究,確定它們的融合是可行的,并擬定了GA-BP神經(jīng)網(wǎng)絡(luò)反分析模型實(shí)現(xiàn)的步驟。