目錄
摘要:
1.BP神經(jīng)網(wǎng)絡(luò)介紹:
2.遺傳算法原理介紹:
3.遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò):
4.算例分析:
5.本文Matlab代碼:
摘要:
基于Matalb平臺(tái),將遺傳算法(GA)與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,使用GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的主要參數(shù)。然后將影響輸出響應(yīng)值的多個(gè)特征因素作為GA-BP神經(jīng)網(wǎng)絡(luò)模型的輸入神經(jīng)元,?輸出響應(yīng)值作為輸出神經(jīng)元進(jìn)行預(yù)測(cè)測(cè)試。程序已做標(biāo)準(zhǔn)化處理,方便使用者替換自己的數(shù)據(jù),從而實(shí)現(xiàn)自己需要的功能。
1.BP神經(jīng)網(wǎng)絡(luò)介紹:
BP神經(jīng)網(wǎng)絡(luò)是多層前向型神經(jīng)網(wǎng)絡(luò),一般是由三層神經(jīng)元構(gòu)成的,每層有多個(gè)神經(jīng)元且每個(gè)神經(jīng)元自身相互獨(dú)立。當(dāng)三層網(wǎng)絡(luò)模型構(gòu)建成功后給網(wǎng)絡(luò)一個(gè)輸入樣本,樣本向量開始由輸入層神經(jīng)元傳輸?shù)诫[含層單元,經(jīng)過中間層逐層處理后又順序輸出到輸出層單元,通過傳遞到輸出層單元得出一個(gè)實(shí)際的樣本輸出,這種過程是逐層向前的傳播修改狀態(tài),這就是前向傳播過程。當(dāng)輸出的樣本向量與期望的輸出不符時(shí)就產(chǎn)生了誤差,誤差需要逆向傳播,逆向傳播的過程也是逐層傳遞并修改各層連接權(quán)值的過程。這樣的傳遞過程需要不斷的進(jìn)行,直到一組訓(xùn)練模式結(jié)束或者誤差達(dá)到了極小值,輸出結(jié)果滿足期望輸出為止。通過實(shí)驗(yàn)知道經(jīng)過不斷的修改神經(jīng)元之間的權(quán)值和偏置可以使網(wǎng)絡(luò)的輸出在誤差允許的范圍內(nèi)擬合所有的訓(xùn)練輸入。這個(gè)擬合的過程就是神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程,BP網(wǎng)絡(luò)的梯度下降算法是比較快速的權(quán)值調(diào)整算法,可以不斷地進(jìn)行誤差反向傳輸從而調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)值和閾值達(dá)到預(yù)期目標(biāo)。由于BP神經(jīng)網(wǎng)絡(luò)的功能特性使它成為使用最為廣泛的網(wǎng)絡(luò)模型之一。
圖1 BP神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
2.遺傳算法原理介紹:
遺傳算法(GeneticAlgorithm,GA)的理論是根據(jù)達(dá)爾文進(jìn)化論而設(shè)計(jì)出來的算法,大體意思是生物是朝著好的方向進(jìn)化的,在進(jìn)化的過程中會(huì)自動(dòng)選擇優(yōu)良基因淘汰劣等基因。向好的方向進(jìn)化就是最優(yōu)解的方向,優(yōu)良的基因是符合當(dāng)前條件的樣本基因,可以得到充分的選擇。遺傳學(xué)機(jī)理中的生物進(jìn)化過程中生物的一連串過程包括選測(cè)、交叉和變異三個(gè)主要的行為機(jī)制。因此遺傳算法也主要分為選擇、交叉和變異這三類操作完成淘汰機(jī)制,使訓(xùn)練后的自我進(jìn)化按照條件朝著有力的方向進(jìn)行,最終取得最優(yōu)個(gè)體和解集合。作為一種算法的形成還需要編碼、遺傳變異計(jì)算適應(yīng)度和解碼等。
遺傳算法的實(shí)現(xiàn)過程和運(yùn)算過程如圖2所示。首先需要通過編碼組成初始群體形成了遺傳算法的基礎(chǔ);以后就是選擇交叉和變異再選擇的過程。其中種群中個(gè)體的遺傳算子的操作都是在一定概率的情況下發(fā)生的。剛開始的遺傳算法集群中的個(gè)體向最優(yōu)解轉(zhuǎn)變是也是隨機(jī)的。但是需要說明的是這種隨機(jī)化操作選擇操作方法和傳統(tǒng)的隨機(jī)搜索方法是不同的,GA進(jìn)行的是高效有向的搜索而一般的隨機(jī)搜索每次操作都是無向的隨機(jī)搜索。
圖2 遺傳算法基本運(yùn)算過程
3.遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò):
下面是具體的改進(jìn)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)步驟:
(1)初始化BP神經(jīng)網(wǎng)絡(luò),確定網(wǎng)絡(luò)結(jié)構(gòu)和學(xué)習(xí)規(guī)則,以及遺傳算法的染色體長(zhǎng)度。
(2)初始化遺傳算法的參數(shù)(包括迭代次數(shù),種群大小,交叉概率和突變概率等),以及群體選擇遺傳算法的所需適應(yīng)度函數(shù)。
(3)使用輪盤賭方法選擇幾條染色體,以滿足適應(yīng)度函數(shù)的要求,作為新人口的父系。
(4)通過改變交叉過程和遺傳算法的變化,處理男性父母產(chǎn)生新的人口生成。
(5)判斷誤差是否達(dá)到精度,否定的話重新執(zhí)行(3)(4)步驟,使染色體不斷跟新從而使個(gè)體不斷更新;當(dāng)達(dá)到目標(biāo)后找到最優(yōu)染色體并賦值給BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)重和閾值。
上述步驟中,重要的步驟是解決遺傳算法的編碼問題,并選擇合適的適應(yīng)度函數(shù)。我們?cè)谶z傳算法中使用實(shí)數(shù)編,優(yōu)化GA算法的主要目的是找到最優(yōu)秀的藍(lán)色提,用以使得BP神經(jīng)網(wǎng)絡(luò)的誤差平方和達(dá)到最小值。所以我們可以選擇BP網(wǎng)絡(luò)的誤差平方和作為遺傳算法的適應(yīng)度函數(shù)。適應(yīng)度函數(shù)的公式如下所示:
4.算例分析:
首先導(dǎo)入訓(xùn)練數(shù)據(jù):訓(xùn)練輸入數(shù)據(jù)包含15個(gè)樣本,每個(gè)樣本有9個(gè)特征值,每個(gè)訓(xùn)練樣本有3個(gè)輸出具體數(shù)據(jù)如下所示:
設(shè)置遺傳算法和BP神經(jīng)網(wǎng)絡(luò)的初始參數(shù):
構(gòu)建GA-BP結(jié)構(gòu),對(duì)BP網(wǎng)絡(luò)中的參數(shù)進(jìn)尋優(yōu)優(yōu)化,到達(dá)最大的循環(huán)次數(shù)后,輸出最終的優(yōu)化變量結(jié)果,并使用該優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)對(duì)測(cè)試集的數(shù)據(jù)進(jìn)行預(yù)測(cè),評(píng)估預(yù)測(cè)的準(zhǔn)確度。進(jìn)化過程如下:
具體預(yù)測(cè)結(jié)果如下:文章來源:http://www.zghlxwxcb.cn/news/detail-446267.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-446267.html
5.本文Matlab代碼:
到了這里,關(guān)于遺傳算法(GA)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)回歸預(yù)測(cè)——附代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!