袁紅春,陳驄昊
(上海海洋大學(xué)信息學(xué)院,上海 201306)
遠(yuǎn)洋長(zhǎng)鰭金槍魚延繩釣漁業(yè)經(jīng)過長(zhǎng)期不斷地發(fā)展,現(xiàn)已成為中國(guó)遠(yuǎn)洋漁業(yè)最主要的產(chǎn)業(yè)之一[1]。在南太平洋海域,長(zhǎng)鰭金槍魚(Thunnusalalunga)作為一種具有高經(jīng)濟(jì)收益的魚類產(chǎn)品,已經(jīng)成為中國(guó)及其海域周邊國(guó)家的主要捕獲對(duì)象[2],而且年產(chǎn)量正逐年上升[3]。又由于其產(chǎn)量占南太平洋海域金槍魚類總產(chǎn)量的50%以上,因此該魚種具有較大的開發(fā)潛力。如何提高南太平洋長(zhǎng)鰭金槍魚的漁情預(yù)測(cè)水平已成為國(guó)內(nèi)學(xué)術(shù)界研究的熱點(diǎn)之一。
在對(duì)南太平洋長(zhǎng)鰭金槍魚漁場(chǎng)影響因子研究方面,閆敏[4]分析了海表面溫度(SST)、葉綠素a(CHLA)及海面高度距平(SSH)各環(huán)境因子與單位捕撈努力量漁獲量(CPUE)的相關(guān)性;范永超等[5]通過葉綠素a(CHLa)、SST和海洋表面鹽度(SSS)對(duì)南太平洋長(zhǎng)鰭金槍魚漁場(chǎng)進(jìn)行分析與預(yù)報(bào);張嘉容等[6]通過廣義可加模型分析得出緯度對(duì)南太平洋長(zhǎng)鰭金槍魚漁場(chǎng)最大的影響因子,經(jīng)度以及SST、海表面高度、葉綠素a等環(huán)境因子也對(duì)漁場(chǎng)有較大的影響力。
在利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行漁情預(yù)測(cè)分析方面,Aoki等[7]搭建包含三層隱層的BP人工神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)對(duì)日本遠(yuǎn)東擬沙丁魚漁獲量的預(yù)測(cè);毛江美等[8]搭建BP人工神經(jīng)網(wǎng)絡(luò)模型,并調(diào)整模型結(jié)構(gòu)及參數(shù),以月份、經(jīng)度、緯度、SST、SSH等作為時(shí)空變量進(jìn)行了分析,從而實(shí)現(xiàn)對(duì)漁場(chǎng)CPUE值的預(yù)測(cè)。
由于單個(gè)漁場(chǎng)范圍較大,如果采用傳統(tǒng)漁情預(yù)測(cè)方法對(duì)漁場(chǎng)內(nèi)各點(diǎn)的環(huán)境數(shù)據(jù)取均值得到漁場(chǎng)所對(duì)應(yīng)的環(huán)境數(shù)據(jù),會(huì)存在一定環(huán)境數(shù)據(jù)特征丟失現(xiàn)象[9]。因此提出一種CNN-GRU-Attention模型,以實(shí)現(xiàn)對(duì)南太平洋長(zhǎng)鰭金槍魚漁場(chǎng)CPUE的有效預(yù)測(cè)。
漁業(yè)作業(yè)數(shù)據(jù)取自中西太平洋漁業(yè)委員會(huì)(WCPFC)的南太平洋延繩釣數(shù)據(jù)。為排除捕撈手段等技術(shù)因素的影響,采用捕撈手段基本一致的2000年1月至2011年12月的南太平洋海域長(zhǎng)鰭金槍魚漁業(yè)數(shù)據(jù)[10],時(shí)間分辨率為月,海域范圍取為5°S~40°S,135°W~110°E,數(shù)據(jù)包含年、月、經(jīng)度、緯度、釣鉤數(shù)(千鉤)、長(zhǎng)鰭金槍魚漁獲量(尾),空間分辨率5°× 5°。其中,單位捕撈努力漁獲量(CPUE)為預(yù)測(cè)參數(shù)[11],其計(jì)算公式為:
XCPUE=A/H
(1)
式中:XCPUE—單位捕撈努力量,尾/千鉤(ind/khooks);A—漁獲量,尾(ind);H表示釣鉤數(shù),千鉤(khooks)。處理后的漁業(yè)數(shù)據(jù)見表1。
表1 漁業(yè)數(shù)據(jù)
注:“?”表示省略的年、月、經(jīng)緯度等數(shù)據(jù)
選取環(huán)境數(shù)據(jù)(包括月、經(jīng)度、緯度、葉綠素a濃度、海面高度、海面溫度[12]),空間分辨率為1°× 1°,時(shí)間分辨率為月,海域范圍取為3°S~42°S、133°W~108°E;葉綠素a(CHLA)、海表溫度(SST)數(shù)據(jù)來源于美國(guó)國(guó)家海洋和大氣管理局(NOAA)環(huán)境數(shù)據(jù)庫(kù);海面高度(SSH)數(shù)據(jù)來自于哥白尼海洋環(huán)境監(jiān)測(cè)服務(wù)中心(CMEMS),將環(huán)境數(shù)據(jù)按照年、月、經(jīng)度、緯度進(jìn)行整合得到數(shù)據(jù)集(表2)。
由于環(huán)境數(shù)據(jù)與漁業(yè)數(shù)據(jù)空間分辨率不一致,將5°× 5°范圍內(nèi)所有1°× 1°環(huán)境因子數(shù)據(jù)取均值,再與漁業(yè)數(shù)據(jù)合并,得到數(shù)據(jù)集A(表3)。將5°× 5°范圍內(nèi)25條1°× 1°的環(huán)境數(shù)據(jù)與CPUE作為一個(gè)樣本,得到數(shù)據(jù)集B(表4)。
表2 環(huán)境數(shù)據(jù)
注:“?”表示省略的年、月、經(jīng)緯度等數(shù)據(jù),下同
表3 數(shù)據(jù)集A
表4 數(shù)據(jù)集B
月、經(jīng)度、緯度、海面溫度、海面高度、葉綠素a為訓(xùn)練參數(shù),選取每月CPUE為預(yù)測(cè)參數(shù),將數(shù)據(jù)集A、B按照年、月、經(jīng)度、緯度和年、月、緯度、經(jīng)度分別排序得到數(shù)據(jù)集A1、B1和A2、B2,使用A1、B1和A2、B2分別在模型上進(jìn)行訓(xùn)練,目的是排除單一實(shí)驗(yàn)導(dǎo)致實(shí)驗(yàn)結(jié)果存在偶然性。由于整個(gè)數(shù)據(jù)集的時(shí)間長(zhǎng)度為12年,所以將這4個(gè)數(shù)據(jù)集按照比例為10∶1∶1劃分為訓(xùn)練集、驗(yàn)證集、測(cè)試集。
由于海洋環(huán)境數(shù)據(jù)每月都存在個(gè)別漁場(chǎng)的數(shù)據(jù)缺失,所以利用插值法(2)對(duì)于缺失的環(huán)境數(shù)據(jù)進(jìn)行補(bǔ)全[13],即利用同時(shí)間點(diǎn)的其余漁場(chǎng)的環(huán)境數(shù)據(jù)構(gòu)建回歸函數(shù)來得到缺失數(shù)據(jù)。
Y(a,b)=f(a,b)
(2)
式中:Y(a,b)為該年月緯度為a,經(jīng)度為b的環(huán)境數(shù)據(jù);f為該年月其他數(shù)據(jù)以經(jīng)緯度為自變量、環(huán)境數(shù)據(jù)為因變量所得到函數(shù)。
將各影響因子和目標(biāo)變量分別采用公式(3)分別歸一化至[0.1,1]區(qū)間內(nèi),從而消除由于數(shù)據(jù)各因子的量級(jí)不同而對(duì)訓(xùn)練模型造成不良影響[14]。
(3)
式中:xn表示某影響因子的第n條數(shù)據(jù);xmax表示該影響因子的最大值;xmin表示該影響因子的最小值。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型是近些年來深度學(xué)習(xí)領(lǐng)域使用最廣泛的模型之一。CNN是一種前饋神經(jīng)網(wǎng)絡(luò),由Lecun等[15]首先提出,利用卷積層提取局部的有效特征,通過池化層降低參數(shù),最后由全連接層得到所需的權(quán)值向量。CNN主要神經(jīng)層包括卷積層(C)、池化層(S)以及全連接層(F)[16](圖1)。通過反復(fù)使用卷積層和池化層提取漁場(chǎng)范圍內(nèi)的環(huán)境因子及時(shí)空因子的特征值,最終通過全連接層匯總獲取與CPUE對(duì)應(yīng)的一維向量,作為GRU模型的輸入向量。
圖1 CNN模型
門控循環(huán)單元(GRU)是一種遞歸循環(huán)神經(jīng)網(wǎng)絡(luò),其發(fā)展經(jīng)歷了從簡(jiǎn)單循環(huán)神經(jīng)網(wǎng)絡(luò)(SRN)至循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)再到長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)的發(fā)展過程[17]。本研究所使用的模型是LSTM模型的一種變種[18],在其基礎(chǔ)上做出改進(jìn)。GRU模型相較LSTM模型,其最大的改進(jìn)主要在于兩點(diǎn)[19]:1)將輸入門、遺忘門、輸出門改為更新門及重置門;2)將單元狀態(tài)C與短期狀態(tài)h融合為一個(gè)狀態(tài)h。因此,與LSTM模型性能相當(dāng),但其運(yùn)算效率遠(yuǎn)高于LSTM,相同的訓(xùn)練集,其訓(xùn)練時(shí)長(zhǎng)遠(yuǎn)低于LSTM模型,但效果基本一致。
GRU的前向計(jì)算公式[20]:
更新門計(jì)算公式:
zt=σ(Wzg[ht-1,xt])
(4)
重置門計(jì)算公式:
rt=σ(Wrg[ht-1,xt])
(5)
輸出部分計(jì)算公式:
(6)
(7)
yt=relu(W0ght)
(8)
式中:Wz為更新門的權(quán)重矩陣;Wr為重置門的權(quán)重矩陣;ht-1為t-1時(shí)刻的單元狀態(tài)輸出值;xt為t時(shí)刻的單元數(shù)據(jù)的輸入值;σ指激活函數(shù)sigmoid;tanh表示輸出層激活函數(shù)為tanh。GRU模型結(jié)構(gòu)如圖2所示。
CNN-GRU-Attention模型以每個(gè)漁場(chǎng)5°× 5°范圍內(nèi)所有1°× 1°的月份、經(jīng)度、緯度、葉綠素a、海面鹽度、海面溫度為輸入數(shù)據(jù),通過CNN提取出特征向量,再與漁場(chǎng)對(duì)應(yīng)的CPUE結(jié)合成全新的時(shí)間序列數(shù)據(jù),通過GRU模型進(jìn)行時(shí)間序列上的預(yù)測(cè),再使用Attention層提取各隱藏層的權(quán)值并與GRU模型各隱層輸出相結(jié)合作為樣本的特征表達(dá)[21]。Attention機(jī)制是通過自動(dòng)加權(quán)變換,將GRU模型的隱藏層的輸出信息Git通過tanh函數(shù)得到uit,再與注意力矩陣uw相乘,最后行歸一化輸出,得到各隱藏層輸出的權(quán)值αit,整合各隱層輸出得到最終輸出si,公式見(9)、(10)和(11),最終模型構(gòu)造如圖3所示。
uit=tanh(kiGit+bt)
(9)
(10)
si=∑αitGit
(11)
圖2 GRU模型
圖3 CNN-GRU-Attention模型
圖3中,G表示用于卷積的訓(xùn)練參數(shù)數(shù)據(jù);M1到Mn表示第1條到第n條訓(xùn)練參數(shù)數(shù)據(jù);數(shù)據(jù)進(jìn)入CNN的P1到Pn表示輸入樣本第1個(gè)到第n個(gè)參數(shù);k1到kn表示提取的各GRU隱藏層權(quán)值;yt表示對(duì)應(yīng)的預(yù)測(cè)參數(shù)數(shù)據(jù)。
試驗(yàn)環(huán)境為基于Python3.7的TensorFlow 1.13.1框架,操作系統(tǒng)為Windows10,GPU為NVIDIA GTX 1060,通過CUDA9.0進(jìn)行加速運(yùn)算,CPU為Intel i7-7700K。
為驗(yàn)證CNN-GRU-Attention模型的有效性,在基于Anaconda3的Keras深度學(xué)習(xí)平臺(tái)上實(shí)現(xiàn)BP、GRU、CNN-GRU、CNN-GRU-Attention模型。數(shù)據(jù)集A1在BP模型和GRU模型上試驗(yàn),數(shù)據(jù)集B1在CNN-GRU和CNN-GRU-Attention模型上實(shí)驗(yàn),在數(shù)據(jù)集A2、B2上進(jìn)行同類實(shí)驗(yàn)。最后通過2組對(duì)比實(shí)驗(yàn)的結(jié)果進(jìn)行綜合判定。以B1數(shù)據(jù)集在CNN-GRU-Attention模型上試驗(yàn)為例,訓(xùn)練過程如下:
在CCN-GRU-Attention模型中,數(shù)據(jù)的輸入形式是一個(gè)三維的張量(None,5,6),None表示每批次訓(xùn)練輸入的樣本的數(shù)量,數(shù)據(jù)先經(jīng)過激活函數(shù)為Relu函數(shù)的一維卷積層(Conv1D),含有64個(gè)1×3的卷積核,此時(shí)張量維度變?yōu)?None,5,64);再經(jīng)過一個(gè)窗口為4的最大池化層(Maxpooling1D),張量維度變?yōu)?None,1,64);接著通過含有32個(gè)1×3卷積核的一維卷積層(Conv1D),張量變?yōu)?None,1,32);然后通過一個(gè)窗口為1的最大池化層(Maxpooling1D)連接一個(gè)輸出維度為6的全連接層(Dense),張量維度為(None,1,6);數(shù)據(jù)再進(jìn)入一個(gè)輸出維度為6的GRU模型中進(jìn)行訓(xùn)練,由于每月數(shù)據(jù)為192條,遂batch_size(批尺寸)選擇192,再獲取其隱藏層輸出,輸入Attention層得到輸出各節(jié)點(diǎn)權(quán)值矩陣,與GRU模型輸出向量相乘,再通過輸出維度為6的全連接層,由過濾值為0.2的Dropout層進(jìn)行過擬合預(yù)防處理,最后通過激活函數(shù)為Sigmoid的全連接層輸出得到最終的預(yù)測(cè)值。
為確保模型訓(xùn)練得到最佳狀態(tài),設(shè)置早停函數(shù)忍耐值為30,模式為min,即30次迭代訓(xùn)練過程中訓(xùn)練集的損失值沒有減少,則停止訓(xùn)練。4種模型的試驗(yàn)過程如圖4所示。
3.3.1 誤差結(jié)果
為評(píng)價(jià)模型性能,根據(jù)相關(guān)文獻(xiàn)[22],使用平均絕對(duì)誤差(XMAE)、均方根誤差(XRMSE)作為評(píng)價(jià)各神經(jīng)網(wǎng)絡(luò)的模型性能,誤差計(jì)算按以下公式:
(12)
(13)
式中:Ct為預(yù)測(cè)值;Rt為真實(shí)值。XMAE越小,表明模型預(yù)測(cè)越準(zhǔn)確;XRMSE越小,表明模型預(yù)測(cè)性能越穩(wěn)定。試驗(yàn)誤差結(jié)果見表5。
表5 誤差結(jié)果對(duì)比
由于A1和A2在GRU模型上的RMSE比其在BP模型上分別降低0.305、0.215,MAE分別下降0.035、0.027,表明使用GRU模型比BP預(yù)測(cè)性能更穩(wěn)定,預(yù)測(cè)精度更高。由于B1在CNN-GRU模型的MAE比A1在GRU模型降低0.005,B2在CNN-GRU模型的測(cè)試集MAE比A2在GRU模型降低0.006,說明使用CNN提取區(qū)域內(nèi)各節(jié)點(diǎn)環(huán)境數(shù)據(jù)的特征值對(duì)CPUE預(yù)測(cè)比直接計(jì)算區(qū)域內(nèi)環(huán)境因子數(shù)據(jù)的平均值對(duì)CPUE預(yù)測(cè),精度更高,也證明了使用CNN提取漁場(chǎng)環(huán)境因子的空間特征數(shù)據(jù)的有效性。但B1、B2在CNN-GRU模型的測(cè)試集RMSE比A1、A2在GRU模型上分別上升0.02、0.015,說明使用CNN提取漁場(chǎng)區(qū)域內(nèi)的環(huán)境因子造成模型預(yù)測(cè)穩(wěn)定性的一定下降。
由于數(shù)據(jù)集B1、B2在CNN-GRU-Attention模型的測(cè)試集RMSE比其在CNN-GRU模型分別降低0.067、0.07,說明Attention機(jī)制解決了CNN-GRU所存在的穩(wěn)定性下降問題;又由于B1、B2在CNN-GRU-Attention模型的測(cè)試集MAE比其在CNN-GRU模型分別降低0.007、0.008,說明Attention機(jī)制在解決CNN-GRU穩(wěn)定性下降的同時(shí),還使模型的預(yù)測(cè)精度有所提高。
綜上所述,在CNN-GRU-Attention模型最優(yōu)情況下,相較于BP(多層前饋網(wǎng)絡(luò)),絕對(duì)誤差降低0.047,均方根誤差降低0.352;與GRU相比,絕對(duì)誤差降低0.012,均方根誤差降低0.055。
3.3.2 損失值結(jié)果
數(shù)據(jù)集B1、B2在CNN-GRU模型、CNN-GRU-Attention模型上的訓(xùn)練集與驗(yàn)證集損失值如圖5所示。圖中橫坐標(biāo)為迭代次數(shù),縱坐標(biāo)為損失值,train為訓(xùn)練集損失值,validation為驗(yàn)證集損失值。從圖中可以得出,B1、B2在CNN-GRU-Attention模型上分別迭代282、309次完成訓(xùn)練,在CNN-GRU模型上分別迭代166、184次完成訓(xùn)練,這說明加入Attention層后,雖然模型復(fù)雜度上升,但模型的收斂速度加快。由此可見,Attention機(jī)制對(duì)于模型訓(xùn)練起到了一定的優(yōu)化作用。
圖5 損失值圖
GRU及其改進(jìn)模型在精度及穩(wěn)定性上明顯優(yōu)于BP模型,這是由于訓(xùn)練帶有時(shí)間序列特征的數(shù)據(jù)集時(shí),具有記憶功能的循環(huán)神經(jīng)網(wǎng)絡(luò)及其改進(jìn)網(wǎng)絡(luò)相較于傳統(tǒng)的BP網(wǎng)絡(luò)能夠更好地保留數(shù)據(jù)的變化特征。而以往的漁場(chǎng)CPUE預(yù)測(cè)方法通過調(diào)整BP結(jié)構(gòu)來進(jìn)行漁場(chǎng)分析[5],雖然通過反復(fù)試驗(yàn)得到了各影響因子所適合的模型權(quán)重,但在數(shù)據(jù)集變化時(shí),需要對(duì)模型各層權(quán)重重新進(jìn)行矯正,而GRU模型中利用不斷更新的單元狀態(tài)及更新門權(quán)重,保持了隱層權(quán)重與目標(biāo)因子的擬合度,從而實(shí)現(xiàn)了對(duì)目標(biāo)因子的準(zhǔn)確預(yù)測(cè)。
通過CNN處理環(huán)境因子的融合模型CNN-GRU相較于取均值進(jìn)行預(yù)測(cè)的GRU模型在精度上有明顯提高,說明卷積處理因子數(shù)據(jù)相較于均值法能更加有效地提取影響因子的特征。但CNN-GRU模型的穩(wěn)定性有所下降,這是由于模型復(fù)雜度上升,異常數(shù)據(jù)所導(dǎo)致的誤差也因此放大,所以導(dǎo)致試驗(yàn)結(jié)果均方根誤差上升。相較于同樣由于漁場(chǎng)過大所采用的聚類分析法[23],通過聚類得到漁場(chǎng)的數(shù)個(gè)重心點(diǎn),再對(duì)漁場(chǎng)相同半徑范圍內(nèi)進(jìn)行分析,因此丟失一些單獨(dú)捕撈點(diǎn)的數(shù)據(jù)。雖然本文的卷積提取法充分利用了漁場(chǎng)數(shù)據(jù),但也增加了無效點(diǎn)對(duì)模型參數(shù)的干擾,所以,利用Attention層對(duì)CNN-GRU模型的隱層輸出做附權(quán)值處理,可降低異常數(shù)據(jù)及空數(shù)據(jù)對(duì)輸出值的影響,同時(shí)加快模型的收斂速度,實(shí)現(xiàn)對(duì)模型異常數(shù)據(jù)處理能力的優(yōu)化,使得CNN-GRU-Attention模型的預(yù)測(cè)性能相較于原模型GRU具有全面的提升。
通過分析漁場(chǎng)環(huán)境因子數(shù)據(jù)來解決CPUE的逐點(diǎn)預(yù)測(cè)問題,結(jié)果表明,CNN-GRU-Attention模型相較于傳統(tǒng)的漁情預(yù)測(cè)方法,預(yù)測(cè)精度及其穩(wěn)定性都明顯提高,從環(huán)境數(shù)據(jù)的融合處理方面為南太平洋長(zhǎng)鰭金槍魚漁情預(yù)測(cè)提供了一種新的思路。但本文主要分析CPUE與環(huán)境因子的空間特征數(shù)據(jù),缺少對(duì)時(shí)間關(guān)聯(lián)性的考慮,后期準(zhǔn)備將前一年或多年的同月的漁場(chǎng)CPUE添加到影響因子中,并根據(jù)月份調(diào)整權(quán)值進(jìn)行預(yù)測(cè),希望能夠完善漁場(chǎng)CPUE逐點(diǎn)預(yù)測(cè)模型,并提高模型的預(yù)測(cè)精度。
□