基于CNN-CSRF组合模型的列控车载设备故障诊断
2020-12-07周璐婕党建武王瑜鑫张振海
周璐婕,党建武,2,王瑜鑫,张振海
(1.兰州交通大学 自动化与电气工程学院,甘肃 兰州 730070; 2.甘肃省人工智能与图形图像处理工程研究中心,甘肃 兰州 730070; 3.兰州交通大学 土木工程学院,甘肃 兰州 730070; 4.中铁西北科学研究院有限公司,甘肃 兰州 730070)
列车运行控制系统是保障列车安全、高速运行的核心,列控车载设备是列车运行控制系统的重要组成部分。车载设备结构复杂,维修时间紧迫,对其进行快速、准确的故障定位,关系着列车运行效率和安全。车载设备运行过程中会产生应用事件日志(Application Event log, AElog),该日志以文本形式记录了车载各个模块正常或故障时的运行状态语句,技术人员通过分析车载日志掌握车载设备每一时刻的状态信息。目前铁路现场对车载设备的故障诊断仍依赖人工经验,诊断难度大、故障处理效率低。如何对车载日志进行文本信息挖掘,实现车载设备故障的智能诊断是当前亟待解决的问题。
车载设备故障智能诊断主要包括对文本数据的特征提取和故障分类两部分。在现有研究中,文献[1-2]基于人工记录的车载设备故障追踪表,分别采用主题模型和词频-逆向文件频率算法对故障文本信息进行特征选择,并通过贝叶斯网络实现故障分类。但故障追踪表记录不规范、不易获取有用信息,并且利用贝叶斯对所提取的故障特征进行分类时,要求特征属性间条件独立,这点很难满足。文献[3]利用向量空间模型(Vector Space Model, VSM)实现车载日志文本数据的结构转化,基于粗糙集理论进行特征选择,最后用神经网络实现故障分类。但VSM存在严重数据稀疏问题,使分类器面临维灾难,从而大幅降低分类性能,且VSM无法表示文本的语法和语义特征。文献[4]通过Word2vec工具将车载日志信息转化为词向量,采用长短期记忆网络(Long Short-Term Memory, LSTM)和反向传播(Back Propagation, BP)神经网络的级联结构实现车载设备故障分类。虽然词向量可较好地解决维灾难和特征表现力不强等问题,但LSTM以链状结构组成阵列时对文本深层特征的挖掘能力不强[5]。综上,目前的研究多集中于人工特征选择及浅层分类模型,不具备从数据中自动抽取和组织信息的能力,且故障分类算法多基于类别平衡假设,对正常数据多于故障数据的车载日志直接分类会造成故障类识别率低,达不到诊断目的。
近年来,一种深度学习算法卷积神经网络(Convolutional Neural Network, CNN)成为研究热点,并被应用于文本特征提取与分类中[6-7]。Kim[8]提出经典的卷积神经网络文本分类模型,通过多个卷积核提取文本特征,利用全连接神经网络对特征分类。Kalchbrenner等[9]利用动态卷积神经网络提取语句特征,同样结合全连接神经网络实现文本分类任务。利用卷积神经网络能有效挖掘文本的局部特征和全局特征,对原始输入数据有更强的表达能力。但卷积神经网络对不均衡数据十分敏感[10],直接利用全连接层对不均衡样本进行分类,将造成多数类的分类精度高,少数类分类精度低,影响分类效果。
因此,本文通过对列控车载设备故障进行分析,结合卷积神经网络的优势,实现车载日志的特征提取,并将其作为后续分类器的输入;针对车载日志数据中类别分布不均衡的问题,设计一种随机森林(Random Forest, RF)与代价敏感学习相结合的分类器,在随机森林算法中引入代价因子来平衡样本之间的数目差异,使之成为以基于最小代价为目标的代价敏感分类器,从而提高故障类的分类精度;为确定模型的有效性,选取某铁路局提供的列控车载日志数据进行实验验证。
1 背景介绍
1.1 列控车载设备
我国CTCS-3级列控车载系统由车载主机和外围设备组成,通过外部接口与动车组、动态监测等外部设备连接,其典型组成结构见图1。其中主控单元包括C3控制单元车载安全计算机(ATPCU)和C2控制单元车载安全计算机(C2CU)[11]。
图1 CTCS3-300T型列控车载设备组成
1.2 车载设备故障
车载设备故障主要集中于BTM、ATPCU、VDX、继电器、测速测距单元等部位,每个模块又包含多种故障类型。在列车运行时,车载安全计算机会自动记录并保存应用事件日志。日志以文本形式记录了车载各个模块正常或故障工作时的运行状态语句,同一故障类型运行状态语句表述形式多样,相同表述也会出现在多个故障类型中。车载设备常见的故障模块、故障类型以及部分运行状态语句见表1。
每份AElog文件可保存250条运行状态语句,以提示指令为节点可将这些语句分为40段左右。在一份记录了车载故障的AElog文件中,多数是正常运行语句,仅有1~2段包含模块故障状态语句。因此,车载日志正常与故障数据间存在明显不均衡性,而实现故障语句的精准定位并对故障类型进行判别是车载故障诊断的核心。
表1 车载设备故障类型及运行状态语句
图2 CNN-CSRF诊断模型的整体架构
2 基于CNN-CSRF组合模型的车载设备故障诊断
2.1 诊断模型的整体架构
基于CNN-CSRF模型的车载设备故障诊断整体架构见图2,它包括车载日志的数据处理、特征提取和故障诊断三部分。其中:数据处理部分是对AElog文件中的运行状态语句进行结构化处理,将文本转换为计算机可识别的向量形式;特征提取部分利用数据处理后所得到的样本对CNN进行训练,训练好后,可将每个样本相应的特征向量自动提取出来;故障诊断部分是将上一步提取的样本特征向量送入代价敏感随机森林(Cost Sensitive Random Forest, CSRF)分类器实现故障的精确分类。
2.2 车载日志的数据处理
车载日志以文本形式记录,需要将文本转化为计算机可识别的数字形式。
(1) 文本预处理。对车载日志统一数据模式,按顺序依次提取运行状态语句,将每段语句作为一组样本,以词为单位对样本进行分词处理。为减少文本噪声,过滤停用词和符号。
(2) 文本分布式表示。Mikolov等[12]利用Word2vec将词转化为向量空间中低维、稠密的实值向量来实现文本分布式表示,且向量空间相似度可表示文本语义相似度。本文参考Word2vec中的CBOW模型,以经过预处理的运行状态语句作为训练语料,通过当前任意词的上下文预测当前词来构造语言模型。如图2的CBOW模型所示,输入当前词上下文词向量,经特征映射,在输出层结合Hierarchical Softmax算法利用Huffman树实现目标优化。Huffman树以语料库中所有词作叶子节点,以词频作其相应权值,用二进制编码表示根节点到该词的路径,将路径中的每个分支看成一次二分类,每次分类产生一个概率,目标是使预测词二进制编码概率最大。模型优化函数为[12]
(1)
式中:C为语料库;Context(w)为当前词上下文;w为当前词;P为概率函数。
利用随机梯度上升法对CBOW模型进行优化。通过该模型,可训练出车载日志中每个词语固定长度的向量表示,且日志中词语语义相似度与所得词向量表示的余弦距离成正比,能最大程度保留车载日志的语义特征,减少语义信息损失。
2.3 基于CNN的车载日志特征提取
CNN是在人工神经网络的基础上引入了由卷积层和池化层构成的特征提取器,经卷积操作自动提取更具差异性的特征,经池化、局部感受野和权值共享等操作减少网络复杂度和参数量。基于CNN的车载日志特征提取模型见图2中的特征提取部分。
(1) 输入层:令xi∈Rd为2.2节中经CBOW模型训练所得车载日志中第i个词的d维向量表示;将一段运行状态语句中所有的词语按词出现的顺序依次拼接,组成一组样本的文本矩阵A∈Rn×d,n为样本集中最长运行状态语句段的长度,不足长度n的语句用0补齐。
(2) 卷积层:对文本矩阵A经卷积核w∈Rh×d进行卷积操作
ci=f(w·xi:i+h-1+bi)
(2)
式中:ci为卷积操作所提取的局部特征;f为非线性激活函数ReLU;xi:i+h-1为矩阵A由第i个词到i+h-1个词组成的向量矩阵,h为卷积核宽度;bi为偏置项。当用卷积核w对一组样本完成卷积后,将ci依次排列,即可生成特征集合C∈Rn-h+1。
由于每组样本词语数量不同,为更全面提取特征,本文采用多种不同宽度的卷积核以获取不同词数级别的语义特征。
(3) 池化层:对卷积后的特征集合进行最大池化操作,获得局部特征中最重要的特征,同时减少网络权值数量,降低计算复杂度,即
tj=max{C}
(3)
式中:tj为各不同宽度卷积核提取的特征值,j=1,2,…,m,m为卷积核总数。将所得tj依次排列可构成全局特征向量T∈Rm。
(4)
式中:Pk为属于第k类故障的概率;W和B分别为全连接层的权重矩阵和偏置项;Y为故障类别数量。
本文用反向传播算法通过最小化交叉熵损失函数训练CNN,根据随机梯度下降法计算梯度,使用Adadelta更新准则[13]来更新学习率。并且在模型的卷积运算之后以及全连接层的激活函数之前加入批归一化处理。CNN训练好后,可利用卷积层和池化层从输入的车载日志中自动提取特征向量。
2.4 基于CSRF的车载设备故障分类
CNN本身就是一个分类器,但作为神经网络的一种,存在过拟合问题且对样本的不均衡性很敏感。使用CNN直接对车载日志的特征向量进行分类会造成多数正常类识别率高,少数故障类识别率低的问题。为弥补CNN的不足,本文结合CSRF进一步提高CNN的性能。如图2所示,将训练好的CNN全连接分类部分用CSRF取代,用剩下的卷积和池化层从车载日志中自动提取特征,以此特征作为CSRF的输入,经CSRF算法实现分类。
CSRF是在RF的决策树属性分裂度量中引入误分类代价,对少数类赋予较高代价,多数类赋予较低代价,以此来平衡样本间的数目差异。
RF是包含多棵决策树的集成分类器,先通过Bagging算法随机有放回地取样,之后随机选择每棵决策树在节点分裂时需要考虑的特征数量,在随机选择的特征子空间进行模型训练,最后对多棵决策树的分类结果进行投票,根据少数服从多数的方式决定样本类别。由于在选择样本和特征空间时引入了随机性,因此可较好地避免过拟合问题,提高分类精度。以分类回归树(Classification and Regression Tree, CART)作为RF的基分类器,CART为自顶向下递归二分过程,采用Gini指数表示不纯度,并用于选择分裂属性。用I(t)表示结点t的不纯度,其Gini指数可表示为
(5)
式中:p(j|t)为结点t上的数据属于第j类的概率;J为类别总数。
假设将父结点t分裂为左右两个子节点tL和tR,以结点处不纯度落差作为决策树属性的分裂度量,该落差为
2.2 线性范围与最低定量限 5-羟色胺线性回归方程为:Y=0.009 1X-0.003 9,r=0.999,线性范围为 0.10~100.00 ng/mL,最低定量限为 0.10 ng/mL;5-HIAA 线性回归方程为:Y=0.000 6X+0.003 2,r=0.999,线性范围为 1.00~1 000.00 ng/mL,最低定量限为 1.00 ng/mL。
(6)
式中:N、NL和NR分别为落在父节点及左右子节点的样本数量。为计算不纯度落差,需计算每个结点处的不纯度I(·),能最大化ΔI(t)值的属性则为最佳分类属性。
针对不均衡数据,CSRF是在CART属性选择的过程中引入代价敏感学习,让RF在避开过拟合的同时有效处理不均衡数据。在代价敏感学习中对不同的分类错误赋予不同代价,使得误分总代价最小。根据贝叶斯风险准则[14],计算样本x被误分为类别i的最小期望代价为
(7)
式中:C(i|j)为将j误分为i的代价;p(j|x)为把样本x分为j的概率。
在CART属性分裂中引入误分类代价,即在Gini指数中引入代价因子,结合公式(5)和公式(7)得代价Gini指数为
(8)
用误分类代价下降值ΔIc(t)代替不纯度落差ΔI(t),选择使误差分类代价下降最快的属性。
(9)
在求解误分类代价下降值ΔIc(t)时,不同类别的代价因子C(i|j)通常根据各领域的知识得到。本文采用Wang等[15]定义的代价因子作为车载故障分类的指标,将正确分类的代价定义为0,正常类的误分类代价定义为1。故障类的误分类代价取决于不均衡比例,即C(i|j)=a/b,a为正常样本数量,b为故障样本数量。
CNN-CSRF模型实现车载故障诊断的主要步骤如下:
Step1将车载日志经数据处理后形成的向量矩阵作为CNN的输入样本,将样本按一定比例随机分为训练和测试样本。
Step2用训练样本对CNN进行训练,训练结束后将样本相应的特征向量自动提取出来。
Step3利用上步提取的特征向量对CSRF进行训练。
(1) 将特征向量样本经Bagging算法随机有放回地取样得到n个样本子集。
(2) 用每个子集作训练样本构造一棵CART决策树,构造时每次从所有候选特征中随机选取k个特征,在该特征空间按式(9)计算误分类代价下降值ΔIc(t),每次选择最大的ΔIc(t)对结点进行分裂。
(3) 将所有决策树构成RF,通过少数服从多数的投票机制决定样本类别。
Step4测试阶段用训练好的CSRF取代训练好的CNN全连接部分,将测试样本输入仅含卷积和池化层的CNN中,获得测试样本特征向量,再将此向量经训练好的CSRF实现故障分类。
3 实验
3.1 实验数据及评价指标
实验数据来自某铁路局电务段提供的2017年8月至2019年4月的车载日志以及相关的故障资料。以表1所示的故障为例进行诊断,实验数据集包括2 572组正常运行样本(正常运行状态记作类别N)和580组故障样本(故障类别记作F1~F20),故障样本的分布见图3。按照样本类别,随机选取数据集中每一类的75%组成训练集(包括训练和验证),25%组成测试集,并且在训练阶段采用五折交叉验证。使用Python语言,以theano做底层框架,keras做顶层框架实现模型和算法。
图3 故障样本分布情况
车载设备故障诊断的本质是多分类问题,混淆矩阵能够可视化地表现各个类别的分类结果,矩阵中的每一行代表样本所属的实际类别,每一列代表分类器对样本的识别结果。基于混淆矩阵可以进行准确率Accuracy、精确率Precision和召回率Recall的计算。准确率表示样本中被识别正确的比例。由于车载日志的不均衡性,存在故障类识别率低但总体准确率很高的情况,所以用准确率作评价指标不能完全反应模型的性能优劣。而精确率和召回率可以分别从查准和查全两个角度对分类结果进行评价,因此选用精确率和召回率作为K分类模型的评价指标,计算表达式为[16]
(10)
(11)
式中:Pi和Ri分别为类别i的精确率和召回率;nij为类别i被分为类别j的样本个数;nji为类别j被分为类别i的样本个数。
F-Measure综合考量了召回率和精确率,可以评测模型整体性能优劣[16]。
(12)
3.2 模型训练
对CNN-CSRF模型里的CNN部分,使用训练集并采取批量训练模式来进行训练。实验设置Word2vec训练的词向量维度为300,CNN卷积核宽度分别为3、4、5,每组卷积核数目为100,迭代次数为100,批处理尺寸为64。训练时CNN在不同迭代次数(epoch)下的平均精确率、召回率以及F-Measure的变化趋势见图4。可以看出随着迭代次数的增加,各项评价指标逐渐上升。在训练达到80次后结果趋于稳定,模型得到充分训练,达到良好的训练效果。
图4 训练阶段CNN在不同迭代次数下的评价指标变化趋势
针对CNN-CSRF模型里的CSRF部分,为了使其达到良好的训练效果,需要调整2个主要的超参数:随机选择的特征数m和决策树数目n。本文通过控制单一变量的实验方法来确定最佳参数。先将决策树数目n固定为100,在m=[0.1,0.2,…,1.0]的范围内调整随机选择的特征数数目,并观察验证集上精确率、召回率以及F-Measure的变化,实验结果见图5。从图5可以看出,当特征数为0.4时效果最好。之后将m固定为0.4,在n=[20,40,…,160]的范围内调整决策树数目,实验结果见图6。由图6中精确率、召回率以及F-Measure随不同决策树数目的变化趋势可知,在n为100时效果最佳。因此将随机选择的特征数设为0.4,决策树数目设为100。
图5 不同特征数对应的评价指标
图6 不同决策树数目对应的评价指标
3.3 CNN-CSRF组合模型性能验证
为验证故障诊断模型对车载故障的识别能力和诊断效果,本文选用混淆矩阵可视化地展示诊断模型对各类别的判别结果。图7和图8分别展示了CNN模型和CNN-CSRF模型在测试集上的混淆矩阵,矩阵坐标中1~20代表故障F1~F20样本,N代表正常样本。对比图7和图8可以看出,由于样本的不均衡性,导致少数故障类容易被错分到正常类,但相较于CNN模型,CNN-CSRF模型提高了少数故障类的识别率,同时也提高了正常类的识别率。各模型对全部测试样本分类情况的性能比较见表2,可以看出CNN-CSRF模型在精确率、召回率和F-Measure等指标中均优于CNN模型。CNN-CSRF模型利用了卷积神经网络可以自动提取数据特征的优势,同时在CSRF分类器中结合了代价敏感学习来平衡样本之间的数目差异,对不平衡数据的整体分类有一定的改善效果。
图7 CNN模型的混淆矩阵
图8 CNN-CSRF模型的混淆矩阵
表2 CNN和CNN-CSRF模型性能比较
3.4 不同故障诊断模型性能比较
为进一步验证CNN-CSRF模型的整体效果,将本文模型与其他分类模型在测试集上进行对比。实验主要包括两类,第一类将代价敏感随机森林方法与其他机器学习方法进行对比,验证各机器学习算法对不平衡数据的分类能力,主要包括支持向量机(Support Vector Machine, SVM)、逻辑回归(Logistics Regression, LR)、k近邻(k-Nearest Neighbor,KNN)以及随机森林等,以上模型均以未经过特征提取的词向量作为输入。文献[10]中指出,不平衡问题的解决方法分为两种:一种为基于数据层的方法,包括过采样和欠采样;另一种为基于算法层的方法,包括代价敏感学习以及集成学习。本文从算法层的角度来解决车载记录数据不平衡的问题,因此将基于数据层的方法做为第二类对比实验,包括将合成少数类过采样技术(Synthetic Minority Oversampling Technique, SMOTE)与CNN结合,随机欠采样(Random Under-Sampling, RU)与CNN相结合,以及利用单独的卷积神经网络对词向量进行特征提取与分类。不同诊断模型性能比较见表3。
表3 不同诊断模型性能比较
从表3的诊断效果可以得出:在第一类以未经特征提取的词向量作为输入的SVM、LR、KNN和RF模型中,LR和KNN对样本分布不平衡非常敏感,召回率较低,查全效果不佳,影响了整体的分类效果;SVM发挥了良好泛化性的特点,分类性能有所提高;RF的分类效果最好,该模型在决策树的基础上采取了集成学习策略,增强了模型的泛化能力,相较于其他3种机器学习模型更适合不平衡数据的分类。在效果最优的RF模型中引入代价因子来构建CSRF模型,该模型在召回率上相较于RF模型提升了6.16%,查全效果有所提升,说明引入代价敏感学习可以改善分类器对不平衡数据的学习能力。在第二类实验中,首先使用单独的CNN模型对词向量进行特征提取和分类,CNN对数据不平衡的问题较为敏感,分类效果欠佳。从数据层的角度出发,利用SMOTE和RU对样本进行采样,将采样后的数据作为CNN的输入,再利用CNN实现特征提取与分类。这两种方法都可以降低数据间的不平衡程度,这一点有利于分类器的学习,提升了CNN的分类效果。但采样法的随机性较大,实验结果不稳定,并且本文的实验数据为文本型,利用过采样方法生成的新数据可解释性差,一个小的扰动会影响整个句子的含义,不利于特征提取。CNN-CSRF组合模型在精确率、召回率以及F-Measure等指标上均优于其他模型,这是因为该模型可以利用卷积神经网络从上下文词向量中自动提取有效的特征,该特征可以更好地反应词语之间的相互关系,之后通过CSRF从算法层的角度进一步提高模型的泛化性和对不平衡数据的分类能力,也避免了过拟合问题,因此整体分类性能最佳。
但在上述所有网络训练阶段,相较于单一的分类模型,CNN-CSRF组合模型的计算复杂度最高,在利用CNN进行特征提取时,卷积层的参数微调过程占用了大量时间。卷积层的计算复杂度可表示为O(N·D·H·Hm),其中N为训练样本数,D为输入特征维度,H×1为卷积核维度,Hm为卷积核数目。利用所提取出特征向量对CSRF进行训练时,该过程的计算复杂度为O(k·n·m·r),其中k为特征向量样本数目,n为决策树数目,m为决策树中每个节点随机选择的特征数数目,r为决策树深度。因此,本文模型是以增加计算复杂度为代价提升分类性能,该问题在下一阶段的研究中有待进一步改进。
4 结论
(1)针对列控车载故障诊断的研究,本文以车载日志为数据,提出一种基于卷积神经网络与代价敏感随机森林相结合的诊断模型。通过对车载日志进行分词和基于CBOW模型将日志转换为词向量,实现文本数据的结构化转换。再利用CNN的卷积和池化操作自动提取车载日志特征,经CSRF模型引入代价因子对不平衡数据进行处理并对所提取特征进行分类输出。
(2)通过对某铁路局车载日志数据进行实验,采用精确率、召回率和F1-Measure等指标对模型进行评估,结果表明,CNN-CSRF模型不仅可以自动提取有效特征,还能通过CSRF平衡样本之间的数目差异,进一步提高模型的诊断性能,是一种有效的车载故障诊断模型。