基于深度学习的管道漏磁异常数据识别方法(第二部分)
2.2 改进的一维卷积神经网络
管道漏磁内检测数据可近似看作依托时间分布的序列数据。结合漏磁数据的特征以及数据集中样本的维度,基于PyTorch框架设计了一种基于一维卷积网络的轻量化模型,对管道漏磁内检测数据进行识别。增加了批量归一化层和Dropout方法。其中主要包括3个卷积模块,1个全局池化层、2个全连接层。每个卷积模块由1个一维卷积层(Conv1D)、1个一维批量归一化层(BatchNormld)、激活函数与1个一维最大池化层(MaxPool1d)组成(图 4)。各层网络结构相对应的参数设置见表 1。
相比于轻量化的网络模型,更深层次的网络架构具有更高的潜力来提取数据的特征信息。然而,网络深度的增加并非一个简单的线性叠加过程。随着深度的增加,优化的难度将会显著增加。针对特定层次的结构优化更加符合实际应用的需求,能够在复杂性与可优化性之间实现更好的平衡。
2.2.1 一维卷积层
卷积层的作用是利用卷积操作获取输入数据的特征,是整个网络结构中的核心组成部分。一维卷积操作与多维卷积原理类似,采用卷积核沿着输入序列数据的长度方向滑动,计算每个位置的卷积结果,从而实现输入特征的提取。一维卷积操作如式(1)。
式中:Y[i]为位置i的元素经过卷积运算的数值,k为卷积核大小,X[i+j]为输入样本X中从位置i向后偏移j个位置的元素,W[j]为卷积核在位置j的权重,b为偏置。由于经过数据预处理已将漏磁数据映射在[0,1]之间,故采用具有非线性特征的线性整流函数(Relu)可有效处理梯度消失的问题。
2.2.2 批量归一化层
批量归一化是使输入每一层数据具有相似的分布。尽管数据集在输入模型前已经过预处理,但数据分布仍可能会由于网络参数的改变而变化。BatchNorm借助均值和标准差标准化每一层的输入,降低对初始参数的敏感性,有助于加速模型训练过程,更容易收敛到理想状态。批量归一化过程如式(2)。
式中:该公式所得值为xi经过归一化处理的数值,xi为输入样本中第i个位置的元素,μ为输入样本数据的均值,σ2为方差,θ为非0常数,λ和β分别为尺度因子和移动因子。
2.2.3 池化层
池化层用于压缩卷积层输出的特征图空间大小,有助于降低模型参数数量。在卷积模块中采用MaxPool1d池化,通过保留每个池化窗口内的最大值,能够获取每个区域内最显著的特征。卷积模块(CNN3)与全连接层FC1之间的池化层采用Adaptive AvgPool1d(自适应平均池化)作为全局池化,Adaptive AvgPool1d不需要指定池化的具体参数,可以适应目标尺寸自动池化,对整个特征图进行平均池化,能够保留整体特征信息,增强模型的泛化能力。
2.2.4 损失函数
选取CrossEntropyLoss(交叉熵)损失函数,如式(3)。
式中:L为交叉熵损失值,y为样本的实质标签,ŷ为模型预测的标签。传统的分类模型一般采用Softmax作为输出层,由于在PyTorch框架中的交叉熵损失函数中结合了Softmax函数,故可以直接将全连接层FC2作为输出层,不再单独设置Softmax处理。
2.3 Dropout正则化方法
过拟合往往是网络模型的一个大问题,模型在训练集上的效果非常好,但在验证集与测试集上的效果较差。Dropout方法是通过在模型训练的前向传播过程中,结合相应的概率p随机关闭神经元;在反向传播时,被关闭的神经元不会更新其权重。应用Dropout方法前后训练阶段的神经网络结构对比(图 5),图中,⊗为关闭的神经元,○为保留的神经元。
Dropout方法削弱了同层神经节点的联合自适应性,提高了模型的泛化能力。在测试阶段,将每个神经元的输出乘以保留概率p以维持输出的期望,有效减少过拟合的出现概率(图 6)。
由于Dropout会随机舍弃神经元,而卷积层的神经元往往对应输入数据的局部特征。丢弃这部分神经元会减少有效参数数量,有可能破坏卷积层的参数共享特性,从而影响模型的特征提取能力,因此将Dropout方法引入在全连接层。
3. 实验与结果分析
实验环境配置如下:操作系统为Windows 10,编程语言采用Python 3.9,并在开发环境PyCharm 2023.2.1版本中实现代码编写。模型训练过程中,批量大小(batch size)设定为200,学习率设为0.001,训练轮次共计100轮。
3.1 实验数据集建立
管道漏磁数据来源于管径Φ1219管道内检测器的实测数据。由于管道漏磁内检测器采用逐点采样,故可以任意截取采样长度的序列。若分割成较短的采样点序列,虽能提升模型训练速度和扩大样本数量,但会使样本间能够被提取的特征量过少。异常点的产生往往是某一通道连续采样点数据发生变化,故将序列长度固定为500个采样点,即每个漏磁样本数据对应一行500列的特征向量。建立标签文件,从左至右依次记录文件位置、信号类型、通道信息、开始采样点、结束采样点和标签信息。
异常样本标记为1,正常样本标记为0,一共划分4000份样本,建立漏磁数据集。将其按照7∶1.5∶1.5的比例划分为训练集、验证集和测试集(表 2),并且保证每种数据集中正常数据与异常数据的占比接近1∶1。为了防止过拟合现象,训练集、验证集和测试集中异常样本与正常样本比例分布近似相同,确保样本具有唯一性。