APP下载

基于深度神经网络的开孔沉箱反射系数计算方法研究

2020-12-09张黎邦

水道港口 2020年5期
关键词:基床沉箱反射系数

郑 健,张黎邦,刘 勇

(中国海洋大学 山东省海洋工程重点实验室,青岛 266100)

在港口工程中,沉箱被广泛用于修建码头和直立堤。开孔沉箱[1]是将传统沉箱的前墙开孔,在前开孔墙和后实体墙之间形成消浪室,能够有效耗散波浪能量,降低波浪反射和水平波浪力,因此在工程实践中得到比较广泛的应用。反射系数是开孔沉箱设计中需要重点考虑和分析的关键参数。

许多学者采用不同方法研究了开孔沉箱的反射特性。Kondo[2]基于理论分析和物理模型试验,提出了单消浪室和双消浪室开孔沉箱反射系数的计算方法。Fugazza和Natale[3]基于线性势流理论建立了多层开孔沉箱反射系数的计算模型,并与试验结果进行对比验证。Tanimoto和Yoshimoto[4]将物理模型试验与理论分析相结合,研究了局部开孔沉箱的反射特性,分析了开孔沉箱反射系数的主要影响因素。Lee和Shin[5]通过物理模型试验,研究了不规则波作用下开孔沉箱的反射特性。Liu和Li[6]建立了迭代分区边界元模型,计算了不同类型开孔沉箱的反射系数,并与试验结果进行了对比验证。

上述研究工作都是考虑暗基床上的开孔沉箱,也有一些学者研究了明基床上开孔沉箱的反射特性。Suh等[7]假定局部开孔沉箱的前墙下端不开孔部分为陡坡,利用迦辽金方法计算了局部开孔沉箱的反射系数。刘勇等[8]利用匹配特征函数展开法建立了明基床上局部开孔沉箱反射系数的近似计算方法。行天强[9]和夏志盛[10]通过物理模型试验,建立了明基床上开孔沉箱反射系数的简化计算公式。

波浪对开孔沉箱的作用过程非常复杂,开孔沉箱反射系数受多种因素的非线性影响,不同方法的计算结果仍存在一定差异。近年来,随着神经网络技术的发展,尤其是深度学习,可以较好地解决未知关系下输入与输出间的映射问题。在海岸工程领域, Zanuttigha等[11]利用具有单一隐藏层的神经网络预测了斜坡堤的反射系数,随后又预测了斜坡堤的平均越浪量[12]。Garrido和Medina[13]开展了开孔沉箱的物理模型试验,利用单一隐藏层神经网络,建立了单消浪室和双消浪室开孔沉箱反射系数的计算公式。James等[14]利用多层感知机结构预报了海洋波浪参数。我国学者刘诗学等[15]使用BP神经网络建立了单坡式防波堤越浪量的综合预测模型。与浅层神经网络相比,深度神经网络具备一个以上的隐藏层,可以自动进行特征提取,无需人为干预。然而,目前利用深度神经网络计算海岸结构物反射系数的研究工作尚鲜见报道。

本文基于深度神经网络,建立暗基床和明基床上开孔沉箱反射系数的预测模型。将首先采用Adam算法[16]优化梯度下降,利用文献中开孔沉箱反射系数的试验数据训练神经网络模型。随后将神经网络模型的计算结果分别与模型试验数据和文献中已有方法的计算结果进行对比,检验利用深度神经网络方法计算开孔沉箱反射系数的可靠性和适用性。本文研究可为工程设计提供合理、可靠的开孔沉箱反射系数预测方法。

1 深度神经网络预测模型

神经网络具有较强的非线性映射能力,可对输出误差进行反馈校正,在一定条件下可以有效逼近不同类型的数据模型,且预测精度高,其中以反向传播[17]网络应用最为成功。神经网络的学习过程分为前向传播和误差反向传播,具体的过程如下[14,16-19]。

图1 典型神经网络结构示意图Fig.1 Sketch of typical structure of Neural Network

图1为简化的神经网络结构示意图,其中:xi=[x1,x2,…,xn]T表示输入变量(下标n表示神经元个数);z(l)=[z1(l),z2(l),…,zn(l)]T表示第l层神经元的加权输入;a(l)=[a1(l),a2(l),…,an(l)]T表示第l层经激活函数转化后的激活值(输出值);yi表示输出值;wj,i(l)表示第l层的第j个神经元到第l+1层第i个神经元的连接权重,度量各输入变量的影响程度;b(l)=[b1(l),b2(l),…,bn(l)]T表示第l层到第l+1层的偏置,度量神经元被激励的难易程度。

