包 鋒 劉愷軒 張春江
(東北石油大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 大慶 163318)
近年來(lái),伴隨著經(jīng)濟(jì)全球化,海洋運(yùn)輸成為國(guó)際貿(mào)易運(yùn)輸?shù)闹饕绞健5c此同時(shí),受到天氣等多種因素的影響,海洋運(yùn)輸會(huì)遇到很多風(fēng)險(xiǎn),航道洋流就是影響海洋運(yùn)輸?shù)闹匾焕麠l件之一[1]。自從探索時(shí)代以來(lái),水手們就需要知道洋流的速度和方向來(lái)引導(dǎo)他們的船只在港口內(nèi)航行,并沿著貿(mào)易和探索路線航行。洋流的測(cè)量通常以節(jié)為單位,洋流速度可以用歐拉測(cè)量法[2]。后來(lái),用一種叫戴維斯漂流器[3]來(lái)測(cè)量風(fēng)力驅(qū)動(dòng)的表面洋流,衛(wèi)星計(jì)算出它的位置,并將信息傳給接收站。為了監(jiān)測(cè)深海洋流的特征,科學(xué)家們使用一種叫做剖面浮標(biāo)的設(shè)備[4]。岸基洋流計(jì)[5]采用無(wú)線電天線和高頻無(wú)線電探測(cè)和測(cè)距系統(tǒng)(雷達(dá))來(lái)測(cè)量表面洋流的速度和方向。在日本,針對(duì)上升流,專門提出了一套浮標(biāo)觀測(cè)系統(tǒng)[6],這套系統(tǒng)主要通過溫度和鹽度兩個(gè)因素來(lái)分析上升流。我國(guó)的大學(xué)對(duì)上升流監(jiān)測(cè)方面[7]有著豐富的研究。中國(guó)科學(xué)院南海海洋研究所利用衛(wèi)星遙感和船舶對(duì)粵東沿岸的上升流進(jìn)行了觀測(cè)以及分析,中國(guó)海洋大學(xué)也用遙感衛(wèi)星對(duì)浙江近海的上升流進(jìn)行了監(jiān)測(cè)與分析。以上測(cè)得的優(yōu)勢(shì)是數(shù)據(jù)范圍大,但是數(shù)據(jù)的準(zhǔn)確度不高。
在過去幾年,洋流監(jiān)測(cè)的主要方式是在海洋中部署浮標(biāo),其精度很高,但是成本很大。所以,在未來(lái)利用海洋模型進(jìn)行洋流監(jiān)測(cè)是一個(gè)主要方向。現(xiàn)在是利用浮標(biāo)監(jiān)測(cè)真實(shí)洋流,然后用海洋模型模擬洋流的運(yùn)動(dòng)軌跡。最近幾年,一些學(xué)者為了同化海洋模型[8~9],提出了一些drifter 數(shù)據(jù),這樣可以提高海洋模型的洋流模擬精度。Yizhen Li[10]把每個(gè)格網(wǎng)中的同一時(shí)刻與位置的drifter 監(jiān)測(cè)的平均洋流流動(dòng)與ROMS 模型模擬的平均洋流流動(dòng)進(jìn)行了比較。
航道洋流預(yù)測(cè)屬于時(shí)間序列預(yù)測(cè)研究范疇,目前還未發(fā)現(xiàn)相關(guān)研究。隨著深度學(xué)習(xí)的飛速發(fā)展,為航道洋流時(shí)間序列的預(yù)測(cè)提供了研究思路和方法。處理時(shí)序數(shù)據(jù)最強(qiáng)大的模型是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)。在神經(jīng)網(wǎng)絡(luò)模型中,循環(huán)神經(jīng)網(wǎng)絡(luò)的計(jì)算結(jié)果便具備了記憶之前幾次結(jié)果的特點(diǎn)。循環(huán)神經(jīng)網(wǎng)絡(luò)中,長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)增加了各層的閥門節(jié)點(diǎn),解決了RNN 的梯度消失的問題,使得循環(huán)神經(jīng)網(wǎng)絡(luò)不會(huì)失去短期延遲能力。基于LSTM的系統(tǒng)可以學(xué)習(xí)翻譯語(yǔ)言、控制機(jī)器人、圖像分析、文檔摘要、預(yù)測(cè)疾病、點(diǎn)擊率和股票、合成音樂等任務(wù)。在電力領(lǐng)域,姜雨寒[11]建立了一種基于長(zhǎng)短期記憶網(wǎng)絡(luò)的電網(wǎng)運(yùn)行參數(shù)預(yù)測(cè)方法。在航天領(lǐng)域,胡姣姣[12]提出了基于LSTM 網(wǎng)絡(luò)的預(yù)測(cè)方法,以預(yù)測(cè)飛行器遙測(cè)數(shù)據(jù)。在交通領(lǐng)域,陳韞[13]提出了優(yōu)化的LSTM 網(wǎng)絡(luò)的模型,對(duì)城市道路路段的速度進(jìn)行預(yù)測(cè)。在環(huán)保領(lǐng)域,郭豪[14]在GRU 神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,采用隨機(jī)失活、批歸一化等方法進(jìn)行優(yōu)化。
本文根據(jù)秦皇島港兩個(gè)站點(diǎn)的歷史航道洋流速度數(shù)據(jù),建立了基于注意力機(jī)制的LSTM-CNN短時(shí)預(yù)測(cè)模型,并與BP神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò)預(yù)測(cè)模型在不同時(shí)間步長(zhǎng)進(jìn)行實(shí)驗(yàn)仿真對(duì)比。實(shí)驗(yàn)仿真結(jié)果證明,所提的新算法在航道洋流速度預(yù)測(cè)中最優(yōu)。
LSTM是一種改進(jìn)后的循環(huán)神經(jīng)網(wǎng)絡(luò)模型。由于RNN 的梯度在反向傳播的過程中,不斷連乘,數(shù)值不是越來(lái)越大就是越來(lái)越小,這樣就會(huì)出現(xiàn)梯度爆炸或梯度消失,而LSTM 就可以解決RNN 無(wú)法處理長(zhǎng)距離的依賴問題。所有的LSTM 都具有一種重復(fù)神經(jīng)網(wǎng)絡(luò)模塊的鏈?zhǔn)叫问剑總€(gè)模塊都由三個(gè)門(遺忘門、輸入門、輸出門)和一組內(nèi)部記憶單元組成。LSTM 模型訓(xùn)練過程采用的是BPTT 算法,BPTT算法將LSTM看作一個(gè)展開的多層前饋網(wǎng)絡(luò),其中每一層對(duì)應(yīng)每一時(shí)刻,依次按照時(shí)間的順序計(jì)算誤差,再?gòu)淖詈笠粋€(gè)時(shí)間步將積累的誤差傳遞回來(lái)。在LSTM 訓(xùn)練過程的參數(shù)更新方法中,有隨機(jī)梯度下降等算法,其中,Adam 優(yōu)化算法[15]是AdaGrad和RMSProp兩種隨機(jī)梯度下降擴(kuò)展式的優(yōu)點(diǎn)集合,可以為不同的參數(shù)設(shè)計(jì)獨(dú)立的自適應(yīng)性學(xué)習(xí)率。所以,綜合所有性能表現(xiàn),本文采用Adam優(yōu)化算法。
注意力機(jī)制(Attention)又稱注意力模型,是一種將有限的計(jì)算資源來(lái)處理更重要信息的方式,借鑒人腦解決信息過載機(jī)制,通過自上而下的信息選擇機(jī)制來(lái)過濾掉大量得到無(wú)關(guān)信息。當(dāng)用神經(jīng)網(wǎng)絡(luò)來(lái)處理大量的輸入信息時(shí),只選擇一些關(guān)鍵的信息輸入進(jìn)行處理,來(lái)提高神經(jīng)網(wǎng)絡(luò)的效率。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)包含卷積層、池化層、全連接層。通過卷積運(yùn)算我們可以提取出時(shí)序數(shù)據(jù)的特征,通過卷積運(yùn)算可以使得某些特征增強(qiáng),并且降低噪聲;對(duì)時(shí)序數(shù)據(jù)進(jìn)行池化,可以減少數(shù)據(jù)處理量,同時(shí)保留有用信息。通常有均值池化(mean pooling)和最大池化(max pooling)兩種形式。由于CNN 簡(jiǎn)化了模型復(fù)雜度,減少了模型的參數(shù),在時(shí)間序列預(yù)測(cè)方面也有一定的優(yōu)勢(shì)。本實(shí)驗(yàn)的CNN 采用一維卷積層和最大池化層來(lái)處理這個(gè)時(shí)間序列問題。
根據(jù)航道洋流速度數(shù)據(jù)集的特點(diǎn),以及該預(yù)測(cè)模型的相關(guān)技術(shù),本文構(gòu)建了基于注意力機(jī)制的LSTM-CNN預(yù)測(cè)模型的結(jié)構(gòu),如圖1所示。
針對(duì)時(shí)間系列預(yù)測(cè)中卷積神經(jīng)網(wǎng)絡(luò)(CNN)無(wú)法獲取洋流的全局特征、長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)無(wú)法聚焦洋流局部特征的問題,提出一種基于注意力機(jī)制的CNN 網(wǎng)絡(luò)和LSTM 網(wǎng)絡(luò)進(jìn)行融合的模型。該模型該模型有三部分構(gòu)成:第一部分為基于注意力機(jī)制的一維卷積,在標(biāo)準(zhǔn)CNN 網(wǎng)絡(luò)上增加注意力分支,解決時(shí)間序列預(yù)測(cè)中無(wú)法關(guān)注重點(diǎn)特征的問題;第二部分為L(zhǎng)STM,獲取洋流的全局特征;第三部分為單獨(dú)的一維卷積層。網(wǎng)絡(luò)訓(xùn)練時(shí)的參數(shù)優(yōu)化采用Adam 算法,網(wǎng)絡(luò)預(yù)測(cè)時(shí)為了逐層預(yù)測(cè),采用迭代的方式。
本節(jié)在秦皇島港兩個(gè)站點(diǎn)的航道洋流速度數(shù)據(jù)集上,對(duì)提出的新預(yù)測(cè)模型展開實(shí)驗(yàn)驗(yàn)證,證明其有效性。
本文數(shù)據(jù)來(lái)源于秦皇島航標(biāo)處提供的航道洋流速度數(shù)據(jù)集,采集于兩個(gè)測(cè)流站的洋流速度,兩個(gè)測(cè)流站點(diǎn)的采集時(shí)間都為每10min 采集一次。站點(diǎn)一的洋流速度采集于2016.05-2019.09,從距海平面1.5m 開始,每隔1m 深度就采集一次,一共分為20 層,到水下20.5m,如圖2 為站點(diǎn)一洋流速度的部分截圖,單位為mm/s。

