一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度学习网络模型的钢轨焊缝监测方法与流程

2021-10-24 07:29:00 来源:中国专利 TAG:焊缝 钢轨 无损 监测 深度


1.本发明涉及无损检测技术领域,具体而言,涉及一种基于深度学习网络模型的钢轨焊缝监测方法。


背景技术:

2.钢轨焊缝作为钢轨中承接两个模块连贯性的组成部分,其健康状态与铁路运输的安全性密切相关。在铁路运输生产作业过程中,钢轨焊缝由于其人工焊接处的形状不规则特征,当列车通过时,轮轨关系产生的力无法在焊缝处均匀传导分散,导致钢轨焊缝部分位置受力严重。在长时间与高频率列车通过的情况下,轮轨关系产生的震动疲劳会直接导致钢轨焊缝受力严重部位出现疲劳裂纹损伤,随着裂纹损伤的加深,最终出现断轨现象。
3.由于铁路钢轨设计特征,轨腰部分受力不明显,不易出现裂纹疲劳损伤,当前铁路运输网中钢轨焊缝裂纹多出现于焊缝两端焊接根部,通常为垂直裂纹。随着钢轨使用过程中的疲劳加大,不同情况下裂纹呈现不同的长度与深度。根据钢轨构造与受力情况分析可知,裂纹出现部位一般为轨头底面、轨底顶面与轨底位置。轨底由于受力情况较为严重,一旦出现小型裂纹损伤,会快速演变为肉眼可辨的损伤程度,严重情况下将引发断轨事故。
4.在现代工业的无损探伤领域,对于焊缝结构的裂纹监测通常采用超声(ut)、磁粉(mt)、射线(rt)、渗透(pt)等常规无损检测方法。在钢轨焊缝探伤方法的选择上,各国采用的主要是超声探测。
5.为保证钢轨焊缝裂纹的可检测性,常规无损超声探测方法需要借助探伤车、探伤仪等设备不断在钢轨进行滑动才能实现裂纹损伤的,因此对于位置固定,范围较小的钢轨焊缝,需要通过不断在其上滑动才能实现裂纹的检测,超声探头的移动检测性让其无法固化到钢轨焊缝周围实现钢轨焊缝的持续结构健康监测,每次检测耗费人力物力。因此,一个针对钢轨焊缝的、可以探测小型裂纹的实时、精准、高效的钢轨焊缝裂纹损伤与结构健康监测技术对于保障铁路运输安全具有重要意义。
6.结构健康监测是针对某种特定结构提出的,可长期、持续、自动化地监测结构完整性,发现并定位缺陷,监测已存在缺陷的变化情况,甚至能预估结构使用寿命的一种方案。lamb波凭借其沿介质表面传播时能量损失较小的特性,可实现长距离探测,并对结构中微小缺陷具备较高灵敏度,因此被广泛应用于金属的结构健康监测(structure health monitoring,shm)中。对于钢轨焊缝的结构健康监测,lamb波通常具有较大的激活频率,较短的波长,这给与了 lamb波优秀的损伤检测分辨率,可以有效探测焊缝结构上的裂纹损伤,同时其较低的传播损伤,保证了lamb波可以对一定距离和范围内的焊缝结构进行监测,表明lamb波对钢轨焊缝的结构健康监测具有重要意义。


技术实现要素:

7.本发明旨在一定程度上解决上述技术问题。
8.有鉴于此,本发明提供了一种基于深度学习网络模型的钢轨焊缝监测方法,该基
于深度学习网络模型的钢轨焊缝监测方法对两个模块执行功能与输入输出进行描述,为保证模型具备高效的实时性,尽可能提高模型在生产环境中的执行效率,进而实现有效探测焊缝结构上的裂纹损伤。
9.为了解决上述技术问题,本发明提供了一种基于深度学习网络模型的钢轨焊缝监测方法,其特征在于,包括以下步骤:s1:对钢轨焊缝中lamb波结构进行分析;s2:在钢轨焊缝裂纹损伤上监测lamb波数据特征;s3:对抗生成网络的生成器和判别器结构设计两个阶段的深度学习网络模型,第一个阶段根据设计结构复杂、参数较多但可以有效提取与处理后数据特征的深度学习神经网络,以满足对输入数据深度特征提取的需求,第二阶段网络模型设计根据迁移学习中教师和学生理论设计出具备更为简单的网络结构模型,进而学习第一阶段网络的特征提取能力与指定数据输出能力;s4:获取mdcd在钢轨焊缝数据集上性能分析对比。
10.进一步,所述步骤s3包括:s31:对mdcds1的生成器与判别器网络结构设计原理进行阐述,同时标定了模型的输入输出数据类型与数据大小,并将生成器根据不同功能拆分为特征选择模块与模态分别模块,对两个模块执行功能与输入输出进行描述;s32:设计了参数规模与模型规模相比于mdcds1更小的 mdcds2,并标定了模型的输入输出数据类型与数据大小。同时,根据模型所执行的不同功能与不同数据输出类型,对两个阶段模型训练过程中的损失函数与优化器进行设计。
11.进一步,所述步骤s3还包括:s33:对两个阶段模型进行训练模型学习率、输入数据batch的设计以及对两阶段模型的训练,训练结果表明两个阶段模型在训练过程中不断以震荡方式趋于全局最优,同时模型训练过程loss曲线下降至趋于平缓时仍具备一定的loss下降空间,表明模型在训练过程模型不断收敛同时没有产生明显过拟合现象。
12.进一步,所述步骤s2中:模型的搭建的过程为搭建mdcds2,以训练好完成的mdcds1的输入输出以及阶段性输出特征张量为mdcds2训练过程中的输入输出,构建教师

