黄鹏程,李海艳,林景亮,梁桂铭
(广东工业大学 机电工程学院,广东 广州 510006)
液压系统作为重要的传动系统,被广泛应用于工业领域[1,2]。因此,确保液压系统安全有效的运行非常重要,准确地估计液压系统状况可以避免突发状况,降低维护的成本。为了确保整个液压系统的正常运行,一种可靠、准确的液压系统状态监测方法是必不可少的。
目前,已有的液压系统状态检测方法主要都是基于传统的机器学习的单一状态监测。HELWIG N等人[3]先通过皮尔逊相关系数方法从原始传感器数据中提取特征,然后利用线性判别分析(LDA)将这些特征值转移到一个较低维的判别空间,从而对故障状态和严重程度进行了分类。考虑到使用单一分类器有时无法获得较高精度的缺点,GUO P等人[4]提出了一种基于集成支持向量机的液压系统健康状态监测方法,该方法先从多传感器信号中提取统计特征来描述液压系统的健康状态特征;然后,利用皮尔逊相关系数对提取的特征进行了选择;最后,利用集成支持向量机和叠加方法实现了系统的健康状态识别。随着神经网络的发展,姜保军等人[5]把自编码器应用于液压系统监测,他们先用希尔伯特-黄和小波变化对传感器信号进行了特征提取,然后利用堆栈稀疏自编码器来预测液压泵的状态。
虽然上述方法取得了一定效果,但同时存在以下不足:
(1)这些传统方法往往需要丰富的液压系统知识经验来选择特征提取和分类的方法。然而,液压系统在复杂的环境下工作,很难通过知识经验选取特征提取和分类方法;
(2)对单一状态进行监测,分离了各个状态之间的相关性,丢失了各种状态之间潜在的相关特征[6]。对于液压系统中复杂的任务,其泛化力差;
(3)在实际操作中,每个任务对各个传感器信号会有不同的依赖程度,而多个传感器信号笼统地直接输入,使得网络无法获取更为重要的信息,易出现网络信息过载的问题,降低了准确性。
针对以上方法存在的问题,本文结合注意力机和多任务学习,提出一种基于注意力机的多任务网络的液压系统多状态监测方法,利用卷积网络(CNN)自动地从多个原始传感器信号中提取深度特征,并在网络中加入注意力机,然后建立多任务的特征共享诊断网络,实现对多个状态的同时监测,利用各状态之间的相关性,提取更泛化的特征,提高任务准确性。
卷积神经网路是一种典型的前馈神经网络,主要是由输入层、卷积层、池化层、全连接层和输出层组成。通过对输入层进行逐层卷积和池化,层层提取输入数据的特征,随着层数的加深,不断提取更加抽象的特征,最终得到具有平移旋转不变性的鲁棒特征。因其具有强大的非线性映射能力,近年来在图像识别[7]、语言识别[8]等方面被广泛应用。
此处由于输入的特征是多变量时间序列,笔者使用一维卷积[9-11]构建网络。
卷积层通过用多个卷积核对前一层输出特征进行卷积操作,然后利用非线性激活函数构造出新的特征,其数学公式为:
(1)
池化层也叫下采样层,对上一层的卷积特征进行缩放映射,保留主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力。
常采用的是最大池化,即取局部的最大值,其数学公式为:
(2)
全连接层将前面卷积池化得到的高维数据铺平以作为输入,进行一些非线性变换,然后将结果输入到它后面的输出层softmax函数。全连接层数学表达式为:
yl=g(wlxl-1+bl)
(3)
式中:l—网络层的序号;yl—全连接层的输出;xl-1—平铺后的一维特征向量;wl—权重系数;g(·)—softmax非线性激活函数。
Softmax函数,将输出各值化作(0,1)之间,以便用于分类。其数学公式为:
(4)
式中:j—输出层第j个特征;K—输出层特征总数。
2014年谷歌DeepMind[12]提出了注意力机(Attention),并将其应用于图像识别领域,解决了图片处理时计算量巨大的问题。同年,BENGIO Y[13]把注意力机应用于机器翻译,解决了机器翻译中不同长度的源语言对齐问题。
上述两个注意力机应用均取得了不错的效果,随后注意力机在深度学习任务中蓬勃发展。深度学习中的注意力机从本质上讲是和人类视觉机制类似,核心任务都是用来捕获当前目标更为关键的信息,而忽视无关信息。
采用注意力机通常有两个目的:(1)降低数据的维度,减少计算量;(2)选择输入数据中与当前输出更加相关的有用信息,提高输出的质量。
常用的注意力机分为软注意力和硬注意力。其中,软注意力更关注区域或者通道,且因为注意力是确定性的,其可微分,可以通过反向传播来学习它的参数;而硬注意力更加关注点,且注意力是一个随机预测过程,动态变化,导致了其不可微分。
由于软注意力是可微分的,可以利用反向传播进行训练,求它的参数,并方便地嵌入网络框架中,比较常用。因此,本文选择了软注意力机,其数学公式为:
(5)
式中:αi—注意力分布;s(xi,q)—注意力打分模型;q—和任务相关的查询向量;X=[x1,…,xN]—N组输入信息;xi—第i个向量。
通常,打分模型s(xi,q)针对每个xi计算出一个s。而打分的依据就是xi与注意力机所关注的对象的相关程度;它们越相关,所得元素分数值越大。利用softmax对上面的得分进行数值转换,一方面进行归一化,使得所有分数之和为1;另一方面也可以更加突出重要元素的权重。
本文注意力机模型如图1所示。
图1 注意力机模型
图1中,用一个全连接层作为s(xi,q)函数,来学习不同传感器特征与任务的相关程度,其中神经元数为传感器个数。
本文的研究对象是液压系统的冷却器、阀门、内部泵及液压蓄能器状态,具有4个状态监测的任务。因此,本文使用多任务学习的方式来构建网络。
多任务学习可以提取多个任务的共享特征,共享特征具有较强的抽象能力,可以适应多个不同但相关的任务,通常可以使网络获得更好的泛化力;且由于输入的是多个传感器信号,考虑到实际任务会对各个传感器信号有不同的依赖程度,笔者使用注意力机来赋予各传感器不同的关注程度,让网络关注更加有用的传感器信息,以减低对其他信息的关注度,提高网络的监测效率。
结合注意力机与多任务网络,笔者构建注意力机多任务网络,如图2所示。
图2中,网络由输入层、注意力层、特征提取层、多任务层构成。其总体状态监测步骤如下:
(1)对多个传感器数据进行归一化处理,构建输入特征矩阵χ;
(2)输入特征χ输入到注意力层,通过将注意力模型得到的特征权重α与输入特征χ做矩阵乘法,得到注意力特征χatt;
(3)注意力特征χatt共享层,使用多个卷积层来提取4个任务的共享特征;
(4)共享特征输入到任务层,共有4个任务,其损失函数为各个任务损失函数的线性加权,即联合损失函数,其数学表达式为:
L=λ1L1+λ2L2+λ3L3+λ4L4
(6)
式中:L1—冷却器状态;L2—阀门状态;L3—内部泵状态;L4—液压蓄能器状态;λ1,λ2,λ3,λ4—对应任务的权重,文中均取0.25。
而Lt损失函数为交叉熵损失函数,其表达式为:
(7)
(5)采用反向传播算法[14]对网络参数进行更新。
图2 注意力多任务网络
本文利用深度学习框架pytorch构建模型,训练优化器为Adam,批量为32,学习率初始设置为0.001,迭代次数为550。
网络结构参数如表1所示。
表1 网络结构参数
表1中,根据一维卷积参考文献的网络结构,适当调整参数大小,构建网络共享层,并在共享层前面加入注意力模型,其参数为输入传感器的个数;在共享层后面加入多任务模型,其参数为各任务状态个数,构成整体网络结构。
此处采用UCI网站中的液压系统状态监测数据[15]进行实验,实验数据通过一个液压实验台获得。该试验台以60 s为1周期进行恒定负载循环,通过测量压力、流量等17个传感器的值,来监测4个液压组件(冷却器、阀门、泵和蓄能器)的状态定量变化;共有2 205组模拟数据,每个组包含了17个传感器数据和4个组件的运行状况。
液压试验台使用的传感器如表2所示。
表2 液压试验台使用的传感器
表2中,CE、CP和SE是表示计算值的虚拟传感器,其余传感器是液压回路中的物理传感器。
液压组件状态变量如表3所示。
表3 液压组件状态变量
表3中给出了4个液压组件所存在各种的状态。其中,冷却器与内部泵存在3种状态,阀门与液压蓄能器存在4种状态。
由于传感器采样频率不一样,导致相同周期内不同传感器时序点个数不同,如压力传感器100 Hz,60 s内有6 000个时序点,而温度传感器1 Hz,60 s内只有60个时序点,为了输入到网络中,需要对数据进行简单的平均处理,使得每个传感器时序点数均为60。
处理后得到输入特征图如图3所示。
图3 输入特征图
图3中,输入特征图是由17个传感器堆叠构成的特征图,其维度为(17,60)。其中,行是每个传感器时序点数,列是传感器数。
将2205组数据样本按照6:2:2比例,划分为训练集、验证集和测试集。在训练集上训练网络内部参数,通过验证集调节网络迭代次数、学习率等超参数,使训练集上得到的网络能在测试集上有更好的效果。
为了量化网络诊断的性能,此处使用指标准确率,其计算公式为:
(8)
式中:acc(t)—第t个任务准确率;N—样本数;f(xn)—预测值;yn—真实值;1{*}—指示性函数。
为验证该方法的监测性能,此处在训练集与验证集以交叉验证的方式进行训练,最后在测试集上验证精度;并将其与现有的传统方法LDA、人工神经网络(ANN)、集成SVM进行对比。模型在训练过程中,由于权重的初始化是随机的,为了避免实验结果受到其影响,对训练数据重复做5次实验,然后取平均值。
该方法与传统方法结果比较如表4所示。
表4 与传统方法结果比较 %
从表4中可以看出:本文提出的注意力多任务方法可以让液压系统状态获得更好的监测效果;它比最新的传统方法平均精度提高了10.6%,特别在液压蓄能器方面的提高了42.9%。
为了验证多任务和注意力机的有效性,此处将该方法与有相同网络层的单任务CNN与多任务CNN进行了比较,其结果比较如表5所示。
表5 与CNN方法结果比较 %
从表5中可以看出:多任务CNN精度相比单任务平均精度提高1.8%,验证了多任务网络可以通过各个任务之间的相互辅助,有效地提取了各个任务之间潜在的特征,提高了监测的精度;而加入的注意力机,会根据各个传感器对任务的重要程度,给与相关的权重,缓解了网络的信息过载,使得内部泵和液压蓄能器任务精度均提高了1%,进一步提升了网络的监测精度(达到了99.3%)。
各传感器权重分布如图4所示。
图4 各传感器权重分布
从图4可以看出:在没有使用注意力机之前的各个传感器的权重都是相等的,网络对每个传感器的侧重程度都一样;使用了注意力机之后,各个传感器权重值发生了变化,网络对不同传感器侧重程度不同,有利于提取对网络更有用的传感器信息。
在复杂的多状态条件下,针对液压系统状态监测方法监测性能不高的问题,笔者提出一种基于注意力机的多任务网络的液压系统监测方法。
相比以往的方法,该方法有以下优势:
(1)直接把多传感器信号输入到CNN,实现了端到端的预测,无需人工提取特征,降低了使用者的操作难度;
(2)利用多任务网络,对多状态同时学习,有利于提取各状态之间存在的潜在特征,可以避免在单状态时,因为过度关注单个状态,而忽视了噪音及泛化性能,使得网络有更好的预测精度;
(3)在网络中加入注意力机,给予了各个传感器一个权重,使得网络可以更多关注于对任务贡献大的输入变量,从而提取更相关的特征,缓解网络信息过载问题,进一步提升网络的预测精度。
但是该方法依然存在不足之处:多任务网络各个任务的权重都是一样的,但是在实验中发现,对于冷却器状态,其收敛的速度快,很快达到了100%;而对于液压蓄能器状态,其收敛速度慢,精度提升相当慢,所以应该给予各个任务不同的权重比,来帮助网络更快收敛。
所以,笔者下一步的研究重点是设计一个自适应的任务权重选择方法,以提高该方法的运行效率。