吳陳,王和杰
(江蘇科技大學(xué) 計(jì)算機(jī)科學(xué)與工程技術(shù)學(xué)院,江蘇 鎮(zhèn)江212003)
基于改進(jìn)的自適應(yīng)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)
吳陳,王和杰
(江蘇科技大學(xué) 計(jì)算機(jī)科學(xué)與工程技術(shù)學(xué)院,江蘇 鎮(zhèn)江212003)
針對Srinivas提出的自適應(yīng)遺傳算法種群前期進(jìn)化較慢的問題,改進(jìn)了自適應(yīng)交叉率和變異率的計(jì)算方法,考慮交叉率和變異率與種群進(jìn)化所處階段的匹配,提出一種改進(jìn)的自適應(yīng)遺傳算法;并將其應(yīng)用于BP神經(jīng)網(wǎng)絡(luò)計(jì)算模型的優(yōu)化,運(yùn)用到汽車加油量計(jì)算中,通過比較標(biāo)準(zhǔn)BP網(wǎng)絡(luò)、Srinivas提出的自適應(yīng)遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)的自適應(yīng)遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)3種模型的計(jì)算誤差,驗(yàn)證得出改進(jìn)的自適應(yīng)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的算法優(yōu)于另外兩種。
BP神經(jīng)網(wǎng)絡(luò);自適應(yīng)遺傳算法;交叉率;變異率;優(yōu)化
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANN),是基于人類大腦的生物活動(dòng)所提出的,是一個(gè)數(shù)學(xué)模型[1]。BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種多層前饋型網(wǎng)絡(luò),是最典型的多層神經(jīng)網(wǎng)路學(xué)習(xí)算法。BP神經(jīng)網(wǎng)絡(luò)可以理解為是一個(gè)黑箱模型,它具有很強(qiáng)的非線性映射能力、適應(yīng)能力和學(xué)習(xí)能力,因此它的實(shí)際應(yīng)用較為廣泛[2]。但,BP網(wǎng)絡(luò)也存在著明顯的缺點(diǎn),如:網(wǎng)絡(luò)參數(shù)的訓(xùn)練速度較慢、易陷入局部最優(yōu)以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)尚無理論指導(dǎo),一般根據(jù)經(jīng)驗(yàn)或者通過反復(fù)實(shí)驗(yàn)確定。
多年來,很多科研人員在就如何克服BP神經(jīng)網(wǎng)絡(luò)自身缺點(diǎn)做了很多研究工作[3-8]。文獻(xiàn)[7]中,Liu Ke等人使用遺傳算法優(yōu)化BP網(wǎng)絡(luò)的網(wǎng)絡(luò)連接權(quán)值和神經(jīng)元的閾值,并將其應(yīng)用到電力工業(yè)金融投資的預(yù)測中,驗(yàn)證了遺傳算法優(yōu)化后的BP網(wǎng)絡(luò)的預(yù)測性能明顯提高。文獻(xiàn)[8]中,Hong-Bin Wang等人將自適應(yīng)的遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于機(jī)器人視覺伺服系統(tǒng)的設(shè)計(jì),提出了一種簡易有效的機(jī)器人控制方法,在縮短機(jī)器人定位物體時(shí)間的同時(shí)大大降低了定位的錯(cuò)誤率。
文中采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)連接權(quán)值和神經(jīng)元閾值,將遺傳算法優(yōu)越的全局搜索能力與BP神經(jīng)網(wǎng)絡(luò)的局部搜索能力相結(jié)合,應(yīng)用于汽車油耗監(jiān)控系統(tǒng)中的加油量統(tǒng)計(jì)的計(jì)算模型,提高算法的計(jì)算精度和穩(wěn)定性。
1)BP神經(jīng)網(wǎng)絡(luò)算法
BP算法是BP神經(jīng)網(wǎng)絡(luò)的核心,由信號的正向傳播和誤差的反向傳播兩個(gè)過程組成。正向傳播時(shí),信號經(jīng)過隱含層傳向輸出層,若輸出值未到達(dá)算法預(yù)期,則轉(zhuǎn)入誤差的反向傳播;反向傳播時(shí),通過輸出層的誤差反向推導(dǎo)各層神經(jīng)元的誤差,并以此為依據(jù)修正網(wǎng)絡(luò)的連接權(quán)值和神經(jīng)元閾值,最終達(dá)到減小網(wǎng)絡(luò)輸出誤差的目的。
2)遺傳算法
世間的生物都是從其父代繼承特性或性狀的,這種生命現(xiàn)象就稱為遺傳[9]。遺傳算法是借鑒自然界中種群的進(jìn)化過程,模擬種群中個(gè)體的染色體的遺傳和變異而形成的一種全局優(yōu)化隨機(jī)概率搜素算法,由美國 Michigan大學(xué)的 J.H. Holland首次提出[10]。遺傳算法將待求解的問題映射為種群的生存環(huán)境,而種群中的每個(gè)個(gè)體則代表問題的一個(gè)潛在解,算法通過適應(yīng)度值衡量個(gè)體對環(huán)境的適應(yīng)性,以此反映個(gè)體的優(yōu)劣。根據(jù)個(gè)體適應(yīng)度的高低,選擇優(yōu)秀的個(gè)體直接遺傳到下一代,或者通過交叉運(yùn)算后再遺傳到下一代。在種群迭代的過程中,部分個(gè)體可能會(huì)發(fā)生變異。至此,算法完成了對自然界種群進(jìn)化過程的復(fù)制、交叉和變異的模擬。隨著算法的迭代,種群整體適應(yīng)度值將不斷提高,種群中的最優(yōu)個(gè)體也不斷向問題的最優(yōu)解逼近。
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)可以用遺傳算法優(yōu)越的全局搜索能力彌補(bǔ)BP神經(jīng)網(wǎng)絡(luò)全局搜索能力弱的劣勢。先利用遺傳算法將最優(yōu)解快速的定位到一個(gè)較小的搜索空間,再發(fā)揮BP優(yōu)秀的局部搜索能力,在縮小后的空間里搜索最優(yōu)解。以此,減小BP搜索陷入局部最優(yōu)的可能性,提高算法搜索求解的速度和穩(wěn)定性。
2.1 自適應(yīng)遺傳算法
標(biāo)準(zhǔn)的遺傳算法在進(jìn)行交叉和變異操作時(shí)并沒有考慮進(jìn)行運(yùn)算的個(gè)體的優(yōu)劣性,只采用固定的交叉率和變異率,很大程度限制了算法的收斂速度。為此,Srinivas[11]提出了自適應(yīng)遺傳算法(Adaptive Genetic Algorithm,AGA),根據(jù)個(gè)體適應(yīng)度值在種群中所處水平調(diào)整交叉率和變異率。