学生网络结构。
13.进一步,所述步骤s1还包括:s14:探索了模型在相似任务之间进行迁移学习的可行性,并在搭建初始复杂模型的情况下讨论了在保证模型精度情况下对模型体量进行压缩的方法。
14.本发明的技术效果在于:由于对于包含关于钢轨焊缝不同健康状态的最内在信息的频率带没有普遍共识,因此值得从对应于不同频率带的一系列小波包系数中学习一组良好的特征;使用小波包系数矩阵作为卷积神经网络的输入,可以学习相邻频带上小波包系数之间的非线性关系。因此,mdcds1模型数据分析与特征提取部分以擅长图像处理的卷积神经网络为基础进行设计。此阶段模型中生成器负责进行数据特征的提取与数据时域低复杂度模态模量的生成,判别器负责进行损伤大小类型的判定与大小定位。
附图说明
15.图1是根据本发明的一种基于深度学习网络模型的钢轨焊缝监测方法的流程示意图;
16.图2是根据本发明的一种钢轨焊缝裂纹损伤mdcds1中fpn计算流程图;
17.图3是根据本发明的一种efficientnet基准模型示意图;
18.图4是根据本发明的一种depthwise卷积流程示意图;
19.图5是根据本发明的一种depthwise

conv2d卷积核通道维度的缩小示意图的5
×5×
1的特征张量;
20.图6是根据本发明的一种depthwise

conv2d卷积核通道维度的缩小示意图的5
×5×
128的特征张量;
21.图7是根据本发明的dropout与dropconnect的区别示意图;
22.图8是根据本发明的mdcds1的mbconv模块拓扑图;
23.图9是根据本发明的在目标分割与场景描述任务中不同模型结构特征提取能力参数

准确率指标示意图;
24.图10是根据本发明的mdcds1特征选择网络拓扑结构图;
25.图11是根据本发明的mdcds1模态分解网络拓扑结构图;
26.图12是根据本发明的mdcds1判别器d的网络拓扑结构示意图;
27.图13是根据本发明的第二阶段搭建模型网络拓扑结构图;
28.图14是根据本发明的两个阶段模型训练过程中学习率随训练轮数变化曲线;
29.图15是根据本发明的mdcds1四项任务500轮训练loss损失曲线;
30.图16是根据本发明的mdcds1生成器、判别器与整个模型500轮训练loss 曲线;
31.图17是根据本发明的mdcds2四项任务500轮训练loss损失曲线;
32.图18是根据本发明的mdcds2生成器、判别器与整个模型500轮训练loss 曲线图。
具体实施方式
33.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
34.钢轨焊缝结构健康监测的mdcd模型搭建与训练。
35.钢轨焊缝中lamb波数据分析的深度学习神经网络结构搭建分为两个阶段。第一阶段模型搭建模态分解与裂纹监测模型阶段1(modal decomposition andcreck detection stage 1,mdcds1),第二阶段模型搭建模态分解与裂纹监测模型阶段2(modal decomposition and creck detection stage 2,mdcds2)。
36.在模型结构设计的第一个阶段:对模型特征提取层进行特殊设计,保证模型可以较大程度地有效学习到预处理后的钢轨焊缝裂纹损伤数据特征,为后续的模型中的特征分析层降低压力,保证模型整体具有强大的拟合能力。同时 mdcds1设计为保证模型功能的离散化,使模型不同部分有针对性地执行特定的钢轨焊缝裂纹损伤监测功能,模型第一阶段的设计参考钢轨焊缝gan的模型设计结构,分阶段执行不同的功能。
37.由于模型第一阶段对于钢轨焊缝裂纹损伤数据特征提取部分的精细化设计,将导致模型结构复杂,参数众多,在性能与存储空间上为模型的实际部署环境中的高性能图形计算单元(graphic processing unit,gpu)增大了压力。因此,设计了mdcds2的搭建方案,mdcds2侧重于整体模型的体量设计,在保证模型性能的前提下,压缩模型体量,减少模型参数,使模型在实际钢轨焊缝裂纹损伤监测实验环境下具备较高的运行速度与运行准确率。
38.第一阶段模型mdcds1设计,根据用于钢轨焊缝裂纹损伤监测模型训练的数据预处理结果可知,预处理后的lamb波数据均以小波变换后的时

频二维矩阵的形式表示,同时不
同通道的lamb波数据叠加,形成不同的数据张量。使用小波包系数矩阵作为深度学习卷积神经网络的输入用于损伤鉴定有以下两个优点:由于对于包含关于钢轨焊缝不同健康状态的最内在信息的频率带没有普遍共识,因此值得从对应于不同频率带的一系列小波包系数中学习一组良好的特征;使用小波包系数矩阵作为卷积神经网络的输入,可以学习相邻频带上小波包系数之间的非线性关系。因此,mdcds1模型数据分析与特征提取部分以擅长图像处理的卷积神经网络为基础进行设计。此阶段模型中生成器负责进行数据特征的提取与数据时域低复杂度模态模量的生成,判别器负责进行损伤大小类型的判定与大小定位。
39.生成器搭建,mdcds1中,生成器(generator,g)负责钢轨焊缝裂纹损伤数据特征的提取与lamb波低复杂度模态分量的生成,根据生成器网络的不同功能,将生成器划分为两个子网络:特征提取网络、模态分解网络。特征提取网络实现对预处理后钢轨焊缝裂纹损伤lamb波数据的深度特征提取,模态分解网络利用提取到的深度特征,对数据进行模态分解。
40.根据模态分解网络需要进行时序序列数据生成的功能需求,生成器采用 seq2seq模型中的encoder

decoder模型结构,其中特征提取网络为encoder,负责对输入钢轨焊缝裂纹损伤数据进行高维特征提取(特征编码);模态分解网络为decoder,负责对提取后的高维数据特征进行解码,以此生成分解后lamb 波低熵模态分量。encoder

decoder网络通过自由选择搭配,可实现4种组合类型:卷积encoder

递归decoder、卷积encoder

卷积decoder、递归encoder
‑ꢀ
递归decoder、递归encoder

卷积decoder。钢轨焊缝裂纹损伤数据预处理分析后所得生成器的输入为矩阵数据,本质与图像相同,因此对于生成器中 encoder的选择采用卷积神经网络。同时,由于针对一个lamb波数据的输入,生成器需要同时生成多个低熵模态分量的生成,递归神经网络虽然在时序序列生成领域具有天然优越性,但因其特殊性,无法高效实现多个时序序列的同时生成,因此生成器的decoder同样采用卷积神经网络来执行模态分解任务。
41.特征选择网络,特征选择网络的主要功能为提取并选择时