圖2 站點(diǎn)1部分航道洋流速度
站點(diǎn)二的洋流速度采集于2016.01-2019.09,從距海平面1.5m 開始,每隔1m 深度采集一次,一共分為15 層,到水下15.5m,如圖3 為站點(diǎn)二洋流速度的部分截圖,單位為mm/s。

圖3 站點(diǎn)2部分航道洋流速度
原始時(shí)間序列數(shù)據(jù)中有一些缺失值的存在,所以對(duì)原始數(shù)據(jù)中存在缺失的數(shù)據(jù)進(jìn)行上一層和下一層加和的平均值處理,以保證數(shù)據(jù)的真實(shí)性。為了解決數(shù)據(jù)集過大、運(yùn)算時(shí)間效率方面的問題,對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化操作。數(shù)據(jù)標(biāo)準(zhǔn)化是將數(shù)據(jù)按比例縮放,使之落入一個(gè)小的特定區(qū)間。本實(shí)驗(yàn)運(yùn)用最小最大值標(biāo)準(zhǔn)化,將結(jié)果落到合理的0~1 的范圍區(qū)間。
實(shí)驗(yàn)所使用計(jì)算機(jī)的配置如下:處理器為Intel core CPU i5-10210,CPU 頻 率 為1.60 GHz 和4.20 GHz;運(yùn)行內(nèi)存為8.00 GB;操作系統(tǒng)為Windows 7(64 位);程序設(shè)計(jì)語(yǔ)言為Python 3.5.2(64位),集成開發(fā)環(huán)境為Pycharm Community Edition 2020.2.1,LSTM 和CNN、BP 模型由Python 的Tensorflow 0.12.0rc0程序包實(shí)現(xiàn)。
本文選擇MAE、RMSE 和MAPE 作為評(píng)估指標(biāo):平均絕對(duì)誤差(Mean Absolute Error,MAE)、均方誤差(Root Mean Square Error,RMSE)和平均絕對(duì)百分誤差(Mean Absolute Percentage Error,MAPE)是使用最多的方法。假設(shè)把時(shí)間序列的第t期的真實(shí)值記為yt,對(duì)第t 期的預(yù)測(cè)值記為Ft,那么預(yù)測(cè)誤差為et=yt-Ft。如果訓(xùn)練集有n 期數(shù)據(jù),驗(yàn)證集有v期數(shù)據(jù),則驗(yàn)證集的時(shí)間范圍為t=n+1,n+2,…,n+v,為簡(jiǎn)單起見,把驗(yàn)證集的時(shí)間范圍記為t=1,2,…,v。
平均絕對(duì)誤差(Mean Absolute Error,MAE),計(jì)算公式為
均方誤差(Root Mean Square Error,RMSE),計(jì)算公式為
平均絕對(duì)百分誤差(Mean Absolute Percentage Error,MAPE),計(jì)算公式為
4.3.1 實(shí)驗(yàn)?zāi)P蛥?shù)設(shè)置

