一種基于遺傳算法改進(jìn)bp神經(jīng)網(wǎng)絡(luò)的方法
【專利摘要】本發(fā)明公開了一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,首先對BP網(wǎng)絡(luò)進(jìn)行編碼:確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),包括隱層個數(shù)、每一層的單元數(shù);采用實(shí)數(shù)編碼,將各層權(quán)值和閾值作為基因進(jìn)行編碼,編碼后每個神經(jīng)網(wǎng)絡(luò)對應(yīng)一條染色體;然后用遺傳算法對網(wǎng)絡(luò)進(jìn)行選擇優(yōu)化,包含選擇、交叉、變異步驟;最后對BP網(wǎng)絡(luò)時行訓(xùn)練,得到最終結(jié)果;對遺傳算法選擇的最優(yōu)個體進(jìn)行解碼生成新的神經(jīng)網(wǎng)絡(luò),運(yùn)用BP訓(xùn)練算法對新的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到最終結(jié)果。本發(fā)明的方法,將遺傳算法與BP網(wǎng)絡(luò)相結(jié)合,可以充分利用兩者的優(yōu)點(diǎn),既可以解決BP網(wǎng)絡(luò)初始權(quán)值和閾值不易確定的問題,又能將搜索范圍縮小,提高BP網(wǎng)絡(luò)的訓(xùn)練速度,還可以改善局部極小問題。
【專利說明】一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及人工神經(jīng)網(wǎng)絡(luò),特別涉及一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法?!颈尘凹夹g(shù)】
[0002]人工神經(jīng)網(wǎng)絡(luò)是由生物生神經(jīng)網(wǎng)絡(luò)發(fā)展而來的,是對人腦或若干基本特性的簡化、抽象和模擬。其目的在于模擬大腦的某些機(jī)理與機(jī)制,實(shí)現(xiàn)一些特定的功能。
[0003]其中BP神經(jīng)網(wǎng)絡(luò)作為一種使用最廣泛的神經(jīng)網(wǎng)絡(luò)模型,在手寫字體的識別、語音識別、人臉識別以及生物醫(yī)學(xué)信號處理等方面已有許多實(shí)際的應(yīng)用。
[0004]BP神經(jīng)網(wǎng)絡(luò)又稱誤差反向轉(zhuǎn)播網(wǎng)絡(luò),是一種多層前向網(wǎng)絡(luò),一般包含一個輸入層、一個輸出層以及一個或多個隱層,如圖1所示。BP神經(jīng)網(wǎng)絡(luò)是一種有導(dǎo)師學(xué)習(xí)網(wǎng)絡(luò),采用基于梯度下降的誤差反向傳播算法進(jìn)行訓(xùn)練,誤差的計算采用最小均方誤差(LMS)。按照BP算法的要求,BP神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元所用的激活函數(shù)必須是可導(dǎo)的,一般采有S型函數(shù)或線性函數(shù)。其網(wǎng)絡(luò)的學(xué)習(xí)過程如下:首先初始化網(wǎng)絡(luò)權(quán)值和閾值,然后通過正向傳播得到輸出結(jié)果,再通過誤差反身傳播對各層的權(quán)值和閾值進(jìn)行修正。如此反復(fù)進(jìn)行正向傳播和反向傳播的過程,直到輸出誤差滿足給定要求或達(dá)到預(yù)先設(shè)定的最大訓(xùn)練次數(shù)為止。
[0005]BP神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)中應(yīng)用最廣泛的算法,經(jīng)提出了很多有效的學(xué)習(xí)算法,但是仍然存在一些缺陷:①學(xué)習(xí)收斂速度太慢;@BP神經(jīng)網(wǎng)絡(luò)采用的梯度下降法修正權(quán)值和閾值,存在局部極小問題,不能保證收斂到全局最小點(diǎn);③隱層的數(shù)目和隱層單元數(shù)不易確定。各種改進(jìn)的學(xué)習(xí)算法雖然能夠改善BP神經(jīng)網(wǎng)絡(luò)的收斂速度,但是在實(shí)際應(yīng)用中仍然不夠完善,不能完全克服BP算法固有的缺陷。④網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值的選擇對網(wǎng)絡(luò)訓(xùn)練的影響很大,但是又無法準(zhǔn)確獲得。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法。
[0007]本發(fā)明的目的通過以下的技術(shù)方案實(shí)現(xiàn):
[0008]一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,包含以下順序的步驟:
[0009]S1.對BP網(wǎng)絡(luò)進(jìn)行編碼:確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),包括隱層個數(shù)、每一層的單元數(shù);采用實(shí)數(shù)編碼,將各層權(quán)值和閾值作為基因進(jìn)行編碼,編碼后每個神經(jīng)網(wǎng)絡(luò)對應(yīng)一條染色體;
[0010]S2.用遺傳算法對網(wǎng)絡(luò)進(jìn)行選擇優(yōu)化,具體包括以下步驟:
[0011](I)初始化種群:確定種群規(guī)模N,隨機(jī)生成N條染色體;
[0012](2)確定適應(yīng)性函數(shù):適應(yīng)性函數(shù)用來評判個體對環(huán)境的適應(yīng)性;
[0013](3)確定控制參數(shù):控件參數(shù)包括交叉概率、變異概率和終止條件;
[0014](4)根據(jù)適應(yīng)性函數(shù)計算各個體的適應(yīng)度;
[0015](5)執(zhí)行遺傳算子:[0016]a、選擇:運(yùn)用選擇算子從上一代種群中選擇適應(yīng)度高的個體;
[0017]b、交叉:將選擇的兩個適應(yīng)度高的個體作為母體,依據(jù)步驟(3)中設(shè)置的交叉概率,運(yùn)用交叉算子進(jìn)行交叉操作;
[0018]C、變異:依據(jù)變異概率執(zhí)行變異操作;
[0019](6)檢驗(yàn)是否滿足終止條件:若滿足,選擇適應(yīng)度最大的個體,進(jìn)入神經(jīng)網(wǎng)絡(luò)訓(xùn)練階段;否則轉(zhuǎn)步驟(4);
[0020]S3.對BP網(wǎng)絡(luò)時行訓(xùn)練,得到最終結(jié)果;對遺傳算法選擇的最優(yōu)個體進(jìn)行解碼生成新的神經(jīng)網(wǎng)絡(luò),運(yùn)用BP訓(xùn)練算法對新的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到最終結(jié)果。
[0021]步驟S2的步驟(2)中,所述的適應(yīng)性函數(shù)為神經(jīng)網(wǎng)絡(luò)誤差的單調(diào)遞減函數(shù)。
[0022]步驟S2的步驟(5)中,所述的選擇算子為輪盤賭選擇法、錦標(biāo)賽選擇法和競爭選擇法的其中一種。
[0023]步驟S2的步驟(5)中,所述的交叉操作為單點(diǎn)交叉或是多點(diǎn)交叉,交叉概率選取較大值,為0.25~0.75。
[0024]步驟S2的步驟(5)中,所述的變異概率取較小值,為0.001~0.1。
[0025]步驟S2的步驟(6)中,所述的終止條件為以下條件之一:
[0026]A、種群中個體的最大適應(yīng)度是否超過預(yù)先設(shè)定值;
[0027]B、進(jìn)化代數(shù)是否超過預(yù)先設(shè)定值;
[0028]C、種群中個體的平均適應(yīng)度是否超過預(yù)先設(shè)定值。
[0029]本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
[0030]遺傳算法利用了生物進(jìn)化和遺傳的思想,比起其他傳統(tǒng)優(yōu)化方法有明顯的優(yōu)勢:①遺傳算法處理的對象是參數(shù)編碼集。這種編碼操作,使得遺傳算法可以直接對結(jié)構(gòu)對象進(jìn)行操作。②遺傳算法具有自組織、自適應(yīng)性,不需要事先描述問題的全部特點(diǎn),可以解決一些復(fù)雜的非結(jié)構(gòu)化問題,具有很強(qiáng)的魯棒性。③搜索過程基于目標(biāo)函數(shù)值的評價信息,沒有優(yōu)化函數(shù)必須可導(dǎo)的要求。④采用概率的變遷規(guī)則來指導(dǎo)搜索方向,不采用確定性搜索規(guī)則。⑤思想簡單,實(shí)現(xiàn)步驟規(guī)范,便于實(shí)現(xiàn)。
[0031]遺傳算法具有快速尋優(yōu)的能力和良好的全局搜索能力,能夠很快逼近最優(yōu)結(jié)果,但是局部搜索能力不足;而8?網(wǎng)絡(luò)具有良好的自組織和自學(xué)習(xí)能力,局部尋優(yōu)能力強(qiáng)。因此將遺傳算法與BP網(wǎng)絡(luò)相結(jié)合,訓(xùn)練時先用遺傳算法對神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行尋優(yōu),再利用BP網(wǎng)絡(luò)來進(jìn)行精確求解,可以充分利用兩者的優(yōu)點(diǎn)。既可以解決BP網(wǎng)絡(luò)初始權(quán)值和閾值不易確定的問題,又能將搜索范圍縮小,提高BP網(wǎng)絡(luò)的訓(xùn)練速度,還可以改善局部極小問題。此外,針對BP網(wǎng)絡(luò)初始結(jié)構(gòu)不易確定的問題,也可以用遺傳算法進(jìn)行優(yōu)化。初始時隨機(jī)生成不同結(jié)構(gòu)(即隱層單元數(shù)不同)的BP網(wǎng)絡(luò),然后通過遺傳算法進(jìn)行選擇優(yōu)化,最終選擇最優(yōu)的個體解碼生成新的BP網(wǎng)絡(luò),再利用BP算法進(jìn)行網(wǎng)絡(luò)的訓(xùn)練。
【專利附圖】
【附圖說明】
[0032]圖1為BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;
[0033] 圖2為本發(fā)明所述的一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法的流程圖。
【具體實(shí)施方式】[0034]下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
[0035]如圖2,一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,包含以下順序的步驟:
[0036]S1.對BP網(wǎng)絡(luò)進(jìn)行編碼:確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),包括隱層個數(shù)、每一層的單元數(shù);采用實(shí)數(shù)編碼,將各層權(quán)值和閾值作為基因進(jìn)行編碼,編碼后每個神經(jīng)網(wǎng)絡(luò)對應(yīng)一條染色體;
[0037]S2.用遺傳算法對網(wǎng)絡(luò)進(jìn)行選擇優(yōu)化,具體包括以下步驟:
[0038]( I)初始化種群:確定種群規(guī)模N,隨機(jī)生成N條染色體;
[0039](2)確定適應(yīng)性函數(shù):適應(yīng)性函數(shù)用來評判個體對環(huán)境的適應(yīng)性,適應(yīng)性函數(shù)為神經(jīng)網(wǎng)絡(luò)誤差的單調(diào)遞減函數(shù);
[0040](3)確定控制參數(shù):控件參數(shù)包括交叉概率、變異概率和終止條件;
[0041](4)根據(jù)適應(yīng)性函數(shù)計算各個體的適應(yīng)度;
[0042](5)執(zhí)行遺傳算子:
[0043]a、選擇:運(yùn)用選擇算子從上一代種群中選擇適應(yīng)度高的個體,選擇算子為輪盤賭選擇法、錦標(biāo)賽選擇法和競爭選擇法的其中一種;
[0044]b、交叉:將選擇的兩個適應(yīng)度高的個體作為母體,依據(jù)步驟(3)中設(shè)置的交叉概率,運(yùn)用交叉算子進(jìn)行交叉操作,交叉操作為單點(diǎn)交叉或是多點(diǎn)交叉,交叉概率選取較大值,為 0.25 ?0.75 ;
[0045]C、變異:依據(jù)變異概率執(zhí)行變異操作,變異概率取較小值,為0.001?0.1 ;
[0046](6)檢驗(yàn)是否滿足終止條件:若滿足,選擇適應(yīng)度最大的個體,進(jìn)入神經(jīng)網(wǎng)絡(luò)訓(xùn)練階段;否則轉(zhuǎn)步驟(4);終止條件為以下條件之一:
[0047]A、種群中個體的最大適應(yīng)度是否超過預(yù)先設(shè)定值;
[0048]B、進(jìn)化代數(shù)是否超過預(yù)先設(shè)定值;
[0049]C、種群中個體的平均適應(yīng)度是否超過預(yù)先設(shè)定值;
[0050]S3.對BP網(wǎng)絡(luò)時行訓(xùn)練,得到最終結(jié)果;對遺傳算法選擇的最優(yōu)個體進(jìn)行解碼生成新的神經(jīng)網(wǎng)絡(luò),運(yùn)用BP訓(xùn)練算法對新的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到最終結(jié)果。
[0051]上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,其特征在于,包含以下順序的步驟: 51.對BP網(wǎng)絡(luò)進(jìn)行編碼:確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),包括隱層個數(shù)、每一層的單元數(shù);采用實(shí)數(shù)編碼,將各層權(quán)值和閾值作為基因進(jìn)行編碼,編碼后每個神經(jīng)網(wǎng)絡(luò)對應(yīng)一條染色體; 52.用遺傳算法對網(wǎng)絡(luò)進(jìn)行選擇優(yōu)化,具體包括以下步驟: (1)初始化種群:確定種群規(guī)模N,隨機(jī)生成N條染色體; (2)確定適應(yīng)性函數(shù):適應(yīng)性函數(shù)用來評判個體對環(huán)境的適應(yīng)性; (3)確定控制參數(shù):控件參數(shù)包括交叉概率、變異概率和終止條件; (4)根據(jù)適應(yīng)性函數(shù)計算各個體的適應(yīng)度; (5)執(zhí)行遺傳算子: a、選擇:運(yùn)用選擇算子從上一代種群中選擇適應(yīng)度高的個體; b、交叉:將選擇的兩個適應(yīng)度高的個體作為母體,依據(jù)步驟(3)中設(shè)置的交叉概率,運(yùn)用交叉算子進(jìn)行交叉操作; C、變異:依據(jù)變異概率執(zhí)行變異操作; (6)檢驗(yàn)是否滿足終止條件:若滿足,選擇適應(yīng)度最大的個體,進(jìn)入神經(jīng)網(wǎng)絡(luò)訓(xùn)練階段;否則轉(zhuǎn)步驟(4); 53.對BP網(wǎng)絡(luò)時行訓(xùn)練,得到最終結(jié)果;對遺傳算法選擇的最優(yōu)個體進(jìn)行解碼生成新的神經(jīng)網(wǎng)絡(luò),運(yùn)用BP訓(xùn)練算法對新的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到最終結(jié)果。
2.根據(jù)權(quán)利要求1所述的基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,其特征在于:步驟S2的步驟(2)中,所述的適應(yīng)性函數(shù)為神經(jīng)網(wǎng)絡(luò)誤差的單調(diào)遞減函數(shù)。
3.根據(jù)權(quán)利要求1所述的基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,其特征在于:步驟S2的步驟(5)中,所述的選擇算子為輪盤賭選擇法、錦標(biāo)賽選擇法和競爭選擇法的其中一種。
4.根據(jù)權(quán)利要求1所述的基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,其特征在于:步驟S2的步驟(5)中,所述的交叉操作為單點(diǎn)交叉或是多點(diǎn)交叉,交叉概率選取較大值,為0.25?0.75。
5.根據(jù)權(quán)利要求1所述的基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,其特征在于:步驟S2的步驟(5)中,所述的變異概率取較小值,為0.0Ol?0.1。
6.根據(jù)權(quán)利要求1所述的基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的方法,其特征在于:步驟S2的步驟(6)中,所述的終止條件為以下條件之一: A、種群中個體的最大適應(yīng)度是否超過預(yù)先設(shè)定值; B、進(jìn)化代數(shù)是否超過預(yù)先設(shè)定值; C、種群中個體的平均適應(yīng)度是否超過預(yù)先設(shè)定值。
【文檔編號】G06N3/12GK103971162SQ201410136702
【公開日】2014年8月6日 申請日期:2014年4月4日 優(yōu)先權(quán)日:2014年4月4日
【發(fā)明者】肖南峰 申請人:華南理工大學(xué)