频预处理后的钢轨焊缝裂纹损伤lamb波数据深度高维特征,并使提取的特征包含不同分辨率的时

频特征信息。其输入为钢轨焊缝裂纹损伤预处理后的模型切片时

频二维数据特征矩阵,输出为从输入数据中提取到的高维数据特征张量。因此,特征选择网络需要对输入数据进行不同尺度的特征提取,根据此需求,特征选择网络采用金字塔特征来实现对不同尺度的特征的提取。
42.金字塔特征特提取需要借助特征金字塔网络(feature pyramid network, fpn)进行生成。fpn是解决图像语义识别、语义分割任务下高效提取不同解析度图像特征的问题所提出的网络基础结构。fpn算法同时利用低层特征高分辨率和高层特征的高语义信息,保证网络可以同时获取图像中高像素值大物体和低像素值小物体的金字塔特征信息。其原理为下采样原理,通过对输入图像或数据特征矩阵进行不同尺度(scale)的下采样,实现对不同尺度高维特征的提取。
43.fpn在钢轨焊缝裂纹监测mdcds1中结构如图2所示,在mdcds1中,fpn 通过三层自下而上(botton

up pathway)的路径将钢轨焊缝裂纹损伤数据特征降采样到不同的层次来实现其功能。
44.假设钢轨焊缝裂纹损伤高维图像特征(后文简称:特征张量,feature map) 尺寸为n
×
h
×
w
×
c,其中n表示输入特征张量批数量,h
×
w表示输入特征张量维度(一般情况下h==w),c表示输入特征张量通道数,则如图2所示3层fpn 自下而上路径输出的特征张量尺
寸分别为n
×
h/2
n
×
w/2
n
×
c1、n
×
h/2
n 1
×
w/2
n 1
×ꢀ
c2、n
×
h/2
n 2
×
w/2
n 2
×
c3,通道c的下标表示该特整张量为网络第n层的输入,最底层为第1层。不同层输出的特征张量每一点数据特征可代表最初输入特征张量中的2
1 l
×21 l
范围内的数据特征,其中l表示层数。三层特征张量不同尺度的分辨率保证了fpn可以生成包含不同大小像素特征的不同分辨率钢轨焊缝裂纹损伤特征张量。然后fpn使用横向连接(lateral connection),通过自上而下(top

down pathway)的路径连接不同层次的所有特征图,将三层特征张量分别变换为n
×
h/2
n 2
×
w/2
n 2
×
16c1、n
×
h/2
n 2
×
w/2
n 2
×
4c2、n
×
h/2
n 2
×
w/2
n 2
×
c3,并在通道数维度进行叠加,可得n
×
h/2
n 2
×
w/2
n 2
×
(16c1 4c2 c3)的特征张量,保证fpn算法所得最终钢轨焊缝裂纹损伤特征张量的分辨率一致性,便于向接下来的网络继续传递。基于这一理论,fpn可以从不同层次的输出中得到不同层次的金字塔特征图。这些特征图可以提供不同图像感受野(reception field) 下的细粒度特征,分类层可以很容易地利用它们对输入图像中不同尺度像素的钢轨焊缝裂纹损伤进行检测。
45.小波变换预处理后的钢轨焊缝裂纹损伤时

频特征矩阵包含相对弹性的时间尺度特征信息,但依旧无法囊括具有较长时间关联性的数据特征。通过fpn 提取到的进一步采样压缩后的钢轨焊缝裂纹损伤深度高维特征,更有助于模型对lamb波信号中具备“相位关联度”的特征进行分析。与此同时,为了减少特征选择网络的nop和flops时尽可能保持高性能的特征提取能力。特征选择网络采用由tan,m等人提出的efficientnet架构,该网络已经展现了最先进的图像特征提取能力:在不同类型的特征提取任务中,以更小的nop展现出更强的特征提取能力。
46.efficientnet系列模型都是在基础模型(baseline)的基础上进行缩放的, baseline结构如图3所示,图中mbconv_n中的n表示该mbconv模块的的重复次数。
47.baseline一开始包含一个卷积层,内核大小为3,输出通道为32,分辨率为224
×
224,并在卷积层之后添加几个mbconv模块。这种层层变化的积木结构是由计算机不借助模型尺寸等超参数的情况下在给定的模型尺寸搜索空间中探索所得。
48.图3所展示的efficientnet基准模型结构图中,efficientnet中的mbconv 模块分为stem层,用于将上层提取获得的钢轨焊缝裂纹损伤特征张量进行通道数的尺度变换,保证其通道数始终为8的倍数,例如,当输入特征张量通道数为25时,则stem层将通道数进行尺度变换为24。stem层的作用为保证stem 层输出的特征张量通道数维度始终为23的n倍,使网络在gpu中进行浮点运算时实现最大效率。同时mbconv模块采用depthwise

conv2d卷积层,实现在保证矩阵卷积结果尺寸相同的情况下,降低卷积核参数,减小模型参数规模,提高模型运算效率的效果。depthwise

conv2d计算包括两个步骤:depthwise卷积计算和1x1卷积计算。
49.假设输入特征张量尺寸为7
×7×
3,不考虑其batch数量。首先, depthwise

conv2d对输入特征张量进行depthwise卷积。在2d卷积中, depthwise

conv2d并非使用一个尺寸为3
×3×
3的单一卷积核,而是分别使用 3个尺寸为3
×3×
1卷积核。每个卷积核皆与输入层的1个单通道(尺寸为 7
×7×
1)卷积,各个卷积操作均提供一个大小为5
×5×
1的特征张量作为卷积结果,将所有5
×5×
1的特征张量在通道数维度进行堆叠,可创建并获得一个 5
×5×
3的特征张量。通过将传统卷积层中3
×3×
3的卷积核压缩为3
×3×
1, depthwise

conv2d实现了卷积核空间维度的缩小,其计算流程示意图如图4所示。
50.depthwise

conv2d实现通道维度拓展的流程示意图如图4和图5所示。获得5
×5×
3的特征张量后,depthwise卷积仅实现了输入特征张量长宽维度的变换,但通道维度仍然为3。为扩展数据的维度特征,depthwise

