李海濤,邵澤東
(青島科技大學信息科學技術學院,山東 青島 266000)
海洋開發利用的不斷發展,使得海洋環境承受著與日俱增的壓力。海水水質是考量海洋環境質量的主要指標之一。海水水質評價是根據海水要素指標的值對其質量狀況進行綜合性評價,以確定評價監測海域的海水水質問題,為海洋環境監管和治理提供支持。眾多環境工作者在實踐中發明改進了評價海水水質的有效方法, 例如單指數法、模糊綜合評價法、模糊聚類法、灰色聚類法等[1],但海洋水體是一個大量存在非線性和非平穩問題的綜合系統,海水污染受到多種因素影響,污染物之間有復雜的非線性關系,使得這些方法存在評價方式局限、評價結果粗糙等問題,不能滿足現如今海水水質評價的實際需求。
人工神經網絡在上世紀八十年代以來迅速發展,并開始廣泛應用于多個領域,它從信息處理的角度抽象人腦神經元,并模擬人腦的一些基本特性[2]。BP神經網絡是使用最廣泛的神經網絡,具備優越的非線性映射能力、學習適應能力和容錯性,能夠滿足海水水質評價的要求,BP神經網絡逐漸應用于海水水質評價中[3],但是BP神經網絡存在一些缺點,如收斂速度較慢、容易陷入局部極小等。
為了得到更為精準的海水水質評價模型,本文利用頭腦風暴優化算法(BSO)優化BP神經網絡。頭腦風暴優化算法是一種新的群體智能優化算法[4],模擬人類發揮創造性的思維來解決現實問題,具備了強大的全局搜索和局部搜索的能力。頭腦風暴優化算法優化BP神經網絡(BSO-BP)的海水水質評價模型在很大程度上改善了BP神經網絡容易陷入局部極小的缺點。
頭腦風暴是由美國學者Osborn于1939年提出的一種激發人類思維來解決問題的方法[5]。其中心思想是通過會議的形式匯集不同背景的人,讓所有的參會人員都圍繞中心話題暢所欲言,然后通過思想碰撞、觀念融合,最后得到解決問題的最優方式。
根據這一思想,中國學者史玉回教授于2011年提出了頭腦風暴優化算法[6],在頭腦風暴優化算法中,每個想法都是潛在問題的解,先產生一定量的解個體,在對所有的解個體進行分類,找到每一類的最優解個體作為類中心,再通過解的更新與融合實現迭代更新[7]。BSO算法的具體實現過程:
第一步,在所有解空間內,產生潛在問題的n個解個體;
第二步,適應度函數確定并計算n個解個體的適應度值;
第三步,利用k-means聚類算法將n個個體劃分成m個類,每一類被選中的概率大小與類內個體的個數成正比;
第四步,對每個類內個體的適應度值大小進行排序,將適應度值最佳的個體視為此類的類中心;
第五步,對所有個體進行個體的更新,個體的更新主要有4種方式如下:
a.隨機選中1個類,在此類的類中心上通過疊加隨機擾動來產生新個體[8];
b.隨機選中1個類,在此類中隨機選中1個個體,疊加隨機擾動來產生新個體;
c.隨機選中2個類,首先把這兩個類的類中心進行融合,再疊加隨機擾動來產生新個體;
d.隨機選中2個類,首先這兩個類的每類中各自隨機選出1個個體進行融合,再疊加隨機擾動來產生新個體。
第六步,將新產生的個體的適應度值與原個體的進行比較,若新個體較優,替換原個體[9]。
第七步,每個個體逐一進行更新,若達到迭代停止條件,則迭代停止,否則,返回第三步,直到迭代停止。
BP網絡(Back-Propagation Network)即反向傳播網絡。通常,由3個層次的神經元組成,如圖1所示,即輸入層、隱含層和輸出層,并且在每層的神經元之間形成全互連連接,同一層中的神經元之間相互獨立,神經元傳遞函數一般是S型函數[10]。
BP網絡的基本原理的核心是誤差逆傳播算法[11],即將神經網絡輸出層的總誤差與神經元權重和閾值的一階偏導數從輸出層逆向傳播到輸入層,然后根據梯度下降的方式將這些導數逐層進行修正權重和閾值[11]。
具備優越的非線性映射和自學習能力的BP神經網絡逐漸在海水水質評價應用開來,但是BP神經網絡中具有的易陷入局部極小等問題會影響海水水質評價的結果。
基于BSO算法與BP神經網絡的海水水質評價模型(BSO-BP)不僅具備了BP神經網絡的非線性映射能力,而且兼具了BSO算法的全局搜索迭代能力,在海水水質評價過程中既可以考慮到海水的非線性關系,又能夠避免計算時陷入局部極小,使海水水質評價更加精準。
BSO-BP模型的流程如圖2所示,主要包括以下步驟:
① 創建一個BP神經網絡。
② 為BSO算法的參數賦一組初始值。BSO算法的參數包括初始個體數量n、種群類別數目m、最大迭代次數iteration、隨機擾動的坡度調節參數K以及初始解維數D,D滿足如下條件:
D=(Nin+1)·Nhid+(Nhid+1)·Nout
(1)
式(1)中:Nin、Nhid、Nout分別是BP網絡各層的神經元個數。
③ 確定適應度計算函數并計算每個個體的適應度值[12]。適應度值的計算方式為均方誤差PMSE:
(2)
式(2)中:PMSE表示BP神經網絡的計算值Sobse與估計值Spred之間的誤差,適應度值越小,個體越優。
④ 確定Pa、Pb、Pc、Pd四個概率的值,來選擇不同的個體更新方式,實現個體的迭代更新。
⑤ 使用適應度函數和BP神經網絡的訓練集初始化個體的適應度值。
⑥ 對于個體類,產生0到1之間的隨機數,與確定的概率值比較,從4種方式中選擇一種方式產生新個體,將新個體與原來的適應度值比較,若新個體更好,則替換原來的個體。
⑦ 繼續迭代更新個體,直到達到最佳或者達到終止條件,停止更新。
⑧ 進行BSO優化之后,得到的最優解將作為BP網絡的連接權重值和閾值,然后使用測試數據進行神經網絡仿真。