式中:f′是進(jìn)行交叉運(yùn)算的兩個(gè)父輩個(gè)體的適應(yīng)度值的最大值;f是進(jìn)行變異運(yùn)算的個(gè)體的適應(yīng)度值;fmax和fmin分別是種群個(gè)體適應(yīng)度的最大和最小值;favg是整個(gè)種群適應(yīng)度的平均值pc1,Pc2,Pm1,Pm2,均為(0,1)區(qū)間內(nèi)的常數(shù)。
從式(1)和式(2)可知,當(dāng)個(gè)體適應(yīng)度值接近于最大值時(shí),其交叉率和變異率均趨近于零。若是處于種群進(jìn)化后期,該方法有助于保護(hù)優(yōu)秀個(gè)體,減少交叉和變異操作對優(yōu)秀基因的破壞。而種群進(jìn)化初期,這將使得適應(yīng)度大的個(gè)體很少能得到進(jìn)化的機(jī)會(huì),造成整個(gè)種群進(jìn)化的速度非常緩慢。
2.2 改進(jìn)的自適應(yīng)遺傳算法
基于以上所述缺點(diǎn),對自適應(yīng)交叉率和變異率計(jì)算方法做如下改進(jìn):

其中:f′是進(jìn)行交叉運(yùn)算的兩個(gè)父輩個(gè)體的適應(yīng)度值的最大值;f是進(jìn)行變異運(yùn)算的個(gè)體的適應(yīng)度值;fmax和fmin分別是種群個(gè)體適應(yīng)度的最大和最小值;是適應(yīng)度值大于種群均值的所有個(gè)體適應(yīng)度的平均值均為(0,1)區(qū)間內(nèi)的常數(shù);iter是種群當(dāng)前進(jìn)化代數(shù);T是種群進(jìn)化的目標(biāo)代數(shù);l為大于1的整數(shù);符號表示向下取整。
改進(jìn)的自適應(yīng)遺傳算法(Improved Adaptive Genetic Algorithm,IAGA)將種群進(jìn)化過程分為個(gè)階段,綜合考慮個(gè)體適應(yīng)度在種群中所處水平和種群當(dāng)前進(jìn)化階段,以此調(diào)節(jié)交叉率和變異率。改進(jìn)的算法避免了種群進(jìn)化初期優(yōu)秀個(gè)體交叉率和變異率趨近于零導(dǎo)致進(jìn)化緩慢的情況出現(xiàn),隨著種群的進(jìn)化,個(gè)體的自適應(yīng)交叉率和變異率整體呈下降趨勢,有利于保護(hù)優(yōu)秀個(gè)體和優(yōu)秀基因。
2.3 改進(jìn)的自適應(yīng)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)
遺傳算法和神經(jīng)網(wǎng)絡(luò)的結(jié)合主要是用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò),即優(yōu)化網(wǎng)絡(luò)的權(quán)值和優(yōu)化網(wǎng)路的拓?fù)浣Y(jié)構(gòu)[12]。文中采用遺傳算法優(yōu)化BP網(wǎng)絡(luò)的初始權(quán)值和閾值,算法流程如圖1所示。