conv2d使用核大小为1
×1×
3的1
×
1卷积。将5
×5×
3特征张量与每个1
×1×
3卷积核进行卷积,均可得到一个大小为5
×5×
1的特征张量。因此,在应用128个1
×1×
3 卷积核进行卷及操作后,将结果在通道维度进行堆叠可得大小为5
×5×
128的特征张量,实现特征张量的通道数变换。
51.通过上述计算,depthwise

conv2d利用一个尺寸为3
×3×
1的卷积核与一个尺寸为1
×1×3×
128的卷积核,实现传统卷积神经网络中一个尺寸为 3
×3×3×
128卷积核所达到的同样的空间、通道维度变换效果,在保证卷积效果的前提下,卷积核参数压缩约9倍。当需要使用长宽分辨率更高的卷积效果时,depthwise

conv2d的卷积核参数压缩率呈指数增长。同时,mbconv模块将传统神经网络中常用激活函数relu替换为由google brain团队提出的swish 激活函数,其函数式如下:
52.swish(x)=x
·
sigmoid(βx)#(4

1)
53.式中,β——可训练超参数。
54.swish函数具备无上界有下界、平滑、非单调的特性,其梯度可变性使swish 激活函数在大量神经网络中表现出优于激活函数relu的效果。
55.mbconv卷积块也使用了与resnet中提出的残差链接相似的结构,不同的是在短链接部分使用了se层。mbconv模块还摒弃了dropout方法,采用 dropconnect来降低模型的拟合能力,防止模型过拟合。两种方法的主要不同之处在于dropconnect不会随机丢弃隐藏层的输出,而是随机丢弃隐藏层的输入。二者之间的区别如图8所示,在深度神经网络中dropconnect与dropout 的目的都是防止模型产生过拟合的情况,相比之下dropconnect的效果会更好一些。
56.借助mbconv模块,efficientnet利用可学习的参数α,β,γ探索baseline 模型在模型深度、模块宽度与模块分辨率这三个维度的缩放比率。通过对 baseline进行三维缩放,探索出efficientnet

b0~efficientnetb7这7个参数体量不同的最优模型结构,在该结构下的模型具有参数更低,计算次数更少,模型特征提取和泛化性能更高的优点。图7展示了mbconv模块的结构与残差链接拓扑图。
57.图9对比了了efficientnet、vggnet与resnet在目标分割与场景描述任务中不同模型结构下的特征提取能力“性价比”指标。
58.根据模型在执行大型特征提取任务中的性价比指标,钢轨焊缝裂纹损伤特征选择网络以efficientnet

b3为主要基础网络,融合fpn算法,构建参数较少、泛化能力较高的网络模型。特征选择网络的网络拓扑结构图如图10所示,根据3.4.4的数据预处理流程可知,c_in为19
×
3=57,模型训练过程中,根据 fpn参数规律,设置c0、c1、c2、c5分别为64,128,256,512,c_out为512。
59.图10mdcds1特征选择网络拓扑结构图。
60.由于mdcds1主要负责对输入钢轨焊缝裂纹损伤数据特征分布的高精度拟合,因此对于网络规模与运算实时性要求不高,故而特征选择网络采用3层fpn 进行预处理后的lamb波时

频图像特征提取,增大网络提取特征的时

频关系依赖性,减轻模态分解网络的特征分析压力。3层fpn要求网络的输入特征张量在分辨率维度大于m
×24
,其中m为任一整
数。
61.模态分解网络利用特征选择网,络提取到的钢轨焊缝裂纹损伤高维特征张量,进行特征分析,并根据分析后的结果对原始数据进行lamb波模态分解。因此,模态分解网络需要具备对钢轨焊缝裂纹损伤高维特征张量进行概括归纳的能力。
62.为保证模态分解网络可以尽可能具备对特征选择网络选择后的钢轨焊缝裂纹损伤高维数据特征进行综合分析的“全局观”,模态分解网络需要对输入特征张量的分辨率(h
×
w)与通道数(c)维度的数据进行合理特征归纳,因此模态分解网络的设计分别凸显了对分辨率维度的特征分析与对通道数维度的特征分析。图11展示了特征选择网络的拓扑结构图,图中特征归纳模块在本文中重复3次。
63.mdcds1中,判别器(discriminator,d)作为模型末端决策网络,主要承担钢轨焊缝裂纹损伤鉴定与定位的功能。在训练阶段,判别器d的输入为生成器 g中特征选择网络输出的钢轨焊缝裂纹损伤高维特征张量,输出分别为裂纹数量、裂纹的概率矩阵标签以及对应位置的裂纹深度。针对不定数量的钢轨焊缝裂纹及对应位置的结果生成,需要判别器对输入的钢轨焊缝裂纹损伤高维特征张量进行充分解析,因此判别器d需具备较强的特征解析能力,能够对高维特征张量中包含的裂纹信息进行有效提取分析。
64.针对判别器d的功能执行需求,对判别器d的特征分析网络结构设计参考现有相对成熟的特征分析网络结构vggnet和inception,网络完全采用1
×
1和 3
×
3卷积进行特征分析,利用1
×
1卷积配合不同的卷积步长替代池化操作以提升模型性能。判别器d的网络拓扑结构。
65.由特征选择网路产生的高维钢轨焊缝裂纹损伤特征张量输入判别器d后,进入特征压缩网络,并重复n次,在本文网络模型中,n=3。由特征压缩网络产生的压缩后的lamb波特征张量分别通过卷积核大小为1
×
1的卷积层,对特征张量的通道维度进行调整,并将调整后的特征张量进行进一步维度调整(reshape),实现判别器对裂纹损伤不同指标的输出。
66.通常情况下钢轨焊缝出现一条损伤裂纹后,钢轨焊缝在继续使用过程中所受到的疲劳应力将不断加剧已出现裂纹的大小与深度,只有特别情况下(如外力受损、焊接质量问题等)会产生第二条疲劳损伤裂纹,因此判别器d针对单一钢轨焊缝的裂纹损伤,产生最多两条裂纹的损伤概率矩阵裂纹深度矩阵与裂纹位置矩阵损伤概率矩阵表示两条疲劳裂纹出现的概率,完美情况下有损为[1,0],无损为[0,1];裂纹深度矩阵表示当对应裂纹损伤概率大于阈值时,该裂纹损伤的深度;裂纹位置矩阵表示当该位置裂纹存在概率大于阈值时,裂纹损伤的位置概率矩阵标签。
[0067]
第二阶段模型mdcds2搭建,mdcds1搭建为满足对钢轨焊缝裂纹损伤lamb波预处理后二维时

