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

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

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

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

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

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

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

圖2 IAGA與AGA算法種群進化過程適應度最大值和平均值變化曲線
3.2 實驗二:IAGA-BP VS BP
從圖4所示曲線中可以看出,標準BP算法計算的誤差波動范圍較大,而IAGA-BP的輸出則是在0附近小幅震蕩,且可以看出IAGA-BP的計算精度遠高于標準BP算法。

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

圖4 IAGA-BP與標準BP算法仿真誤差對比
3.3 數據分析
對3種算法的仿真結果進行分析,得出表1所示對比結果。
實驗中共輸入20組數據進行仿真,IAGA-BP算法20組輸出中,13組誤差小于AGA-BP,15組誤差小于標準BP,且總誤差也小于另外兩種算法。顯然,IAGA-BP的計算精度更高。在小于等于3%,小于等于2%以及小于等于1%3種評價標準下,IAGA-BP算法均優越于AGA-BP算法和標準BP算法,一方面表明模型的計算精度得到提高,另一方面則說明算法的改進增強了模型的泛華能力,減少了個別點計算誤差較大的概率。

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

表2 3種算法仿真輸出及誤差
文中將遺傳算法與BP神經網絡相結合,應用于汽車加油量計算,這將給汽車精準油耗自動化監控與分析帶來一定幫助。文中,重點研究自適應交叉率和變異率的算法優化,以此提高遺傳算法的性能。研究結果也充分表明了交叉率和變異率的計算方法對遺傳算法的仿真結果影響較大,計算方法的選取也影響到算法的計算精度和泛化能力。文中提出的IAGA-BP計算模型,不僅能夠準確計算出車輛的加油量,而且相較于標準BP算法和AGA-BP算法,其計算精度得到提高,穩定性得到加強,泛華能力也得到提升。
[1]龐明月.BP神經網絡算法及其改進研究[J].電腦知識與技術,2014(28):6643-6644.
[2]湯素麗,羅宇鋒.人工神經網絡技術的發展與應用[J].電腦開發與應用,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]李松,劉力軍,解永樂.遺傳算法優化BP神經網絡的短時交通流混沌預測[J].控制與決策,2011(10):1581-1585.
[5]王改革,郭立紅,段紅,等.基于螢火蟲算法優化BP神經網絡的目標威脅估計 [J].吉林大學學報:工學版,2013(4): 1064-1069.
[6]溫泉徹,彭宏,黎瓊.自適應遺傳BP神經網絡模型在統計建模中的應用[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]劉植義.遺傳學[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]李孝忠,張有偉.改進自適應遺傳算法在BP神經網絡學習中的應用[J].天津科技大學學報,2010(4):64-67.
[13]李書全,孫雪,孫德輝,等.遺傳算法中的交叉算子的述評[J].計算機工程與應用,2012(1):36-39.
[14]劉 勇,康立山,陳鎮屏.非線性并行算法——遺傳算法[M]. 2版.北京:科學出版社,1995.
[15]朱鰲鑫.遺傳算法的適應度函數研究[J].系統工程與電子技術,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—),男,湖北天門人,博士,教授。研究方向:實驗智能與模式識別,粗糙集理論及應用,數據挖掘與知識發現。