圖2 BSO-BP模型流程
根據頭腦風暴優化算法的中心思想,解個體越多,獲得最佳解決方案的可能性就越高,但隨著個體的增加,算法的復雜度也會隨之增加。通過綜合仿真測試,本研究將個體的數目設置成100,最大迭代次數為500次,經過測試將Pa、Pb、Pc、Pd4個概率分別設置為0.8、0.2、0.4、0.5。
模型中更新個體的方式可以概括為兩種,一種是在原個體的基礎上疊加隨機擾動完成個體更新,另一種是兩個個體融合再疊加隨機擾動來完成更新。在本研究中,選擇公式(3)給生成新個體添加隨機擾動:
(3)
(4)
(5)
選擇公式(6)來實現兩個個體的融合:
Xnew=tX1+(1-t)X2
(6)
BP 神經網絡的隱含層數個數一般為 1 層或 2 層。眾多的實驗表明,單一隱含層的BP 神經網絡能夠高精度逼近函數,而且在一般的數據處理中,網絡層數的增長并不會顯著提高處理精度,卻增加了模型的處理計算量,浪費資源。因此本研究選用單一隱含層,即3層BP神經網絡。
根據海水水質評價參數選擇的三準則:適度準則、針對性準則、監測可行準則,并且根據膠州灣東北部海域的實際使用情況選擇無機氮、石油類、COD和活性磷酸鹽等4種指標作為參評因子[10]。海水水質評價依據為《海水水質標準》[13],如表1所示。

表1 海水水質標準及期望輸出
注:無機氮、活性磷酸鹽、COD、石油類含量單位均為mg/L。
選取膠州灣東北部海域的12個監測站的數據[10]作為評價數據,訓練集數據是依據海水水質評價標準來產生的,在各級評價標準之內按照標準均勻隨機分布的方式內插而成[14],本研究使用的Matlab的rand函數生成訓練集數據,且在各個級別之間產生100個訓練樣本,共計產生400個樣本。BP神經網絡的轉換函數為S函數,其值的范圍是[0,1],因此根據水質評價標準的分類,選擇0.2、0.4、0.6、0.8分別作為Ⅰ、Ⅱ、Ⅲ、Ⅳ的期望輸出值,如表1所示。
模型選擇無機氮、活性磷酸鹽、COD和石油類這4類監測要素為4個輸入神經元,根據實驗與計算,設置BP神經網絡各層神經元,隱含層5個,輸出層1個。BP網絡的學習速率與沖量系數不斷嘗試后為Ir= 0.001,mc= 0.05,logsig函數作為隱含層的轉移函數。
將設計的模型在Matlab2013a環境下運行,采用BSO算法計算得到BP網絡的權值和閾值如下:
輸入層到隱含層的權值W1和閾值B1:
隱含層到輸出層的權值W2和閾值B2:
W2=[-2.470 5 1.171 7 1.026 0 1.135 8
-2.960 4]B2=[1.431 9]
將膠州灣12個站位的監測數據輸入到已經訓練好的海水水質評價模型中,評價監測點的水質等級,結果如表2所示。
為了更好的描述BSO-BP模型的準確性以及優越性,將本研究結果與模糊綜合評價、BP神經網絡評價以及文獻[10]的評價結果進行對比,具體評價結果如表3所示。通過比較分析結果數據可知,模糊綜合指數評價的結果出現了偏激狀況,在2號站位和3號站位上的評價結果分別過重和過輕,這種情況的發生與方法權重的計算方式有一定的關系。模糊綜合指數法中會根據各監測要素的超標情況進行權重的計算[1],超標情況越嚴重,相應的權重值會越大,所以當某種監測要素的值非常小甚至等于0時,該監測要素的計算權重值就會變得非常小甚至等于0,這樣會造成該監測要素對水質綜合評價的影響大大減小甚至沒有影響,會得到與實際狀況完全相悖的結論。BP神經網絡的評價計算易陷入局部極小[11],例如1號站位的評價結果與其他算法存在較大差距,很大程度上是這種原因造成的。文獻[10]中遺傳神經網絡的評價結果在4號站位和6號站位普遍劣于其他評價方法,根據評價數據來看,在遺傳神經網絡水質評價中各污染物的權重受超標情況影響,仍存在部分陷入局部極小現象,從而出現了劣于其他多種評價方法的結果。而BSO-BP評價模型從比較來看,使用了經過BSO算法來優化之后的權值與閾值,在很大程度上克服了陷入局部極小的問題,并且結合非線性映射的特點,很好的擺脫了污染物超標情況對權重值的影響,使模型的評價結果更加精準。

表2 評價數據及評價結果

表3 多種評價方式比較
本研究將BSO算法與BP神經網絡相結合,利用頭腦風暴思想求解得到神經網絡的權值與閾值,提出了BSO-BP海水水質評價模型。并以膠州灣12個監測站的監測數據作為評價樣本,評價結果表明BSO-BP海水水質評價模型能夠較為準確合理地得到海水水質等級,符合《海水水質標準》。BSO-BP海水水質評價模型把BP神經網絡非線性泛化的特點和BSO算法強大的搜索迭代能力結合起來,達到了較高的逼近精度,大大提高了海水水質評價結果的準確性,評價模型具備了一定的實用性。