APP下载

卷积神经网络在结构损伤诊断中的应用

2021-01-15李书进张远进

建筑科学与工程学报 2020年6期
关键词:频域准确率卷积

李书进,赵 源,孔 凡,张远进

(1. 武汉理工大学 土木工程与建筑学院,湖北 武汉 430070; 2. 武汉理工大学 安全科学与应急管理学院,湖北 武汉 430070)

0 引 言

近年来,深度学习(Deep Learning)[1]作为一种复杂的机器学习算法在人工智能领域得到广泛的关注和应用,其独特并有效的特征提取和模式识别能力极大地推动了相关领域的发展,如图像和声音识别、机器视觉、数据挖掘等。深度学习善于学习样本数据中的内在规律和表示层次,与其他学习方法相比,深度学习的特征抽象层次更高,表达能力更强,内容更丰富,尤其是适合处理大规模数据,而这些性能的大幅提升则得益于人工神经网络的发展,特别是卷积神经网络(Convolutional Neural Network, CNN)的应用[2]。

卷积神经网络是在对生物视觉系统进行研究的基础上开发出的一种人工神经网络,其核心思想是通过一系列卷积、非线性激活函数映射和子采样等操作来学习输入样本的特征和高级语义信息,具有极强的特征提取能力。1998年,Lecun等[2]在神经认知机的基础上构建了卷积神经网络模型LeNet,在手写数字识别上取得了极高的准确度;2012年,Krizhevsky等[3]开发出的CNN模型AlexNet在该年的ImageNet图像分类大赛上以极大的优势获得冠军,点燃了研究者对卷积神经网络的热情,使得关于卷积神经网络的研究越发广泛和深入,并在各领域得到应用。

卷积神经网络在故障和损伤识别方面的应用以机电领域居多,如黄新波等[4]采用卷积神经网络,结合高压断路器分合闸线圈电流特点建立诊断模型,进行了高压断路器的故障诊断;吴春志等[5]利用一维卷积神经网络直接从齿轮箱原始振动信号中学习特征,并完成对其的故障诊断等。在工程结构损伤诊断方面有为数不多的报道,如Abdeljaber等[6]利用自适应一维CNN对结构的损伤进行了非参数的快速诊断;李雪松等[7]将IASC-ASCE SHM Benchmark的加速度反应作为输入,利用CNN对规定的损伤模式进行了识别,同时对噪声影响进行了研究;Zhang等[8]直接将根据结构加速度反应训练好的CNN应用于不同形式结构,取得了良好的损伤识别效果。

事实上,早期传统的人工神经网络在结构损伤诊断方面已有较好的应用[9-10],但对于复杂问题,神经元过多会导致参数快速增长,整个网络规模变得异常庞大,限制了其解决问题的能力。卷积神经网络通过局部连接、权值共享及子采样等操作有效地减少训练参数,降低网络的复杂度来缓解上述问题,彰显其处理复杂问题的能力,将其应用于结构损伤诊断有广阔的前景。本文将对卷积神经网络在工程结构损伤诊断中的应用展开探讨,特别是损伤位置判断问题,该问题因工况多且较为复杂,难以处理。以框架结构节点的损伤为研究对象,采用结构的动力反应或时频域特性为网络训练样本对结构的损伤情况进行判断。研究内容包括:对比研究输入数据样本为时域、频域以及小波变换等不同情况下的识别效果;浅层卷积神经网络与深层卷积神经网络在训练时间、预测准确率、鲁棒性等方面的比较;不同损伤程度下卷积神经网络模型的预测情况等。

1 卷积神经网络

1.1 基本结构

卷积神经网络主要由输入层、卷积层、池化层、全连接层和输出层构成,是一种层次结构,如图1所示。卷积层包含若干组卷积核,运用卷积操作来提取输入样本特征,是卷积神经网络的核心部分。卷积神经网络一般含有多个卷积层,卷积层的层数越多,对特征的表达能力就越强;池化层通常设置在卷积层之后,其主要作用是对卷积层提取的特征图进行抽样、降维,减少网络中的参数量,同时降低计算量;全连接层的作用是将卷积、池化后的所有特征数据进行整合,通过对所有局部特征加权确定最终的预测值;输出层的形式由具体任务确定,一般是产生一个表示特征类别的预测向量。本文所用模型的部分算法如下。

图1卷积神经网络结构Fig.1Structure of CNN

1.1.1 卷积层

卷积层的运算见下式

yout=fi[bi,j+Conv(yin,wi,j)]

(1)