表1 神經(jīng)網(wǎng)絡(luò)超參數(shù)設(shè)置表
4.3.2 LSTM神經(jīng)網(wǎng)絡(luò)隱藏層數(shù)量的對(duì)比實(shí)驗(yàn)
本文通過對(duì)比不同LSTM 模型的隱藏層層數(shù),來(lái)選擇最佳隱藏層。根據(jù)秦皇島港站點(diǎn)一、站點(diǎn)二的航道洋流速度數(shù)據(jù)集,通過實(shí)驗(yàn)對(duì)比來(lái)看隱藏層數(shù)的增加對(duì)預(yù)測(cè)結(jié)果的影響,如表2、表3。

表2 站點(diǎn)一LSTM神經(jīng)網(wǎng)絡(luò)隱藏層數(shù)量的對(duì)比實(shí)驗(yàn)

表3 站點(diǎn)二LSTM神經(jīng)網(wǎng)絡(luò)隱藏層數(shù)量的對(duì)比實(shí)驗(yàn)
從表2、表3可以看出,隱藏層層數(shù)過多或者過少都會(huì)降低兩個(gè)站點(diǎn)航道洋流速度的預(yù)測(cè)精度,誤差逐漸增大,隨著設(shè)置神經(jīng)隱藏層的數(shù)量增加,從1層增加3層,RMSE、MAE、MAPE逐漸下降,從3層增加5 層,RMSE、MAE、MAPE 逐漸上升,實(shí)驗(yàn)結(jié)果表明,隱藏層選為3層預(yù)測(cè)效果最佳。
4.3.3 不同模型的預(yù)測(cè)對(duì)比實(shí)驗(yàn)
本文將基于注意力機(jī)制的LSTM-CNN 模型與LSTM 、CNN 神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行實(shí)驗(yàn)對(duì)比,在不同時(shí)間步長(zhǎng)上進(jìn)行測(cè)試,其中評(píng)價(jià)指標(biāo)為MAE、RMSE、MAPE。本實(shí)驗(yàn)采用最經(jīng)典的三層BP神經(jīng)網(wǎng)絡(luò)和隱藏層為三層的LSTM模型,CNN采用一維卷積層和最大池化層來(lái)處理這個(gè)時(shí)間序列問題。表4、表5 是四種模型在站點(diǎn)一和站點(diǎn)二航道洋流速度數(shù)據(jù)集上的不同預(yù)測(cè)誤差結(jié)果,單位mm/s。