圖1 改進(jìn)的自適應(yīng)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法流程圖
2.3.1 編碼規(guī)則
BP網(wǎng)絡(luò)的權(quán)值和閾值均為(-1,1)區(qū)間內(nèi)的小數(shù)且數(shù)量較多,若使用二進(jìn)制編碼將造成染色體過長。故本文采用實(shí)數(shù)編碼規(guī)則,每個(gè)基因位的值代表一個(gè)閾值或權(quán)值。
2.3.2 選擇策略
研究中采用輪盤賭和最優(yōu)保存相結(jié)合的選擇策略。雖然輪盤賭的方式可以使優(yōu)秀個(gè)體具有較大的概率可以遺傳到下一代,但仍有可能錯(cuò)過最優(yōu)個(gè)體。為了最優(yōu)個(gè)體得以保存,故增加了最優(yōu)保存的原則,先選出最優(yōu)個(gè)體,再通過輪盤賭的方式選出其余個(gè)體。
2.3.3 交叉策略
交叉算子的設(shè)計(jì)思路是模仿生物自然進(jìn)化過程中,兩個(gè)同源染色體通過交配而重組,形成新的染色體[13]。選擇操作后的種群中個(gè)體兩兩隨機(jī)配對作為父輩個(gè)體,由兩個(gè)父輩的適應(yīng)度計(jì)算出自適應(yīng)交叉率,若滿足條件,父輩個(gè)體按照如下公式進(jìn)行交叉運(yùn)算:

式中,y1和y2表示交叉操作得到的兩個(gè)子代個(gè)體,x1和x2則表示進(jìn)行交叉的兩個(gè)父輩個(gè)體,a為交叉系數(shù),為區(qū)間(0,1)內(nèi)的常數(shù)。
2.3.4 變異策略
對于待進(jìn)化種群中個(gè)體染色體長度較大的情況,若僅采用單點(diǎn)變異方式,對種群進(jìn)化的幫助將很小。故,文中選擇的是多點(diǎn)變異。考慮到隨著種群的進(jìn)化,染色體中需要修正的基因位的個(gè)數(shù)也將隨之減少,所以定義了自適應(yīng)的變異點(diǎn)個(gè)數(shù)如下:

式中:NUM為自適應(yīng)變異點(diǎn)個(gè)數(shù)num的最大值,為小于等于染色體長度的常數(shù);iter表示種群當(dāng)前進(jìn)化代數(shù);T表示種群目標(biāo)進(jìn)化代數(shù);l為大于1的整數(shù);符號表示向下取整。
當(dāng)個(gè)體滿足變異率條件時(shí),計(jì)算變異點(diǎn)個(gè)數(shù)后隨機(jī)產(chǎn)生相應(yīng)個(gè)數(shù)的變異位置,以區(qū)間(-1,1)內(nèi)的隨機(jī)數(shù)替代染色體中相應(yīng)基因位的值。
2.3.5 適應(yīng)度函數(shù)
適應(yīng)度函數(shù)(Fitness Function)的選取直接影響到遺傳算法的收斂速度以及能否找到最優(yōu)解[14]。算法在進(jìn)化搜索時(shí),根據(jù)適應(yīng)度函數(shù)計(jì)算個(gè)體的適應(yīng)度值,以此為據(jù)評價(jià)個(gè)體的優(yōu)劣程度,一般適應(yīng)度值越大表明個(gè)體越優(yōu)秀。遺傳算法不需要適應(yīng)度函數(shù)滿足連續(xù)可微等條件,唯一要求是針對輸入可計(jì)算出能加以比較的非負(fù)結(jié)果[15]。
種群中的個(gè)體x對應(yīng)于BP網(wǎng)絡(luò)的權(quán)值和閾值的排列,即一個(gè)個(gè)體x就對應(yīng)于一個(gè)BP網(wǎng)絡(luò)。E(x)為其對應(yīng)的BP網(wǎng)絡(luò)仿真輸出的誤差平方和,那么E(x)越小則表明x越優(yōu)秀。故,文中采用適應(yīng)度函數(shù)如下:

式中:FIT為常數(shù)。
2.3.6 優(yōu)化的BP網(wǎng)絡(luò)初始權(quán)值和閾值
遺傳算法進(jìn)化完成后,選出適應(yīng)度值最高的個(gè)體,以對應(yīng)的權(quán)值和閾值的排列作為BP網(wǎng)絡(luò)的初始權(quán)值和閾值,開始網(wǎng)絡(luò)的學(xué)習(xí),直到滿足終止條件后,BP算法部分停止。由此,獲得優(yōu)化后的網(wǎng)絡(luò),根據(jù)輸入的仿真數(shù)據(jù)輸出仿真結(jié)果。
本節(jié)中將上文設(shè)計(jì)的改進(jìn)算法應(yīng)用于上海某公司的汽車油耗監(jiān)控系統(tǒng)的加油統(tǒng)計(jì)功能中,形成汽車加油量的計(jì)算模型。通過采集汽車加油前后連續(xù)的油量值以及相應(yīng)的油溫,計(jì)算出車輛的加油量。選取該公司車載終端采集的上海某公交公司部分車輛6月份的120條加油前后數(shù)據(jù),以及該公交公司統(tǒng)計(jì)的實(shí)際加油量作為原始數(shù)據(jù),其中100條用于計(jì)算模型的學(xué)習(xí),20條用于仿真驗(yàn)證。分別使用標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)算法(BP)、Srinivas提出的自適應(yīng)遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法(AGA-BP)和本文提出的改進(jìn)的自適應(yīng)遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法(IAGA-BP)建立各自的計(jì)算模型,并對比3種模型的計(jì)算性能。
3.1 實(shí)驗(yàn)一:IAGA-BP VS AGA-BP
IAGA和AGA兩種算法從同一個(gè)初始種群出發(fā),各自進(jìn)化200代后對比兩個(gè)種群的適應(yīng)度值。
從圖2所示的曲線可以看出,種群進(jìn)化初期,基于AGA算法的種群適應(yīng)度均值和最大值均上升緩慢,反觀IAGA算法的種群,其適應(yīng)度均值和最大值迅速上升到一定水平,之后以高于AGA算法的速率持續(xù)上升。顯然算法的改進(jìn)大幅度提高了種群進(jìn)化的速度,縮短了收斂時(shí)間,且IAGA算法得到的最優(yōu)個(gè)體也比AGA算法的最優(yōu)個(gè)體更優(yōu)秀。
圖3所示為IAGA-BP算法與AGA-BP算法仿真輸出的誤差百分比。從圖中可以看出,對IAGA-BP而言,除了個(gè)別點(diǎn)波動(dòng)較大,其他點(diǎn)都在0附近小幅波動(dòng),波動(dòng)的幅度小于AGA-BP算法。同樣,我們可以看到IAGA-BP超過一半點(diǎn)的誤差小于AGA-BP算法。