1.1 前向传播

将第一层看成X=a(1),则信息前向传播的过程如下

X=a(1)→z(2)→a(2)→…→z(l)→a(l)=y

(1)

第l层神经元的加权输入及激活值为

z(l)=w(l-1)a(l-1)+b(l)

(2)

a(l)=f(z(l))

(3)

式中:f(z)表示激活函数,常用的激活函数有sigmoid、tanh和ReLU函数[19],本文使用ReLU激活函数[20]。

1.2 误差反向传播

误差反向传播的目的是通过调整网络的权重w和偏置b,使得总体损失(预测值与真实值的误差)变小,从而求得损失最小值时对应各连接层的w和b。

由梯度下降优化算法,得到

(4)

(5)

隐藏层误差为

(6)

当采用性能较为优越的ReLU激活函数[21]时,

(7)

1.3 参数更新

经过前向传播和误差反向传播,得到神经网络的权重w和偏置b为

(8)

(9)

随着神经网络的训练,w和b不断得到更新,当达到预设训练次数时结束训练。此时求得的w和b值为模型的最终参数,可用于模型的计算和预测。

TensorFlow是利用数据流图进行数值计算的开源平台,是一个面向深度学习算法的科学计算库[19]。本文使用Python语言,借助TensorFlow建立了深度神经网络,用来计算开孔沉箱的反射系数。

2 开孔沉箱反射系数预测模型

2.1 分析方法

图2 开孔沉箱结构示意图Fig.2 Sketch of structure of perforated caisson

图2为开孔沉箱结构示意图。开孔沉箱前水深为d,消浪室内水深为d1,基床上水深为d2,消浪室宽度为B,hm为沉箱基床高度,当hm=0时为暗基床。

开孔沉箱反射系数Kr的主要影响因素包括[4]

(10)

式中:L为入射波波长;H为入射波波高;p为沉箱前墙开孔率;q为消浪室内的相对水深,即消浪室内水深与沉箱前水深的比值。

在建立神经网络计算模型时,首先根据开孔沉箱反射系数的主要影响因素,确定输入层、输出层的神经元数量。然后确定隐藏层层数、隐藏层神经元数量、初始权重和偏置、损失函数、优化器以及学习率等参数。最后利用训练样本试验数据库进行训练。在训练过程中,需要比较神经网络预测值与试验值之间的误差和相关系数,当误差较大、相关系数较小时,重新调整各参数,反复训练直至满足精度要求。记录此时的权重w和偏置b的值,用于计算开孔沉箱反射系数。

2.2 训练样本和检验样本

暗基床上开孔沉箱反射系数的试验数据库来自文献Yoon等[22]、Kondo[2]、Bergannn[23]、Zhu和Chwang[24]、Carevic[25]、Shohachi等[26]、Garrido和Medina[13]、Tanimoto和Yoshimoto[4]、陈雪峰等[27]、马宝联[28],共计1223组试验数据。明基床上开孔沉箱反射系数的试验数据库来自文献Park等[29]、行天强[9]、夏志盛[10]。考虑到明基床上开孔沉箱反射系数的物理模型试验数据较少,在数据库中加入了部分经过物理模型试验验证的数值试验结果[30],共计456组试验数据。以上所有数据,入射波均为规则波,并且不发生越浪。各文献中的具体工况和模型参数见表1和表2。

表1 暗基床上开孔沉箱物理模型试验的试验条件和模型参数Tab.1 Experimental conditions and model parameters of physical model tests for perforated caissons on rubble-fill foundation

表2 明基床上开孔沉箱物理模型试验(数值试验)的试验条件和模型参数Tab.2 Experimental conditions and model parameters of physical model test (numerical simulation) for perforated caissons on rubble foundation

将开孔沉箱反射系数的试验数据分成训练样本和检验样本两部分。训练样本用来训练神经网络模型,检验样本用来检验训练后神经网络模型计算结果的可靠性。将暗基床和明基床上开孔沉箱反射系数的试验数据各预留一组检验样本,数量分别为122组和45组,为保证检验结果的合理性,该样本数据从全体试验数据中随机选取。

在利用神经网络模型进行计算时,为避免奇异样本值对计算结果的影响,需将输入数据进行归一化处理,转化为[0,1]区间上的值

(11)

式中:x为输入的试验数据;x′为归一化后的输入数据;xmax、xmin分别为试验数据的最大值和最小值。

2.3 输入层、输出层和隐藏层

