任偉建 趙月嬌 王天任 劉愛(ài)君
(1.東北石油大學(xué)電氣信息工程學(xué)院,黑龍江 大慶 163318;2.上海理工大學(xué)能源與動(dòng)力工程學(xué)院,上海 200093;3.勝利油田井下作業(yè)公司,山東 東營(yíng) 257077)
自然界中的生物均具有群體行為,種群中的簡(jiǎn)單個(gè)體通過(guò)團(tuán)體協(xié)作來(lái)實(shí)現(xiàn)復(fù)雜的工作,這種群智能現(xiàn)象吸引著越來(lái)越多的學(xué)者。他們模擬借鑒生物群體智能機(jī)制,研究相應(yīng)的群智能優(yōu)化算法理論并開(kāi)發(fā)高智能的信息處理系統(tǒng),以解決人類(lèi)運(yùn)用傳統(tǒng)方法難以解決的問(wèn)題。遺傳算法、粒子群優(yōu)化算法、蟻群算法及免疫算法等均為群智能優(yōu)化算法。神經(jīng)網(wǎng)絡(luò)是從生理角度模擬人類(lèi)行為的一種智能技術(shù)。該技術(shù)已在各行業(yè)得到廣泛應(yīng)用[1,2]??蓪鹘y(tǒng)的工程系統(tǒng)和人工智能處理技術(shù)混合起來(lái),通過(guò)學(xué)習(xí)、訓(xùn)練和記憶,擬合輸入變量與輸出變量間的非線(xiàn)性映射。由于神經(jīng)網(wǎng)絡(luò)訓(xùn)練常用的學(xué)習(xí)算法——傳統(tǒng)BP算法具有固有的缺陷而影響著應(yīng)用效果[3],造成神經(jīng)網(wǎng)絡(luò)收斂速度慢且易陷入局部極小值。目前BP網(wǎng)絡(luò)的改進(jìn)方法有在梯度法基礎(chǔ)上改進(jìn)學(xué)習(xí)算法、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)優(yōu)化以及融入其他優(yōu)化算法等。
鑒于群智能優(yōu)化算法的優(yōu)良特性,很多學(xué)者應(yīng)用群智能優(yōu)化算法代替BP算法進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。周穎等提出了一種人工免疫學(xué)習(xí)算法,將其用于RBF神經(jīng)網(wǎng)絡(luò)隱層中心點(diǎn)數(shù)和位置的調(diào)整[4];田文杰等將蟻群算法和神經(jīng)網(wǎng)絡(luò)結(jié)合起來(lái),應(yīng)用于設(shè)備故障專(zhuān)家系統(tǒng)的知識(shí)獲取并進(jìn)行診斷推理[5];文獻(xiàn)[6]將粒子群優(yōu)化算法用于優(yōu)化神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值,并將優(yōu)化好的神經(jīng)網(wǎng)絡(luò)應(yīng)用于故障診斷中。
基于對(duì)生物物種遷移、變異行為的研究,以生物地理學(xué)歸納計(jì)算為理論的生物地理優(yōu)化算法(Biogeography-based Optimization,BBO)是一種新型的群智能優(yōu)化算法。鑒于其他群智能優(yōu)化算法在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的應(yīng)用,筆者將生物地理優(yōu)化算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,建立BBO-BP組合神經(jīng)網(wǎng)絡(luò)模型,充分發(fā)揮BBO解決優(yōu)化問(wèn)題的優(yōu)勢(shì),克服連接權(quán)值隨機(jī)導(dǎo)致神經(jīng)網(wǎng)絡(luò)易陷入局部極小值的缺點(diǎn),縮短訓(xùn)練時(shí)間。
生物地理優(yōu)化算法就是根據(jù)生物地理學(xué)闡述的生物物種在地理上分布的特點(diǎn),使用生物地理學(xué)的分配機(jī)制(即遷移模型、變異生新),以適宜度最優(yōu)為求解目的,來(lái)解決工程問(wèn)題[7]。具體說(shuō)就是,待優(yōu)化問(wèn)題的解對(duì)應(yīng)著生物地理學(xué)中棲息地的特征向量SIV,其中的各種自然因素相當(dāng)于優(yōu)化問(wèn)題解向量的分量;待優(yōu)化問(wèn)題的度量函數(shù)值f(xi)(i=1,2,…,n)對(duì)應(yīng)著生物地理學(xué)中的棲息地適宜度指數(shù)HIS,好解類(lèi)似于高HIS的棲息地,差解類(lèi)似于低HIS的棲息地;優(yōu)化算法中的信息交互機(jī)制對(duì)應(yīng)著棲息地的移近移出機(jī)制,設(shè)計(jì)了基于概率的個(gè)體遷移算子實(shí)現(xiàn)信息共享,每個(gè)個(gè)體通過(guò)計(jì)算得到各自的移進(jìn)概率λi和移出概率μi,通過(guò)該數(shù)值來(lái)控制個(gè)體信息的移動(dòng)概率。同時(shí),為增加群體多樣性,設(shè)計(jì)變異算子,根據(jù)棲息地容納種群數(shù)量的不同,計(jì)算相應(yīng)的變異率,對(duì)棲息地進(jìn)行變異操作,從而擴(kuò)大解集。
生物地理優(yōu)化算法的精髓即遷移操作和變異操作,利用遷移操作與其他棲息地進(jìn)行信息交換,進(jìn)而對(duì)解空間進(jìn)行廣域搜索;利用變異操作來(lái)模擬自然突變,根據(jù)棲息地i的種群遷移率對(duì)棲息地的特征向量進(jìn)行突變進(jìn)而更新解集。
遷移操作。遷移模型采用的是簡(jiǎn)化線(xiàn)性模型,設(shè)棲息地的數(shù)量為n,群體大小為NP,優(yōu)化問(wèn)題的維度為D,最大物種數(shù)為Smax、最大遷出率為Emax、最大遷入率為Imax,具體的流程為:
fori=1 toNPdo
用概率λi選取xi
if(0,1)之間的均勻隨機(jī)數(shù)小于λithen
forj=1 toNPdo
用概率μi選取xj
if(0,1)之間的均勻隨機(jī)數(shù)小于μithen
從xj中隨機(jī)選取一個(gè)SIVσ
用σ替換xj中的一個(gè)隨機(jī)SIV
end if
end for
end if
end for
變異操作。最大變異率為mmax,遷移率為Ps,精英個(gè)體保存數(shù)量為k,BBO變異操作的核心問(wèn)題就是如何根據(jù)棲息地?fù)碛蟹N群數(shù)量的概率給出相應(yīng)的突變率,具體的流程為:
fori=1 toNPdo
計(jì)算概率pi
用概率pi選取SIVxi(j)
if(0,1)之前的均勻隨機(jī)數(shù)小于mithen
用一個(gè)隨機(jī)產(chǎn)生的SIV替換xi(j)
end if
end for
雖然BBO算法和其他智能算法一樣,都屬于模擬自然選擇和生物進(jìn)化機(jī)制的智能優(yōu)化算法,但是該算法和其他算法有本質(zhì)區(qū)別,以下為與其他算法的比較。
BBO也會(huì)在解之間實(shí)現(xiàn)信息的共享,但在進(jìn)化過(guò)程中并不產(chǎn)生新的子代,算法利用移進(jìn)概率來(lái)決定棲息地是否需要引入特征變量以及進(jìn)入的比例,并且移進(jìn)的特征變量來(lái)自其他不同的個(gè)體;而遺傳算法通過(guò)染色體來(lái)共享信息,通過(guò)交叉變異重組基因單元來(lái)產(chǎn)生新的子代,它不能根據(jù)適應(yīng)值來(lái)控制交叉基因,并且交叉的基因片段來(lái)自于同一個(gè)體。
BBO是通過(guò)遷移機(jī)制來(lái)改進(jìn)解的適應(yīng)度,它并不直接產(chǎn)生新的解集,只是依賴(lài)遷移機(jī)制來(lái)修改這些解;而ACO是通過(guò)螞蟻之間信息素的交換和相互協(xié)作來(lái)實(shí)現(xiàn)優(yōu)化,在每次迭代過(guò)程中要產(chǎn)生新的解集,每一代都會(huì)產(chǎn)生一系列方法,而B(niǎo)BO則會(huì)保持方法不變。
BBO同粒子群優(yōu)化算法最為相似,都是通過(guò)個(gè)體間的知識(shí)分享來(lái)達(dá)到優(yōu)化的目的,都將產(chǎn)生的優(yōu)質(zhì)方案保存到下一代,每一個(gè)方案都和鄰近個(gè)體進(jìn)行信息交互,進(jìn)而進(jìn)行調(diào)整。但BBO采用了根據(jù)不同棲息地種群數(shù)量來(lái)選擇不同操作強(qiáng)度的物種激勵(lì)機(jī)制,從而通過(guò)遷移機(jī)制調(diào)整解集來(lái)改進(jìn)解的適應(yīng)度,而PSO是通過(guò)調(diào)整粒子的速度和位置來(lái)改進(jìn)粒子的適應(yīng)度。另一方面粒子群的解更可能聚在一起,而B(niǎo)BO的解沒(méi)有任何內(nèi)在聚類(lèi)的趨勢(shì)。
從這些不同之處可以看出BBO算法是一種獨(dú)特的群智能優(yōu)化算法。
筆者采用典型的Sphere單峰函數(shù)和Rastrigin多峰函數(shù)進(jìn)行測(cè)試,并與典型的群智能算法——蟻群優(yōu)化算法、遺傳算法和粒子群優(yōu)化算法進(jìn)行仿真性能比較。算法對(duì)于各個(gè)測(cè)試函數(shù)優(yōu)化的平均運(yùn)行結(jié)果如圖1、2所示。
表1列出了測(cè)試函數(shù)過(guò)程中每一個(gè)算法的平均極小值(表示算法的平均性能)和最好極小值(表示算法的最好性能)。
從測(cè)試結(jié)果可以看出,對(duì)于Sphere單峰函數(shù)BBO前期收斂速度快,找到最優(yōu)解的精度沒(méi)有PSO好;但在處理Rastrigin多峰函數(shù)時(shí),BBO的收斂速度快,并且較其他算法最接近優(yōu)化值。綜上所述,BBO處理優(yōu)化問(wèn)題還是具有優(yōu)勢(shì)的,求解過(guò)程中不存在波動(dòng),穩(wěn)定性較好。
圖1 Sphere單峰函數(shù)測(cè)試結(jié)果比較
圖2 Rastrigin多峰函數(shù)測(cè)試結(jié)果比較
表1 各個(gè)算法運(yùn)行的平均值和最優(yōu)值
基于神經(jīng)網(wǎng)絡(luò)的故障診斷中,神經(jīng)網(wǎng)絡(luò)的輸入是被診斷對(duì)象的征兆即特征值,輸出則表示發(fā)生故障的可能性。在整個(gè)診斷過(guò)程中,先利用一組故障樣本對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,確定網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),進(jìn)而實(shí)現(xiàn)征兆集與故障集之間的非線(xiàn)性映射。借鑒其他智能算法在神經(jīng)網(wǎng)絡(luò)故障診斷中的應(yīng)用,筆者將BBO算法與基于BP神經(jīng)網(wǎng)絡(luò)的故障診斷相結(jié)合,把BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中有待訓(xùn)練的權(quán)值和閾值看作是BBO算法的尋優(yōu)目標(biāo)參數(shù),用BBO算法作為學(xué)習(xí)算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行訓(xùn)練。
筆者選取應(yīng)用最廣泛的三層神經(jīng)網(wǎng)絡(luò),以文獻(xiàn)[8]中的抽油機(jī)數(shù)據(jù)(表2、3)為例,輸入節(jié)點(diǎn)對(duì)應(yīng)電流特征向量的6個(gè)分量,輸出節(jié)點(diǎn)數(shù)為3,對(duì)應(yīng)抽油機(jī)的3種工作狀態(tài)。
表2 訓(xùn)練樣本數(shù)據(jù)
表3 測(cè)試樣本數(shù)據(jù)
利用BBO算法訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)時(shí),定義生物棲息地適宜度分量為網(wǎng)絡(luò)中的連接權(quán)值。筆者采用6-6-3結(jié)構(gòu)的三層神經(jīng)網(wǎng)絡(luò),權(quán)值為6×6+6×3=54,閾值為6+3=9,故棲息地適宜度模型維數(shù)為54+9=63。設(shè)置群體大小NP=100,Imax=Emax=1.0,最大變異率mmax=0.005,迭代次數(shù)為1 000。
將BBO作為學(xué)習(xí)算法來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值的關(guān)鍵在于以下兩點(diǎn):
a. 建立BBO的物種維度空間與神經(jīng)網(wǎng)絡(luò)連接權(quán)值之間的映射。生物地理優(yōu)化算法中,每個(gè)生物棲息地的維度分量都對(duì)應(yīng)為神經(jīng)網(wǎng)絡(luò)中的一個(gè)連接權(quán)值,也就是說(shuō)神經(jīng)網(wǎng)絡(luò)中有多少個(gè)連接權(quán)值,作為學(xué)習(xí)算法的BBO中的每個(gè)棲息地就應(yīng)該有多少維。
BBO算法訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)的流程如圖3所示。
圖3 BBO算法訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)流程
圖4、5為傳統(tǒng)BP算法和BBO算法對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練曲線(xiàn)。從圖中可以看出:在達(dá)到目標(biāo)系統(tǒng)誤差10-2時(shí)BBO算法迭代次數(shù)為653次,要達(dá)到相同的誤差時(shí),BP算法需要1 194次。在滿(mǎn)足相同系統(tǒng)誤差的條件下,BBO算法所需訓(xùn)練時(shí)間為10.14s,而B(niǎo)P算法所需訓(xùn)練時(shí)間為36.18s。經(jīng)計(jì)算,利用BBO算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)的均方差為0.301 3,小于利用BP算法訓(xùn)練網(wǎng)絡(luò)的均方差0.765 8,可見(jiàn)BBO算法不僅提高了神經(jīng)網(wǎng)絡(luò)的信息處理速度,并且提高了網(wǎng)絡(luò)的訓(xùn)練精度。
圖4 傳統(tǒng)BP算法對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練曲線(xiàn)
圖5 BBO算法對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練曲線(xiàn)
利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對(duì)抽油機(jī)進(jìn)行故障診斷,對(duì)測(cè)試樣本數(shù)據(jù)(表3)進(jìn)行診斷仿真實(shí)驗(yàn)。假定將大于0.5的輸出節(jié)點(diǎn)值近似看作1,將小于0.5的輸出節(jié)點(diǎn)值近似看作為0,(1 0 0)、(0 1 0)、(0 0 1)分別對(duì)應(yīng)著正常、雙凡爾漏失和抽油桿脫落,診斷結(jié)果見(jiàn)表4。
表4 BBO算法診斷結(jié)果
從表4可以看出,基于BBO的神經(jīng)網(wǎng)絡(luò)的診斷數(shù)據(jù)接近于理想值,故障區(qū)分度較高,因此可以得出結(jié)論:利用BBO算法優(yōu)化神經(jīng)網(wǎng)絡(luò)應(yīng)用于抽油機(jī)故障診斷中是可行的,并具有很強(qiáng)的準(zhǔn)確性。
闡述了生物地理優(yōu)化算法的優(yōu)化原理和算法流程,并將其與其他群智能算法進(jìn)行比較,通過(guò)仿真實(shí)驗(yàn)得出,BBO算法具有很強(qiáng)的優(yōu)勢(shì)性與良好的發(fā)展空間。將生物地理優(yōu)化算法應(yīng)用于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練中,克服了BP算法訓(xùn)練時(shí)間較長(zhǎng)并容易陷入局部收斂的缺點(diǎn),而且能更快速地收斂于目標(biāo)最優(yōu)解。將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對(duì)抽油機(jī)常見(jiàn)故障進(jìn)行診斷,診斷結(jié)果表明:該方法是可行的,并且具有良好的準(zhǔn)確性和有效性,具有廣泛的應(yīng)用前景。