圖2 IAGA與AGA算法種群進(jìn)化過程適應(yīng)度最大值和平均值變化曲線
3.2 實(shí)驗(yàn)二:IAGA-BP VS BP
從圖4所示曲線中可以看出,標(biāo)準(zhǔn)BP算法計(jì)算的誤差波動(dòng)范圍較大,而IAGA-BP的輸出則是在0附近小幅震蕩,且可以看出IAGA-BP的計(jì)算精度遠(yuǎn)高于標(biāo)準(zhǔn)BP算法。

圖3 IAGA-BP與AGA-BP算法仿真誤差對比

圖4 IAGA-BP與標(biāo)準(zhǔn)BP算法仿真誤差對比
3.3 數(shù)據(jù)分析
對3種算法的仿真結(jié)果進(jìn)行分析,得出表1所示對比結(jié)果。
實(shí)驗(yàn)中共輸入20組數(shù)據(jù)進(jìn)行仿真,IAGA-BP算法20組輸出中,13組誤差小于AGA-BP,15組誤差小于標(biāo)準(zhǔn)BP,且總誤差也小于另外兩種算法。顯然,IAGA-BP的計(jì)算精度更高。在小于等于3%,小于等于2%以及小于等于1%3種評價(jià)標(biāo)準(zhǔn)下,IAGA-BP算法均優(yōu)越于AGA-BP算法和標(biāo)準(zhǔn)BP算法,一方面表明模型的計(jì)算精度得到提高,另一方面則說明算法的改進(jìn)增強(qiáng)了模型的泛華能力,減少了個(gè)別點(diǎn)計(jì)算誤差較大的概率。

表1 3種算法仿真誤差對比分析
算法原始仿真結(jié)果在表2中列出

