鄭 健,張黎邦,劉 勇
(中國海洋大學(xué) 山東省海洋工程重點實驗室,青島 266100)
在港口工程中,沉箱被廣泛用于修建碼頭和直立堤。開孔沉箱[1]是將傳統(tǒng)沉箱的前墻開孔,在前開孔墻和后實體墻之間形成消浪室,能夠有效耗散波浪能量,降低波浪反射和水平波浪力,因此在工程實踐中得到比較廣泛的應(yīng)用。反射系數(shù)是開孔沉箱設(shè)計中需要重點考慮和分析的關(guān)鍵參數(shù)。
許多學(xué)者采用不同方法研究了開孔沉箱的反射特性。Kondo[2]基于理論分析和物理模型試驗,提出了單消浪室和雙消浪室開孔沉箱反射系數(shù)的計算方法。Fugazza和Natale[3]基于線性勢流理論建立了多層開孔沉箱反射系數(shù)的計算模型,并與試驗結(jié)果進(jìn)行對比驗證。Tanimoto和Yoshimoto[4]將物理模型試驗與理論分析相結(jié)合,研究了局部開孔沉箱的反射特性,分析了開孔沉箱反射系數(shù)的主要影響因素。Lee和Shin[5]通過物理模型試驗,研究了不規(guī)則波作用下開孔沉箱的反射特性。Liu和Li[6]建立了迭代分區(qū)邊界元模型,計算了不同類型開孔沉箱的反射系數(shù),并與試驗結(jié)果進(jìn)行了對比驗證。
上述研究工作都是考慮暗基床上的開孔沉箱,也有一些學(xué)者研究了明基床上開孔沉箱的反射特性。Suh等[7]假定局部開孔沉箱的前墻下端不開孔部分為陡坡,利用迦遼金方法計算了局部開孔沉箱的反射系數(shù)。劉勇等[8]利用匹配特征函數(shù)展開法建立了明基床上局部開孔沉箱反射系數(shù)的近似計算方法。行天強[9]和夏志盛[10]通過物理模型試驗,建立了明基床上開孔沉箱反射系數(shù)的簡化計算公式。
波浪對開孔沉箱的作用過程非常復(fù)雜,開孔沉箱反射系數(shù)受多種因素的非線性影響,不同方法的計算結(jié)果仍存在一定差異。近年來,隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,尤其是深度學(xué)習(xí),可以較好地解決未知關(guān)系下輸入與輸出間的映射問題。在海岸工程領(lǐng)域, Zanuttigha等[11]利用具有單一隱藏層的神經(jīng)網(wǎng)絡(luò)預(yù)測了斜坡堤的反射系數(shù),隨后又預(yù)測了斜坡堤的平均越浪量[12]。Garrido和Medina[13]開展了開孔沉箱的物理模型試驗,利用單一隱藏層神經(jīng)網(wǎng)絡(luò),建立了單消浪室和雙消浪室開孔沉箱反射系數(shù)的計算公式。James等[14]利用多層感知機結(jié)構(gòu)預(yù)報了海洋波浪參數(shù)。我國學(xué)者劉詩學(xué)等[15]使用BP神經(jīng)網(wǎng)絡(luò)建立了單坡式防波堤越浪量的綜合預(yù)測模型。與淺層神經(jīng)網(wǎng)絡(luò)相比,深度神經(jīng)網(wǎng)絡(luò)具備一個以上的隱藏層,可以自動進(jìn)行特征提取,無需人為干預(yù)。然而,目前利用深度神經(jīng)網(wǎng)絡(luò)計算海岸結(jié)構(gòu)物反射系數(shù)的研究工作尚鮮見報道。
本文基于深度神經(jīng)網(wǎng)絡(luò),建立暗基床和明基床上開孔沉箱反射系數(shù)的預(yù)測模型。將首先采用Adam算法[16]優(yōu)化梯度下降,利用文獻(xiàn)中開孔沉箱反射系數(shù)的試驗數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。隨后將神經(jīng)網(wǎng)絡(luò)模型的計算結(jié)果分別與模型試驗數(shù)據(jù)和文獻(xiàn)中已有方法的計算結(jié)果進(jìn)行對比,檢驗利用深度神經(jīng)網(wǎng)絡(luò)方法計算開孔沉箱反射系數(shù)的可靠性和適用性。本文研究可為工程設(shè)計提供合理、可靠的開孔沉箱反射系數(shù)預(yù)測方法。
神經(jīng)網(wǎng)絡(luò)具有較強的非線性映射能力,可對輸出誤差進(jìn)行反饋校正,在一定條件下可以有效逼近不同類型的數(shù)據(jù)模型,且預(yù)測精度高,其中以反向傳播[17]網(wǎng)絡(luò)應(yīng)用最為成功。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程分為前向傳播和誤差反向傳播,具體的過程如下[14,16-19]。
圖1 典型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.1 Sketch of typical structure of Neural Network
圖1為簡化的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖,其中:xi=[x1,x2,…,xn]T表示輸入變量(下標(biāo)n表示神經(jīng)元個數(shù));z(l)=[z1(l),z2(l),…,zn(l)]T表示第l層神經(jīng)元的加權(quán)輸入;a(l)=[a1(l),a2(l),…,an(l)]T表示第l層經(jīng)激活函數(shù)轉(zhuǎn)化后的激活值(輸出值);yi表示輸出值;wj,i(l)表示第l層的第j個神經(jīng)元到第l+1層第i個神經(jīng)元的連接權(quán)重,度量各輸入變量的影響程度;b(l)=[b1(l),b2(l),…,bn(l)]T表示第l層到第l+1層的偏置,度量神經(jīng)元被激勵的難易程度。
將第一層看成X=a(1),則信息前向傳播的過程如下
X=a(1)→z(2)→a(2)→…→z(l)→a(l)=y
(1)
第l層神經(jīng)元的加權(quán)輸入及激活值為
z(l)=w(l-1)a(l-1)+b(l)
(2)
a(l)=f(z(l))
(3)
式中:f(z)表示激活函數(shù),常用的激活函數(shù)有sigmoid、tanh和ReLU函數(shù)[19],本文使用ReLU激活函數(shù)[20]。
誤差反向傳播的目的是通過調(diào)整網(wǎng)絡(luò)的權(quán)重w和偏置b,使得總體損失(預(yù)測值與真實值的誤差)變小,從而求得損失最小值時對應(yīng)各連接層的w和b。
由梯度下降優(yōu)化算法,得到
(4)
(5)
隱藏層誤差為
(6)
當(dāng)采用性能較為優(yōu)越的ReLU激活函數(shù)[21]時,
(7)
經(jīng)過前向傳播和誤差反向傳播,得到神經(jīng)網(wǎng)絡(luò)的權(quán)重w和偏置b為
(8)
(9)
隨著神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,w和b不斷得到更新,當(dāng)達(dá)到預(yù)設(shè)訓(xùn)練次數(shù)時結(jié)束訓(xùn)練。此時求得的w和b值為模型的最終參數(shù),可用于模型的計算和預(yù)測。
TensorFlow是利用數(shù)據(jù)流圖進(jìn)行數(shù)值計算的開源平臺,是一個面向深度學(xué)習(xí)算法的科學(xué)計算庫[19]。本文使用Python語言,借助TensorFlow建立了深度神經(jīng)網(wǎng)絡(luò),用來計算開孔沉箱的反射系數(shù)。
圖2 開孔沉箱結(jié)構(gòu)示意圖Fig.2 Sketch of structure of perforated caisson
圖2為開孔沉箱結(jié)構(gòu)示意圖。開孔沉箱前水深為d,消浪室內(nèi)水深為d1,基床上水深為d2,消浪室寬度為B,hm為沉箱基床高度,當(dāng)hm=0時為暗基床。
開孔沉箱反射系數(shù)Kr的主要影響因素包括[4]
(10)
式中:L為入射波波長;H為入射波波高;p為沉箱前墻開孔率;q為消浪室內(nèi)的相對水深,即消浪室內(nèi)水深與沉箱前水深的比值。
在建立神經(jīng)網(wǎng)絡(luò)計算模型時,首先根據(jù)開孔沉箱反射系數(shù)的主要影響因素,確定輸入層、輸出層的神經(jīng)元數(shù)量。然后確定隱藏層層數(shù)、隱藏層神經(jīng)元數(shù)量、初始權(quán)重和偏置、損失函數(shù)、優(yōu)化器以及學(xué)習(xí)率等參數(shù)。最后利用訓(xùn)練樣本試驗數(shù)據(jù)庫進(jìn)行訓(xùn)練。在訓(xùn)練過程中,需要比較神經(jīng)網(wǎng)絡(luò)預(yù)測值與試驗值之間的誤差和相關(guān)系數(shù),當(dāng)誤差較大、相關(guān)系數(shù)較小時,重新調(diào)整各參數(shù),反復(fù)訓(xùn)練直至滿足精度要求。記錄此時的權(quán)重w和偏置b的值,用于計算開孔沉箱反射系數(shù)。
暗基床上開孔沉箱反射系數(shù)的試驗數(shù)據(jù)庫來自文獻(xiàn)Yoon等[22]、Kondo[2]、Bergannn[23]、Zhu和Chwang[24]、Carevic[25]、Shohachi等[26]、Garrido和Medina[13]、Tanimoto和Yoshimoto[4]、陳雪峰等[27]、馬寶聯(lián)[28],共計1223組試驗數(shù)據(jù)。明基床上開孔沉箱反射系數(shù)的試驗數(shù)據(jù)庫來自文獻(xiàn)Park等[29]、行天強[9]、夏志盛[10]。考慮到明基床上開孔沉箱反射系數(shù)的物理模型試驗數(shù)據(jù)較少,在數(shù)據(jù)庫中加入了部分經(jīng)過物理模型試驗驗證的數(shù)值試驗結(jié)果[30],共計456組試驗數(shù)據(jù)。以上所有數(shù)據(jù),入射波均為規(guī)則波,并且不發(fā)生越浪。各文獻(xiàn)中的具體工況和模型參數(shù)見表1和表2。
表1 暗基床上開孔沉箱物理模型試驗的試驗條件和模型參數(shù)Tab.1 Experimental conditions and model parameters of physical model tests for perforated caissons on rubble-fill foundation
表2 明基床上開孔沉箱物理模型試驗(數(shù)值試驗)的試驗條件和模型參數(shù)Tab.2 Experimental conditions and model parameters of physical model test (numerical simulation) for perforated caissons on rubble foundation
將開孔沉箱反射系數(shù)的試驗數(shù)據(jù)分成訓(xùn)練樣本和檢驗樣本兩部分。訓(xùn)練樣本用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,檢驗樣本用來檢驗訓(xùn)練后神經(jīng)網(wǎng)絡(luò)模型計算結(jié)果的可靠性。將暗基床和明基床上開孔沉箱反射系數(shù)的試驗數(shù)據(jù)各預(yù)留一組檢驗樣本,數(shù)量分別為122組和45組,為保證檢驗結(jié)果的合理性,該樣本數(shù)據(jù)從全體試驗數(shù)據(jù)中隨機選取。
在利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行計算時,為避免奇異樣本值對計算結(jié)果的影響,需將輸入數(shù)據(jù)進(jìn)行歸一化處理,轉(zhuǎn)化為[0,1]區(qū)間上的值
(11)
式中:x為輸入的試驗數(shù)據(jù);x′為歸一化后的輸入數(shù)據(jù);xmax、xmin分別為試驗數(shù)據(jù)的最大值和最小值。
輸入層神經(jīng)元的數(shù)量與實際數(shù)據(jù)的輸入量密切相關(guān)。對于暗基床開孔沉箱,輸入層有5個神經(jīng)元,分別為B/L、d/L、H/L、p和q,輸出層1個神經(jīng)元,為反射系數(shù)Kr。明基床開孔沉箱,輸入層共6個神經(jīng)元,分別為B/L、hm/L、d/L、H/L、p和q,輸出層神經(jīng)元為反射系數(shù)Kr。
本文用于建立計算模型的數(shù)據(jù)量不是很龐大,因此在構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)時,取隱藏層數(shù)量為2。以反射系數(shù)試驗值與神經(jīng)網(wǎng)絡(luò)計算值之間的均方根誤差(RMSE)為選擇依據(jù),采用試算法確定每個隱藏層的神經(jīng)元數(shù)量。
表3給出暗基床上開孔沉箱神經(jīng)網(wǎng)絡(luò)的隱藏層神經(jīng)元數(shù)量對預(yù)測結(jié)果的影響,可以看出:增加神經(jīng)元數(shù)量可以減小均方根誤差,但是當(dāng)神經(jīng)元數(shù)量超過一定值后,均方根誤差隨隱藏神經(jīng)元數(shù)量的增多不再發(fā)生明顯變化。因此,暗基床上開孔沉箱神經(jīng)網(wǎng)絡(luò)各隱藏層神經(jīng)元數(shù)量均取15。
表4給出明基床上開孔沉箱神經(jīng)網(wǎng)絡(luò)的隱藏層神經(jīng)元數(shù)量對預(yù)測結(jié)果的影響。考慮最優(yōu)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)在滿足精度的前提下使用較少數(shù)量的神經(jīng)元,將明基床上開孔沉箱反射系數(shù)神經(jīng)網(wǎng)絡(luò)各隱藏層神經(jīng)元數(shù)量分別取為10和5。
表3 隱藏層神經(jīng)元數(shù)量對開孔沉箱反射系數(shù)計算值均方根誤差的影響(暗基床)Tab.3 RMSE for different numbers of hidden neuron for perforated caissons on rubble-fill foundation
表4 隱藏層神經(jīng)元數(shù)量對開孔沉箱反射系數(shù)計算值均方根誤差的影響(明基床)Tab.4 RMSE for different numbers of hidden neuron for perforated caissons on rubble foundation
注:神經(jīng)元數(shù)量:5個、15個、15個、1個、6個、10個、5個、1個圖3 開孔沉箱反射系數(shù)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.3 Neural Network structures for predicting the reflection coefficients of perforated caissons
初始權(quán)重和偏置需要隨機生成,采用TensorFlow計算庫中的tf.random_normal函數(shù),按照正態(tài)分布初始化權(quán)重和偏置??紤]建立的是一個非線性系統(tǒng),隱藏層選擇ReLU非線性激活函數(shù)。當(dāng)學(xué)習(xí)率過大時,損失函數(shù)變化速度快,容易越過極值點,低學(xué)習(xí)率雖然可以確保較好的局部極小值,但是收斂速度慢,綜合考慮后將初始學(xué)習(xí)率η設(shè)為0.001,ReLU函數(shù)可在訓(xùn)練過程中主動改變學(xué)習(xí)率以適應(yīng)損失函數(shù)梯度的改變。本文輸出結(jié)果為確定的反射系數(shù)值,因此輸出層不需要使用激活函數(shù)。
圖3給出預(yù)測開孔沉箱反射系數(shù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,每次訓(xùn)練都隨機選取85%的訓(xùn)練樣本用來迭代計算,15%的訓(xùn)練樣本用來測試模型。圖4給出暗基床上開孔沉箱反射系數(shù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果。從圖4-a可以看出,訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的損失函數(shù)曲線基本重合,并且都很快降低到最小值,這表明該神經(jīng)網(wǎng)絡(luò)沒有出現(xiàn)過擬合現(xiàn)象,同時也說明,僅靠增加訓(xùn)練次數(shù)并不能提高神經(jīng)網(wǎng)絡(luò)的性能。在實際訓(xùn)練過程中發(fā)現(xiàn),初始權(quán)值和偏置對神經(jīng)網(wǎng)絡(luò)計算結(jié)果具有明顯影響。本文的初始權(quán)值和偏置隨機生成,需經(jīng)過多次試驗和比較才能獲得滿意的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。圖4-b給出神經(jīng)網(wǎng)絡(luò)計算結(jié)果與訓(xùn)練樣本的對比,可以看出主要數(shù)據(jù)點都分布在y=x±10%包絡(luò)線內(nèi),計算結(jié)果與訓(xùn)練樣本總體符合良好,相關(guān)系數(shù)為0.864,均方根誤差為0.092 7。
4-a 訓(xùn)練過程中損失函數(shù)的變化 4-b 神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果圖4 暗基床上開孔沉箱反射系數(shù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果Fig.4 Training results of Neural Network of Kr for perforated caisson on rubble-fill foundation
5-a 訓(xùn)練過程中損失函數(shù)的變化 5-b 神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果圖5 明基床上開孔沉箱反射系數(shù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果Fig.5 Training results of Neural Network of Kr for perforated caissons on rubble foundation
圖5給出明基床上開孔沉箱反射系數(shù)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果。圖5-a表示訓(xùn)練過程中損失函數(shù)值隨訓(xùn)練次數(shù)的變化情況,模型性能良好,未出現(xiàn)過擬合現(xiàn)象。圖5-b給出了神經(jīng)網(wǎng)絡(luò)計算結(jié)果與訓(xùn)練樣本的對比,兩者總體符合較好,相關(guān)系數(shù)為0.916,均方根誤差為0.052 6。
為進(jìn)一步檢驗神經(jīng)網(wǎng)絡(luò)的可靠性,將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)計算結(jié)果與檢驗樣本進(jìn)行對比。
圖6給出具體對比結(jié)果,圖中橫坐標(biāo)表示反射系數(shù)的檢驗樣本試驗值,縱坐標(biāo)表示反射系數(shù)的神經(jīng)網(wǎng)絡(luò)計算值。可以看出,計算值與檢驗樣本值總體符合較好,暗基床和明基床開孔沉箱反射系數(shù)計算結(jié)果的均方根誤差分別為0.082 2和0.0517,相關(guān)系數(shù)分別為0.860和0.921,表明本文方法可以合理預(yù)測開孔沉箱的反射系數(shù)。
6-a 暗基床開孔沉箱結(jié)構(gòu)6-b 明基床開孔沉箱結(jié)構(gòu)圖6 神經(jīng)網(wǎng)絡(luò)計算值與檢驗樣本對比Fig.6 Comparison between the Neural Network calculation value and test sample
為了驗證本文計算方法的適用性,利用文獻(xiàn)中已有計算方法計算檢驗樣本中適用工況的反射系數(shù),并與神經(jīng)網(wǎng)絡(luò)計算結(jié)果進(jìn)行比較。
對于暗基床開孔沉箱結(jié)構(gòu),采用Garrido和Medina[13]、戴冠英[31]、陳雪峰等[27]提出的計算方法。
Garrido和Medina[13]試驗測量了開孔沉箱的反射系數(shù),并通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練,改進(jìn)了Fuggzza和Natale[3]提出的反射系數(shù)計算公式
Kr=0.85×Kr1(-12p2+6.7p+0.2)
(12)
(13)
(14)
α=-44ln(p)-16
(15)
式中:C=1-PW;P=lk;W=tan(kB);R=β(k/ω);k為入射波的波數(shù);ω為頻率;l為孔口射流長度,近似等于開孔板的厚度;α為能量損失系數(shù)。
戴冠英[31]針對全開孔沉箱開展物理模型試驗,利用最小二乘法,給出了規(guī)則波作用時開孔沉箱反射系數(shù)計算公式
(16)
陳雪峰等[27]通過開展物理模型試驗,并利用最小二乘法,得到了局部開孔沉箱反射系數(shù)的計算公式
(17)
該公式的適用范圍為:消浪室相對寬度B/L=0.063~0.270;相對水深d/L=0.170~0.354;波陡H/L=0.030~0.090。
圖7給出了反射系數(shù)的神經(jīng)網(wǎng)絡(luò)計算結(jié)果與公式(12)、(16)、(17)計算結(jié)果的對比,圖中橫坐標(biāo)表示檢驗樣本值,縱坐標(biāo)表示計算值。在計算過程中,只考慮各公式適用范圍內(nèi)的工況。公式(12)、(16)、(17)計算結(jié)果的相關(guān)系數(shù)分別為0.655、0.646、0.437,本文方法計算結(jié)果的相關(guān)系數(shù)為0.860。
圖7 暗基床開孔沉箱反射系數(shù)不同方法結(jié)果對比Fig.7 Comparison of Kr results for perforated caissons on rubble-fill foundation
對于明基床開孔沉箱結(jié)構(gòu),行天強[9]、夏志盛[10]分別開展物理模型試驗,利用最小二乘法,得到了開孔沉箱反射系數(shù)的計算公式。
文獻(xiàn)[9]的計算公式
(18)
適用范圍為:消浪室相對寬度B/L=0.063~0.265;基床相對高度hm/L=0.042~0.177;相對水深d/L=0.167~0.354。
文獻(xiàn)[10]的計算公式
(19)
適用范圍為:消浪室相對寬度B/L=0.063~0.265;基床相對高度hm/d= 0.042~0.133;相對水深d/L=0.167~0.354;波陡H/L=0.025~0.082。
圖8給出了反射系數(shù)的神經(jīng)網(wǎng)絡(luò)計算結(jié)果與公式(18)、(19)計算結(jié)果的對比,圖中橫坐標(biāo)表示檢驗樣本值,縱坐標(biāo)表示計算值。公式(18)、(19)計算結(jié)果的相關(guān)系數(shù)分別為0.668、0.765,本文方法計算結(jié)果的相關(guān)系數(shù)為0.921。
圖8 明基床上開孔沉箱反射系數(shù)結(jié)果比較Fig.8 Comparison of Kr results for perforated caisson on rubble foundation
與文獻(xiàn)中反射系數(shù)的計算方法相比可以看出,本文提出的計算開孔沉箱反射系數(shù)的神經(jīng)網(wǎng)絡(luò)方法是可行的,不僅提高了計算精度,而且擴大了各變量的適用范圍,能同時計算全開孔沉箱和局部開孔沉箱的反射系數(shù)。
本文基于深度神經(jīng)網(wǎng)絡(luò)建立了暗基床開孔沉箱與明基床開孔沉箱反射系數(shù)的預(yù)測模型。對于暗基床開孔沉箱,神經(jīng)網(wǎng)絡(luò)輸入層神經(jīng)元數(shù)量為5,兩隱藏層神經(jīng)元數(shù)量均為15,輸出層神經(jīng)元數(shù)量為1;對于明基床開孔沉箱,神經(jīng)網(wǎng)絡(luò)輸入層神經(jīng)元數(shù)量為6,兩隱藏層神經(jīng)元數(shù)量分別為10和5,輸出層神經(jīng)元數(shù)量為1。本文方法的反射系數(shù)計算結(jié)果與訓(xùn)練樣本庫、檢驗樣本庫的試驗結(jié)果均符合良好。以檢驗樣本庫數(shù)據(jù)為依據(jù),將本文計算方法與文獻(xiàn)中已有方法的計算結(jié)果進(jìn)行了對比,表明本文方法的適用范圍更廣。本文所建立的開孔沉箱反射系數(shù)預(yù)測模型可為工程設(shè)計提供重要參考。基于更多的物理模型試驗數(shù)據(jù)訓(xùn)練樣本,本文方法還可以擴展分析多消浪室結(jié)構(gòu)等其他型式開孔沉箱的反射系數(shù)。