高明,黃賢源,王芳,張海龍,趙紅霞,高溪遠(yuǎn)
(1.中國人民武裝警察部隊作戰(zhàn)勤務(wù)保障大隊,北京 100081;2.中國人民解放軍部隊92859 部隊,天津 300000)
海表鹽度(Sea Surface Salinity,SSS)是研究海洋狀態(tài)和海水動力循環(huán)的重要物理和化學(xué)參數(shù)。海洋中海-氣交換、海冰凍融等許多過程的產(chǎn)生和發(fā)展都與鹽度的分布及變化規(guī)律有關(guān),研究海表鹽度對揭示海洋現(xiàn)象、海洋過程和全球氣候變化具有重要意義[1-2]。
海表鹽度探測手段主要包括實地探測和遙感探測。實地探測手段難以實現(xiàn)全球海域的實時連續(xù)觀測,但海洋衛(wèi)星遙感技術(shù)可較好地解決這一問題。歐洲航天局(European Space Agency,ESA,簡稱歐空局)于2009 年發(fā)射的土壤濕度與海水鹽度(Soil Moisture and Ocean Salinity,SMOS)衛(wèi)星是一顆專用于探測海表鹽度的衛(wèi)星,其唯一有效載荷是基于孔徑綜合技術(shù)的微波成像儀MIRAS(Microwave Imaging Radiometer using Aperture Synthesis),工作頻率在L 波段,主要用于探測輻射亮溫(Brightness Temperature,TB)。在發(fā)射之初,該衛(wèi)星提出的觀測目標(biāo)是提供在空間分辨率為200 km × 200 km、時間分辨率為10~30 d 時精度達(dá)到0.1 的全球海表鹽度數(shù)據(jù)。但是,研究表明[3-4],在某些海域,SMOS 衛(wèi)星的鹽度產(chǎn)品難以達(dá)到預(yù)期要求。對此,許多學(xué)者開展了提高SMOS 衛(wèi)星鹽度數(shù)據(jù)精度的研究[5-8]。例如:盧紅麗等[5]研究了海面風(fēng)矢量對海表亮溫的影響,并推導(dǎo)出海表風(fēng)速、風(fēng)向、海表亮溫以及亮溫修正量之間的關(guān)系式,從而消除了風(fēng)對鹽度遙感的影響。李志等[6]對風(fēng)速和涌浪兩個參數(shù)做線性回歸,建立了適用于實驗海區(qū)的鹽度反演模式。鄧廣等[7]采用統(tǒng)計學(xué)的回歸方式,將亮溫數(shù)據(jù)代入HYCOM 模式的模擬亮溫,建立回歸模型,提高了南海區(qū)域的鹽度反演精度。王迎強(qiáng)等[8]利用MPM 93(Millimeter-Wave Propagation Model 93)模型和最大似然估計法研究不同天氣對鹽度反演的影響,結(jié)果表明降雨量和海表面溫度對鹽度反演的影響不可忽略。
近年來,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)在智能駕駛、語音識別、醫(yī)療和生物等領(lǐng)域得到了廣泛的應(yīng)用[9-10],也逐漸在海洋科學(xué)領(lǐng)域得到運用[11-13]。為提高SMOS 衛(wèi)星鹽度產(chǎn)品精度,本研究提出了基于深度神經(jīng)網(wǎng)絡(luò)的鹽度反演算法,通過學(xué)習(xí)深層次非線性的網(wǎng)絡(luò)結(jié)構(gòu),實現(xiàn)復(fù)雜函數(shù)的逼近,能夠有效解決傳統(tǒng)海表鹽度反演模型中參數(shù)擬合復(fù)雜、模型適應(yīng)性差等問題。K 折交叉驗證法是機(jī)器學(xué)習(xí)(Machine Learning,ML)數(shù)據(jù)處理常用的方法,它能夠充分利用有限的數(shù)據(jù)集,使其發(fā)揮最大效果,多用于訓(xùn)練數(shù)據(jù)量較少的情況,本文利用該方法進(jìn)行12 次不同參數(shù)的實驗,逐步調(diào)整深度神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù)、層間結(jié)點數(shù)量、迭代次數(shù)、優(yōu)化器種類以及Dropout 比例,進(jìn)而不斷優(yōu)化模型結(jié)構(gòu),最終訓(xùn)練出最佳模型,以期為SMOS 鹽度精度的提高貢獻(xiàn)新的研究思路。
受射頻干擾RFI(Radio Frequency Interference)的影響,微波輻射計接收的輻射信號存在不可消除的誤差,大大降低了海表鹽度的產(chǎn)品精度[14]。因此,本實驗選擇遠(yuǎn)離陸地,受RFI 影響較小的開闊海域作為研究對象。此外,銀河噪聲在7 月和8 月波動比較小,使用此時間段的SMOS 衛(wèi)星數(shù)據(jù)可忽略來自外太空的影響[8]。基于此,本文選取太平洋中部海域(150°E~180°,5°~30°N)作為研究區(qū)域(圖1 中紅色方框區(qū)域),對該區(qū)域內(nèi)2013 年7 月至8 月的數(shù)據(jù)進(jìn)行時空匹配,構(gòu)建實驗所需要的數(shù)據(jù)集。
圖1 研究 區(qū)域Fig.1 Study area
SMOS 探測的亮溫不是海面的真實溫度,而是一種用于描述物體輻射強(qiáng)度的假定溫度。對于海洋表面,海水亮溫與真實海表溫度、海表發(fā)射率之間的函數(shù)關(guān)系[6]為:
式中:SST(Sea Surface Temperature)為海表溫度;f為微波頻率;Tb為亮溫;θ為入射角;e為海表發(fā)射率;SSS 為海表鹽度。
海表發(fā)射率e與海面粗糙度聯(lián)系緊密。海面粗糙度主要由海面風(fēng)速包括緯向風(fēng)速(Zonal Wind Speed,ZWS)和經(jīng)向風(fēng)速(Meridional Wind Speed,MWS),以及有效波高(Significant Wave Height,SWH)表征[6]。此外,研究表明[15],降雨率(Rain Rate,RR)和海表蒸發(fā)量(Evaporation,Eva)也是直接影響海表面實時鹽度的重要因子。因此,本文選取與鹽度反演密切相關(guān)的7 個參數(shù),即:亮溫TB、海表溫度SST、緯向風(fēng)速ZWS、經(jīng)向風(fēng)速MWS、有效波高SWH、降雨率RR 和海表蒸發(fā)量Eva 作為模型輸入?yún)?shù)。這些參數(shù)和3 種SMOS衛(wèi)星L2 級鹽度產(chǎn)品(SSS1、SSS2、SSS3)均源于歐空局網(wǎng)站[16],空間分辨率為0.022°×0.022°。
Argo 浮標(biāo)(以下簡稱Argo)是海洋實地探測的一個典型代表。它是一種自持式剖面漂流浮標(biāo),可以在大洋中自主沉浮、自由漂流,自動測量深至水下2 000 m 的海水剖面數(shù)據(jù)。Argo 所載的泵抽式溫鹽深儀(Conductivity Temperature Depth,CTD) 在距海表5 m 左右時會自動停止工作,無法探測到真實的海表鹽度。但5 m 處的鹽度與海水表層1 cm 左右的鹽度值幾乎一致[17],因此,本文使用Argo 最淺層的鹽度數(shù)據(jù)來代表海表鹽度值。研究數(shù)據(jù)來自中國Argo 資料中心[18],選擇2013 年7 月至8 月太平洋中部海域(150°E~180°,5°~30°N)的Argo 浮標(biāo),具體位置見圖1 中藍(lán)點所示位置。
SMOS 衛(wèi)星提供的是200 km×200 km 的網(wǎng)格亮溫數(shù)據(jù),Argo 提供的是離散點數(shù)據(jù),二者數(shù)據(jù)格式存在差異。因此,在建立神經(jīng)網(wǎng)絡(luò)模型之前,首先需要對SMOS 衛(wèi)星數(shù)據(jù)與Argo 實測鹽度數(shù)據(jù)進(jìn)行時空匹配。
參考曹凱翔等[19]的數(shù)據(jù)匹配方法,本文采用空間分辨率為0.5°×0.5°、時間分辨率為36 h 的匹配原則,對2013 年7 月至8 月的SMOS 衛(wèi)星L1、L2 級產(chǎn)品與Argo 鹽度數(shù)據(jù)進(jìn)行時空匹配,即:對于每一個SMOS衛(wèi)星產(chǎn)品數(shù)據(jù),計算其測量點周圍0.5°網(wǎng)格點內(nèi)和測量時間點(±18)h 內(nèi)所有Argo 鹽度的平均值,將其作為匹配后的實測鹽度數(shù)據(jù)。
將SMOS 衛(wèi)星數(shù)據(jù)與Argo 鹽度數(shù)據(jù)匹配后,得到470 組有效數(shù)據(jù)。每組數(shù)據(jù)具有11 個屬性值,即TB、SST、RR、SWH、ZWS、MWS、Eva,以及Argo 實測鹽度數(shù)據(jù)、SSS1 數(shù)據(jù)、SSS2 數(shù)據(jù)和SSS3 數(shù)據(jù)。其中,將TB、SST、RR、SWH、ZMS、MWS 和Eva 這7 個參數(shù)作為反演模型的輸入值,將Argo 實測鹽度數(shù)據(jù)作為真實參考值,將SMOS 衛(wèi)星的3 種L2 級鹽度產(chǎn)品SSS1、SSS2、SSS3 數(shù)據(jù)作為與實驗結(jié)果的比較值。
由于反演模型輸入所需的7 個屬性值的單位不同,所以,需要消除量綱之間的差異。利用標(biāo)準(zhǔn)歸一化的方法,對每個參數(shù)減去其平均值(中心化),再除以其標(biāo)準(zhǔn)差,最終得到平均值為0、標(biāo)準(zhǔn)差為1 的標(biāo)準(zhǔn)正態(tài)分布數(shù)據(jù)。標(biāo)準(zhǔn)歸一化后的參數(shù)x?為:
式中:x為原始輸入?yún)?shù)值;μ為參數(shù)的均值;σ為參數(shù)的標(biāo)準(zhǔn)差。
K 折交叉驗證法是機(jī)器學(xué)習(xí)模型調(diào)優(yōu)常用的方法,可以充分利用有限數(shù)據(jù),發(fā)揮小樣本的最大效果[20]。該方法的操作流程為:首先將數(shù)據(jù)集劃分成數(shù)量相同的K 組數(shù)據(jù),實例化K 個相同的模型,讓每個模型都在K?1 個分區(qū)上訓(xùn)練;然后在剩余的一個驗證分區(qū)上進(jìn)行評估,模型的最終驗證結(jié)果為k 個結(jié)果的平均值。本文采用4 折交叉驗證,即K=4,如圖2 所示。
圖2 四折交叉驗證法操作流程Fig.2 Four fold cross-validation process
深度神經(jīng)網(wǎng)絡(luò)DNN(Deep Neural Network)是具有多個層級結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò),包括輸入層、多個隱藏層和輸出層。模型相鄰層的節(jié)點間存在連接結(jié)構(gòu),而同一層和跨層的節(jié)點間沒有連接。不同節(jié)點間通過全連接層與激活函數(shù)組合的形式相連,構(gòu)建多層復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。模型結(jié)構(gòu)如圖3 所示。
圖3 DNN 模型 結(jié)構(gòu)Fig.3 DNN model structure
DNN 神經(jīng)網(wǎng)絡(luò)的構(gòu)建包含了全連接層、激活函數(shù)、損失函數(shù)和優(yōu)化器等結(jié)構(gòu)。DNN 利用前向與反向傳播算法(Backward Propagation,BP)進(jìn)行訓(xùn)練,對網(wǎng)絡(luò)中每個權(quán)重w和偏置b進(jìn)行不斷更新。反向傳播算法作為DNN 的核心內(nèi)容,實質(zhì)是將預(yù)測輸出值與真值間的誤差進(jìn)行回傳,不斷修改網(wǎng)絡(luò)模型每個連接層中w與b的數(shù)值大小,使誤差值不斷減小,直至滿足精度要求。通過大量數(shù)據(jù)的訓(xùn)練,損失函數(shù)值下降到要求閾值后,取此時的參數(shù)值作為模型參數(shù),據(jù)此進(jìn)行回歸預(yù)測。針對不同的實際情況,隱藏層數(shù)、隱藏層節(jié)點數(shù)、Dropout 比例等結(jié)構(gòu)參數(shù)與初始學(xué)習(xí)率、訓(xùn)練步長等訓(xùn)練參數(shù)的選取均會對訓(xùn)練結(jié)果產(chǎn)生一定的影響。此外,選取合適的損失函數(shù)與優(yōu)化器,還可以提升網(wǎng)絡(luò)模型精度,加速網(wǎng)絡(luò)訓(xùn)練速度。BP 算法的權(quán)重與偏置計算公式為:
式中:w*和w分別為更新后和更新前的權(quán)重;b*和b分別為更新后和更新前的偏置;α為人為設(shè)置的學(xué)習(xí)率;J(w,b)為模型的損失函數(shù)。通過不斷的梯度下降迭代,得到最優(yōu)參數(shù)w*和b*。
實驗具體流程如圖4 所示。首先將匹配成功的470 組數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)歸一化預(yù)處理,以統(tǒng)一輸入變量量綱,然后按照7∶3 比例隨機(jī)分為訓(xùn)練集330 組和測試集140 組。為使DNN 模型發(fā)揮最佳效果,本文進(jìn)行了12 次不同參數(shù)設(shè)置的實驗,對于每一參數(shù)設(shè)置,均進(jìn)行了多次重復(fù)實驗。表1 給出了12 次實驗調(diào)參訓(xùn)練結(jié)果,數(shù)據(jù)為同一參數(shù)設(shè)置下多次實驗的平均值。實驗采用4 折驗證法,將用于訓(xùn)練的330 個數(shù)據(jù)分為4 組,第一組和第二組均包含82 個數(shù)據(jù),第三組和第四組均包含83 個數(shù)據(jù)。首先以第一組為驗證數(shù)據(jù)集,在后3 組數(shù)據(jù)上訓(xùn)練模型,訓(xùn)練完成后,在第一組數(shù)據(jù)上驗證鹽度反演精度;接著以第二組數(shù)據(jù)為驗證數(shù)據(jù)集。依次類推,不斷修改隱藏層層數(shù)Hidden_Layer、隱藏層節(jié)點數(shù)Nodes、Dropout 比例Dropout_P 和具體優(yōu)化算法Optimizer 等參數(shù),最終得到最優(yōu)模型。
表1 12 次實驗調(diào)參訓(xùn)練結(jié)果Table 1 Training results of 12 experiments
圖4 基于DNN 深度學(xué)習(xí)算法的海表鹽度反演流程Fig.4 SSS inversion flow based on DNN deep learning algorithm
本實驗利用均方根誤差(Root Mean Square Error,RMSE)和平均絕對誤差(Mean Absolute Error,MAE)兩個指標(biāo)量化分析反演鹽度的誤差,計算公式分別為:
式中:m為實驗數(shù)據(jù)總數(shù);h(xi)為本文算法得到的海表鹽度數(shù)據(jù);yi為對應(yīng)的實測Argo 鹽度數(shù)據(jù)。
本文進(jìn)行的12 次實驗參數(shù)設(shè)置如表1 所示。由表1 可以看出,總的來說,當(dāng)隱藏層為2 層時,模型反演得到的鹽度誤差低于3 層隱藏層模型反演的鹽度。最優(yōu)的反演鹽度數(shù)據(jù)出現(xiàn)在第9 組,此時隱藏層為2 層,各層節(jié)點數(shù)分別為14 和7,Dropout 比例為0.5。采用RMSprop 優(yōu)化方式,獲得了RMSE 和MAE 分別為0.249 和0.193 的海表鹽度。實驗9 最優(yōu)模型的其他重要參數(shù)學(xué)習(xí)率Learning_rate、激活函數(shù)Activation_function、損失函數(shù)Loss_function 和迭代次數(shù)Iteration 等的設(shè)置如表2 所示。
表2 最優(yōu)模型的各參數(shù)及其數(shù)值Table 2 Parameters and values of the optimal model
本文實驗9 的參數(shù)設(shè)置獲得了精度最高的海表鹽度數(shù)據(jù)。在該實驗的模型訓(xùn)練過程中,訓(xùn)練集和測試集的平均絕對誤差MAE 下降情況如圖5 所示。在實驗的前100 次迭代內(nèi),MAE 快速下降,模型迅速更新權(quán)重和偏置,使輸出鹽度與Argo 實測鹽度盡可能相等。但在進(jìn)行約120 次迭代后,MAE下降速度急緩,直至幾乎不再下降,此時精度約為0.2。
圖5 訓(xùn)練過程中訓(xùn)練集和測試集的 MAE 變化Fig.5 MAE variation and test-sets during training
以Argo 實測鹽度數(shù)據(jù)作為真實參考值,對實驗獲取的470 組鹽度數(shù)據(jù)分別與SMOS 衛(wèi)星的SSS1、SSS2、SSS3 三種鹽度產(chǎn)品的RMSE 和MAE 進(jìn)行比較(見表3),可以看出,SMOS 衛(wèi)星的3 種鹽度產(chǎn)品精度整體相當(dāng),但SSS1 的精度略高,因此選擇SSS1 數(shù)據(jù)作為SMOS 衛(wèi)星鹽度產(chǎn)品的代表,與本文實驗結(jié)果進(jìn)行比較。
表3 SMOS 海表鹽度產(chǎn)品SSS1、SSS2、SSS3相較于Argo 實測鹽度的誤差對比Table 3 Errors of SMOS sea surface salinity products SSS1,SSS2,SSS3 compared with Argo SSS
將140 組測試集數(shù)據(jù)代入訓(xùn)練完成的DNN 模型,得到測試集的反演鹽度值。由DNN 反演鹽度數(shù)據(jù)、SMOS 衛(wèi)星產(chǎn)品SSS1 數(shù)據(jù)和Argo 實測鹽度值的對比結(jié)果(圖6)可見,DNN 反演數(shù)據(jù)與Argo 實測鹽度值十分接近,均分布在34~36,擬合精度明顯高于SSS1 數(shù)據(jù)。將Argo 數(shù)據(jù)作為參考標(biāo)準(zhǔn),計算DNN 模型反演得到的鹽度值誤差(εDNN=SDNN?SArgo)以及SSS1 產(chǎn)品的誤差(εSSS1=SSSS1?SArgo),對比2 種誤差(圖7)可知:SSS1 產(chǎn)品誤差起伏較大,最大誤差接近于?4;而DNN 反演鹽度數(shù)據(jù)的誤差集中在0 附近,不大于1 且不小于?1,說明其質(zhì)量明顯優(yōu)于SMOS 數(shù)據(jù)。此外,SMOS 衛(wèi)星的SSS1 產(chǎn)品與Argo 實測鹽度之間的RMSE 超過0.8,MAE 超過0.5;而DNN 模型反演得到的鹽度值與Argo 實測鹽度之間的RMSE 為0.249,MAE 為0.193,均明顯優(yōu)于前者。因此,實驗結(jié)果充分驗證了本文方法的有效性和先進(jìn)性。
圖6 DNN 模型反演鹽度、SMOS 衛(wèi)星SSS1 產(chǎn)品、Argo 實測鹽度值對比Fig.6 Comparison of DNN retrieved SSS,SMOS SSS1,and the Argo measured SSS
圖7 DNN 模型反演鹽度與SMOS 衛(wèi)星SSS1 產(chǎn)品誤差對比Fig.7Comparison of errors between DNN retrieved SSS and SMOS SSS1
為驗證DNN 模型鹽度反演方法的魯棒性,本文將最佳模型(實驗9)重復(fù)進(jìn)行了10 次實驗。每一次實驗都保證模型參數(shù)不變,但隨機(jī)劃分出不同的訓(xùn)練集和測試集數(shù)據(jù)(保持2 個數(shù)據(jù)集容量不變),然后驗證測試集誤差,分別記錄每次實驗的RMSE 和MAE,并計算出10 次重復(fù)實驗的平均值(見表4),結(jié)果表明:第8 次實驗誤差最小,其MAE 為0.159,RMSE 為0.195??傮w來看,10 次重復(fù)實驗的平均MAE 為0.216,平均RMSE 為0.262。這10 次訓(xùn)練的差異較小,結(jié)果較為穩(wěn)定,且誤差均小于SMOS 衛(wèi)星鹽度產(chǎn)品。因此,本文算法具有較高的魯棒性。
表4 最優(yōu)模型10 次實驗結(jié)果量化指標(biāo)Table 4 Quantitative indexes of 10 experimental results of the optimal model
針對目前SMOS 衛(wèi)星反演鹽度精度未滿足預(yù)期標(biāo)準(zhǔn)的情況,本文提出了一種基于深度神經(jīng)網(wǎng)絡(luò)DNN 的海表鹽度反演方法。為避免射頻干擾RFI 和銀河噪聲的影響,研究數(shù)據(jù)選擇了2013 年7 月至8 月太平洋中部海域(150°E~180°,5°~30°N)的SMOS 衛(wèi)星數(shù)據(jù)。在建立DNN 模型之前,首先將亮溫TB、海表溫度SST、緯向風(fēng)速ZWS、經(jīng)向風(fēng)速MWS、有效波高SWH、降雨率RR 和海表蒸發(fā)量Eva 共7 個模型輸入?yún)?shù),以及SMOS 衛(wèi)星3 種鹽度產(chǎn)品(SSS1、SSS2、SSS3)和Argo 實測鹽度數(shù)據(jù),按照空間分辨率為0.5°×0.5°、時間分辨率為36 h 的原則進(jìn)行時空匹配。然后,將470 組實驗數(shù)據(jù)按照7∶3 比例隨機(jī)劃分為訓(xùn)練集和驗證集。在訓(xùn)練集上,采用4 折交叉驗證的方式,反復(fù)實驗,優(yōu)化模型參數(shù),直至訓(xùn)練出最佳模型。最后,將最佳模型的參數(shù)設(shè)置固定,進(jìn)行10 次重復(fù)實驗,驗證了本文方法的魯棒性。
根據(jù)最佳模型的10 次實驗表現(xiàn),DNN 模型反演鹽度數(shù)據(jù)與Argo 實測鹽度之間平均MAE 為0.216,平均RMSE 為0.262;最優(yōu)時,MAE 為0.159,RMSE 為0.195。精度明顯高于SMOS 衛(wèi)星L2 級鹽度產(chǎn)品(MAE=0.535,RMSE=0.817)。因此,本文提出算法的反演鹽度精度超過了SMOS 衛(wèi)星鹽度產(chǎn)品,且多次實驗均取得了較好結(jié)果,驗證了方法的先進(jìn)性和穩(wěn)定性,能夠為海洋鹽度分析提供較好的數(shù)據(jù)源,從而有助于推動相關(guān)領(lǐng)域的研究進(jìn)展。