式中:yin,yout分别为卷积层的输入和输出;wi,j为第i层的第j个卷积核;bi,j为第i层的第j个偏置项;fi为第i层的激活函数。

卷积运算是一种互相关运算,运算过程中卷积核依次从左上向右下按规定的步长移动,运算结果按提取时的相对位置排列成为输出矩阵。在一个卷积层中,卷积核的个数和尺寸、卷积运算的步长、填充的层数等参数均需要研究人员自己设计,一般称之为超参数,需要根据输入数据进行取值。经卷积运算后的特征图还需经过激活函数运算才能输出,采用激活函数的目的是增加神经网络的非线性,解决线性函数无法解决的问题。本文卷积层的激活函数采用Relu函数[11],权重和偏置项的初始化采用文献[12]的方法。

1.1.2 池化层

常用的池化方法有最大值池化、均值池化、范数池化等[13],本文采用最大值池化方法。选用最大值的机制是使神经网络在训练过程中自动将关键信息不断放大并过滤无用信息,同时被选的元素在特征图中的相对位置没有改变,最大程度上保证了数据的不变性。该过程中,池化的尺寸和步长属于超参数。

1.1.3 全连接层

全连接层将卷积、池化后的所有特征图展开为一维向量并连接在一起,然后输入普通的BP神经网络进行下一步计算,最后给出预测值。本文输出层设定为Softmax回归[14],按公式(2)进行计算,计算结果为各代表类别是否为真正类别的概率,其中最大值对应的索引即为预测结果。

(2)

式中:y为输出结果;x为输出层神经元变量;n为输出个数。

1.1.4 损失函数

在有监督学习中,损失函数用于评估模型得到的预测值与真实值的不一致程度,常见的损失函数有均方误差函数、交叉熵代价函数、负对数似然函数等[15]。本文采用交叉熵代价函数floss进行描述[式(3)],卷积神经网络的训练目标是使预测误差尽量小,即损失函数最小化。

(3)

式中:di为真实值;yi为预测值;l为真实值向量和预测值向量的维度。

1.2 训练方法

卷积神经网络采用反向传播算法(BP算法)进行有监督训练。针对具体任务,卷积神经网络通过前向算法计算任务预测值,将其与真实值进行比较,计算两者的误差,然后通过反向传播算法将误差由最后一层向前逐层反馈,以此来更新模型中的参数。更新参数后网络会再次进行前向运算,并再次反馈更新,如此反复,直到误差在许可范围内,网络模型收敛,完成对模型的训练。

2 样本数据准备

以混凝土框架结构节点损伤为例研究卷积神经网络对其的诊断。框架结构模型见图2,为5层单跨结构,跨度L=4.0 m,层高H=3.0 m,构件参数见表1,经计算结构前2阶振型频率分别为2.9 Hz和9.85 Hz。对于框架结构,节点处的荷载效应最大,应力状态最为复杂,也最容易产生损伤,是结构的关键部位。考虑到确认损伤节点的位置比确定损伤程度更为重要,为了将问题简化,本文以不同损伤节点的位置定义算例工况,损伤则通过节点处的混凝土弹性模量统一下调25%来模拟,调整范围为梁柱连接点附件0.4 m以内区域(图2)。

图2框架结构与损伤区域Fig.2Structure Frame and Damaged Area

表1框架结构参数Tab.1Parameters of Frame Structure

定义结构节点损伤位置工况时,若每一个节点都加以考虑,则共有k!种工况(k为结构的节点数量),对于复杂结构计算量会非常巨大,难以识别。因此,这里根据节点位置和荷载(特别是水平荷载)作用下将节点的受力和易损程度加以简化,只考虑结构最有可能发生的节点损伤组合。图3为框架结构各层受到相同水平作用力时的应力云图,可以看出节点处的应力要较其他地方大,其中底层节点和1层节点的应力最大。在地震等灾害作用下,框架结构的节点损伤主要从底层节点开始向上发展。考虑顶层的鞭梢效应和框架的剪切变形,以及为了展现卷积神经网络对复杂问题的预测能力,本文定义了包括无损伤在内的10种损伤工况,具体分类如表2所示。

图3水平力作用下框架结构应力云图(单位:Pa)Fig.3Stress Nephogram of Frame Structure Under Horizontal Force (Unit:Pa)