频特征矩阵的充分特征解析,需要具备较大的模型规模与较多的参数。因此搭建出来的模型具有参数众多、解析力强、拟合力强、准确率高,但运行效率低下的特点。过低的运行效率会导模型无法有效部署于钢轨焊缝裂纹损伤监测生产试验环境中。因此,针对模型运行效率问题,借助模型蒸馏迁移学习理论,搭建mdcds2,以训练好完成的mdcds1的输入输出以及阶段性输出特征张量为mdcds2训练过程中的输入输出(soft target),构建教师

学生网络结构,使得更加简单、nop和flops更少的学生模型也能够具备接近于教师网络的钢轨焊缝裂纹损伤特征提取与分析能力。
[0068]
针对mdcds1的分模块搭建模式,mdcds2的搭建依旧采用同样的模块划分方式,将mdcds2划分为生成器网络(特征选择层、模态分解层)与损伤状态判别网络,模型整体输入为小波变换后切片的钢轨焊缝裂纹损伤二维时

频特征矩阵,输出为特征选择层产生的钢轨焊缝裂纹损伤高维特征张量,模态分解层产生的低熵模态分量。以及损伤状态判别网络产生的钢轨焊缝裂纹概率矩阵、钢轨焊缝裂纹深度矩阵、钢轨焊缝裂纹位置矩阵。
[0069]
mdcds2搭建如图13所示:第二阶段所搭建的模型相比于第一阶段,仅针对于mdcds1中生成器的两个模块进行网络压缩设计,迁移学习中的教师

学生结构保证了学生网络的学习任务仅是拟合教室网络的数据分布规律,减去了网络对于原始钢轨焊缝裂纹损伤数据特征提取的压力,因此mdcds2将原有的负责图像金字塔网络与模态分解网络均压缩为仅包含5层mbconv和conv的小型网络,在保证模型学习与拟合能力的前提下对网络的规模压缩。第二阶段的模型中,损伤状态判别网络仍沿用第一阶段中的判别器网络结构。经过压缩后的生成器网络参数由mdcds1的4.2m减少到了0.75m,体积压缩了约6倍。
[0070]
mdcd模型损失函数与优化器设计,在进行模型训练过程中,模型的迭代效果与数据分布拟合度均与网络模型的优化器(optimizer,op(model))和损失函数(loss function,loss(x,y))相关。
[0071]
网络模型的优化器用于计算网络模型中参数的梯度下降值,并更新影响模型训练和模型输出的网络参数,以逼近或达到全局最优值,从而达到最小化(或最大化)模型中不同钢轨焊缝裂纹损伤监测任务的损失函数loss(x,y)。损失函数则是通过计算模型生成钢轨焊缝裂纹损伤数据的分布与钢轨焊缝裂纹损伤训练数据原始分布之间的距离,并将两种数据分布之间的差异信息通过优化器 op(model)反馈给网络模型中各层的参数,实现对模型的参数更新,从而使模型逐渐逼近最优。
[0072]
损失函数设计,网络模型的损失函数作为衡量网络学习钢轨焊缝裂纹损伤监测效果的直接评价指标,对网络模型的训练效率与效果起到至关重要的对用。针对网络模型不同类型的学习任务,需要采用不同的损失函数对模型的数据进行误差分析。当模型执行回归/拟合任务时,均方误差(mean square error,mse) 是作为模型拟合效果的良好评价指标,可以精准地衡量模型输出与实际结果之间的均方差距离。交叉熵(cross entropy)损失函数通常在分类问题或逻辑回归中用于计算模型输出数据分布与实际数据分布之间的差异,属于信息论中的一个重要概念。
[0073]
第一阶段网络模型损失函数设计,第一阶段网络模型输出包含四个部分: lamb波低熵模态分量、钢轨焊缝裂纹概率矩阵、钢轨焊缝裂纹深度矩阵和钢轨焊缝裂纹位置矩阵。四种类型的模型输出需要在数据集层面保证与训练数据的分布一致性。生成对抗网络的损失函数的描述,其本质是对两种数据分布js 散度的计算,因此对于第一阶段网络模型损失函数的设计均参照js散度的计算模式,每个损失函数的本质为js散度的一个特殊化实例。
[0074]
针对生成器产生低熵模态分量的损失函数设计,主要用与判断生成模态分量与原始模态分量之间的距离,本质是判断两数字序列之间的相似度,因此对于模态分量的损失函数设计如式(4

2)所示,针对模态分量损失函数的第一项设计使用判断数字序列相似度的值方差(value square deviation,vsd),第二项设计使用归一化点积比(normalization dot product ratio,ndpr):
[0075][0076]
式中,x——生成器产生的模态分量序列;
[0077]
y——真实模态分量序列;
[0078]
n——数字序列的长度。
[0079]
针对判别器产生的钢轨焊缝裂纹概率矩阵,根据矩阵的生成方式,可将最优情况下生成两裂纹存在概率的结果看成标准的二分类问题,针对二分类的损失函数可采用逻辑回归中常用的二值交叉熵(binary cross entropy,bce)作为损失函数,如式(4

3)所示:
[0080][0081]
式中,x——模型生成裂纹概率向量;
[0082]
y——真实裂纹概率向量;
[0083]
n——最大裂纹损伤个数,本文为2。
[0084]
针对判别器产生的钢轨焊缝裂纹深度矩阵,其本质为对裂纹深度函数的回归,属于非线性拟合的一种,采用经典的mse求解预测深度与真实深度之间的欧氏距离,即可达到对模型生成数据与真实数据之间差异的判断,损失函数如式(4

4)所示:
[0085][0086]
式中,x——模型生成裂纹深度向量;
[0087]
y——真实裂纹深度向量;
[0088]
n——最大裂纹损伤个数,本文为2。
[0089]
针对判别器产生的钢轨焊缝裂纹位置矩阵,其本质是对数值矩阵生成分布的拟合,需要对模型生成裂纹位置矩阵的数据分布与真实裂纹位置矩阵数据分布之间的距离进行计算与评价。同时,矩阵之间相似度的计算与图像相似度计算具备相同本质,通常情况下对于图像之间相似度的判别方法采用欧氏距离,即mse损失函数可实现对判别器产生的裂纹位置矩阵的损失计算,公式如(4

5) 所示:
[0090][0091]
根据上述损失函数设计,汇总可得第一阶段网络模型的整体损失函数为:
[0092]
loss=loss
imfs
loss
binary
loss
depth
loss
loc
λ1r1 λ2r2#(4