表4 站點(diǎn)一模型預(yù)測(cè)結(jié)果比較

表5 站點(diǎn)二模型預(yù)測(cè)結(jié)果比較
實(shí)驗(yàn)結(jié)果表明,通過對(duì)站點(diǎn)一、站點(diǎn)二航道洋流速度預(yù)測(cè)的綜合對(duì)比,不同算法的模型預(yù)測(cè)性能差異較大,其中預(yù)測(cè)性能最優(yōu)是基于注意力機(jī)制的LSTM-CNN 模型。該模型預(yù)測(cè)值和LSTM、CNN、BP 網(wǎng)絡(luò)預(yù)測(cè)值與真實(shí)值相比,發(fā)現(xiàn)基于注意力機(jī)制的LSTM-CNN 模型的預(yù)測(cè)值比CNN、BP 預(yù)測(cè)值更接近真實(shí)值。在時(shí)間步長(zhǎng)30min、1h、2h 的航道洋流預(yù)測(cè)結(jié)果中,預(yù)測(cè)時(shí)間越長(zhǎng),預(yù)測(cè)的精度越低。在分別計(jì)算四種模型的準(zhǔn)確率,BP 神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率最低,但是時(shí)間復(fù)雜度最低;CNN 模型準(zhǔn)確率表現(xiàn)也很好,主要是因?yàn)镃NN 網(wǎng)絡(luò)模型具有參數(shù)共享機(jī)制;LSTM 準(zhǔn)確率表現(xiàn)較CNN 好,充分體現(xiàn)出LSTM 在處理前后序列高度關(guān)聯(lián)的數(shù)據(jù)有很大的優(yōu)越性;準(zhǔn)確率最高的是基于注意力機(jī)制的LSTM-CNN 模型,由于在循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,將CNN 與LSTM 進(jìn)行結(jié)合,在提取航道洋流特征信息時(shí),既可以讓CNN 提取洋流的局部特征,又可以讓LSTM 提取洋流的全局特征;結(jié)合注意力機(jī)制,可以進(jìn)一步獲取對(duì)洋流預(yù)測(cè)結(jié)果產(chǎn)生影響的重點(diǎn)特征。
本文基于注意力機(jī)制的LSTM-CNN 構(gòu)建了航道洋流速度的預(yù)測(cè)模型。首先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,利用不同隱藏層層數(shù)的長(zhǎng)短期記憶網(wǎng)絡(luò)對(duì)采集的兩個(gè)站點(diǎn)的航道洋流速度數(shù)據(jù)集進(jìn)行了處理后的速度值進(jìn)行了預(yù)測(cè),結(jié)果表明具有三層隱藏層的長(zhǎng)短期記憶網(wǎng)絡(luò)預(yù)測(cè)精度最高。然后在相同條件下,利用新提的算法對(duì)航道洋流速度進(jìn)行預(yù)測(cè),并分析對(duì)比了LSTM、CNN 以及BP 神經(jīng)網(wǎng)絡(luò),對(duì)未來(lái)30min、1h 和2h 的航道洋流速度值的預(yù)測(cè)結(jié)果,進(jìn)行了誤差比較,結(jié)果表明基于注意力機(jī)制的LSTM-CNN模型的預(yù)測(cè)精度更高,是一種有效且可行的方法,因此在航道洋流速度預(yù)測(cè)中具有一定的實(shí)用價(jià)值。在接下來(lái)的研究中,將對(duì)影響洋流速度的特征進(jìn)行相關(guān)性分析,把眾多影響因子輸入模型中,以提高新提算法模型的預(yù)測(cè)精度。