一般地,结构损伤的产生会导致结构动力性能发生改变,对结构的动力反应进行分析,提取信号中包含的损伤信息能对结构的损伤状况进行评估,是目前结构损伤诊断和健康监测最常用的方法[6-10]。本文也同样采用结构在动力作用下的反应或其时频域信息为样本对结构的损伤进行诊断。利用有限元方法计算不同工况下结构底层在相同白噪声激励下的水平加速度反应,模型采用ABAQUS中的B21单元,激励幅值为6 mm·s-2,时长为16 000 s,采样频率为50 Hz。得到框架各层的加速度响应后,将响应和激励按相等的时长分段,每段长度为8 s(400个点),然后按各层位置组成一个6×400的样本矩阵,第1行为白噪声激励,即底层加速度,第6行为顶层加速度。这样每个工况有2 000个样本,10个工况共产生20 000个样本。选取19 500个为网络的训练样本,500个为测试集,用于对训练好后的网络进行验证。

表2损伤工况Tab.2Damage Conditions

对于直接加速度(或其傅里叶变换)样本,与图片不同,为一维数据,本文将用一维卷积神经网络(1D-CNN)进行处理。此外,考虑小波变换时频域方面的优势[16],本文同时将用二维卷积神经网络(2D-CNN)对样本小波变换后的二维数据进行训练,并与一维卷积神经网络的识别结果进行比较。

3 基于卷积神经网络的损伤识别

3.1 一维卷积神经网络

直接用加速度响应和其傅里叶变换后的频域数据作为训练样本,利用一维卷积神经网络对其损伤状况进行诊断。利用Pytorch深度学习框架,基于Python语言,经过多次试算和参数调整建立的一维卷积神经网络参数如表3所示,其中括号内数据对应傅里叶变换样本。

表3一维卷积神经网络参数Tab.3Parameters of 1D-CNN

采用文献[17]方法对网络进行训练,所需的参数为:learning_rate=0.001,β1=0.9,β2=0.999,ε=1×10-8,decay=0。训练时批量尺寸取100,共195批,训练30代。训练过程中每隔若干次循环就将测试集输入网络,动态验证网络预测的准确性。

图41D-CNN动态损失函数Fig.4Dynamic Loss-function of 1D-CNN

图51D-CNN识别动态准确率Fig.5Recognition Dynamic Accuracy of 1D-CNN

训练和验证过程如图4,5所示。可以看出:1D-CNN的收敛非常快,训练至第5代时损失函数已接近0,随后误差曲线虽有一定的波动但都在0.1以内;测试集的准确率从第5代开始也维持在100%并且波动很小,表明卷积神经网络能够快速稳定地学习到结构时程信号中的损伤信息,将损伤位置准确地识别出来。对比时域数据和频域数据为输入的CNN损失函数曲线和测试集准确率可以看出,用频域数据训练的1D-CNN收敛更快、更稳定,这是由于频域信息与结构的刚度关系更为密切。在损失函数接近0以后频域数据为输入的损失函数波动稍大,表明了频域信息的敏感性。

3.2 二维卷积神经网络

分别采用Haar小波、Dmey小波、Db6小波、Db12小波及Db20小波对原加速度响应进行4层小波包分解得到小波包系数[18],利用二维卷积神经网络对其进行训练,验证小波包系数与损伤的相关性和识别能力。这5个小波母函数的波动性逐步增加[16],将对比分析其对损伤识别效果的影响。2D-CNN各层参数如表4所示,通过大量试算,确定批量尺寸为200,训练100代。

训练和验证过程如图6,7所示。可以看出:随着训练次数的增加,各模型损失函数都不断减小,且收敛速度非常接近,说明CNN能够有效学习小波包系数所包含的损伤信息并准确定位;不同小波母函数对应的2D-CNN性能不同,具体表现为随着小波母函数波动性的提升,2D-CNN的训练速度和预测准确率有明显的提升。从图7还可以看出,在训练至第10代后各网络准确率出现了明显的差距,Haar小波对应的模型准确率提升较慢且最终维持在80%左右,而Db20小波对应的模型表现最好,训练至第10代后准确率仍在提升,最终接近95%,且损失函数和准确率波动最小。

表4二维卷积神经网络参数Tab.4Parameters of 2D-CNN

图62D-CNN动态损失函数Fig.6Dynamic Loss-function of 2D-CNN

图72D-CNN识别动态准确率Fig.7Recognition Dynamic Accuracy of 2D-CNN

此外,与1D-CNN相比,2D-CNN的训练时间明显变长、误差收敛速度较慢且波动更加剧烈,这说明对于浅层CNN,时域或频域数据比小波包系数更加容易学习。同时,2D-CNN比1D-CNN的准确率要低,最小差距也在5%以上。

3.3 深层卷积神经网络

