張錦榮 王康誼
(中北大學(xué)信息與通信工程學(xué)院 太原 030051)
近年來(lái),我國(guó)的水產(chǎn)養(yǎng)殖業(yè)逐漸由內(nèi)陸轉(zhuǎn)向遠(yuǎn)海,越來(lái)越多的人采取深水網(wǎng)箱養(yǎng)殖的方式進(jìn)行魚(yú)類養(yǎng)殖。但由于網(wǎng)箱內(nèi)魚(yú)類養(yǎng)殖密度較大,養(yǎng)殖區(qū)域水溫的突變會(huì)造成PH、溶解氧等水質(zhì)因子的變化,導(dǎo)致魚(yú)類的生存環(huán)境發(fā)生變化,影響魚(yú)類生長(zhǎng)速度和生長(zhǎng)大小。而水溫的實(shí)時(shí)預(yù)測(cè)可以幫助養(yǎng)殖者提前采取相關(guān)措施,及時(shí)調(diào)整水質(zhì),保證適宜的魚(yú)類養(yǎng)殖環(huán)境。
為實(shí)現(xiàn)水溫的準(zhǔn)確預(yù)測(cè),目前已有學(xué)者做出相關(guān)研究。朱森林等[1]建立了水溫-氣溫的高斯過(guò)程回歸模型,實(shí)現(xiàn)了對(duì)天然河流水溫的預(yù)測(cè),但該模型在干擾因素較大的河流站點(diǎn)預(yù)測(cè)效果不佳。徐大明等[2]采用粒子群算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)建立了基于PSO-BPNN 的水溫和PH 預(yù)測(cè)模型,在模型預(yù)測(cè)精度和容錯(cuò)率方面取得了不錯(cuò)的效果。陳英義等[3]提出了基于GA-BP 神經(jīng)網(wǎng)絡(luò)的養(yǎng)殖水溫預(yù)測(cè)模型,通過(guò)GA 優(yōu)化BP 網(wǎng)絡(luò)提高了模型的預(yù)測(cè)精度,實(shí)現(xiàn)了池塘養(yǎng)殖水溫的短期預(yù)測(cè)。施珮等[4]提出了基于EMD-IGA-SELM 的水溫預(yù)測(cè)模型,在小樣本水溫預(yù)測(cè)方面取得了較好的預(yù)測(cè)效果。以上算法在水溫預(yù)測(cè)方面均取得了較好的預(yù)測(cè)效果,但在長(zhǎng)時(shí)間序列預(yù)測(cè)過(guò)程中以上模型難以取得好的預(yù)測(cè)精度。LSTM長(zhǎng)短期記憶網(wǎng)絡(luò)非常適用于時(shí)間序列的預(yù)測(cè),且能夠?qū)崿F(xiàn)數(shù)據(jù)的長(zhǎng)期記憶功能。劉晶晶等[5]采用K-Similarity 降噪的LSTM 水質(zhì)預(yù)測(cè)模型實(shí)現(xiàn)了地表水質(zhì)多因子預(yù)測(cè),且預(yù)測(cè)精度優(yōu)于傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)。孫銘等[6]采用基于小波分解的LSTM 水質(zhì)預(yù)測(cè)模型實(shí)現(xiàn)對(duì)PH、溶解氧等水質(zhì)指標(biāo)的預(yù)測(cè),且模型取得了較好的預(yù)測(cè)精度?;谇叭说难芯炕A(chǔ),本文提出基于EMD-LSTM 的水產(chǎn)養(yǎng)殖水溫預(yù)測(cè)模型。通過(guò)EMD 算法將原始水溫序列分解為不同頻次的分量,針對(duì)各分量建立LSTM 模型進(jìn)行預(yù)測(cè),然后將預(yù)測(cè)結(jié)果疊加求和得到最終的水溫預(yù)測(cè)結(jié)果。
經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)是一種時(shí)頻域信號(hào)的處理方法,該方法具有自適應(yīng)的特性,能夠根據(jù)輸入數(shù)據(jù)自身的時(shí)間尺度特征進(jìn)行信號(hào)分解,在分析非線性非平穩(wěn)的信號(hào)序列方面具有明顯的優(yōu)勢(shì)[7~8]。EMD將輸入信號(hào)分解成若干個(gè)本征模函數(shù)(Intrinsic Mode Function,IMF)和一個(gè)余量R,其中各IMF 分量之間相互獨(dú)立,反映了原始信號(hào)不同時(shí)間尺度的局部特征信息。
分解后的IMF分量應(yīng)滿足如下條件:
1)在IMF數(shù)據(jù)段內(nèi),極值點(diǎn)個(gè)數(shù)和零點(diǎn)個(gè)數(shù)必須相等或相差最多不超過(guò)一個(gè)。
2)在IMF任意時(shí)刻,局部極大值構(gòu)成的包絡(luò)線和局部極小值構(gòu)成的包絡(luò)線平均值為0,上下包絡(luò)線相對(duì)于時(shí)間軸對(duì)稱。
長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)是由傳統(tǒng)RNN 神經(jīng)網(wǎng)絡(luò)改進(jìn)而來(lái)的一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)[9]。傳統(tǒng)的RNN 神經(jīng)網(wǎng)絡(luò)在實(shí)際使用過(guò)程中往往會(huì)出現(xiàn)梯度消失和梯度爆炸的問(wèn)題,在長(zhǎng)時(shí)間序列預(yù)測(cè)方面處理效果較差,LSTM通過(guò)引入門(mén)機(jī)制來(lái)控制各時(shí)刻特征的流通和損失,讓信息有選擇地影響訓(xùn)練過(guò)程中各時(shí)刻的狀態(tài),從而有效解決了RNN 在長(zhǎng)時(shí)間序列預(yù)測(cè)過(guò)程中存在的問(wèn)題[10]。
LSTM 模型單元結(jié)構(gòu)如圖1 所示,其長(zhǎng)期記憶功能取決于單元結(jié)構(gòu)中的輸入門(mén)、輸出門(mén)和遺忘門(mén)。遺忘門(mén)決定上個(gè)時(shí)間的單元狀態(tài)Ct-1保留多少至當(dāng)前時(shí)刻Ct:
圖1 LSTM單元結(jié)構(gòu)
式中,ft表示記憶單元中信息保留的程度,數(shù)值越大則表征保留信息越多。
輸入門(mén)決定當(dāng)前輸入Xt有多少保存到單元狀態(tài)Ct中:
式中,C~t為單元狀態(tài)更新值,it為輸入門(mén)控制C~t的哪些特征用于更新Ct,Ct則表示更新后的單元狀態(tài)。
輸出門(mén)控制Ct傳輸?shù)较乱粫r(shí)刻的信號(hào)量ht:
式中,W為權(quán)重系數(shù),b為偏執(zhí)系數(shù),σ為“sigmoid”激活函數(shù)。
水溫?cái)?shù)據(jù)本身是一組具有非線性、非平穩(wěn)性的時(shí)間序列[11~13],對(duì)于這類復(fù)雜的時(shí)間序列,若直接用LSTM 進(jìn)行預(yù)測(cè)難以挖掘輸入序列的特征,預(yù)測(cè)效果較差。而EMD 算法能夠?qū)⒃紨?shù)據(jù)分解為不同頻段的分量,降低數(shù)據(jù)的復(fù)雜度,再分別對(duì)各分量進(jìn)行LSTM 預(yù)測(cè),最后將各分量預(yù)測(cè)結(jié)果疊加得到最終預(yù)測(cè)結(jié)果,從而提高預(yù)測(cè)精度。本文將EMD 算法和LSTM 預(yù)測(cè)算法相結(jié)合,提出基于EMD-LSTM 的水溫預(yù)測(cè)模型,模型算法流程如圖2所示,算法步驟如下:
圖2 EMD-LSTM水溫預(yù)測(cè)流程圖
1)對(duì)采集到的5 項(xiàng)水質(zhì)指標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理和相關(guān)性分析,降低數(shù)據(jù)噪聲并確定模型的輸入?yún)?shù)。
2)時(shí)序數(shù)據(jù)分解采用EMD 方法對(duì)原始水溫序列進(jìn)行多尺度分解,降低原始序列的復(fù)雜度,具體實(shí)現(xiàn)過(guò)程如下:
(1)輸入:水溫時(shí)間序列x(t)。
(2)獲取原始序列x(t)的極值點(diǎn),根據(jù)三次樣條插值法構(gòu)建x(t)的上、下包絡(luò)線。
(3)求出上下包絡(luò)線均值m(t)并與輸入序列x(t)作差求得h(t),即h(t)=x(t)-m(t)。
(4)判斷h(t)是否滿足1.1 節(jié)所述的IMF 分量條件,若滿足則該h(t)是一個(gè)IMF 分量,否則用h(t)替換x(t)返回上述步驟(2)執(zhí)行,直到分解完畢。
(5)輸出:n個(gè)IMF分量和1個(gè)余量R。
3)構(gòu)建訓(xùn)練集和測(cè)試集。在IMF 分量和余量R 中取90%作為模型輸入訓(xùn)練集,剩余10%作為測(cè)試集。
4)對(duì)各IMF分量和余量R進(jìn)行LSTM 預(yù)測(cè)得到多個(gè)預(yù)測(cè)值,最后根據(jù)式(6)進(jìn)行疊加求和,取得最終的水溫預(yù)測(cè)值W(t)。
式中,IMFPn和RP 為IMF 和R的預(yù)測(cè)結(jié)果,W(t)為求和所得的最終水溫預(yù)測(cè)結(jié)果。
本文所用實(shí)驗(yàn)數(shù)據(jù)由海南省某水產(chǎn)養(yǎng)殖基地的物聯(lián)網(wǎng)系統(tǒng)采集而來(lái),采集時(shí)間為每5min 采集一次,采集水質(zhì)指標(biāo)包括:水溫、鹽度、PH、溶解氧和空氣溫度,共計(jì)數(shù)據(jù)23203組,數(shù)據(jù)特征如表1所示,采集到的各項(xiàng)指標(biāo)均無(wú)缺失值。
表1 樣本數(shù)據(jù)特征
1)數(shù)據(jù)歸一化。由于本次采集的數(shù)據(jù)樣本中各指標(biāo)具有不同的量綱和量級(jí),為消除各指標(biāo)之間不同量綱造成的影響[14],本文使用最大值最小值歸一化方法進(jìn)行數(shù)據(jù)預(yù)處理,處理后的數(shù)據(jù)均分布于[0,1]之間,公式如下:
式中xmax和xmin為同一指標(biāo)數(shù)據(jù)的最大值和最小值,x為原始數(shù)值,x′為完成歸一化后的數(shù)值。
2)數(shù)據(jù)相關(guān)性分析。由于在實(shí)際水體環(huán)境中,水溫的變化會(huì)受到多種因素的影響,因此對(duì)監(jiān)測(cè)指標(biāo)中的水溫、鹽度、PH、溶解氧和空氣溫度進(jìn)行相關(guān)性分析。選擇Pearson 相關(guān)系數(shù)檢驗(yàn)法完成水溫與各項(xiàng)監(jiān)測(cè)指標(biāo)的相關(guān)性分析[15],得出水溫與鹽度、PH、溶解氧和空氣溫度的相關(guān)系數(shù)為-0.36、0.20、-0.39、0.38??梢钥闯鏊疁嘏c其他四項(xiàng)指標(biāo)數(shù)據(jù)均具有一定的相關(guān)性,因此選擇以上指標(biāo)構(gòu)建水溫預(yù)測(cè)模型。
在EMD-LSTM 水溫預(yù)測(cè)模型中,針對(duì)LSTM 神經(jīng)網(wǎng)絡(luò)設(shè)置三種種不同的結(jié)構(gòu)進(jìn)行比對(duì),第一種,僅設(shè)30 個(gè)LSTM 單元;第二種,僅設(shè)50 個(gè)LSTM 單元,第三種,在第一層50 個(gè)LSTM 單元后,再設(shè)50個(gè)LSTM 單元。對(duì)上述網(wǎng)絡(luò)結(jié)構(gòu),統(tǒng)一設(shè)時(shí)間步長(zhǎng)time_step 為10,設(shè)不同的epochs(10、50、100)、batch_size(1、8、16、32、64)進(jìn)行測(cè)試對(duì)比。
經(jīng)過(guò)實(shí)驗(yàn),最終確定:IMF高頻分量LSTM 模型隱層單元數(shù)為30,IMF 低頻分量隱層單元數(shù)為50,時(shí)間步長(zhǎng)time_step 為10,批次大小batch_size 為16,迭代次數(shù)epochs為100時(shí),模型測(cè)試效果最好。
實(shí)驗(yàn)平臺(tái)和環(huán)境:計(jì)算機(jī)處理器為2.3GHz Intel Core i5-6200U,內(nèi)存為8GB;程序開(kāi)發(fā)環(huán)境為PyCharm 2017.1,基于Keras 深度學(xué)習(xí)庫(kù)、Python 3.7.0 完成預(yù)測(cè)模型的搭建。實(shí)驗(yàn)數(shù)據(jù):取總數(shù)據(jù)的90%為訓(xùn)練集、10%為測(cè)試集,確定水溫、鹽度、PH、溶解氧和空氣溫度為模型輸入變量,水溫為最終輸出量。
4.2.1 EMD水溫序列分解結(jié)果
根據(jù)3.1 節(jié)的步驟,基于EMD 進(jìn)行水溫序列多尺度分解,最終得到10 個(gè)IMF 分量和1 個(gè)余項(xiàng),結(jié)果如圖3 所示。各IMF 分量分別代表原始序列中的各頻率分量,按照從高頻到低頻的順序依次排列,從1~10 為各IMF 分量進(jìn)行編號(hào)。其中imf1、imf2、imf3 為原序列分解后的高頻分量,這些分量的序列波形較為復(fù)雜,反映了原始數(shù)據(jù)中的隨機(jī)噪聲;imf4-imf10 為原序列分解后的中低頻分量,這些分量的序列波形變化較為規(guī)律,反映了原始序列的周期性;trend 是分解后的余項(xiàng),余項(xiàng)主要反映了原始水溫序列的總體變化趨勢(shì)和規(guī)律。
圖3 水溫序列EMD分解結(jié)果
4.2.2 EMD-LSTM預(yù)測(cè)結(jié)果分析
完成EMD 分解后,分別對(duì)各IMF 分量和余項(xiàng)構(gòu)建LSTM 預(yù)測(cè)模型,最終獲得EMD-LSTM 的養(yǎng)殖水溫預(yù)測(cè)結(jié)果。為了驗(yàn)證EMD-LSTM 預(yù)測(cè)模型的可靠性,本文分別設(shè)置BP、LSTM、EMD-BP 三種預(yù)測(cè)模型進(jìn)行實(shí)驗(yàn)對(duì)比,其中LSTM 預(yù)測(cè)模型網(wǎng)絡(luò)設(shè)置:隱層單元數(shù)為50,time_step=10,batch_size=16,epochs=100;EMD-BP 和BP 預(yù)測(cè)模型中BP 神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置:網(wǎng)絡(luò)結(jié)構(gòu)為5-5-1,time_step=10,batch_size=16,epochs=200,激活函數(shù)為Sigmoid,最終各模型預(yù)測(cè)值與實(shí)際值對(duì)比如圖4所示。
圖4 模型對(duì)比結(jié)果圖
圖4 可以看出,BP、LSTM、EMD-BP 和EMD-LSTM 四種模型均能很好地實(shí)現(xiàn)水溫變化趨勢(shì)的預(yù)測(cè),但在預(yù)測(cè)精度上各模型存在著較大的差異。LSTM 模型和BP模型相比較,能夠更好地預(yù)測(cè)真實(shí)數(shù)據(jù)的走勢(shì),且預(yù)測(cè)精度高于BP 模型;BP 模型和EMD-BP模型相比較,大部分預(yù)測(cè)值與真實(shí)值接近,但數(shù)據(jù)走勢(shì)的預(yù)測(cè)不及EMD-BP 模型,且在長(zhǎng)期預(yù)測(cè)方面EMD-BP 明顯優(yōu)于BP 模型;EMD-LSTM 模型與LSTM 相比較,對(duì)于數(shù)據(jù)走勢(shì)的預(yù)測(cè)更準(zhǔn)確,預(yù)測(cè)值與真實(shí)值的偏差也更小,且與BP和EMD-BP模型相比較,整體上預(yù)測(cè)效果更好。
為了綜合評(píng)價(jià)四種模型的預(yù)測(cè)性能,本文選用均方根誤差RMSE、平均絕對(duì)百分比誤差MAPE 和平均絕對(duì)誤差MAE 這三項(xiàng)指標(biāo)進(jìn)行測(cè)試比較,各模型指標(biāo)結(jié)果如表2所示。
表2 四種模型的預(yù)測(cè)性能評(píng)價(jià)指標(biāo)
由表2 結(jié)果可知,本文提出的基于EMD-LSTM的水溫預(yù)測(cè)模型在預(yù)測(cè)結(jié)果和性能方面與其他三種模型相比有很大的提升?;谕瑯拥妮斎霐?shù)據(jù),EMD-LSTM 模型與傳統(tǒng)BP 模型相比較,評(píng)價(jià)指標(biāo)RMSE、MAPE、MAE 分別降低了82.07%、79.45%、79.93%;EMD-LSTM 模型與EMD-BP 模型相比較,評(píng)價(jià)指標(biāo)RMSE、MAPE、MAE 分別降低了68.79%、86.10%、86%;EMD-LSTM 模型與傳統(tǒng)LSTM 模型相比較,評(píng)價(jià)指標(biāo)RMSE、MAPE、MAE 分別降低了29.76%、48.07%、47.64%??梢?jiàn),EMD 算法將水溫時(shí)序數(shù)據(jù)分解能夠深入挖掘數(shù)據(jù)特征、降低不同尺度特征間的相互干擾。LSTM模型能夠很好地利用歷史水溫時(shí)間序列的數(shù)據(jù)特征,在長(zhǎng)時(shí)間序列的預(yù)測(cè)中能夠取得很好的預(yù)測(cè)效果?;贓MD-LSTM的組合水溫預(yù)測(cè)模型進(jìn)一步提升了水溫的預(yù)測(cè)精度。
本文提出了基于EMD-LSTM 的養(yǎng)殖水溫預(yù)測(cè)模型,首先采用最大值最小值歸一化方法進(jìn)行數(shù)據(jù)預(yù)處理來(lái)減小數(shù)據(jù)波動(dòng),通過(guò)Pearson 相關(guān)系數(shù)檢驗(yàn)法選擇模型輸入?yún)?shù),然后將EMD 算法與LSTM預(yù)測(cè)算法相結(jié)合,利用EMD 算法分解原始水溫序列,捕捉水溫?cái)?shù)據(jù)特征,采用LSTM 預(yù)測(cè)算法進(jìn)行水溫預(yù)測(cè),解決數(shù)據(jù)長(zhǎng)期依賴的問(wèn)題。實(shí)驗(yàn)結(jié)果表明,本文提出的EMD-LSTM 養(yǎng)殖水溫預(yù)測(cè)模型能夠更好地預(yù)測(cè)水溫時(shí)間序列的走勢(shì)、預(yù)測(cè)數(shù)據(jù)與實(shí)測(cè)數(shù)據(jù)更加吻合,模型預(yù)測(cè)性能相比于BP、LSTM、EMD-BP 三種模型誤差更小、精度更高,為水質(zhì)監(jiān)管和調(diào)控提供參考依據(jù)。