表2 3種算法仿真輸出及誤差
文中將遺傳算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,應(yīng)用于汽車加油量計(jì)算,這將給汽車精準(zhǔn)油耗自動(dòng)化監(jiān)控與分析帶來一定幫助。文中,重點(diǎn)研究自適應(yīng)交叉率和變異率的算法優(yōu)化,以此提高遺傳算法的性能。研究結(jié)果也充分表明了交叉率和變異率的計(jì)算方法對遺傳算法的仿真結(jié)果影響較大,計(jì)算方法的選取也影響到算法的計(jì)算精度和泛化能力。文中提出的IAGA-BP計(jì)算模型,不僅能夠準(zhǔn)確計(jì)算出車輛的加油量,而且相較于標(biāo)準(zhǔn)BP算法和AGA-BP算法,其計(jì)算精度得到提高,穩(wěn)定性得到加強(qiáng),泛華能力也得到提升。
[1]龐明月.BP神經(jīng)網(wǎng)絡(luò)算法及其改進(jìn)研究[J].電腦知識與技術(shù),2014(28):6643-6644.
[2]湯素麗,羅宇鋒.人工神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展與應(yīng)用[J].電腦開發(fā)與應(yīng)用,2009(10):59-61.
[3]DONG Xiu-cheng,WANG Shou-chun,SUN Ren-jin,et al. Design of artificial neural networks using a genetic algorithm to predict saturates of vacuum gas oil[J].Petroleum Science,2010(71):118-122.
[4]李松,劉力軍,解永樂.遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的短時(shí)交通流混沌預(yù)測[J].控制與決策,2011(10):1581-1585.
[5]王改革,郭立紅,段紅,等.基于螢火蟲算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的目標(biāo)威脅估計(jì) [J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2013(4): 1064-1069.
[6]溫泉徹,彭宏,黎瓊.自適應(yīng)遺傳BP神經(jīng)網(wǎng)絡(luò)模型在統(tǒng)計(jì)建模中的應(yīng)用[J].微計(jì)算機(jī)信息,2006(30):130-132.
[7]LIU Ke,GUO Wen-yan,SHEN Xiao-liu,et al.Research on the forecast model of electricity power industry loan based on GA-BP neural network[J].Energy Procedia,2012(14):1918-1924.
[8]WANG Hong-bin,Main Liu.Design of robotic visual servo control based on neural network and genetic algorithm[J]. International Journal of Automation&Computing,2012(1):24-29.
[9]劉植義.遺傳學(xué)[M].北京:人民教育出版社,1982.
[10]Holland J H.Adaptation in nature and artificial systems[M]. MIT Press,1992.
[11]Srinivas M,Patnailk L M.Adaptive probabilities of crossover and mutation in genetic algorithms[J].IEEE Transactions on System,Man and Cybernetics,1994,24(4):656-667.
[12]李孝忠,張有偉.改進(jìn)自適應(yīng)遺傳算法在BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中的應(yīng)用[J].天津科技大學(xué)學(xué)報(bào),2010(4):64-67.
[13]李書全,孫雪,孫德輝,等.遺傳算法中的交叉算子的述評[J].計(jì)算機(jī)工程與應(yīng)用,2012(1):36-39.
[14]劉 勇,康立山,陳鎮(zhèn)屏.非線性并行算法——遺傳算法[M]. 2版.北京:科學(xué)出版社,1995.
[15]朱鰲鑫.遺傳算法的適應(yīng)度函數(shù)研究[J].系統(tǒng)工程與電子技術(shù),1998(11):60-64.
BP neural network optimized by improved adaptive genetic algorithm
WU Chen,WANG He-jie
(School of Computer Science&Technology,Jiangsu University of Science and Technology,Zhenjiang 212003,China)
In the early stage of adaptive genetic algorithm(AGA)proposed by Srinivas,the speed of evolution is slow,which leads to reduction of the performance of algorithm.To solve this problem,based on improving the computing method of the probabilities of crossover and mutation and taking current stage of evolution into consideration,an improved adaptive genetic algorithm(IAGA)is presented.The new algorithm is applied to optimizing the calculation model of BP neural network,used to count the oiling quantity of vehicle.IAGA-BP is proved better than AGA-BP and standard BP by comparing the calculation error of these models.
BP neural network;adaptive genetic algorithm;crossover;mutation;optimize
TN302
A
1674-6236(2016)24-0029-04
2015-11-26 稿件編號:201511253
吳陳(1962—),男,湖北天門人,博士,教授。研究方向:實(shí)驗(yàn)智能與模式識別,粗糙集理論及應(yīng)用,數(shù)據(jù)挖掘與知識發(fā)現(xiàn)。