鉴于小波包系数矩阵在浅层卷积神经网络中学习不够理想,考虑信号经过小波变换后所含信息复杂,本文构建了一个13层的深层卷积神经网络(表5)来对小波包分解的样本进行学习。该网络使用多层小卷积核的卷积层进行堆叠,相比于大卷积核,这样的堆叠结构所需要参数更少,各输入参数之间的关联性更强,网络的非线性特征更加明显[19]。

表5深层卷积神经网络参数Tab.5Parameters of Deep CNN

以Db20小波为例,取批量尺寸为200,训练100代,训练和验证过程见图8,9。可以看出,在相同的输入情况下,深层CNN的训练时间更长,损失函数收敛更慢,而且不太稳定,当损失函数值接近于0时有时会突然增大,同时验证集的准确率在训练第70代前波动非常大,无法维持在90%以上,表明深层CNN的训练难度更大。当训练完成后,深层CNN的性能比浅层CNN要好,验证集的准确率非常接近100%。

图8深层CNN动态损失函数Fig.8Dynamic Loss-function of Deep CNN

图9深层CNN识别动态准确率Fig.9Recognition Dynamic Accuracy of Deep CNN

3.4 不同损伤程度对识别的影响

本文的卷积神经网络模型是在假定节点损伤区域弹性模量下降25%时训练得到,对于损伤程度不同时所得模型的识别情况,这里以1D-CNN为例加以分析,探讨其适应性,为卷积神经网络的工程应用提供参考。

重新生成类似白噪声激励,时长为80 s,分别作用于节点损伤区域弹性模量下降10%,25%和40%的各损伤工况结构,提取各层的加速度后同样按8 s时长分段得到280个时域测试样本,利用已完成学习训练的1D-CNN进行损伤判断。由于预测结果是取CNN输出向量中概率最大值的索引,对于不同损伤程度,CNN的输出向量里很可能出现2种或多种预测概率相差不悬殊的工况,为清楚地了解损伤程度对CNN模型预测的影响,这里分工况统计了3种损伤程度下CNN输出向量中概率排名前三的工况分布情况,如图10所示。可以看出,当损伤程度为下降25%,即与网络训练一致时该模型能正确地识别出全部损伤工况。对于损伤程度小于训练样本(下降10%),CNN的预测有向程度较轻工况的偏移倾向。当节点的损伤程度较大(下降40%)时,又存在向程度大的工况偏移的情况,但准确性相比于小损伤程度有了提高。通过对比可以发现,利用单一损伤程度样本训练的CNN对损伤程度小于训练样本的损伤非常不敏感,而对于损伤程度较大的损伤可以给出较为正确的判断。因此,在实际应用中要考虑CNN模型的幅值依赖性,合理定义结构的损伤程度。

图10不同损伤程度下的CNN预测对比Fig.10Comparison of CNN Prediction Under Different Degrees of Damage

4 结语

(1)卷积神经网络能从结构动力反应信息中有效提取结构的损伤特征,对结构的损伤状况进行准确预测,是一种应用前景很广的结构损伤诊断方法。

(2)相比直接用加速度反应样本,使用傅里叶变换后的频域数据作为训练样本能使1D-CNN的收敛速度更快,且更稳定。

(3)与1D-CNN相比,使用小波变换数据的2D-CNN训练时间明显变长,误差收敛速度变慢且波动更加剧烈,同时识别准确率要比1D-CNN略低。

(4)对于2D-CNN,样本所含信息复杂,深层CNN的性能要好于浅层CNN,识别准确率也比浅层CNN高,表明输入越复杂,为了充分学习其中包含的信息,CNN所需要的层数就应越多,不过训练所需要的时间和样本数量也越大。

(5)利用单一损伤程度样本训练的CNN,对于该损伤程度下结构的各损伤工况能做到准确识别,对损伤程度小于训练样本的损伤不敏感,但对损伤程度较大的损伤却可以给出较为正确的判断。

(6)作为一种近些年才兴起的机器学习算法,卷积神经网络在工程结构损伤诊断中的应用还处于起步阶段,有大量的工作需要进一步开展,如结构损伤的多样性、海量数据的处理以及实际工程的应用等,不过与其他传统诊断方法相比,卷积神经网络在大数据处理和解决复杂问题能力方面仍有很大优势,应用前景广阔。

猜你喜欢

频域准确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
基于傅里叶域卷积表示的目标跟踪算法
基于改进Radon-Wigner变换的目标和拖曳式诱饵频域分离
一种基于频域的QPSK窄带干扰抑制算法