6)
[0093]
其中r1、r2为损失函数的正则化项,分别为l1正则化项与l2正则化项,其作用为通过对模型参数的约束,降低模型方差,防止模型过拟合。其中,l1正则化可以通过稀疏化来降低模型复杂度,使模型更容易获得稀疏解,l2正则化可通过降低参数值的大小来降低模型复杂度,防止模型参数数值过大出现过拟合现象。λ1与λ2为超参数,用于决定正则化项在损失函数中的权重。正则化项其表达式如式4

7~4

8所示:
[0094]
r1(θ)=σ‖ω‖1#(4

7)
[0095][0096]
式中,θ——网络中参数的集合;
[0097]
ω——具体的单个参数值;
[0098]

·
‖——范数计算,‖
·
‖1为1范数,‖
·
‖2为2范数。
[0099]
(2)第二阶段网络模型损失函数设计
[0100]
第二阶段网络模型的输出包含:特征选择层输出的高维特征张量、模态分解层产生的低熵模态分量与损伤状态生成网络产生的三类钢轨焊缝裂纹损伤矩阵。针对低熵模态分量与三类钢轨焊缝裂纹损伤矩阵的损失函数目标,其本质与第一阶段网络的损失函数目标相同,因此采用相同的损失函数设计方案。
[0101]
由于特征选择层产生的高维特征张量,包含了较多的数据特征,针对高维特征张量的损失函数与图像风格迁移学习中针对gram矩阵损失计算具有相同的训练目标:输出数字矩阵与期望数字矩阵之间的差异值尽可能的小。根据图像风格迁移学习中gram矩阵的损失函数计算方式可知其损失函数设计为l2正则化损失函数,因此对于特征选择层产生的高维特征张量,同样采用l2正则化损失函数,当生成高维特征张量的尺寸为n
×
n
×
c时,其损失函数计算公式如式 (4

9)所示:
[0102][0103]
式中,x——学生模型生成的高维特征张量;
[0104]
y——教师模型生成的高维特征张量;
[0105]
n——高维特征张量的分辨率;
[0106]
c——高维特征张量的通道数。
[0107]
因此mdcds2的整体损失函数为:
[0108]
loss
total
=loss
imfs
loss
binary
loss
depth
loss
loc
loss
tensors
λ1r1 λ2r2#(4

10)
[0109]
网络优化器设计,网络优化器在网络模型训练过程中将损失函数计算所得模型输出损失进行梯度求导,利用梯度下降法将损失误差方向传播,并对相应的模型参数进行更新,以实现模型逐渐逼近局部或全局最优解。不同的网络优化器采用不同的梯度计算策略与梯度更新策略,较为常见的梯度下降优化器有 sgd,rmsprop,adagrad,adadelta,adam等,其中rmsprop,adagrad,adadelta, adam优化器会针对模型训练过程中的训练轮次与训练批次对学习率进行自适应调整,当数据为稀疏数据时,需要更快的收敛速度,此时会加大学习率。训练深度复杂神经网络时,自适应优化器算法可以提升训练过程中的效率与精度。
[0110]
第一阶段网络模型具备复杂的模型规模与参数规模,同时执行钢轨焊缝裂纹损伤数据特征提取、钢轨焊缝裂纹损伤特征压缩与钢轨焊缝裂纹损伤特征解析的任务。同时,mdcds1与mdcds2均需要执行复杂的任务,对于模型的训练优化过程中,极易陷入针对某项钢轨焊缝裂纹损伤监测任务的最优、但针对全局任务的局部最优点。因此,对于第一阶段与第二阶段网络模型训练过程中采用的网络优化器,需要具备良好的跳出局部最优点的能力,针对以上考虑,本文采用nadam优化器作为两个阶段模型训练过程中的优化器。nadam优化器的计算过程可拆分为adagrad momentum nesterov momentum计算过程与原理的组合。
[0111]
sgd、rmsprop等方法均只针对神经网络中的参数集合θ进行优化的,adagrad 则属于一种针对学习率的优化方法,并引入了参数h。adagrad会根据模型距离最优解的距离为每一个权重ω适当的调整学习率。其计算过程如式(4

11)~(4

12) 所示。
[0112][0113][0114]
式中,l——模型在第n轮训练的loss;
[0115]
θ
n
——第n训练后模型的权重;
[0116]
η——学习率;
[0117]
δ——用于数值稳定的常数,通常为10
‑8;
[0118]

