胡澤民 劉致宏
1 桂林電子科技大學(xué) 商學(xué)院,廣西 桂林 541004;2 桂林航天工業(yè)學(xué)院 校長(zhǎng)辦公室,廣西 桂林 541004;3 桂林電子科技大學(xué) 北海校區(qū),廣西 北海 536005
赤潮又稱(chēng)為有害藻華(Harmful Algal Blooms,HABs),是指微藻、原生動(dòng)物或細(xì)菌在適宜的海洋環(huán)境中大量的繁殖、聚集,從而導(dǎo)致海水局部變色的一種現(xiàn)象[1]。近幾年,隨著我國(guó)人口的迅速增長(zhǎng)以及現(xiàn)代工業(yè)化的不斷發(fā)展擴(kuò)大,大量未經(jīng)處理的生活污水以及工業(yè)廢水排放到近岸海域,導(dǎo)致海水富營(yíng)養(yǎng)化,為赤潮生物繁殖提供了物質(zhì)基礎(chǔ)[2]。根據(jù)國(guó)家海洋局2013-2017年發(fā)布的《中國(guó)海洋災(zāi)害公報(bào)》統(tǒng)計(jì)[3],2013年赤潮發(fā)生次數(shù)46次,2017年上升到68次,我國(guó)赤潮災(zāi)害發(fā)生次數(shù)總體呈現(xiàn)出上升的趨勢(shì)。因此,對(duì)赤潮災(zāi)害進(jìn)行預(yù)測(cè)對(duì)保護(hù)海洋生態(tài)環(huán)境具有重大的意義。
赤潮形成的機(jī)制非常復(fù)雜,目前還沒(méi)有統(tǒng)一的結(jié)論[4-5]。隨著人工智能技術(shù)的發(fā)展,國(guó)內(nèi)外學(xué)者開(kāi)始將數(shù)據(jù)驅(qū)動(dòng)模型應(yīng)用于赤潮預(yù)測(cè)研究中。蘇新紅等[6]應(yīng)用BP神經(jīng)網(wǎng)絡(luò)建立了赤潮等級(jí)與氣溫、降水、風(fēng)速、氣壓和日照等氣象因子的非線性關(guān)系模型,預(yù)測(cè)準(zhǔn)確率達(dá)到70%~80%。BP神經(jīng)網(wǎng)絡(luò)強(qiáng)大的非線性擬合能力對(duì)赤潮災(zāi)害預(yù)測(cè)具有較好的預(yù)測(cè)效果。但是,BP神經(jīng)網(wǎng)絡(luò)存在容易陷入局部最優(yōu)的缺陷。針對(duì)BP神經(jīng)網(wǎng)絡(luò)存在的缺陷,許多學(xué)者將智能優(yōu)化算法與BP神經(jīng)網(wǎng)絡(luò)結(jié)合。Yaoming Zhou等[7]分別用遺傳算法GA以及粒子群算法PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)。結(jié)果表明PSO-BP、GA-BP模型相對(duì)于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的精度更高。Gao F等[8]建立PSO-BP模型對(duì)葉綠素a濃度進(jìn)行預(yù)測(cè),提高了預(yù)測(cè)精度。遺傳算法雖然能夠?qū)?wèn)題解進(jìn)行全局搜索,但是計(jì)算復(fù)雜,收斂緩慢。粒子群算法尋優(yōu)速度快,但是易發(fā)散。天牛須搜索算法(Beetle Antennae Search, BAS)BAS類(lèi)似于PSO以及GA等智能優(yōu)化算法,具有收斂速度快的特性。但是,BAS算法是單體智能優(yōu)化算法,在處理高維數(shù)據(jù)時(shí)易陷入局部最優(yōu)。因此,本文將粒子群和BAS算法結(jié)合,提出一種倒S型函數(shù)的BSO-BP的赤潮預(yù)測(cè)模型。通過(guò)在MATLAB仿真軟件上對(duì)比BP、PSO-BP、BAS-BP等模型,驗(yàn)證了BSO-BP模型的可靠性,為赤潮災(zāi)害預(yù)測(cè)提出了一種可供參考的新方法。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種典型的前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱含層以及輸出層組成[9]。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
其原理是通過(guò)梯度下降法,利用誤差反向傳播不斷調(diào)整權(quán)值、閾值,直到誤差達(dá)到設(shè)定的精度標(biāo)準(zhǔn)或者滿(mǎn)足迭代的次數(shù)。BP神經(jīng)網(wǎng)絡(luò)包含信息前向傳遞以及誤差反向傳播兩個(gè)階段[10]。在信息前向傳遞階段,輸入數(shù)據(jù)通過(guò)權(quán)值、閾值融合計(jì)算,再通過(guò)隱含層激活函數(shù)變化得到相應(yīng)的輸出數(shù)據(jù)。將輸出數(shù)據(jù)對(duì)應(yīng)下一層的輸入數(shù)據(jù),再進(jìn)行相應(yīng)的計(jì)算,得到最后的輸出結(jié)果。誤差反向傳播階段將輸出的結(jié)果與真實(shí)值進(jìn)行對(duì)比,并將誤差反向傳遞到上一層,根據(jù)梯度值來(lái)調(diào)整權(quán)值、閾值,直到達(dá)到迭代終止條件。
BAS算法[11-14]是2017年依據(jù)天牛覓食原理提出的一種生物啟發(fā)式智能優(yōu)化算法。天牛覓食原理為:天牛在不知道食物具體位置時(shí),根據(jù)頭上的兩只觸角來(lái)判定食物的位置。當(dāng)右邊觸角接收到的食物氣味強(qiáng)度更大的時(shí)候,天牛會(huì)向右方向移動(dòng)。反之,則會(huì)向左方向移動(dòng)。依據(jù)這一簡(jiǎn)單的覓食原理,天牛最終會(huì)找到食物。BAS尋優(yōu)步驟如下。
(1)初始化天牛須朝向,生成一個(gè)n維的隨機(jī)空間向量。
(1)
(2)生成天牛左右須的空間位置。
(2)
(3)
(3)根據(jù)適應(yīng)度函數(shù)計(jì)算出天牛左右須的適應(yīng)度值,即天牛須感應(yīng)到的食物氣味強(qiáng)度。
(4)根據(jù)適應(yīng)度函數(shù)值的大小,更新天牛質(zhì)心的位置。
(4)
天牛群優(yōu)化算法(Beetle Swarm Optimization Algorithm,BSO)是天牛須BAS與粒子群PSO算法的結(jié)合[15]。BAS算法是一種單體智能優(yōu)化算法,在處理高維數(shù)據(jù)時(shí),容易陷入局部最優(yōu)。因此,將BAS算法和PSO算法結(jié)合,擴(kuò)展為天牛群智能優(yōu)化算法。BSO算法保留了天牛覓食的原理,同時(shí)引入了粒子群群體信息共享的機(jī)制,將PSO算法中的粒子用天牛代替。
(5)
(6)
天牛群位置以及速度更新公式如下:
(7)
(8)
在標(biāo)準(zhǔn)的PSO算法中,慣性權(quán)重通常是一個(gè)固定的值。研究表明慣性權(quán)重ω對(duì)粒子的搜索范圍有很大的影響[16]。當(dāng)ω取較大值時(shí),全局搜索能力較強(qiáng)。當(dāng)ω取較小值時(shí),局部搜索能力較強(qiáng),有利于后期提高收斂精度。為了讓天牛在前期進(jìn)行全局搜索,后期進(jìn)行局部搜索。本文引入倒S型函數(shù)對(duì)慣性權(quán)重進(jìn)行調(diào)整。慣性權(quán)重更新公式如下:
(9)
式中,a=5、b=0.2;ω最大值取0.9、最小值取0.4。
慣性權(quán)重ω曲線圖如下。
圖2 慣性權(quán)重曲線圖
由圖2可以看出,倒S型遞減函數(shù)相對(duì)于線性遞減函數(shù),在前期變化緩慢,有利于天牛群前期進(jìn)行全局搜索。線性慣性權(quán)重前期衰減太快,容易失去種群多樣性。倒S型遞減函數(shù)在中、后期下降迅速,使得天牛群進(jìn)行局部搜索,提升收斂精度,加快收斂速度。
赤潮預(yù)測(cè)模型主要分為三部分:首先,利用KPCA對(duì)原始赤潮樣本數(shù)據(jù)進(jìn)行降維,加快網(wǎng)絡(luò)的收斂速度。其次,通過(guò)BSO算法尋找BP神經(jīng)網(wǎng)絡(luò)最佳的初始權(quán)值、閾值。最后,將BSO找到的最優(yōu)解賦給BP神經(jīng)網(wǎng)絡(luò)的初始化權(quán)值、閾值。具體步驟如圖3所示。
圖3 赤潮預(yù)測(cè)實(shí)現(xiàn)過(guò)程
核主成分分析法(Kernel Principal Component Analysis,KPCA)是一種實(shí)現(xiàn)高維變量數(shù)據(jù)降維的非線性主元分析方法[17],其原理是將輸入數(shù)據(jù)樣本映射到高維特征空間中,再利用主成分分析法PCA對(duì)高維特征空間中的數(shù)據(jù)進(jìn)行線性降維[18]。KPCA通過(guò)損失少量的數(shù)據(jù)信息達(dá)到降低數(shù)據(jù)維度的目的。具體步驟如下[19]。
(1)將輸入數(shù)據(jù)標(biāo)準(zhǔn)化處理。
(10)
(11)
(2)通過(guò)高斯核函數(shù)計(jì)算出核矩陣。
(12)
(3)中心化核矩陣K,使得核矩陣更加聚集。
K′=K-InK-KIn+InKIn,
(13)
式中:In是一個(gè)所有值均為1/n的n×n維矩陣。
(4)計(jì)算出特征值和特征向量。
(5)將各特征值除以總特征值之和,得出貢獻(xiàn)率。
根據(jù)上述步驟,設(shè)置累計(jì)貢獻(xiàn)率為90%,完成原始數(shù)據(jù)降維處理,得出累計(jì)貢獻(xiàn)率超過(guò)90%的主成分。結(jié)果如圖4所示。特征值以及累計(jì)貢獻(xiàn)率如表1所示。
圖4 核主成分分析圖
表1 各核主成分特征值及貢獻(xiàn)率
根據(jù)表1可知,前4個(gè)主元的貢獻(xiàn)率為90.924%。超過(guò)了設(shè)定的閾值90%。因此,選取前4個(gè)主元作為BSO-BP的輸入數(shù)據(jù)。
BP神經(jīng)網(wǎng)絡(luò)基于梯度下降法且隨機(jī)初始權(quán)值容易導(dǎo)致網(wǎng)絡(luò)不穩(wěn)定、易陷入局部最優(yōu)。將BSO全局搜索特性結(jié)合BP神經(jīng)網(wǎng)絡(luò),從而避免BP神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu)的情況。具體步驟如下。
(1)將KPCA降維后的數(shù)據(jù)作為BSO-BP神經(jīng)網(wǎng)絡(luò)的輸入樣本。
(2)初始化天牛群參數(shù)。設(shè)置天牛群規(guī)模n、最大迭代次數(shù)t、慣性權(quán)重ω以及搜索空間維度k等。搜索空間維度的計(jì)算公式如下:
k=i·h+o·h+h+o,
(14)
式中:i表示輸入層神經(jīng)元個(gè)數(shù);h表示隱含層神經(jīng)元個(gè)數(shù);o表示輸出層神經(jīng)元個(gè)數(shù)。
(3)種群初始化。隨機(jī)生成天牛位置、速度。根據(jù)式(15)計(jì)算出適應(yīng)度函數(shù)值,保存天牛個(gè)體極值以及群體極值。并根據(jù)式(16),更新天牛步長(zhǎng)δt。
(15)
δt+1=eta·δt,
(16)
(4)迭代尋優(yōu)。根據(jù)式(7)~(9),分別對(duì)天牛位置、速度以及慣性權(quán)重進(jìn)行更新。計(jì)算各天牛位置的適應(yīng)度值,通過(guò)與歷史個(gè)體極值與歷史群體極值相比較,更新天牛群體的個(gè)體極值和群體極值。
(5)當(dāng)?shù)螖?shù)達(dá)到設(shè)定的值時(shí),將BSO尋找到的最優(yōu)解賦給BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值、閾值。
(6)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型。計(jì)算誤差,通過(guò)誤差反向傳播不斷更新網(wǎng)絡(luò)權(quán)值、閾值,直到達(dá)到設(shè)定的精度或者滿(mǎn)足迭代的最大次數(shù)。
(7)將訓(xùn)練好的網(wǎng)絡(luò)模型輸出預(yù)測(cè)值,并將結(jié)果以可視化的方式呈現(xiàn)出來(lái)。
本文所采用的赤潮分析樣本數(shù)據(jù)來(lái)源于石家島附近海域所觀測(cè)到的28組夜光藻密度數(shù)據(jù)以及各種環(huán)境理化因子數(shù)據(jù)[20],具體數(shù)據(jù)如表2所示。目前,一般認(rèn)為海水富營(yíng)養(yǎng)化是赤潮發(fā)生的首要條件,水文參數(shù)以及各種理化因子是赤潮發(fā)生的重要原因[21]。因此,本文選取水溫、溶解氧濃度、鹽度、總氮、可溶性無(wú)機(jī)磷以及浮游植物密度等與赤潮發(fā)生的強(qiáng)相關(guān)因子作為原始樣本數(shù)據(jù)。選取樣本7、14、21、28作為測(cè)試樣本,驗(yàn)證BP神經(jīng)網(wǎng)絡(luò)的泛化能力。其余的樣本作為訓(xùn)練集用來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。仿真實(shí)驗(yàn)平臺(tái)為MATLAB 2016a。
輸入變量因單位不一致使得數(shù)據(jù)差距過(guò)大,可能導(dǎo)致預(yù)測(cè)誤差增大。所以在訓(xùn)練神經(jīng)網(wǎng)絡(luò)之前,先對(duì)數(shù)據(jù)進(jìn)行歸一化處理,將數(shù)據(jù)映射到[-1,1]的區(qū)間上。歸一化公式如下:
(17)
表2 赤潮樣本數(shù)據(jù)[20]
本文選取平均相對(duì)誤差(Average Relative Error,ARE)和決定系數(shù)(Coefficient of determination,R2)來(lái)驗(yàn)證模型的預(yù)測(cè)性能。ARE越接近0表示預(yù)測(cè)的誤差越小,模型的預(yù)測(cè)能力越強(qiáng)。R2的取值范圍在[0,1]之間,R2越接近1,表明預(yù)測(cè)的效果越好。計(jì)算公式如下:
(18)
(19)
BP神經(jīng)網(wǎng)絡(luò)隱含層對(duì)網(wǎng)絡(luò)性能影響較大,通常三層的神經(jīng)網(wǎng)絡(luò)就可以達(dá)到很高的準(zhǔn)確率。本文選取一層隱含層,隱含層個(gè)數(shù)依據(jù)式(20)選取。
(20)
式中:i表示輸入層神經(jīng)元個(gè)數(shù);o表示輸出層神經(jīng)元個(gè)數(shù);c是一個(gè)取值范圍在[1,10]之間的常數(shù)。
輸入層變量包含水溫、溶解氧、鹽度、總氮、可溶性無(wú)機(jī)磷以及浮游植物密度6個(gè)特征參數(shù),經(jīng)過(guò)KPCA降維后保留累計(jì)貢獻(xiàn)率超過(guò)90%的4個(gè)主元。因此,輸入層神經(jīng)元個(gè)數(shù)為4。輸出層為夜光藻密度,輸出層神經(jīng)元個(gè)數(shù)為1。依據(jù)式(20)可以得出隱含層神經(jīng)元個(gè)數(shù)的范圍[4,13]。通過(guò)反復(fù)試驗(yàn),最終確定隱含層神經(jīng)元個(gè)數(shù)為9。因此,最終網(wǎng)絡(luò)結(jié)構(gòu)為4-9-1。隱含層、輸出層傳遞函數(shù)分別選取tansig、purelin函數(shù)。訓(xùn)練函數(shù)選取trainlm。
將KPCA降維后的樣本數(shù)據(jù)帶入到PSO-BP、BAS-BP以及BSO-BP模型中進(jìn)行訓(xùn)練。經(jīng)過(guò)50次迭代后,得到各模型適應(yīng)度曲線對(duì)比圖,如圖5所示。BSO-BP模型在第21次迭代時(shí)收斂,找到最小適應(yīng)度值0.001 2,相較于BAS-BP、PSO-BP模型找到的最佳適應(yīng)度值更低。仿真結(jié)果表明BSO-BP模型具有較好的搜索效果以及收斂速度。
圖5 適應(yīng)度曲線對(duì)比圖
將訓(xùn)練樣本帶入到BSO-BP模型中訓(xùn)練,得到BSO-BP模型的訓(xùn)練樣本輸出結(jié)果,如圖6所示。從圖6可以看出,訓(xùn)練樣本數(shù)據(jù)與真實(shí)值基本吻合,網(wǎng)絡(luò)模型訓(xùn)練結(jié)果較好。模型訓(xùn)練完成之后,將測(cè)試樣本帶入到訓(xùn)練好的BSO-BP模型中,輸出夜光藻密度值,如圖7所示。由圖7可以看出,BSO-BP預(yù)測(cè)值與實(shí)際值較為擬合,具有較好的泛化能力。
圖6 BSO-BP訓(xùn)練樣本擬合結(jié)果
圖7 BSO-BP測(cè)試樣本輸出結(jié)果
為了進(jìn)一步驗(yàn)證BSO-BP網(wǎng)絡(luò)模型在赤潮預(yù)測(cè)中的性能,分別與BP、PSO-BP以及BAS-BP等模型的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比。結(jié)果如圖8所示。
圖8 不同模型結(jié)果對(duì)比
從圖8可以看出,BP神經(jīng)網(wǎng)絡(luò)在各個(gè)預(yù)測(cè)點(diǎn)的誤差相對(duì)較大;PSO-BP模型在第3個(gè)預(yù)測(cè)點(diǎn)與真實(shí)值最為接近,第2個(gè)點(diǎn)誤差最大;BAS-BP模型的第1個(gè)預(yù)測(cè)點(diǎn)與真實(shí)值最為接近,第3個(gè)點(diǎn)的預(yù)測(cè)值誤差較大。BSO-BP模型在第2個(gè)點(diǎn)預(yù)測(cè)效果最好,第3個(gè)預(yù)測(cè)點(diǎn)誤差較大;從整體上看,BSO-BP模型的預(yù)測(cè)值與真實(shí)值更加擬合,整體的預(yù)測(cè)效果更好。不同模型在相對(duì)誤差RE、平均相對(duì)誤差A(yù)RE、決定系數(shù)R2的數(shù)據(jù)對(duì)比如表3、表4所示。
表3各模型預(yù)測(cè)結(jié)果
測(cè)試樣本實(shí)際值 /(103個(gè)·m-3)BPPSO-BPBAS-BPBSO-BP預(yù)測(cè)值/ (103個(gè)·m-3)RE預(yù)測(cè)值/ (103個(gè)·m-3) RE預(yù)測(cè)值/(103個(gè)·m-3)RE預(yù)測(cè)值/ (103個(gè)·m-3) RE樣本7466.98418.6-0.104476.060.019466.686 6-0.000 6454.58-0.027樣本14169.15181.90.076261.460.546137.655 3-0.186 2168.35-0.005樣本217.492.693-0.6416.552 3-0.134.464 4-0.404 03.567 5-0.524樣本28159.9690.83-0.432196.260.227125.992 3-0.212 4125.4-0.216
表4 各模型性能對(duì)比
平均相對(duì)誤差A(yù)RE越小,代表模型預(yù)測(cè)的夜光藻密度與實(shí)際值更為接近。決定系數(shù)R2越接近1表示預(yù)測(cè)值與輸出值擬合效果越好。通過(guò)表3、表4可以看出,BP神經(jīng)網(wǎng)絡(luò)模型的平均相對(duì)誤差最大。說(shuō)明BP模型相對(duì)于其他優(yōu)化模型預(yù)測(cè)誤差更大,容易陷入局部最優(yōu)。經(jīng)過(guò)PSO、BAS以及BSO算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò),有效地降低了預(yù)測(cè)的平均相對(duì)誤差。BSO-BP相對(duì)于BAS-BP以及PSO-BP的平均相對(duì)誤差更小并且BSO-BP模型的決定系數(shù)更接近1,預(yù)測(cè)曲線與實(shí)際值更加擬合。綜上所述,BSO-BP模型相對(duì)于其他模型在預(yù)測(cè)精度上具有優(yōu)勢(shì),對(duì)夜光藻密度預(yù)測(cè)效果更好。
本文通過(guò)KPCA對(duì)輸入變量進(jìn)行降維分析,提取出包含原始信息90.924%的4個(gè)主元。從而減少輸入向量的維度,加快模型的收斂速度。其次,在BAS算法的基礎(chǔ)上結(jié)合PSO群體信息共享機(jī)制,提出一種倒S型函數(shù)的BSO-BP模型。利用BSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值、閾值。結(jié)果表明BSO尋優(yōu)后找到的權(quán)值、閾值明顯比BP神經(jīng)網(wǎng)絡(luò)隨機(jī)權(quán)值、閾值預(yù)測(cè)效果要好。相對(duì)于其他優(yōu)化算法,BSO-BP在預(yù)測(cè)精度上具有優(yōu)勢(shì)并且具有更好的非線性擬合效果。
本文通過(guò)BP模型的BSO優(yōu)化算法,為赤潮災(zāi)害的預(yù)測(cè)提出了一個(gè)可供參考的新方法。雖然BSO-BP預(yù)測(cè)效果相較于其他模型有一定的優(yōu)勢(shì)。但也存在許多改進(jìn)的空間。BSO模型參數(shù)較多,需要對(duì)參數(shù)進(jìn)行多次調(diào)整,反復(fù)實(shí)驗(yàn)。因此,如何減少BSO模型的參數(shù),加快收斂速度是下一步研究的問(wèn)題。
桂林航天工業(yè)學(xué)院學(xué)報(bào)2020年1期