源自:《兵器装备工程学报》
作者:严硕, 徐永能, 何文韬
“人工智能技术与咨询” 发布
摘要
针对地铁工程车辆故障文本数据未得到合理利用的现象,提出了一种基于自然语言处理的故障智能诊断方法。该方法对故障文本进行预处理,采用Word2vec进行文本表示与词向量训练,运用LSTM与Softmax组成的RNN模块完成故障诊断,引入SMOTE算法处理文本数据类别不平衡问题,以提高诊断精度。以某地铁设备中心的工程车辆故障数据为例,进行实验,精确率与召回率分别达到86.30%和86.68%。结果表明:新方法能够提升地铁工程车辆的故障诊断准确性,为地铁设备故障智能诊断和故障文本的利用提供解决思路。
关键词
故障诊断;工程车辆;自然语言处理;故障文本数据;RNN
1 引言
近几年我国城市轨道交通高速发展,各城市运营线路数量与运营里程呈现逐年递增的趋势。随着城市地铁网络的逐渐形成,系统设备故障数量明显增加。其中,工程车辆作为维护城市地铁正常运营的重要车辆,在运营维护过程中积累了大量故障文本数据,这些数据蕴含了地铁工程车辆安全的重要信息,长期由维保人员依据经验与专家知识进行故障诊断与分类。由于缺乏监控数据且技术水平有限,维保人员主要依靠非结构化文本形式的故障数据来进行故障诊断。这些故障记录文本数据存在主观性与不准确性,进而影响故障诊断的准确性。同时,海量的故障文本若不能得到合理利用,也会造成资源堆积浪费。在智慧城轨和大数据技术发展的背景下, 亟需研究基于自然语言处理的机器学习算法,实现地铁工程车辆的故障智能诊断。
国内外学者在故障诊断领域取得了丰富的研究成果,故障诊断方法逐渐多样化[1]。近年来自然语言处理技术迅速发展,在国发[2017]35号文件中,自然语言处理被视为关键共性技术[2],已广泛应用于网络论坛[3]、新闻[4]等领域。众多学者的研究表明以自然语言处理技术实现故障诊断的核心在于选择合适的文本表示方法与文本分类器。传统的文本表示方法有独热编码[5](one-hot encoding)、词频-逆文档频度[6](term frequency-inverse document frequency,TF-IDF)等。但独热编码、TF-IDF等方法未考虑字词间顺序与相关性,易导致词向量维度过大,增加诊断难度。故障诊断更加注重文本上下文的顺序与相关性,因而Word2Vec生成特征向量[7]、故障文本相似度计算[9]等方法得到应用,这些方法能降低向量维度、将向量与上下文特征进行融合。在构建文本分类器时,支持向量机[10-12]、朴素贝叶斯[13-14]等机器学习算法得到了广泛应用,研究表明它们在故障分类与诊断等方面具有良好表现。但早期的机器学习算法在挖掘文本深层语义方面表现欠佳,不适应大数据技术的发展需求。而深度学习模型文本特征挖掘能力表现更优,更符合智能运维背景下的轨道交通设备故障诊断需求。
从综合考虑地铁工程车辆故障文本记录数据特征出发,以提高故障诊断准确率为优化目标,以RNN与LSTM算法为基础,提出了一种基于自然语言处理的地铁工程车辆故障智能诊断模型。将文中所用算法模型与经典自然语言处理算法进行对比,验证其有效性。实验表明,该算法模型能为智能运维背景下地铁工程车辆故障智能诊断与故障文本的利用提供重要解决思路。
2 RNN与LSTM模型
2.1 RNN模型
在神经网络训练过程中,给定输入并通过优化算法与反向传播调整神经网络模型参数,便于输出最佳的训练结果。早期神经网络算法的输出结果往往只考虑某时刻单个输入的影响。对于一些与时间先后顺序有关的序列信息(如文本、语音、视频等),标准神经网络的应用面临几个困境:第一,只考虑单一时刻的输入,不考虑输入数据之间的相互关系会明显降低输出结果的可用性;第二,不同样本的输入输出长度具有明显差异时,标准神经网络需要对整体结构进行调整,通用性明显降低;第三,标准神经网络不能共享其在文本中学习的特征。在这种研究需求下,RNN应运而生。
20世纪80年代研究者提出了循环神经网络(recurrent neural network,RNN)的模型,并于21世纪初为众多研究者广泛应用于不同领域[15]。在标准神经网络的基础上,RNN模型在处理序列数据某时刻的输入时,不仅考虑了前一时刻的输入,还能记忆网络前面的内容,帮助整个模型更好地去理解序列数据的前后逻辑关系。RNN由输入层、输出层与隐藏层组成,其主要结构件如图1所示。
对标管理是企业精细化管理的重要组成部分,也是企业对标工作的关键。合成分厂将吸取经验教训,在今后的工作中,将对标管理在实践中的应用进行重点完善和改进,及时总结、及时分析、及时调整,持续改进和提高。
图1 RNN模型结构件示意图
由图1可知,RNN模型中的输入进入隐藏层后的每一次计算结果都会得到保留,并作为下一次隐藏层计算的输入之一,不同时刻对应有不同的输出,相应的计算公式分别如下。
Ot=g(V·St)
(1)
St=f(U·Xt+W·St-1)
(2)
式(1)与式(2)中,Ot为RNN模型t时刻的输出,U、V、W为RNN模型各层之间的传递参数(传递参数W可以共享),St为RNN模型t时刻的隐藏层计算结果,Xt为t时刻模型获得的输入, f与g为激活函数(根据具体情况需求选择相应的激活函数)。
RNN模型在不同时刻对参数W进行了共享,实现了对序列数据的特征提取,RNN模型在不同时刻组成的时间轴展开的结构如图2所示。
图2 时间轴上展开的RNN结构示意图
由图2可知,在RNN模型前向传播的过程中,隐藏层中存储的状态信息在不同时刻会根据式(2)进行改变,而权重矩阵U、V、W是并不会随着时间的推移发生变化。在反向传播过程中,权重矩阵U、V、W会根据梯度下降算法进行更新(此过程一般选择损失函数作为衡量标准)。使用RNN模型时,研究者一般通过训练对权重矩阵U、V、W进行优化,并在训练过程结束后选择效果最好的一组权重矩阵来进行前向传播并输出结果,得到最终的预测值。
2.2 RNN的梯度消失与梯度爆炸
早期的RNN模型可以通过记忆体实现短期记忆,从而实现对序列数据的预测效果[16]。通常在使用梯度下降法反向传播更新权重矩阵时,不同时刻的梯度会进行连续相乘的计算。对于已知时间轴长度为t的序列数据,通过在不同时刻共享参数W,研究者可以计算对应的损失函数(与参数梯度有关):
(3)
根据链式法则可以将Jacobian矩阵分解如式(4):
(4)
根据式(4)可知,RNN模型若要可靠地存储信息,意味着其梯度下降会完全取决于梯度偏导的连续相乘,若其值小于1,随着时间轴延长会出现梯度消失的现象;若其值大于1,随着时间轴延长,梯度会呈现指数级增长的现象,RNN模型会出现局部不稳定。
2.3 长短期记忆神经网络
为了解决普通循环神经网络中存在的梯度消失或梯度爆炸问题,Hochreiter等[17]提出了长短期记忆人工神经网络(long short-term memory,LSTM),能够有效克服RNN中存在的梯度消失和爆炸的问题,可以对存在短期或长期依赖的数据进行预测。LSTM能够保存序列数据需要依赖的信息(历史信息与状态信息)至记忆细胞单元中,历史信息和状态信息分别受到3个门控单元的影响。
图3中,ht表示当前时刻的状态输出单元;xt表示输入的序列数据; σf表示遗忘门; σi表示输入门; σo表示输出门,那么各个控制门限的状态可用下面公式进行表示。
图3 LSTM单元结构示意图
以
表示当前时刻的临时记忆细胞单元:
(5)
输入门:
i(t)=σ[Wxix(t)+Whih(t-1)+Wcic(t-1)+bi]
(6)
遗忘门:
f(t)=σ[Wxfx(t)+Whfh(t-1)+Wcfc(t-1)+bf]
(7)
输出门:
o(t)=σ[Wxox(t)+Whoh(t-1)+Wcoc(t-1)+bo]
(8)
记忆细胞单元:
(9)
计算LSTM的输出:
h(t)=o(t)·tanh(c(t))
(10)
式(5)—式(10)中,σ表示激活函数(根据具体情况选择激活函数);W表示不同门控单元的计算参数矩阵;b表示计算参数的偏置。
3 地铁工程车辆故障诊断模型
3.1 故障文本数据分析
地铁工程车辆一般按照车辆的功能与故障现象进行划分,一般可分为表1中所示的7类故障,表1显示了某地铁设备中心于2017年9月至2020年12月的工程车辆各故障类型的占比,通过统计可以发现不同故障类别之间存在明显的不均衡分布,数量上的不均衡比最大可达1∶32。若直接使用分类诊断模型对故障数据进行分类诊断,算法很可能忽略少数故障类别对分类诊断的影响,进而造成少数故障类别的预测精度远低于多数故障类别的预测精度。
表1 地铁工程车辆故障类型
本文中研究的数据主要来源于某地铁设备中心设施设备运维管理平台,故障数据以非结构化的形式记录了故障文本信息,每个故障有对应EAM工单号,并由报修人与维修人确认故障信息,以进行下一步维保工作。在这里仅展示出研究所需信息,即故障车辆类型与对应的故障现象描述。如表2所示,记录故障发生的原因以自然语言文本进行存储。
结合表2与其他故障文本可知,当前工程车辆故障文本数据记录的特点有以下几点:
表2 工程车辆故障文本数据
1) 故障文本数据具有高维特性,不同故障类型的记录导致故障文本出现大量系统或部件名称;
2) 故障文本记录缺乏统一标准,由于参与故障文本记录的工作人员较多且文本记录具有较强主观性与不确定性,相同故障类型会出现不同的文本记录;
3) 不同于信号设备与车载设备的故障记录,工程车辆故障文本记录很少出现站点与线路的文本描述,因此故障文本记录可能缺少基本信息。
综上所述,地铁工程车辆故障文本数据具有复杂、高维、稀疏的特征,这会给计算机识别与文本数据的处理带来难度。
3.2 故障诊断模型
本文中设计的地铁工程车辆故障诊断模型结构如图4所示。根据研究需求主要分为5个模块:故障文本预处理、Word2vec词向量训练、不平衡故障文本数据处理、基于Word2vec的句向量生成和RNN诊断模块。本文使用的诊断模型主要优点有:① Word2vec词向量训练模块可以设置固定的词向量维度,在词与词之间的语义关系表征上有良好表现;② 基于SMOTE算法的故障文本数据少数类别样本生成,可以有效避免RNN模型运行时出现欠拟合现象;③ 带有LSTM单元的RNN模型能够共享文本数据样本的上下文关联信息,同时避免RNN出现梯度爆炸或梯度消失,提高训练效率。
图4 轨道交通工程车辆故障诊断模型结构框图
3.2.1 工程车辆故障文本预处理模块
第一个模块主要负责对收集到的工程车辆故障文本进行中文分词处理和去停用词处理。为了实现文本挖掘的各项功能,文本必须进行精准分词,分词可以将故障文本数据这些非结构化数据分割成多个信息块,每个信息块均为可计数的离散元素。
去停用词是将一些工程车辆故障文本中表达信息能力不强的介词、副词、语气词等过滤掉。使用去停用词功能的好处在于降低文本表示维度的同时,对文本分类与故障诊断结果造成的影响很小。
3.2.2 Word2vec词向量训练模块
第二个模块主要负责将经过分词处理的文本进行数值向量化表示,向量化之后才可被分类模型识别与计算。本文使用Word2vec进行词向量训练,可将工程车辆故障文本中的每个词转化为计算机能够识别的分布式词向量,相同语境下的词在语义上也相似。
深度学习中常用Word2vec模块有Skip-gram和连续词袋模型(continuous bag of words,CBOW)。根据本文故障诊断的需求,更加适合选择CBOW模型进行训练,CBOW模型可以根据上下文的词向量来计算目标词的词向量。本文以CBOW为例,选择电力工程车的一项故障文本数据样本来进行模型训练,训练过程如图5所示。
图5 CBOW模型的训练过程框图
3.2.3 故障文本不平衡数据处理模块
在本文研究收集的工程车辆故障文本数据中,不同故障类别分布并不均衡,为了尽可能降低数据不平衡对诊断模型的影响到最小,对数据集进行重构,改变不同类别数据样本的分布特征,使不同类别的故障文本数量达到相对平衡,通过SMOTE算法来减小数据的不平衡性。
SMOTE算法过程如图6所示,其基本思想是对每个少数类样本,利用欧氏距离为标准计算出它的K个最近邻同类别样本(K为不小于1的奇数),并在其中选择合适的若干个样本。对于选择的近邻样本,一般采用线性插值方法构建新的样本,计算公式如式(11):
图6 SMOTE算法过程示意图(K=5)
(11)
式(11)中:xnew(i, j)为新数据样本;xi为少数类别样本;
为xi 的近邻点;r为0~1之间的随机数。
3.2.4 基于Word2vec的句向量生成模块
对于故障文本而言,如果只生成基于Word2vec的词向量,并不能直接传入RNN模块进行诊断。因此,在整个诊断模型中需要添加句向量生成模块,便于RNN模型识别具有上下文逻辑关系的序列数据。目前常见的基于Word2vec的句向量生成方法主要有2种:均值法和加权均值法。
均值法对每个句子的所有词向量取均值,来生成一个句子的Vector,其句向量生成计算公式为:
(12)
式(12)中:sen_vec表示句向量;m表示每个样本中的词的数量;veci 表示第i个词的词向量。
加权均值法对每个句子的所有词向量取加权均值,来生成一个句子的Vector,其句向量计算公式为:
(13)
式(13)中;sen_vec表示句向量;m表示每个样本的词的数量;veci 表示第i个词的词向量;weight(i)表示第i个词的所占权重,权重可以根据TF-IDF,信息增益等方法求得。
对于工程车辆故障文本样本生成的句向量长度不同的问题,可以对长度较短的文本补充空格,从而构建维数一致的句向量进行输出。
3.2.5 RNN诊断模块
第5个模块的主要功能是利用带有LSTM单元的RNN模型实现工程车辆故障文本数据的深层特征提取和自动分类与诊断,具体的工作流程如图7所示。
图7 RNN诊断模块工作流程框图
RNN模型的输入为经过句向量生成模块生成的句向量组成的文本矩阵,此时输入的句向量经过处理后特征维数相等,便于RNN进行下一步计算。在LSTM层中,获取与时间序列相关的隐藏层向量,以提取局部上下文高层特征。随后,将经过LSTM单元的数据输入均值池化层,深度挖掘故障文本的特征并进一步降维。最后,由全连接层和softmax层实现转换,得到相应的概率数值(一般取概率最大的结果为最终的诊断结果),对应的计算公式如式(14):
(14)
式(14)中:Pm为该故障文本属于第m类故障的概率;S为全连接层的输入;M为工程车辆故障类别数量;W和B分别为全连接层的权重矩阵与偏置项。
4 实验结果与分析
本文的实验环境为Windows 10操作系统,CPU为Intel Core i5-7500(3.40 GHz),运行内存为8 GB。所采用的编程语言版本为Python 3.9,采用Tensorflow框架完成提出的网络结构。
4.1 实验具体设置
4.1.1 工程车辆故障文本预处理模块设置
本实验采用Python编程语言当中的jieba库完成自动分词,故障文本预处理过程如图8所示。为了更加准确地对故障文本进行切分,本实验在通用词典的基础上构建了轨道交通工程车辆专业领域词典,得到表征故障文本信息的特征词集合,通常这些词包含关键的故障类别信息,因此在分词过程中应作为一个单独词项以便于区分。
图8 故障文本预处理过程框图
故障文本预处理模块可以根据对应的故障文本数据集来修改专业领域词典,以此迁移到其他系统与设备的故障诊断应用场景。
4.1.2 故障文本词向量训练模块设置
将预处理好的文本分词保存到一个新的文本文件中,以便于词向量训练模块进行测试。本实验调用了Python中的gensim库,完成轨道交通工程车辆故障文本的词向量化。
进行词向量训练时,由于CBOW模型可以通过上下文词预测当前词构造语言模型,对本实验的故障文本数据有较高的训练效率,因此本实验选择CBOW模型进行词向量训练。CBOW模型的窗口大小和词向量维数是2个需要合理设置的重要参数。原则上窗口越大,模型对上下文关系考虑越全面,但相应的训练时间会更长。本文选用的工程车辆故障文本大多为短文本数据,故障表征不需要过长文本,本实验的窗口设置长度为3即可。
为了选择最佳的词向量维数,在轨道交通工程车辆故障样本集选择不同维数的词向量进行验证,F1值随不同词向量维数的变化如图9所示。根据图9反映的训练结果,同时为了提升模块训练效率,本模块的词向量维数设置为200。
图9 不同词向量维数对应的F1值曲线
4.1.3 故障文本不平衡数据处理模块设置
通过SMOTE算法生成的少数类别文本向量数据,原始数据量与人工合成后的数据量进行对比,可以看出少数类别样本数量得到提升。故障类别的数量分布不平衡性明显降低,数据量由原始数据的1 296条变为3 546条,具体如图10所示。
图10 原始数据量与合成后的数据量对比图
4.2 结果分析
选择了某地铁设备中心于2017年9月至2020年12月的工程车辆故障文本数据进行验证,本实验对样本数据中训练集、测试集、验证集的分配比例分别为70%、10%、20%,数据包含了7种标签。本文中将经过故障文本不平衡数据处理模块和句向量模块处理后的各个类别故障数据文本执行梯度下降以最小化损失函数训练RNN,设置网络输入批处理参数为64,设置学习率为0.001,初始迭代次数设置为10。
实验需要寻找识别误差最小的迭代次数,以10次为迭代次数提升幅度,分别在不同迭代次数下计算识别误差,得到的关系如图11所示。由图11可知迭代次数达到70~90次时,模型识别误差达到较小的数值并且逐渐趋于稳定。
图11 识别误差与迭代次数关系曲线
4.2.1 评价指标
根据模型具体情况选取的评价指标是精确率(precision)与召回率(recall)[18],分别用于反映诊断结果的准确性与诊断结果的全面性。另外,还引入了F1值,作为诊断模型的综合评价指标,相关参数见表3。
表3 模型评价指标参数
对应的精确率P计算公式为:
(15)
对应的召回率R计算公式为:
(16)
对应的F1值计算公式为:
(17)
4.2.2 结果评价
根据本文选取的评价指标,针对地铁工程车辆故障文本数据的故障诊断结果进行评价,对应的评价结果如表4所示,可以看出本文中所用方法可较好地对轨道交通工程车辆故障文本进行诊断,7个类别的平均精确率可达到86.30%,平均召回率达到86.68%,平均F1值达到86.49%。纵观整个分类诊断评价结果,整体分类诊断准确率可达到85%以上。
表4 轨道交通工程车辆故障文本数据分类诊断评价结果(%)
4.2.3 实验分析
在文本表示部分,One-hot、TF-IDF、Glove[19]等文本表示方法得到广泛应用,将上述3种方法与本文中的Word2vec词向量方法进行对比实验,上述4种算法与RNN诊断模块进行结合,应用于地铁工程车辆故障诊断的诊断结果如表5所示。
由表5可以看出,由于One-hot与TF-IDF两种算法都属于离散式表示方法,没有考量词与词之间的语义联系,它们的训练结果相对较差。Glove与Word2vec同属于分布式表示方法,准确率有所增加,但无法获取文本整体语义信息。Word2vec在3项评价指标中均获得了良好效果,证明该方法可为后续模块提供较为理想的文本表示形式。
表5 不同文本表示算法结果评价(%)
在诊断模块的核心分类器方面,K最近邻、支持向量机、朴素贝叶斯等机器学习算法已在故障诊断任务中得到应用并取得了不错的应用效果,此外深度学习中的CNN算法也在故障诊断中得到广泛应用。因此本文选择这4种算法与本文使用的方法进行比较,采用相同的故障文本预处理、不平衡数据处理方式以及句向量生成模块进行实验,得到的具体结果如表6所示。
表6 不同诊断模块结果评价(%)
由表6可以看出,在地铁工程车辆故障诊断模块中,使用不同的诊断模块的效果不同,本文选择的RNN诊断模块有效提高了模型的评价指标,RNN所具有的挖掘文本数据深层特征与上下文联系的良好能力, 能够在故障诊断中发挥很大作用。
5 结论
1) 以工程车辆故障文本数据为样本研究故障诊断方法,提出的诊断模型表现较好,精确率、召回率和F1值分别可达到86.30%、86.68%和 86.49%。
2) 本文提出的故障智能诊断模型分别从文本表示方法与诊断模块分类器2个角度进行实验,结果表明,文中所用模型可以有效提升基于故障文本的地铁工程车辆故障诊断效果,提高文本数据的利用率。
3) 在智能运维背景下,未来研究可以根据故障的系统(或设备)类别进一步修改故障文本预处理模块的专业领域词典,调整词向量维数与训练迭代次数,以推广到其他轨道交通故障设备的故障诊断应用场景。
声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们删除。
“人工智能技术与咨询”发布