输入层神经元的数量与实际数据的输入量密切相关。对于暗基床开孔沉箱,输入层有5个神经元,分别为B/L、d/L、H/L、p和q,输出层1个神经元,为反射系数Kr。明基床开孔沉箱,输入层共6个神经元,分别为B/L、hm/L、d/L、H/L、p和q,输出层神经元为反射系数Kr。

本文用于建立计算模型的数据量不是很庞大,因此在构建深度学习网络时,取隐藏层数量为2。以反射系数试验值与神经网络计算值之间的均方根误差(RMSE)为选择依据,采用试算法确定每个隐藏层的神经元数量。

表3给出暗基床上开孔沉箱神经网络的隐藏层神经元数量对预测结果的影响,可以看出:增加神经元数量可以减小均方根误差,但是当神经元数量超过一定值后,均方根误差随隐藏神经元数量的增多不再发生明显变化。因此,暗基床上开孔沉箱神经网络各隐藏层神经元数量均取15。

表4给出明基床上开孔沉箱神经网络的隐藏层神经元数量对预测结果的影响。考虑最优神经网络结构应在满足精度的前提下使用较少数量的神经元,将明基床上开孔沉箱反射系数神经网络各隐藏层神经元数量分别取为10和5。

表3 隐藏层神经元数量对开孔沉箱反射系数计算值均方根误差的影响(暗基床)Tab.3 RMSE for different numbers of hidden neuron for perforated caissons on rubble-fill foundation

表4 隐藏层神经元数量对开孔沉箱反射系数计算值均方根误差的影响(明基床)Tab.4 RMSE for different numbers of hidden neuron for perforated caissons on rubble foundation

2.4 其他参数设置

注:神经元数量:5个、15个、15个、1个、6个、10个、5个、1个图3 开孔沉箱反射系数神经网络结构示意图Fig.3 Neural Network structures for predicting the reflection coefficients of perforated caissons

初始权重和偏置需要随机生成,采用TensorFlow计算库中的tf.random_normal函数,按照正态分布初始化权重和偏置。考虑建立的是一个非线性系统,隐藏层选择ReLU非线性激活函数。当学习率过大时,损失函数变化速度快,容易越过极值点,低学习率虽然可以确保较好的局部极小值,但是收敛速度慢,综合考虑后将初始学习率η设为0.001,ReLU函数可在训练过程中主动改变学习率以适应损失函数梯度的改变。本文输出结果为确定的反射系数值,因此输出层不需要使用激活函数。

图3给出预测开孔沉箱反射系数的神经网络结构示意图。

3 计算结果验证与讨论

3.1 预测结果与样本值对比

在神经网络训练过程中,每次训练都随机选取85%的训练样本用来迭代计算,15%的训练样本用来测试模型。图4给出暗基床上开孔沉箱反射系数的神经网络训练结果。从图4-a可以看出,训练数据和测试数据的损失函数曲线基本重合,并且都很快降低到最小值,这表明该神经网络没有出现过拟合现象,同时也说明,仅靠增加训练次数并不能提高神经网络的性能。在实际训练过程中发现,初始权值和偏置对神经网络计算结果具有明显影响。本文的初始权值和偏置随机生成,需经过多次试验和比较才能获得满意的神经网络结构。图4-b给出神经网络计算结果与训练样本的对比,可以看出主要数据点都分布在y=x±10%包络线内,计算结果与训练样本总体符合良好,相关系数为0.864,均方根误差为0.092 7。

4-a 训练过程中损失函数的变化 4-b 神经网络训练结果图4 暗基床上开孔沉箱反射系数的神经网络训练结果Fig.4 Training results of Neural Network of Kr for perforated caisson on rubble-fill foundation

5-a 训练过程中损失函数的变化 5-b 神经网络训练结果图5 明基床上开孔沉箱反射系数的神经网络训练结果Fig.5 Training results of Neural Network of Kr for perforated caissons on rubble foundation

图5给出明基床上开孔沉箱反射系数的神经网络训练结果。图5-a表示训练过程中损失函数值随训练次数的变化情况,模型性能良好,未出现过拟合现象。图5-b给出了神经网络计算结果与训练样本的对比,两者总体符合较好,相关系数为0.916,均方根误差为0.052 6。

为进一步检验神经网络的可靠性,将训练好的神经网络计算结果与检验样本进行对比。

