基于动态权重的自适应PSO-BP 神经网络焊接缺陷成因诊断
2022-03-28高昶霖宋燕利左洪洲章诚
高昶霖,宋燕利,2,3,左洪洲,章诚
(1.武汉理工大学,现代汽车零部件技术湖北省重点实验室,武汉,430070;2.武汉理工大学,汽车零部件技术湖北省协同创新中心,武汉,430070;3.武汉理工大学,湖北省材料绿色精密成形工程技术研究中心,武汉,430070;4.湖北省齐星汽车车身股份有限公司,随州,441300)
0 序言
为适应高性能智能化制造国际发展趋势与国家重大需求,焊接缺陷智能诊断技术成为新兴的前沿制造方向.焊接缺陷产生的原因分析历来是焊接领域的难点,由于缺陷种类形态多样,缺陷形成原因复杂,因而缺陷成因诊断过于依赖人工经验,导致效率和可靠性极低.为解决此问题,具有智能诊断功能的焊接专家系统逐渐得到应用[1-2].
目前,应用于专家系统的智能算法有随机森林、决策树、神经网络等.其中随机森林、决策树是基于一定的规则条件,无法准确反映缺陷特征、工艺参数与焊接缺陷成因之间复杂的非线性关系,诊断准确率较低.神经网络算法具有大规模并行处理、学习能力强、非线性度高等特点,利用神经网络的连接机制代替传统专家系统的规则表示,更适合于焊接热源建模、焊接工艺优化和缺陷诊断识别这类非线性、多分类问题[3-5].
虽然神经网络有许多优点,但其缺点也很明显,即容易陷入局部极小值,需要长期学习,收敛速度慢等[6],因而需要将其它方法与神经网络进行结合.刘占军等人[7]提出神经网络缺陷诊断专家系统,对铝合金焊接气孔缺陷成因进行诊断,借助补偿模糊控制使其诊断误差最小化,提高诊断精度及置信度.姜洪权等人[8]提出将随机森林与卷积神经网络相结合的强化特征选择方法对汽轮机的焊接缺陷诊断,通过提高特征选择能力,使得所提方法比传统卷积神经网络方法具有更高的缺陷识别率.Ravi 等人[9]采用图像金字塔及图像重构技术与卷积神经网络结合,对AA1100 铝合金的裂纹、凹坑等焊接缺陷进行分类,给出了焊道表面横截面中各类缺陷的密度,有助于焊接参数监测系统的搭建.Bacioiu 等人[10]使用高动态范围成像与神经网络相结合,对5083 铝合金的烧穿、未熔合等焊接缺陷进行分类,但未给出缺陷成因.
目前焊接缺陷诊断主要集中在缺陷种类识别,对缺陷成因的智能推理研究较少,且均简单地采用神经网络与其它方法联合以提高识别能力,缺少对模型内部结构自适应调整算法的探讨.基于此,提出粒子群-反向传播(particle swarm optimization-back propagation,PSO-BP)神经网络数学描述方法,构建具有内部结构自适应调整功能的焊接缺陷成因诊断神经网络模型.该模型能够有效提升焊接缺陷成因诊断的效率和精度,为焊接工艺优化提供可靠依据.
1 基于动态权重的自适应PSO-BP 神经网络算法
1.1 PSO 优化算法
PSO 算法的主要思想是通过种群中个体之间的协作和信息共享寻找最优解[11].系统初始化为一组随机解,通过迭代搜寻最优值.在PSO 算法中,每个粒子代表这个优化问题的一个潜在解.在模型运行时,首先初始化一群随机粒子(随机解),然后每个粒子都对应一个由被优化函数所决定的适应度,在不断的迭代中,每个粒子通过跟踪个体极值(粒子本身所找到的最优解)和全局极值(整个种群当前找到的最优解)更新直到找到最优解[12-13].
设共有M个粒子,其中,第i个粒子的位置在D维解空间的位置表示为Xi=(xi1,xi2,···,xiD),速度表示为Vi=(vi1,vi2,···,viD),其中i=1,2,···,M. 将位置Xi带入适应度函数可计算出该粒子当前位置所对应的适应度.第i个粒子所经过的历史最佳位置向量记为Pi=(pi1,pi2,···,piD),整个粒子群所经历过的历史最佳位置向量记为Pg=(pg1,pg2,···,pgD).整个粒子群通过更新自身的速度和位置来搜索整个状态空间.
式中:n=1,2,···,D,表示粒子对应的维度;t为当前迭代次数;vin(t),xin(t),pin(t)分别表示第i个粒子在迭代t次后第n个维度的速度、位置、历史最佳位置;xgn(t),pgn(t)分别表示整个粒子群在迭代t次后第n个维度的位置、历史最佳位置;ω为惯性权重;c1,c2为 学习因子;r1和r2为每次迭代生成的[0,1]内的随机数.
1.2 传统PSO-BP 神经网络算法
PSO-BP 神经网络的基本原理就是利用 BP 神经网络建立焊接缺陷特征及工艺参数和缺陷形成原因之间的拓扑关系,使用PSO 算法来代替BP 模型中的初始化方法确定神经网络的初始网络参数.
在PSO-BP 神经网络中,神经元之间所有的网络参数对应粒子群中一个粒子在当前迭代次数的位置,BP 神经网络每进行一次网络参数的更新则视作粒子位置的改变.设BP 神经网络输入层、隐藏层、输出层个数为ni,nh,no,则第i个粒子的位置可表示为
式中:wpq(p=1,2,···,ni;q=1,2,···,nh) 表示输入层到隐藏层的连接权值;uqr(q=1,2,···,nh;r=1,2,···,no)表示隐藏层到输出层的连接权值;αq,βr分别为隐藏层和输出层各神经元对应的偏置项.D的值等于wpq,uqr,αq,βr4 类参数的个数总和.
损失函数是用来评价模型预测值与真实值不同程度的指标,损失函数值越小,表明预测值与实际值越接近,因而模型的性能越好.由于BP 神经网络损失函数采用交叉熵作为损失函数,故PSO 算法中粒子的适应度函数fi如式(4)所示.
式中:n为样本个数;Yj,k为第j个样本的第k个实际输出值,yj,k为第j个样本的第k个预测输出值.
在模型训练时,神经网络参数就对应了PSO 算法中的粒子位置.将神经网络模型初始化后的神经网络参数拉伸成一维,输入给PSO 算法,即得到PSO 算法中粒子的位置.通过PSO 算法优化后的参数再带入神经网络中,再采用梯度下降算法,进行网络参数的更新,最终输出最优的网络模型.
1.3 基于动态权重的自适应PSO-BP 神经网络算法
在传统PSO-BP 神经网络算法的基础上,对网络参数的更新方式进行了改进.
1.3.1 惯性权重
在PSO 算法初始化神经网络参数时,选取一个合适的惯性权重值 ω 可以平衡粒子全局搜索能力和局部搜索能力,增强粒子群的寻优性能.传统PSO 算法中,惯性权重是一个定值,不能随着迭代次数进行变化,使得模型的灵活性和泛化能力不足.基于此提出了一种自适应惯性权重 ω.
在初始搜索阶段,此时粒子的适应度较大,惯性权重采用初始值较小的线性变化,以削弱这些粒子在粒子更新中所起的作用,使得算法在此阶段具有更强的全局搜索能力,并能尽快进入局部搜索;而在寻优后期,粒子适应度较小时,采用非线性的惯性权重,增大单个粒子在更新中的作用,使得算法能够快速收敛.设计的惯性权重如式(5)所示.
式中:ωmax与 ωmin分别为惯性权重 ω 的最大值和最小值;l1(t) 为非线性函数;l2(t) 为线性函数;fi为当前粒子的适应度;fmin为粒子最小适应度.
式中:t为模型当前迭代次数;tmax为模型最大迭代次数.
1.3.2 学习因子
在PSO 算法中,除了惯性权重这一重要参数外,学习因子c1,c2也起到了至关重要的作用,c1表示单个粒子的更新速率,c2表示整个粒子群的更新速率.合适的学习因子可以加快粒子的搜索速度,减少算法陷入局部最优的可能性.在算法的初期,采取较大学习因子c1和较小学习因子c2,每个粒子都要注意自身的历史信息,以保证各粒子状态变化的多样性.但是,在搜索后期,c1减少,而c2增加,使得粒子更加关注群体的社会信息,保持快速收敛.
设计的惯性权重如式(7)所示.
式中:cmax与cmin分别为学习因子c的最大值和最小值.
1.3.3 动态权重因子
传统的梯度下降法如式(8)所示.在BP 神经网络结构中,网络参数的更新方式保留了原本BP 网络的梯度下降算法,引入动态权重因子η,将PSO 算法与梯度下降法结合,如式(9)所示.
式中:x为 神经网络参数;η为权重因子,代表更新参数时PSO 算法所占比重,取值为(0,1);∇x为神经网络参数在该方向的梯度;c为神经网络中的学习率;xPSO为由PSO 算法确定的神经网络参数.
动态权重因子η 由式(10)确定.
在参数更新时,采用动态权重匹配,在更新初始阶段,动态权重接近于1,使得算法的更新以PSO 算法为主,此时算法能更好地进行全局搜索.当模型迭代不断进行时,动态权重系数开始线性下降,在此阶段,采用PSO 与梯度下降法相结合的算法,使得算法训练速度和效率加快,能够稳定地找到最优的神经网络参数.
图1 显示了传统PSO-BP 算法流程与改进的PSO-BP 算法流程.
图1 不同算法流程Fig.1 Different algorithms flow.(a) traditional PSO-BP algorithm;(b) adaptive PSO-BP algorithm based on dynamic weighting
2 焊接缺陷成因推理机制
焊接缺陷成因诊断采用数据驱动的正向推理策略,将缺陷特征及焊接工艺参数输入到网络的输入层神经元,求出隐藏层神经元的输出作为输出层的输入,最终得到输出层神经元的输出.采用由阈值函数判定输出层神经元的最终输出结果.取阈值为 φ,则将yj≥φ(j为缺陷成因种类数,取值为1,2,···,11)的结果进行输出,其余的结果进行归零处理.取φ 为第三大值,则输出结果表示3 种最有可能造成缺陷的原因及其置信度.具体算法流程图如图2 所示.
图2 焊接缺陷成因智能诊断算法流程Fig.2 Intelligent diagnosis algorithm process for welding defect causes
改进的PSO-BP 神经网络混合算法的流程如下.
(1)初始化BP 网络结构,包括设定网络的输入层、隐藏层、输出层的神经元个数,损失函数和学习率等.初始化粒子群规模,包括粒子的初始位置、速度、惯性权重最大值 ωmax、惯性权重最小值 ωmin、学习因子cmax,cmin、最大迭代次数tmax、每个粒子历史最佳位置Pi和粒子群历史最佳位置Pg等.
(2)根据专家系统知识库建立神经网络的拓扑结构,将神经元之间所有的连接权值和偏置编码成一维实数数组,每一个一维实数数组对应一个粒子在当前神经网络中迭代次数的初始位置.对每一个样本而言,都可以按式(4)计算出粒子的适应度fi,并与该粒子的最小适应度fmin进 行比较,若fi<fmin,则将粒子的最小适应度fmin取 值为fi,fi对应的位置就是最佳位置Pi,并将惯性权重按式(5)进行非线性调整;若fi≥fmin,则将惯性权重按式(5)进行线性调整,最小适应度fmin及 最佳位置Pi保持不变.
(3)利用式(1)更新粒子的速度vin与Vi.利用式(2)更新粒子的位置xin与Xi.
(4)计算粒子群的全局最小适应度fg=min{f1,f2,···,fM},若当前迭代次数达到最大迭代次数,则迭代停止;否则转到第2 步继续更新.
(5)输出整个粒子群所确定的神经网络参数Pg=(pg1,pg2,···,pgD)作为神经网络结构的初值.再结合BP 神经网络反向传播梯度下降算法,利用式(9)对神经网络权值和偏置进一步更新.输出改进后的PSO-BP 算法所确定的神经网络权值和偏置,并建立最优的模型.
(6)利用建立好的模型对焊接缺陷形成原因进行诊断,输出缺陷产生的原因,算法结束.
3 变量筛选及模型建立
3.1 基于平均影响值的变量筛选
以5083 铝合金中厚板脉冲焊接为例,采用焊接试验及仿真方式获取试验数据,利用X 射线进行无损探伤,利用图像处理方法得到缺陷特征,并给出缺陷形成原因.通过随机设置不同的焊接工艺参数,共得到180 组有效数据.
在实际焊接缺陷成因诊断时,涉及到的焊接参数众多,独立性较差,使得神经网络输入特征难以确定,很容易将一些不重要的特征引入进来,造成模型的精度下降,因此选择合理且重要的特征变量是十分有意义的.参考Li 等人[14]的研究,采用平均影响值(mean impact value,MIV)与BP 神经网络相结合,来筛选对缺陷成因影响灵敏度高的焊接参数进行建模.MIV 的主要原理是通过控制不同参数的变化来确定参数与预测结果的重要性.其具体计算过程为:首先基于完整训练集训练模型;再通过添加/减去每个特征向量值的10%的比例,生成新的输入值(X1,X2),与其它特征向量构成新的输入;使用新输入运行训练模型,计算新输出(Y1,Y2)之间的差值为影响值(IV),最后将IV 按观测例数平均得出该自变量对应变量MIV.MIV 的绝对值大小代表焊接参数相对于焊接缺陷成因影响的灵敏程度,正负值则代表相关的方向.此时,可将 MIV 绝对值较大的参数挑选出来进行建模,从而实现对焊接参数的筛选.对焊接试验涉及的10 个焊接参数进行基于MIV 的变量筛选,结果如表1 所示.由表1 可知,焊接缺陷成因的影响因素主要是缺陷种类、缺陷长宽比、焊接电流、焊接电压、焊接速度、送丝速度和气体流量这7 个变量,其MIV 值所占比例之和达到了94.216%.故将这7 个变量作为BP 神经网络的输入,将缺陷形成原因作为输出,以此构建神经网络结构.
表1 基于MIV 的焊接成因诊断输入特征变量灵敏度分析Table 1 Sensitivity analysis of input characteristic variables for welding cause diagnosis based on MIV
3.2 BP 神经网络模型的建立
理论证明,对于任何在闭区间内的一个连续函数都可以用一层隐藏层的BP 神经网络来逼近,因而一个单隐藏层的BP 网络可以完成任意的n维到m维的映射[15].可以用图3 所示的一个单隐藏层神经网络来搭建焊接缺陷分析模型.
图3 BP 神经网络焊接缺陷分析模型Fig.3 BP neural network model for welding defect analysis
对于如何确定隐藏层神经元的数目,目前还没有明确而广泛的结论.根据Sheela 等人[16]综述中提到的经验公式初步确定隐藏层神经元个数nh.
式中:i nt()为 向下取整函数;ni,no分别为输入层、输出层神经元个数.由上述隐藏层节点公式,初步确定隐藏层神经元个数为14.
4 缺陷成因诊断试验方案
4.1 缺陷成因诊断试验方案
试验硬件采用Intel Core i5-9300H 处理器和Nvidia GeForce GTX 1660Ti 独立显卡.软件环境采用Windows10 操作系统,深度学习框架Tensor flow-gpu-2.1.0.在得到试验数据之后,对试验数据进行预处理,进行归一化、标准化处理,将各个特征处于同一数量级,从而消除奇异样本数据导致的不良影响.将收集到的试验数据随机分为4∶1∶1 作为训练集、验证集和测试集(测试集不用于神经网络训练,仅作为试验最后的验证).采用改进的单隐藏层PSO-BP 神经网络,在使用BP 算法的前向传播计算时,使用tanh()函数作为第一层的激活函数,使用sigmoid()函数作为第二层的激活函数.采用交叉熵作为损失函数.为了缓解过拟合现象,采用Adam 正则化.设置学习率为0.4,迭代2 000 次.使用PSO 算法时,惯性权重最小值 ωmin=0.4,最大值 ωmax=1,学习因子最小值cmin=0.6,学习因子最大值cmax=1.5,粒子初始化的位置在(-1,1)之间,粒子的最大速度为0.5.
4.2 网络模型结构参数选择
试验用网络结构隐藏层神经元个数初定为14,设置学习率为0.4,再采用网格搜索法,在一定的取值范围内取多组参数值(隐藏层神经元个数)建立BP 神经网络,并利用获得的有效样本数据进行训练,迭代2 000 次,测试结果如图4 所示.从图4 可以看出,隐藏层神经元个数为14 时,网络迭代2 000次的损失函数值最低;神经元个数为16 时,准确率达到93.33%,且此时的损失函数值与损失函数值最低值接近.考虑到准确率与损失函数值带来的影响,最终选择隐藏层神经元个数为16 的单隐藏层神经网络进行模型的训练.
图4 网格搜索法确定隐藏层神经元个数Fig.4 Grid search to determine the number of neurons in the hidden layer
4.3 缺陷成因诊断试验结果
4.3.1 改进的PSO-BP 算法训练结果
将经过MIV 变量筛选后的数据放入搭建好的基于动态权重的自适应PSO-BP 神经网络模型中,模型在训练集、验证集上的表现如图5 所示.从图5可以看出,训练集与验证集的损失函数值均降至0.5 以下.经过该网络训练后的模型,可以很好的对铝合金不同类型的焊接缺陷形成原因的进行诊断,满足焊接缺陷分析要求.
图5 损失函数曲线Fig.5 Loss function curve
4.3.2 不同算法的对比试验
为了验证基于动态权重的PSO-BP 神经网络的优越性,设置BP 神经网络和传统PSO-BP 神经网络进行对照,在传统PSO-BP 神经网络中,参数设置参考王东风等人[17]的研究,设置学习因子c1为2.043 4,c2为 0.948 7,惯性权重 ω为0.729 8,其它设置与基于动态权重的自适应PSO-BP 神经网络保持一致.试验结果如图6 所示.从图6 可以看出,以损失函数值降至0.5 以下为参考标准,BP 神经网络所需的迭代次数为1 000,传统PSO-BP 神经网络需要610 次,而改进后的PSO-BP 神经网络则只需要530 次就能将损失函数值降至0.5 以下,减少了13.1%.因此,改进后的PSO-BP 神经网络对模型训练效率有了明显的提升.
图6 不同算法神经网络损失函数曲线Fig.6 Loss function curve of neural networks with different algorithms
4.3.3 不同算法的预测试验
混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示.混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目.
将测试集30 组数据作为验证,利用训练好的改进的PSO-BP 神经网络模型、传统PSO-BP 神经网络模型和BP 神经网络模型对缺陷进行诊断,缺陷形成原因混淆矩阵如图7 所示.
图7 中纵坐标为真实缺陷形成原因标签,横坐标为预测缺陷形成原因标签,共10 类不同的缺陷成因分别对应数字1~10,1 类非工艺参数原因对应数字0;右侧灰色条状图表示缺陷形成原因样本量的多少,样本量越多,颜色越深,与图中方格内数字对应.每个网格对应了一组真实值和预测值,例如(5,5)表示预测缺陷形成原因为第5 类(焊接速度过大),真实缺陷形成原因也为第5 类(焊接速度过大),网格方格中的数字4 表示试验共有4 组数据为(5,5).
图7 缺陷形成原因混淆矩阵对比Fig.7 Comparison of confusion matrix of defect causes.(a) adaptive PSO-BP algorithm based on dynamic weighting;(b) traditional PSO-BP algorithm;(c) BP neural network
从图7 可以看出,改进的PSO-BP 神经网络只有1 组诊断错误,剩余29 组诊断结果均与真实缺陷成因相符,准确率为96.67%;传统PSO-BP 神经网络有2 组诊断错误,准确率为93.33%;BP 神经网络有3 组诊断错误,准确率为90.00%.
对于二分类问题常用的评价指标是精确率和召回率.通常以关注的类为正类,其它类为负类,分类器在数据集上的预测有4 种情况:TP表示正类预测为正类;FP表示负类预测为正类;TN表示负类预测为负类;FN表示正类预测为负类.
将二分类的分类指标引入多分类问题中,考虑到样本不均衡对结果可能带来的影响,评价指标引入加权平均,以精确率Pweighted为例.
式中:K为类别数;下标i表示其属于哪一类;λi表示该类在总样本数中的占比;Pi表示某类别的精确率.
表2 为基于不同算法的缺陷成因诊断准确程度.从分类的各评价指标可以发现,在加权平均准确率方面,改进的PSO-BP 神经网络为96.7%,优于传统PSO-BP 神经网络的93.3%;在加权平均精确率方面,改进的PSO-BP 神经网络为98.3%,优于传统PSO-BP 神经网络的91.3%;在表示模型综合能力指标的F1值上,改进的PSO-BP 算法为96.9%,优于传统PSO-BP 算法的91.7%.
表2 基于不同算法的焊接缺陷成因诊断结果Table 2 Diagnosis results of welding defects based on different algorithms
4.4 实际诊断试验
为了验证实际生产中该模型的应用效果,随机在罐体生产中选择5 条测试样本,测试样本的输入特征如表3 所示.缺陷成因真实值及网络输出结果如表4 所示.
表3 测试样本的输入特征Table 3 Input features of the test samples
表4 缺陷成因真实值及网络输出结果Table 4 Real value of defect causes and network output results
以气孔缺陷(样本1)诊断为例进行分析,可以看出,经过改进的神经网络模型的诊断,输入的气孔缺陷有99.51%的可能性是由焊接速度过大造成,有0.38%的可能性是由气体流量过大造成,有0.11%的可能性是由气体流量过小造成.
图8 为参数调整前后的焊缝形貌.图8a 显示了样本1 优化调整前焊缝的成形情况,焊缝处存在气孔缺陷,利用改进的神经网络模型进行诊断,得出缺陷成因可能为焊接速度过大.使用调整后的参数进行焊接,最终得到如图8b 中成形质量良好的焊缝,从而证明了模型在实际生产应用中的价值.
图8 参数调整前后焊缝形貌Fig.8 Weld morphology before and after parameter adjustment.(a) before parameter adjustment;(b)after parameter adjustment
5 结论
(1)针对焊接缺陷多种形成原因,结合BP 神经网络,提出了基于动态权重的自适应PSO-BP 神经网络的焊接缺陷成因智能诊断方法,为焊接缺陷多影响因素分析及智能专家系统研发提供了新的推理思路.
(2)与传统PSO-BP 算法相比,改进后的PSOBP 算法将损失函数值降至0.5 以下所需的迭代次数减少了13.1%,模型准确率由93.3%提高至96.7%,精确率由91.3%提高至98.3%,综合能力指标由91.7%提高至96.9%.改进后的PSO-BP 神经网络算法能有效提高缺陷形成原因诊断的效率与精度,具有良好的工程应用价值.