李海濤,邵澤東
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東 青島 266000)
海洋開發(fā)利用的不斷發(fā)展,使得海洋環(huán)境承受著與日俱增的壓力。海水水質(zhì)是考量海洋環(huán)境質(zhì)量的主要指標(biāo)之一。海水水質(zhì)評價是根據(jù)海水要素指標(biāo)的值對其質(zhì)量狀況進(jìn)行綜合性評價,以確定評價監(jiān)測海域的海水水質(zhì)問題,為海洋環(huán)境監(jiān)管和治理提供支持。眾多環(huán)境工作者在實(shí)踐中發(fā)明改進(jìn)了評價海水水質(zhì)的有效方法, 例如單指數(shù)法、模糊綜合評價法、模糊聚類法、灰色聚類法等[1],但海洋水體是一個大量存在非線性和非平穩(wěn)問題的綜合系統(tǒng),海水污染受到多種因素影響,污染物之間有復(fù)雜的非線性關(guān)系,使得這些方法存在評價方式局限、評價結(jié)果粗糙等問題,不能滿足現(xiàn)如今海水水質(zhì)評價的實(shí)際需求。
人工神經(jīng)網(wǎng)絡(luò)在上世紀(jì)八十年代以來迅速發(fā)展,并開始廣泛應(yīng)用于多個領(lǐng)域,它從信息處理的角度抽象人腦神經(jīng)元,并模擬人腦的一些基本特性[2]。BP神經(jīng)網(wǎng)絡(luò)是使用最廣泛的神經(jīng)網(wǎng)絡(luò),具備優(yōu)越的非線性映射能力、學(xué)習(xí)適應(yīng)能力和容錯性,能夠滿足海水水質(zhì)評價的要求,BP神經(jīng)網(wǎng)絡(luò)逐漸應(yīng)用于海水水質(zhì)評價中[3],但是BP神經(jīng)網(wǎng)絡(luò)存在一些缺點(diǎn),如收斂速度較慢、容易陷入局部極小等。
為了得到更為精準(zhǔn)的海水水質(zhì)評價模型,本文利用頭腦風(fēng)暴優(yōu)化算法(BSO)優(yōu)化BP神經(jīng)網(wǎng)絡(luò)。頭腦風(fēng)暴優(yōu)化算法是一種新的群體智能優(yōu)化算法[4],模擬人類發(fā)揮創(chuàng)造性的思維來解決現(xiàn)實(shí)問題,具備了強(qiáng)大的全局搜索和局部搜索的能力。頭腦風(fēng)暴優(yōu)化算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)(BSO-BP)的海水水質(zhì)評價模型在很大程度上改善了BP神經(jīng)網(wǎng)絡(luò)容易陷入局部極小的缺點(diǎn)。
頭腦風(fēng)暴是由美國學(xué)者Osborn于1939年提出的一種激發(fā)人類思維來解決問題的方法[5]。其中心思想是通過會議的形式匯集不同背景的人,讓所有的參會人員都圍繞中心話題暢所欲言,然后通過思想碰撞、觀念融合,最后得到解決問題的最優(yōu)方式。
根據(jù)這一思想,中國學(xué)者史玉回教授于2011年提出了頭腦風(fēng)暴優(yōu)化算法[6],在頭腦風(fēng)暴優(yōu)化算法中,每個想法都是潛在問題的解,先產(chǎn)生一定量的解個體,在對所有的解個體進(jìn)行分類,找到每一類的最優(yōu)解個體作為類中心,再通過解的更新與融合實(shí)現(xiàn)迭代更新[7]。BSO算法的具體實(shí)現(xiàn)過程:
第一步,在所有解空間內(nèi),產(chǎn)生潛在問題的n個解個體;
第二步,適應(yīng)度函數(shù)確定并計算n個解個體的適應(yīng)度值;
第三步,利用k-means聚類算法將n個個體劃分成m個類,每一類被選中的概率大小與類內(nèi)個體的個數(shù)成正比;
第四步,對每個類內(nèi)個體的適應(yīng)度值大小進(jìn)行排序,將適應(yīng)度值最佳的個體視為此類的類中心;
第五步,對所有個體進(jìn)行個體的更新,個體的更新主要有4種方式如下:
a.隨機(jī)選中1個類,在此類的類中心上通過疊加隨機(jī)擾動來產(chǎn)生新個體[8];
b.隨機(jī)選中1個類,在此類中隨機(jī)選中1個個體,疊加隨機(jī)擾動來產(chǎn)生新個體;
c.隨機(jī)選中2個類,首先把這兩個類的類中心進(jìn)行融合,再疊加隨機(jī)擾動來產(chǎn)生新個體;
d.隨機(jī)選中2個類,首先這兩個類的每類中各自隨機(jī)選出1個個體進(jìn)行融合,再疊加隨機(jī)擾動來產(chǎn)生新個體。
第六步,將新產(chǎn)生的個體的適應(yīng)度值與原個體的進(jìn)行比較,若新個體較優(yōu),替換原個體[9]。
第七步,每個個體逐一進(jìn)行更新,若達(dá)到迭代停止條件,則迭代停止,否則,返回第三步,直到迭代停止。
BP網(wǎng)絡(luò)(Back-Propagation Network)即反向傳播網(wǎng)絡(luò)。通常,由3個層次的神經(jīng)元組成,如圖1所示,即輸入層、隱含層和輸出層,并且在每層的神經(jīng)元之間形成全互連連接,同一層中的神經(jīng)元之間相互獨(dú)立,神經(jīng)元傳遞函數(shù)一般是S型函數(shù)[10]。
BP網(wǎng)絡(luò)的基本原理的核心是誤差逆?zhèn)鞑ニ惴╗11],即將神經(jīng)網(wǎng)絡(luò)輸出層的總誤差與神經(jīng)元權(quán)重和閾值的一階偏導(dǎo)數(shù)從輸出層逆向傳播到輸入層,然后根據(jù)梯度下降的方式將這些導(dǎo)數(shù)逐層進(jìn)行修正權(quán)重和閾值[11]。
具備優(yōu)越的非線性映射和自學(xué)習(xí)能力的BP神經(jīng)網(wǎng)絡(luò)逐漸在海水水質(zhì)評價應(yīng)用開來,但是BP神經(jīng)網(wǎng)絡(luò)中具有的易陷入局部極小等問題會影響海水水質(zhì)評價的結(jié)果。
基于BSO算法與BP神經(jīng)網(wǎng)絡(luò)的海水水質(zhì)評價模型(BSO-BP)不僅具備了BP神經(jīng)網(wǎng)絡(luò)的非線性映射能力,而且兼具了BSO算法的全局搜索迭代能力,在海水水質(zhì)評價過程中既可以考慮到海水的非線性關(guān)系,又能夠避免計算時陷入局部極小,使海水水質(zhì)評價更加精準(zhǔn)。
BSO-BP模型的流程如圖2所示,主要包括以下步驟:
① 創(chuàng)建一個BP神經(jīng)網(wǎng)絡(luò)。
② 為BSO算法的參數(shù)賦一組初始值。BSO算法的參數(shù)包括初始個體數(shù)量n、種群類別數(shù)目m、最大迭代次數(shù)iteration、隨機(jī)擾動的坡度調(diào)節(jié)參數(shù)K以及初始解維數(shù)D,D滿足如下條件:
D=(Nin+1)·Nhid+(Nhid+1)·Nout
(1)
式(1)中:Nin、Nhid、Nout分別是BP網(wǎng)絡(luò)各層的神經(jīng)元個數(shù)。
③ 確定適應(yīng)度計算函數(shù)并計算每個個體的適應(yīng)度值[12]。適應(yīng)度值的計算方式為均方誤差PMSE:
(2)
式(2)中:PMSE表示BP神經(jīng)網(wǎng)絡(luò)的計算值Sobse與估計值Spred之間的誤差,適應(yīng)度值越小,個體越優(yōu)。
④ 確定Pa、Pb、Pc、Pd四個概率的值,來選擇不同的個體更新方式,實(shí)現(xiàn)個體的迭代更新。
⑤ 使用適應(yīng)度函數(shù)和BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集初始化個體的適應(yīng)度值。
⑥ 對于個體類,產(chǎn)生0到1之間的隨機(jī)數(shù),與確定的概率值比較,從4種方式中選擇一種方式產(chǎn)生新個體,將新個體與原來的適應(yīng)度值比較,若新個體更好,則替換原來的個體。
⑦ 繼續(xù)迭代更新個體,直到達(dá)到最佳或者達(dá)到終止條件,停止更新。
⑧ 進(jìn)行BSO優(yōu)化之后,得到的最優(yōu)解將作為BP網(wǎng)絡(luò)的連接權(quán)重值和閾值,然后使用測試數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)仿真。
圖2 BSO-BP模型流程
根據(jù)頭腦風(fēng)暴優(yōu)化算法的中心思想,解個體越多,獲得最佳解決方案的可能性就越高,但隨著個體的增加,算法的復(fù)雜度也會隨之增加。通過綜合仿真測試,本研究將個體的數(shù)目設(shè)置成100,最大迭代次數(shù)為500次,經(jīng)過測試將Pa、Pb、Pc、Pd4個概率分別設(shè)置為0.8、0.2、0.4、0.5。
模型中更新個體的方式可以概括為兩種,一種是在原個體的基礎(chǔ)上疊加隨機(jī)擾動完成個體更新,另一種是兩個個體融合再疊加隨機(jī)擾動來完成更新。在本研究中,選擇公式(3)給生成新個體添加隨機(jī)擾動:
(3)
(4)
(5)
選擇公式(6)來實(shí)現(xiàn)兩個個體的融合:
Xnew=tX1+(1-t)X2
(6)
BP 神經(jīng)網(wǎng)絡(luò)的隱含層數(shù)個數(shù)一般為 1 層或 2 層。眾多的實(shí)驗(yàn)表明,單一隱含層的BP 神經(jīng)網(wǎng)絡(luò)能夠高精度逼近函數(shù),而且在一般的數(shù)據(jù)處理中,網(wǎng)絡(luò)層數(shù)的增長并不會顯著提高處理精度,卻增加了模型的處理計算量,浪費(fèi)資源。因此本研究選用單一隱含層,即3層BP神經(jīng)網(wǎng)絡(luò)。
根據(jù)海水水質(zhì)評價參數(shù)選擇的三準(zhǔn)則:適度準(zhǔn)則、針對性準(zhǔn)則、監(jiān)測可行準(zhǔn)則,并且根據(jù)膠州灣東北部海域的實(shí)際使用情況選擇無機(jī)氮、石油類、COD和活性磷酸鹽等4種指標(biāo)作為參評因子[10]。海水水質(zhì)評價依據(jù)為《海水水質(zhì)標(biāo)準(zhǔn)》[13],如表1所示。
表1 海水水質(zhì)標(biāo)準(zhǔn)及期望輸出
注:無機(jī)氮、活性磷酸鹽、COD、石油類含量單位均為mg/L。
選取膠州灣東北部海域的12個監(jiān)測站的數(shù)據(jù)[10]作為評價數(shù)據(jù),訓(xùn)練集數(shù)據(jù)是依據(jù)海水水質(zhì)評價標(biāo)準(zhǔn)來產(chǎn)生的,在各級評價標(biāo)準(zhǔn)之內(nèi)按照標(biāo)準(zhǔn)均勻隨機(jī)分布的方式內(nèi)插而成[14],本研究使用的Matlab的rand函數(shù)生成訓(xùn)練集數(shù)據(jù),且在各個級別之間產(chǎn)生100個訓(xùn)練樣本,共計產(chǎn)生400個樣本。BP神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)換函數(shù)為S函數(shù),其值的范圍是[0,1],因此根據(jù)水質(zhì)評價標(biāo)準(zhǔn)的分類,選擇0.2、0.4、0.6、0.8分別作為Ⅰ、Ⅱ、Ⅲ、Ⅳ的期望輸出值,如表1所示。
模型選擇無機(jī)氮、活性磷酸鹽、COD和石油類這4類監(jiān)測要素為4個輸入神經(jīng)元,根據(jù)實(shí)驗(yàn)與計算,設(shè)置BP神經(jīng)網(wǎng)絡(luò)各層神經(jīng)元,隱含層5個,輸出層1個。BP網(wǎng)絡(luò)的學(xué)習(xí)速率與沖量系數(shù)不斷嘗試后為Ir= 0.001,mc= 0.05,logsig函數(shù)作為隱含層的轉(zhuǎn)移函數(shù)。
將設(shè)計的模型在Matlab2013a環(huán)境下運(yùn)行,采用BSO算法計算得到BP網(wǎng)絡(luò)的權(quán)值和閾值如下:
輸入層到隱含層的權(quán)值W1和閾值B1:
隱含層到輸出層的權(quán)值W2和閾值B2:
W2=[-2.470 5 1.171 7 1.026 0 1.135 8
-2.960 4]B2=[1.431 9]
將膠州灣12個站位的監(jiān)測數(shù)據(jù)輸入到已經(jīng)訓(xùn)練好的海水水質(zhì)評價模型中,評價監(jiān)測點(diǎn)的水質(zhì)等級,結(jié)果如表2所示。
為了更好的描述BSO-BP模型的準(zhǔn)確性以及優(yōu)越性,將本研究結(jié)果與模糊綜合評價、BP神經(jīng)網(wǎng)絡(luò)評價以及文獻(xiàn)[10]的評價結(jié)果進(jìn)行對比,具體評價結(jié)果如表3所示。通過比較分析結(jié)果數(shù)據(jù)可知,模糊綜合指數(shù)評價的結(jié)果出現(xiàn)了偏激狀況,在2號站位和3號站位上的評價結(jié)果分別過重和過輕,這種情況的發(fā)生與方法權(quán)重的計算方式有一定的關(guān)系。模糊綜合指數(shù)法中會根據(jù)各監(jiān)測要素的超標(biāo)情況進(jìn)行權(quán)重的計算[1],超標(biāo)情況越嚴(yán)重,相應(yīng)的權(quán)重值會越大,所以當(dāng)某種監(jiān)測要素的值非常小甚至等于0時,該監(jiān)測要素的計算權(quán)重值就會變得非常小甚至等于0,這樣會造成該監(jiān)測要素對水質(zhì)綜合評價的影響大大減小甚至沒有影響,會得到與實(shí)際狀況完全相悖的結(jié)論。BP神經(jīng)網(wǎng)絡(luò)的評價計算易陷入局部極小[11],例如1號站位的評價結(jié)果與其他算法存在較大差距,很大程度上是這種原因造成的。文獻(xiàn)[10]中遺傳神經(jīng)網(wǎng)絡(luò)的評價結(jié)果在4號站位和6號站位普遍劣于其他評價方法,根據(jù)評價數(shù)據(jù)來看,在遺傳神經(jīng)網(wǎng)絡(luò)水質(zhì)評價中各污染物的權(quán)重受超標(biāo)情況影響,仍存在部分陷入局部極小現(xiàn)象,從而出現(xiàn)了劣于其他多種評價方法的結(jié)果。而BSO-BP評價模型從比較來看,使用了經(jīng)過BSO算法來優(yōu)化之后的權(quán)值與閾值,在很大程度上克服了陷入局部極小的問題,并且結(jié)合非線性映射的特點(diǎn),很好的擺脫了污染物超標(biāo)情況對權(quán)重值的影響,使模型的評價結(jié)果更加精準(zhǔn)。
表2 評價數(shù)據(jù)及評價結(jié)果
表3 多種評價方式比較
本研究將BSO算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,利用頭腦風(fēng)暴思想求解得到神經(jīng)網(wǎng)絡(luò)的權(quán)值與閾值,提出了BSO-BP海水水質(zhì)評價模型。并以膠州灣12個監(jiān)測站的監(jiān)測數(shù)據(jù)作為評價樣本,評價結(jié)果表明BSO-BP海水水質(zhì)評價模型能夠較為準(zhǔn)確合理地得到海水水質(zhì)等級,符合《海水水質(zhì)標(biāo)準(zhǔn)》。BSO-BP海水水質(zhì)評價模型把BP神經(jīng)網(wǎng)絡(luò)非線性泛化的特點(diǎn)和BSO算法強(qiáng)大的搜索迭代能力結(jié)合起來,達(dá)到了較高的逼近精度,大大提高了海水水質(zhì)評價結(jié)果的準(zhǔn)確性,評價模型具備了一定的實(shí)用性。