——矩阵逐元素相乘计算;
[0119]
——偏导计算。
[0120]
在adagrad计算过程中,h中保留了以往全部权重的一个平方和,在更新权重时,步伐大小取决于学习率η和这就意味着在权重的更新中,变动大的权重ω就会有较大的h,而较大的h则会使变小,相当于减小了学习率。虽然adagrad引入了对学习率的优化与自适应,但当模型优化至局部最优或鞍点时,优化器梯度下降时产生值为0的梯度,无法使模型跳出鞍点或局部最优,导致模型无法达到最优。
[0121]
针对adagrad的0梯度问题,adam算法在adagrad基础上引入了momentum 动量的概念。momentum动量为模型训练过程中每次梯度求导时提供一个二阶导作为动量,当梯度为0时,momentum动量可以为模型优化梯度提供一个“惯性”,这个惯性在一定情况下可以帮助模型跳出鞍点和局部最优,继续朝着全局最优进行优化。基于adagrad的计算公式,adam的计算公式如下:
[0122][0123][0124][0125][0126]
式中,η
n
——第n轮训练时的学习率;
[0127]
——第n轮训练时的一阶矩变量,初始化为0;
[0128]
——第n轮训练时的二阶矩变量,初始化为0;
[0129]
β1——一阶矩估计衰减因子,一般为0.9;
[0130]
β2——二阶矩估计衰减因子,一般为0.999;
[0131]
adam优化器添加了momentum动量后,可以一定程度上避免模型陷入鞍点或局部最小值,但当模型陷入鞍点或局部最优时,adam所提供的梯度二阶导动量并不能有效选择合适的方向来为模型的优化路线提供跳出鞍点或局部最优的“惯性”。
[0132]
钢轨焊缝裂纹损伤监测中采用的nadam针对adam的不足,引入了nesterov 加速梯度(nesterov accelerated gradient,nag)的概念,将nag与adam 结合起来。nag是一种
momentum算法的变种,其核心思想会利用“上一步的梯度值”确定“这一步的梯度值”,此处“上一步的梯度”并非真实用于模型前一轮训练的梯度值,而是指仅根据动量项更新后位置的梯度。结合adam 计算公式,nadam优化器进行网络参数迭代时其数学计算表达式如(4

17)所示,nadam算法主要就是将nag来替换原来的adam中的传统动量,使模型在陷入鞍点或局部最优时,动量提供的“惯性”具备一定的方向性,这个方向性与上一轮模型优化梯度方向相关,其关联程度受关联因子γ来决定。
[0133][0134]
式中,γ——上一轮训练对本轮nag的影响因子,范围为(0,1]。
[0135]
nadam作为mdcds1与mdcds2训练过程中的优化器,可以有效帮助模型脱离局部最优点,增大模型达到全局最优的概率。
[0136]
mdcd模型训练,钢轨焊缝损伤多出现于焊缝两端焊接根部,通常为垂直裂纹。随着钢轨使用过程中的疲劳加大,不同情况下裂纹呈现不同的长度与深度。同时根据钢轨构造与受力情况分析可知,具有监测意义的裂纹出现部位一般为轨头底面、轨底顶面位置。因此钢轨焊缝裂纹出现情况的数据分布较大,实验采集数据很难做到对裂纹情况数据分布的有效覆盖。针对训练数据无法满足完整样本分布的情况,为保证模型能够尽可能实现对钢轨焊缝裂纹损伤分布的学习,对于mdcds1与mdcds2的训练,采用one

shot learning的训练技术。
[0137]
one

shot learning旨在当模型的钢轨焊缝裂纹损伤训练样本很少,甚至只有一个的情况下,仍旧可以学习到钢轨焊缝裂纹损伤训练样本数据集中的数据特征分布,并根据已有训练样本生成数据映射关系,保证模型在工作情况中遇到类似已有数据或训练样本数据较少的裂纹损伤情况时,仍旧能够实现对损伤的监测与定位。神经网络擅长从结构化的复杂/高维数据(例如图像)中提取特征。当给预训练的神经网络提供与one

shot learning采用的相似训练数据集时,网络模型可以从这些相似数据中学习一些有用的数据特征,并且这些特征可以直接用于模型的进一步分析而无需进行调整。本质上,one

shotlearning属于迁移学习的一种。
[0138]
在模型训练过程中,需要实时监测模型的训练指标,判断模型收敛情况。这样可以及时有效判断模型出现不受敛或过拟合情况,并针对具体情况作出具体判断。当模型不收敛时,通常情况下需要增大模型的初始学习率、增大每轮训练数据batch以及对模型结构进行调整;当模型出现过拟合现象时,应当降低每轮训练数据batch、在模型中添加罚数更高的正则化项以及对训练过程中的模型进行剪枝操作。
[0139]
图14展示了第一阶段与第二阶段模型训练过程中生成器与判别器学习率曲线随训练轮数(epoch)变化曲线。从图中可以看出,学习率曲线在模型进行训练的前期阶段呈现快速递增,目的是为了在训练早期以较大的学习率帮助模型进行大范围的参数搜索,避免模型在训练开始阶段便陷入局部最优。同时,随着训练轮数的增大,后续学习率持续降低,以此保证当模型优化至最优解附近时,较低的学习率可以保证模型在最优解附近震荡而非跳出最优解范围。
[0140]
从上图中仍可直观看出,生成器学习率曲线相较于判别器学习率曲线存在时延。时延的目的是因为在训练过程中,判别器产生的loss通过优化器的梯度下降过程中,同样
可以对生成器中的特征选取网络的参数产生梯度,并对其更新。同时模型梯度下降参数更新的顺序为:首先更新与生成器输出相关的参数,再更新与判别器输出相关的参数,二者皆会对特征选择网络进行更新。
[0141]
为保证在训练前期判别器不会因为生成器对于特征选择网络的参数更新力度较大,而快速陷入局部最优,因此前期判别器的学习率需大于生成器的学习率;后期当判别器达到最优解附近并震荡时,应保证判别器震荡过程中对特征选择网络的参数改变不会导致生成器无法到达最优解附近,因此训练后期判别器学习率稍大于生成器学习率。
[0142]
模型训练采用gpu训练,gpu借助simd(single instruction multiple data) 架构,可以利用上千个核同时进行并行浮点运算。钢轨焊缝裂纹损伤监测深度学习卷积神经网络中主要运算为矩阵之间的浮点相乘,因此gpu的simd架构可以高效实现模型的训练与测试。本文进行模型训练时采用nvidia tesla p100 型号gpu,其单精度浮点运算速度为10.6t flops,双精度浮点运算速度为5.4t flops,显存为16gb。
[0143]
第一阶段网络规模较大,参数较多,对于钢轨焊缝裂纹损伤数据特征的拟合能力较强,因此针对第一阶段网络的训练分为两个阶段:钢轨焊缝裂纹损伤吸波胶仿真数据集进行预训练、实验环境下钢轨焊缝裂纹损伤真实数据集进行进一步one

