李孝忠,張有偉
(天津科技大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院,天津300222)
改進(jìn)自適應(yīng)遺傳算法在BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中的應(yīng)用
李孝忠,張有偉
(天津科技大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院,天津300222)
針對(duì)遺傳算法容易產(chǎn)生局值的問題,提出一種新的自適應(yīng)遺傳算法,改進(jìn)遺傳算子,通過比較兩代之間的適應(yīng)度評(píng)估值,選取適合的交叉率和變異率,保證了優(yōu)秀個(gè)體進(jìn)入下一代,而且避免了種群中最大適應(yīng)度值的個(gè)體的交叉率和變異率為0的情況.最后,將改進(jìn)后的算法應(yīng)用于庫(kù)存控制模型,實(shí)驗(yàn)表明,改進(jìn)后的自適應(yīng)遺傳算法能避免局值,提高網(wǎng)絡(luò)的收斂速度,改善了網(wǎng)絡(luò)的學(xué)習(xí)性能.
BP神經(jīng)網(wǎng)絡(luò);遺傳算法;自適應(yīng)
BP神經(jīng)網(wǎng)絡(luò)是一個(gè)黑箱模型,它具有很強(qiáng)的非線性映射能力、適應(yīng)能力和學(xué)習(xí)能力,因此它的實(shí)際應(yīng)用較為廣泛[1].但是BP 算法也有很多的缺陷,首先,BP算法的誤差曲面通常都是凸凹不平的,會(huì)有多個(gè)極值點(diǎn),易于陷入局部極值;其次,BP 算法的收斂速度慢,這與它的步長(zhǎng)選擇有關(guān),步長(zhǎng)取值大,則達(dá)不到精度,取值小則迭代步驟增加,收斂速度慢.當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)比較大時(shí),這些缺點(diǎn)尤為明顯.針對(duì)這些缺點(diǎn),研究人員提出了很多對(duì)BP 算法的改進(jìn)方案[2–4],這些改進(jìn)在一定程度上加快了收斂速度,但是,這些方法也有可能陷入局值,得不到最優(yōu)解.
針對(duì)BP網(wǎng)絡(luò)初始權(quán)值的選擇問題,本文利用遺傳算法來優(yōu)化BP神經(jīng)網(wǎng)絡(luò),利用它來學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的權(quán)值,并在自適應(yīng)遺傳算法的基礎(chǔ)上改進(jìn)遺傳算子,根據(jù)適應(yīng)度變化調(diào)節(jié)交叉率和變異率,并利用遺傳算法的全局搜索能力對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)重進(jìn)行自適應(yīng)調(diào)整,最終得到一個(gè)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò).
1.1 BP網(wǎng)絡(luò)和BP算法分析
BP 神經(jīng)網(wǎng)絡(luò)是一種具有三層或三層以上的單向傳播的前饋多層神經(jīng)網(wǎng)絡(luò),BP算法的基本思想是最小二乘算法,它采用梯度搜索技術(shù)[2],學(xué)習(xí)過程是調(diào)整權(quán)值,以使網(wǎng)絡(luò)的實(shí)際輸出值與期望輸出值之間的誤差均方值最小.
BP三層神經(jīng)網(wǎng)絡(luò)包括輸入層,隱含層和輸出層.輸入層有m個(gè)輸入節(jié)點(diǎn)(X1,X2,…,Xm),隱含層有q個(gè)節(jié)點(diǎn)(Z1,Z2,…,Zq),輸出層有L個(gè)輸出節(jié)點(diǎn)(Y1,Y2,…,YL),wij是輸入層和隱含層節(jié)點(diǎn)間的連接權(quán)值,Wjk是隱含層和輸出層節(jié)點(diǎn)間的連接權(quán)值.θj為隱含層第j個(gè)節(jié)點(diǎn)的閾值,f1和f2為隱含層和輸出層的作用函數(shù),f1可以選擇非對(duì)稱型Sigmoid函數(shù)f1=1(1+e?x),f2可以選擇線性函數(shù),d為期望輸出值.以第t個(gè)輸入樣本為列,yk為輸出層第k個(gè)神經(jīng)元的輸出函數(shù),xk為輸出層第k個(gè)神經(jīng)元的輸入函數(shù),yj為隱含層第j個(gè)神經(jīng)元的輸出函數(shù),L為隱含層第j個(gè)神經(jīng)元的輸入函數(shù),η為學(xué)習(xí)速率,χ為平滑因子,0<χ<1.
1.2 遺傳算法
遺傳算法是建立在自然選擇和遺傳學(xué)機(jī)理上的一種搜索算法,該算法采用迭代尋優(yōu),著重解決現(xiàn)實(shí)中的優(yōu)化問題[5].遺傳算法的操作對(duì)象是種群,每個(gè)種群有若干個(gè)染色體組成,每一個(gè)染色體對(duì)應(yīng)于問題的一個(gè)解,由一個(gè)初始種群出發(fā),采用基于適應(yīng)度的選擇策略在當(dāng)前種群中選擇個(gè)體,使用復(fù)制、雜交和變異方法產(chǎn)生下一代種群,如此一代代不斷向最優(yōu)解方向進(jìn)化,最后得到滿足某種收斂條件的最適應(yīng)問題的最優(yōu)解.遺傳算法包含5個(gè)基本要素:參數(shù)編碼,初始化種群,選擇適應(yīng)度函數(shù),設(shè)計(jì)遺傳策略,設(shè)定控制參數(shù)[6].
2.1 自適應(yīng)遺傳算法
在遺傳算法中,由于交叉率和變異率的值是固定不變的,不能根據(jù)當(dāng)前已進(jìn)化的狀態(tài)取值,容易出現(xiàn)過早收斂而得到局部最優(yōu)解的現(xiàn)象[7],Srinvivas等[8]提出了一種隨適應(yīng)值變化的遺傳策略——自適應(yīng)遺傳算法,交叉率Pc和變異率Pm能夠隨適應(yīng)度自動(dòng)改變.當(dāng)種群各個(gè)體適應(yīng)度趨于一致或者趨于局部最優(yōu)時(shí),使Pc和Pm增加,而當(dāng)群體比較分散時(shí),使Pc和Pm減少.同時(shí),對(duì)于適應(yīng)值高于群體平均適應(yīng)值個(gè)體,對(duì)應(yīng)于較低Pc和Pm,使該個(gè)體可以進(jìn)入下一代;而低于平均適應(yīng)值個(gè)體,對(duì)應(yīng)于較高Pc和Pm,使該個(gè)體被淘汰,因此它能提供對(duì)某個(gè)解最佳的Pc和Pm.自適應(yīng)遺傳算法能夠在保持群體多樣性同時(shí),保證遺傳算法收斂性.經(jīng)過改進(jìn),Pc和Pm的表達(dá)式為
式中:fmax為群體中最大的適應(yīng)度值;fav為每代群體的平均適應(yīng)度值;'f為要交叉的兩個(gè)個(gè)體中較大的適應(yīng)度值;f為要變異個(gè)體的適應(yīng)度值;Pc1為固定最大交叉率;Pc2為固定最小交叉率;Pm1為固定最大變異率;Pm2為固定最小變異率.
2.2 改進(jìn)的自適應(yīng)遺傳算法
由式(6)和式(7)可以看出,在這個(gè)算法中,適應(yīng)度小的個(gè)體的變異能力較低,容易產(chǎn)生停滯現(xiàn)象.適應(yīng)度高的個(gè)體得到了保護(hù)和推廣,但是它的個(gè)體數(shù)目不宜過大,否則同樣會(huì)使種群進(jìn)化陷入停滯不前,造成局部收斂.為此,本文對(duì)交叉率Pc和變異率Pm進(jìn)行了改進(jìn),提出了一種新的自適應(yīng)遺傳算法.引入兩個(gè)參數(shù)1F和F2:式中:fmax為群體中最大的適應(yīng)度值;fmin為群體中最小的適應(yīng)度值;fav為每代群體的平均適應(yīng)度值;g為遺傳的第g代,g∈[1,G];G為進(jìn)化的總代數(shù).
這種算法的思想是比較兩代間的適應(yīng)度值,先把第g代的適應(yīng)度值用歸一化的方法作處理,得到第g代適應(yīng)度的評(píng)估值F1(g),用同樣方法得到第g+1代的評(píng)估值F1(g+1),比較這兩個(gè)值,若F1( g+1)1>F1(g),說明適應(yīng)度有提高的趨勢(shì),這時(shí)可以減小交叉率和變異率,保護(hù)優(yōu)秀的個(gè)體進(jìn)入下一代,反之,則說明之前的調(diào)節(jié)過度或者個(gè)體本身較差,應(yīng)增大交叉率和變異率.可以看出,改進(jìn)后的交叉率和變異率不但能夠隨適應(yīng)度自動(dòng)改變,而且避免了種群中最大適應(yīng)度值的個(gè)體的交叉率和變異率為0的情況,這就相應(yīng)地提高了種群中表現(xiàn)優(yōu)秀的個(gè)體的交叉率和變異率,使得它們不會(huì)處于一種近似停滯不前的狀態(tài),從而使算法跳出局部最優(yōu)解.
2.3 改進(jìn)自適應(yīng)遺傳和BP神經(jīng)網(wǎng)絡(luò)結(jié)合
遺傳算法和神經(jīng)網(wǎng)絡(luò)的結(jié)合主要是用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò),即優(yōu)化網(wǎng)絡(luò)的權(quán)值和優(yōu)化網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),本文主要研究遺傳算法對(duì)初始權(quán)值的優(yōu)化.
利用改進(jìn)自適應(yīng)遺傳算法的全局搜索能力對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值進(jìn)行自適應(yīng)調(diào)整,最終可以得到一個(gè)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò).將所要構(gòu)建的BP神經(jīng)網(wǎng)絡(luò)的所有權(quán)值作為一組染色體,采用實(shí)數(shù)編碼方式,選擇適應(yīng)度函數(shù).當(dāng)改進(jìn)自適應(yīng)遺傳算法的網(wǎng)絡(luò)誤差滿足一定條件后或進(jìn)化數(shù)達(dá)到預(yù)先設(shè)定的參數(shù),停止迭代,將得到的最優(yōu)權(quán)值傳遞給神經(jīng)網(wǎng)絡(luò),輸入樣本進(jìn)行神經(jīng)網(wǎng)絡(luò)的再次訓(xùn)練.圖1為基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)流程圖.
圖1 遺傳BP神經(jīng)網(wǎng)絡(luò)算法流程圖Fig.1 Folw chart of the genetic BP algorithm
改進(jìn)自適應(yīng)遺傳算法與BP神經(jīng)網(wǎng)絡(luò)結(jié)合的具體步驟如下:
(1)編碼方式,權(quán)值和閾值采用實(shí)數(shù)編碼,初始權(quán)值和閥值要求比較小,一般取(0,1)之間的數(shù),其他輸入數(shù)據(jù)作歸一化處理.樣本歸一化公式為
式中:x為輸入樣本;xmax和xmin分別為輸入樣本的最大值和最小值;d為不大于1的常數(shù).
(2)選擇策略是比較個(gè)體的適應(yīng)度函數(shù)值,利用轉(zhuǎn)盤賭法從父代染色體中選取相同數(shù)目的染色體組成新的染色體群.
(3)染色體表示的各權(quán)值和閥值代入BP神經(jīng)網(wǎng)絡(luò),訓(xùn)練樣本集的輸入和輸出,得到誤差E,若誤差符合要求則停止訓(xùn)練,否則進(jìn)行下一步.
(4)根據(jù)適應(yīng)度進(jìn)行自適應(yīng)交叉和變異操作,選擇合適的群體和交叉變異因子,進(jìn)行遺傳操作.實(shí)數(shù)編碼的交叉方式為
式中:x1和x2表示相鄰的兩個(gè)父代;y1和y2表示相鄰的兩個(gè)子代;d為小于Pc的常數(shù).
(5)根據(jù)遺傳操作的結(jié)果,判斷是否滿足終止條件,若符合則程序結(jié)束,否則轉(zhuǎn)向步驟(4).
以某汽車生產(chǎn)企業(yè)的某種零配件成品10個(gè)月的庫(kù)存量為例[9],利用BP神經(jīng)網(wǎng)絡(luò)建立庫(kù)存模型,用Matlab軟件進(jìn)行仿真預(yù)測(cè).
將數(shù)據(jù)按月份分為10組,其中9組用于學(xué)習(xí),1組數(shù)據(jù)用于預(yù)測(cè).選取影響庫(kù)存的9個(gè)因素為輸入變量,通過調(diào)整最終選取9-8-1的BP網(wǎng)絡(luò)結(jié)構(gòu),初始權(quán)重根據(jù)概率分布e?r確定[10],學(xué)習(xí)次數(shù)為10 000次,允許誤差為0.01,由于實(shí)數(shù)編碼具有微調(diào)功能,不存在編碼和解碼的過程,所以采用實(shí)數(shù)編碼方式,初始種群50,進(jìn)化代數(shù)200,選擇適應(yīng)度函數(shù)f= 1E+1(E為誤差函數(shù)),Pc1=0.9,Pc2=0.6,Pm1=0.1,Pm2=0.001,Pc,min=0.25,Pc,max=0.5,Pm,min=0.1,Pm,max=0.5.影響庫(kù)存因素的10組原始數(shù)據(jù)經(jīng)式(10)處理后,得到歸一化數(shù)據(jù)見表1,這里d的取值為1.經(jīng)過訓(xùn)練,實(shí)驗(yàn)結(jié)果比較如圖2所示.
從圖2可以看出,傳統(tǒng)的BP方法陷入了局值中;遺傳BP算法開始時(shí)也陷入了局值,但在第490次訓(xùn)練后跳出;自適應(yīng)遺傳算法減少了訓(xùn)練次數(shù)和誤差,它在進(jìn)化的初期誤差變化很小,如果設(shè)定的學(xué)習(xí)次數(shù)少或者允許誤差大的話,就有陷入局值的可能;參數(shù)改進(jìn)后的算法的誤差一直在減少,所以不會(huì)選入局值,并且也減少了網(wǎng)絡(luò)的訓(xùn)練次數(shù)和誤差.
用第10組數(shù)據(jù)對(duì)訓(xùn)練結(jié)果進(jìn)行測(cè)試,輸入向量為[0.5,0.78,0.63,1,0.43,0.4,0.25,0.08,1],在138次訓(xùn)練后誤差滿足要求,預(yù)測(cè)庫(kù)存為0.1(3.4萬件),實(shí)際庫(kù)存為0.13(3.5萬件),預(yù)測(cè)值接近實(shí)際值.
表1 影響庫(kù)存因素的歸一化數(shù)據(jù)Tab.1 Normalized data of stock influence factor
圖2 庫(kù)存問題幾種BP算法結(jié)果的比較Fig.2 Comparison of several algorithm about inventory problem
本文針對(duì)傳統(tǒng)BP算法收斂速度慢,易陷入局值的缺點(diǎn),在自適應(yīng)遺傳算法的基礎(chǔ)上對(duì)遺傳算子進(jìn)行改進(jìn),并把改進(jìn)后的算法與BP網(wǎng)絡(luò)相結(jié)合,優(yōu)化權(quán)值,從而提高了算法的整體性能,減少了網(wǎng)絡(luò)的訓(xùn)練次數(shù),也較好地解決了BP網(wǎng)絡(luò)容易陷入局值的問題.最后,用庫(kù)存問題驗(yàn)證算法的有效性.
[1]湯素麗,羅宇鋒. 人工神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展與應(yīng)用[J].電腦開發(fā)與應(yīng)用,2009,22(10):59–61.
[2]張穎,劉艷秋. 軟計(jì)算方法[M]. 北京:科學(xué)出版社,2002:174.
[3]穆阿華,周紹磊,劉青志,等. 利用遺傳算法改進(jìn)BP學(xué)習(xí)算法[J]. 計(jì)算機(jī)仿真,2005,22(2):150–151.
[4]李影,徐濤,邢偉. 基于進(jìn)化遺傳算法的神經(jīng)網(wǎng)絡(luò)優(yōu)化[J]. 長(zhǎng)春理工大學(xué)學(xué)報(bào),2006,29(3):48–50.
[5]王小平,曹立明. 遺傳算法:理論、應(yīng)用與軟件實(shí)現(xiàn)[M].西安:西安交通大學(xué)出版社,2002:73–74.
[6]高宏賓,焦東升,彭商濂. 一種基于遺傳算法的改進(jìn)的BP算法[J]. 計(jì)算機(jī)與現(xiàn)代化,2006(3):6–8,13.
[7]曾凡超,朱征宇,鄧欣,等. 車輛路徑問題的改進(jìn)的雙種群遺傳算法[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2007,28(20):4998–5000.
[8]Srinivas M,Patnaik L M. Adaptive probabilities of crossover and mutation in genetie algorithms[J]. IEEE Transactions on SMC,1994,24(4):656–667.
[9]劉婷. 基于神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)包絡(luò)分析方法的安全庫(kù)存預(yù)測(cè)及評(píng)價(jià)研究[D]. 重慶:重慶交通大學(xué)管理學(xué)院,2008.
[10]李敏強(qiáng),徐博藝,寇紀(jì)淞. 遺傳算法與神經(jīng)網(wǎng)絡(luò)的結(jié)合[J]. 系統(tǒng)工程理論與實(shí)踐,1999(2):65–69.
Application of Improvement Self-Adaptation Genetic Algorithm in BP Neural Network Learning
LI Xiao-zhong,ZHANG You-wei
(College of Computer Science and Information Engineering,Tianjin University of Science & Technology,Tianjin 300222,China)
A new self-adaptable genetic algorithm was put forward to solve the problem that it was easily to sink into the partial minimum in the genetic algorithm. By means of improving genetic operators and comparing the fitness value between two generations,the appropriate crossover rate and mutation rate can be selected to ensure the excellent individual into the next generation. And the situation that the largest population fitness value of individual cross-rate and mutation rate were zero can be avoided. Lastly,the improved algorithm was applied to the inventory control model. Results show that the improvement self-adaptation genetic algorithm can avoid sinking into partial minimum,enhance the convergence rate of the network,and improve the network study performance.
BP neural network;genetic algorithm;self-adaptation
TP183
:A
:1672-6510(2010)04-0064-04
2009-12-08;
2010-03-04
國(guó)家自然科學(xué)基金資助項(xiàng)目(70571056)
李孝忠(1962—),男,山東人,教授,博士,lixz@tust.edu.cn.
天津科技大學(xué)學(xué)報(bào)2010年4期