图6给出具体对比结果,图中横坐标表示反射系数的检验样本试验值,纵坐标表示反射系数的神经网络计算值。可以看出,计算值与检验样本值总体符合较好,暗基床和明基床开孔沉箱反射系数计算结果的均方根误差分别为0.082 2和0.0517,相关系数分别为0.860和0.921,表明本文方法可以合理预测开孔沉箱的反射系数。

6-a 暗基床开孔沉箱结构6-b 明基床开孔沉箱结构图6 神经网络计算值与检验样本对比Fig.6 Comparison between the Neural Network calculation value and test sample

3.2 与文献中已有计算方法对比

为了验证本文计算方法的适用性,利用文献中已有计算方法计算检验样本中适用工况的反射系数,并与神经网络计算结果进行比较。

对于暗基床开孔沉箱结构,采用Garrido和Medina[13]、戴冠英[31]、陈雪峰等[27]提出的计算方法。

Garrido和Medina[13]试验测量了开孔沉箱的反射系数,并通过神经网络训练,改进了Fuggzza和Natale[3]提出的反射系数计算公式

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为入射波的波数;ω为频率;l为孔口射流长度,近似等于开孔板的厚度;α为能量损失系数。

戴冠英[31]针对全开孔沉箱开展物理模型试验,利用最小二乘法,给出了规则波作用时开孔沉箱反射系数计算公式

(16)

陈雪峰等[27]通过开展物理模型试验,并利用最小二乘法,得到了局部开孔沉箱反射系数的计算公式

(17)

该公式的适用范围为:消浪室相对宽度B/L=0.063~0.270;相对水深d/L=0.170~0.354;波陡H/L=0.030~0.090。

图7给出了反射系数的神经网络计算结果与公式(12)、(16)、(17)计算结果的对比,图中横坐标表示检验样本值,纵坐标表示计算值。在计算过程中,只考虑各公式适用范围内的工况。公式(12)、(16)、(17)计算结果的相关系数分别为0.655、0.646、0.437,本文方法计算结果的相关系数为0.860。

图7 暗基床开孔沉箱反射系数不同方法结果对比Fig.7 Comparison of Kr results for perforated caissons on rubble-fill foundation

对于明基床开孔沉箱结构,行天强[9]、夏志盛[10]分别开展物理模型试验,利用最小二乘法,得到了开孔沉箱反射系数的计算公式。

文献[9]的计算公式

(18)

适用范围为:消浪室相对宽度B/L=0.063~0.265;基床相对高度hm/L=0.042~0.177;相对水深d/L=0.167~0.354。

文献[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给出了反射系数的神经网络计算结果与公式(18)、(19)计算结果的对比,图中横坐标表示检验样本值,纵坐标表示计算值。公式(18)、(19)计算结果的相关系数分别为0.668、0.765,本文方法计算结果的相关系数为0.921。

图8 明基床上开孔沉箱反射系数结果比较Fig.8 Comparison of Kr results for perforated caisson on rubble foundation

与文献中反射系数的计算方法相比可以看出,本文提出的计算开孔沉箱反射系数的神经网络方法是可行的,不仅提高了计算精度,而且扩大了各变量的适用范围,能同时计算全开孔沉箱和局部开孔沉箱的反射系数。

4 结论

本文基于深度神经网络建立了暗基床开孔沉箱与明基床开孔沉箱反射系数的预测模型。对于暗基床开孔沉箱,神经网络输入层神经元数量为5,两隐藏层神经元数量均为15,输出层神经元数量为1;对于明基床开孔沉箱,神经网络输入层神经元数量为6,两隐藏层神经元数量分别为10和5,输出层神经元数量为1。本文方法的反射系数计算结果与训练样本库、检验样本库的试验结果均符合良好。以检验样本库数据为依据,将本文计算方法与文献中已有方法的计算结果进行了对比,表明本文方法的适用范围更广。本文所建立的开孔沉箱反射系数预测模型可为工程设计提供重要参考。基于更多的物理模型试验数据训练样本,本文方法还可以扩展分析多消浪室结构等其他型式开孔沉箱的反射系数。

猜你喜欢

基床沉箱反射系数
防城港某码头工程椭圆形沉箱浮游稳定性研究及应用
可重构智能表面通信系统的渐进信道估计方法
垂直发育裂隙介质中PP波扰动法近似反射系数研究
填土容重对中低速磁浮基床厚度影响分析
路基基床表层级配碎石施工技术
重力式沉箱码头沉箱安装与施工问题分析
小型倾倒沉箱打捞扶正施工技术
岸线长度固定的沉箱精确安装方法
浅谈室内固结法计算地基基床系数
常州地铁水平基床系数取值探讨