shot learning。
[0144]
利用吸波胶仿真数据对模型进行训练时,由于钢轨焊缝裂纹损伤仿真数据量充足,数据样本分布范围较为广泛,模型参数多,因此训练尽可能采用大 batch与较大起始学习率进行训练,结合nadam优化器中二阶nag提供的“惯性”,保证模型可以跳出一开始存在的局部最优,并快速震荡至最优解附近。在进行模型训练时,为保证模型整体运算过程中,不会出现显存溢出而导致程序崩溃的情况,需要对模型训练过程中产生的临时特征张量大小进行计算。
[0145]
mdcds1在计算过程中,由4.1章节模型拓扑结构图可知,对于单一batch 输入为144
×
144
×
57的浮点类型(float32)输入,生成器特征选择网络将产生尺寸为:144
×
144
×
57、72
×
72
×
64、36
×
36
×
128、18
×
18
×
256与9
×9×
256 的特征张量作为临时变量;生成器模态生成网络将产生2700
×
9的特征张量作为临时变量与模型输出;判别器将产生2
×
2、2
×
1和144
×
72
×
2的特征张量作为模型输出。这些临时变量与模型数据将在该轮训练时存储于gpu的显存当中,总数为405m个float32浮点数值。在64位操作系统的计算机存储中,一个float32浮点数值占据4byte大小的存储空间,则单一batch的输入需要占据约为1.5gb的显存空间。同时模型包含参数数量约为6.2m,每个参数均为float32浮点类型,同时参数数值运算在模型前向传播与梯度反向传播过程中均存在,参数共占约0.5gb的显存存储空间。
[0146]
根据上述显存占用分析,16gb的显存空间约可设置10个batch的输入数据,根据gpu进行浮点运算时底层二进制运算原理,当batch的数量为2的n 次方时,gpu运算效率更高,因此mdcds1训练过程batch为8,即模型输入数据尺寸为8
×
144
×
144
×
57。
[0147]
图15展示了基于efficientnet

b3模型架构的mdcds1模型one

shotlearning训练过程中针对钢轨焊缝裂纹损伤不同任务下的模型在训练集上 loss曲线变化情况。loss曲线代表着模型训练过程中每个训练阶段模型输出与真实钢轨焊缝裂纹损伤数据之间通过loss损失函数计算所得结果,可以直观反映模型在训练过程中是否在不断朝着最优方向进行优化。
[0148]
图15中,蓝色代表训练过程中的真实loss数值产生的loss曲线;红色代表利用均
值平滑进行平滑后的更加平稳的loss曲线,可以反映loss的整体趋势;橙色代表用小波平滑后的loss曲线,可以反映loss局部震荡变化的趋势。观察四个损失曲线图中的原始loss曲线变化可以看出,由于生成器与判别器对于模型参数的更新有先后顺序,因此模型各项输出指标的loss均呈现震荡变化的情况,但损失曲线的整体变化呈下降趋势,可以看出模型在不断震荡迭代至最优。观察橙色loss曲线可以看出,在训练过程中,部分时候会出现局部震荡较大,真实loss出现异常尖端的情况。loss曲线中出现的异常尖端值的原因是因为:对于模态分量的loss值,在某轮训练时,当生成器产生的模态分量loss对模型参数进行更新后,判别器产生的剩余三项loss对模型参数更新的梯度方向与之前生成器更新方向相反,且数值大于生成器产生的更新梯度,导致新的一轮中生成器效果变差,产生的模态分量误差增大,出现loss值激增的情况;同理,预测钢轨焊缝裂纹的概率、深度与位置会同样出现loss值激增的情况。
[0149]
图16展示了从生成器、判别器以及整个模型层面的one

shotlearning训练loss曲线。可以看出,对比图15中单个任务的loss曲线,判别器loss曲线相比于深度、宽度与定位的loss曲线,呈现相对幅度更低的数值异常尖端,说明在判别器整体优化过程中,生成器对判别器带来的整体异常更小。将生成器loss与判别器loss相加可得训练过程中模型的整体loss(wholemodelloss),可以看出对于整个模型来讲,生成器与判别器带来的整体loss变化异常值带来的影响更小,在训练过程中模型整体朝着最优方向进行不断优化。
[0150]
第二阶段模型mdcds2训练
[0151]
mdcds2训练的目标为:针对相同的输入,尽可能使mdcds2产生的输出分布与mdcds1输出分布相同,同时mdcds2特征选择网络产生的钢轨焊缝裂纹损伤高维特征张量应与mdcds1特征金字塔网络产生的高维特征张量具备同分布。
[0152]
mdcds2训练过程中,需要同时输入gpu作为临时特征张量与输出的包含:mdcds1产生的输出、mdcds2的临时特征张量与mdcds2的输出。同4.4.1计算方式相同,对于单一batch的输入数据需要占用约2gb的显存空间,两个阶段模型参数占据约0.75gb显存空间,因此mdcds2训练batch大小为4,即模型输入数据尺寸为4
×
144
×
144
×
57。
[0153]
mdcds2训练流程伪代码整体与mdcds1相同,唯一不同之处在于mdcds2计算生成器损失gen
loss
时添加了钢轨焊缝裂纹损伤高维数据特征loss
feats
的计算。
[0154]
图17展示了当教师模型mdcds1基于efficientnet

b3模型架构时,mdcds2one

showlearning训练过程中针对不同任务下的模型loss曲线变化情况。
[0155]
图17中,观察四个损失曲线图中的原始loss曲线变化可以看出,第二阶段模型训练过程中的loss变化趋势与异常尖端情况与第一阶段模型相似。对比第一阶段模型的loss曲线,第二阶段模型因为其更加简单的模型结构与更加简洁的参数量,致使第二阶段模型训练过程中模型收敛趋势更加平缓。
[0156]
图18展示了第二阶段模型从生成器、判别器以及整个模型层面的loss曲线,其整体走向趋势与第一阶段模型相同,但由于mdcds2较低的参数量,导致模型在学习教师模型mdcds1的整体模型知识时,无法更好地拟合期望输出的数据特征分布。因此,相比于教师模型训练500轮后的最终loss,mdcds2训练500轮后的最终loss相对更高。
[0157]
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明
的保护范围之内。本发明的保护范围以权利要求书为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