深度稀疏最小二乘支持向量机故障诊断方法研究

    张瑞 李可 宿磊 李文瑞

    

    

    

    摘要:提出一种结合多层结构和稀疏最小二乘支持向量机(Sparse Least Squares Support Vector Machine,SLSS-VM)的机械故障诊断方法。该方法构建了多层支持向量机(Support Vector Machine,SVM)结构,首先在输入层利用支持向量机对信号进行训练,学习信号的浅层特征,利用“降维公式”生成样本新的表示,并作为隐藏层的输入,隐藏层支持向量机对新样本训练并提取信号的深层特征,逐层学习,最终在输出层输出诊断结果。针对因多层结构带来算法的复杂度以及运行时间增加的问题,采用最小二乘支持向量机(Least Squares Support Vector Machine,LSSVM)技术,并將稀疏化理论与最小二乘支持向量机结合,通过构造特征空间近似最大线性无关向量组对样本进行稀疏表示并依此获得分类判别函数,有效解决了最小二乘支持向量机稀疏性缺乏的问题。最后,通过滚动轴承故障诊断实验验证了该方法的有效性。

    关键词:故障诊断;滚动轴承;多层结构;支持向量机;稀疏化

    中图分类号:TH165+.3;TH133. 33

    文献标志码:A

    文章编号:1004-4523( 2019) 06-1104-10

    DOI:10. 16 385/j. cnki. issn. 1004-4523. 2019. 06. 020

    引言

    随着人工智能技术迅猛发展,智能故障诊断方法受到越来越多研究者的重视。邵继业等[1]提出一种改进BP神经网络并用于压缩机气阀故障的诊断,实验结果验证了该方法的可行性与有效性。崔江等[2]结合参数优化算法与极限学习机方法,在对航空发电机旋转整流器的故障诊断实验中获得了良好的诊断性能与较高的分类速度。支持向量机在解决小样本、非线性以及高维模式中表现出许多特有的优势,并且具有良好的泛化能力[3]。李永波等[4]利用层次模糊熵与改进支持向量机实现了轴承不同故障类型和故障程度的准确识别。吐松江等[5]结合支持向量机与遗传算法,提出一种新的电力变压器故障诊断方法,实验结果证明该方法能准确、有效地诊断变压器故障。王新等[6]针对滚动轴承振动信号的非平稳特征与故障样本数量较少的情况,提出一种结合支持向量机与变模态分解的诊断方法,结果显示该方法能有效对轴承的故障类型与工作状态进行分类。然而当故障信号包含强于实际故障信号的噪声,状态监测和故障诊断的振动信号的特征参数值不明确,传统SVM难以表征设备健康状况与被测信号之间的复杂映射关系,并且对于机械系统故障诊断采集系统所采集的大量数据,会面临维数灾难等问题,因此很难获得较高的故障诊断准确率。

    在多数领域中,多层结构目前已经被证明是更加有效的学习方式,并且在故障诊断领域得到成功应用。数据的浅层特征在底层得以学习,之后被输入到下一层,形成输入数据更复杂的表示,数据的深层特征得以在深层结构学习[7]。Tamilselvan等[8]第一次将深度信念网络应用到飞机发动机故障诊断;Tran等[9]将Teager-Kaiser能量算子与DBN算法结合,在对往复式压缩机阀门故障诊断中获得了更高的故障诊断正确率;Shao等[10]将DBN与粒子群优化算法结合,在缺少旋转轴承先验故障信息的情况下获得了较好的识别率;Jia等[11]利用深度神经网络对轴承的频域信号进行特征提取与识别,获得了较好的分类效果。虽然利用深度学习的智能故障诊断技术已经有了良好发展,但常用深度学习方法仍存在一些挑战性问题亟待解决,如计算复杂度高、训练时间长、易陷入局部最优等[12]。

    根据以上分析,提出一种多层结构和稀疏最小二乘支持向量机的机械故障诊断方法。首先构建深度支持向量机(Deep Support VectorMachine,DS-VM),在输入层利用SVM对故障信号进行训练,数据的浅层特征得到学习,然后利用隐藏层SVM获得数据的复杂表示,学习数据的深层特征,经过多层学习,最终在输出层得到诊断结果。为解决因多层结构引起的算法用时长、计算复杂度增加等问题,采用最小二乘支持向量机方法,但LSSVM的分类判别函数由所有训练样本决定,缺乏稀疏性,因此通过寻找高维特征空间中样本近似最大线性无关向量组的方法对LSSVM进行稀疏处理,提出深度稀疏最小二乘支持向量机(Deep Sparse Least SquaresSupport VectorMachine,DSLSSVM)诊断模型。最后,将该方法用于滚动轴承故障诊断实验,诊断结果表明:本文所提出的诊断方法在诊断效率和准确率上均具有良好的表现。

    1 深度支持向量机

    1.1 支持向量机

    对于N组数据组成的训练样本集D={(xi,yi)}Ni=1,,其中,xi∈RM是第i个训练样本,yi∈{1,-1}为样本标签。

    SVM的优化目标为分类超平面ωT x+b=O,根据拉格朗日对偶性变换为求解拉格朗日因子a的优化问题。考虑对误差的宽容程度,引入惩罚因子C。针对数据线性不可分的情况,选择合适的核函数K(·,·)实现样本高维特征空间的线性可分,目标函数为

    根据最小最优化原则求得优化目标a,可以得到分类函数[13]

    1.2 深度支持向量机的网络结构

    多层结构的特征提取方法是通过在训练过程中学习多个特征体系结构来获取高级特征抽象。DS-VM的网络结构如图1所示。该结构由输入层、ι个中间层及输出层构成,每层均为一个标准的支持向量机。训练样本经输入层训练后,根据训练得到的支持向量,利用相关公式建立与下一层的联系,从而构建新一层的训练模型[14-15]。

    对于训练样本集D={(xi,Yi)}Ni=ι,训练样本经过输入层的训练,得到以拉格朗日因子为元素的向量aι×N、 量为Q的支持向量以及支持向量所对应的拉格朗日因子a1,a2,…,aQ,输入层的权值ω和偏置b可由aι×N得到。根据输入层训练后得到的拉格朗日因子倪与支持向量Svl,SV2,…,sv Q,采用“降维公式”对训练样本进行处理,“降维公式”的定义为式中 Svi为支持向量,ai为支持向量对应的拉格朗日因子,ysv为支持向量对应的标签,b为偏置。

    如图2所示,对训练样本xi∈RM,i=1,2,…,N,输入层Xi经“降维公式”处理后得到样本新的表示Xi2nd为依次对每个训练样本做相同处理得到N个新的训练样本X 2nd,X2nd,X2nd,…,xNand,通过输入层的特征提取,原始数据x∈RM被转换为x2nd∈RQ,输入层到中间层的权值训练完成,新的训练样本对应的标签y1,y2,y3,…,yN没有改变。将新的训练样本置人中间层训练,同理逐层按照相同方法至输出层。

    对于测试样本x,按照“降维公式”逐层对其进行映射,最后一层为输出层,分类判别函数为式中 Svi为输出层第i个支持向量,ι为输出层支持向量的个数,0(x)表示测试样本x经过中间层映射后的特征,b为输出层的偏置。

    对于线性可分问题,采用支持向量与输入样本的线性内积来解决。对于线性不可分问题,通过选择合适的核函数来解决。DSVM所使用的核函数类型与相关参数根据具体情况选择,以达到最优分类结果。

    2 深度稀疏最小二乘支持向量机

    DSVM方法相较于传统的SVM方法,虽然能获得更高的分类准确率,然而由于层数增加,训练所需要的时间也会高于传统的SVM,本节将讨论如何在保证分类准确率的同时减少耗时,提高效率。

    相较于标准支持向量机,最小二乘支持向量机将不等式约束转化为等式约束,降低了解的复杂性,减少了计算成本。但是,由于每个样本都会对分类函数起作用,缺少了稀疏性[16-17]。因此,本节利用求解训练样本高维特征空间近似最大线性无关向量组的方法对LSSVM进行稀疏处理,得到稀疏最小二乘支持向量机,结合深度支持向量机理论,提出一种深度稀疏最小二乘支持向量机网络模型。与DS-VM相比,在保证分类准确率的同时,增加了训练样本的稀疏性,减少了运算复杂度与运行时间。

    2.1 最小二乘支持向量机的稀疏化方法

    对于训练样本集D={(xi,Yz)}Ni-1,最小二乘支持向量机在高维特征空间中的分类判别函数为式中 ω为权值向量,φ(·)为样本从输入空间到高维特征空间的非线性映射。

    LSSVM分类可描述为求解以下二次规划问题获得判别函数式中 ei为误差变量。

    为求解上述优化问题,引入拉格朗日函数,将约束优化问题转化为无约束优化问题,并根据KKT( Karush-Kuhn-Tucher)条件求得分类判别函数为[18]

    在此基础上,通过两个步骤完成对LSSVM的稀疏化处理:

    1)寻找高维特征空间的一组近似线性无关向量,构造特征空间的最大线性无关向量组对所有训练样本进行稀疏表示。

    第一步的目标是寻找训练样本的特征子集B={(xj,Yj)}j∈s[D,m=|s |≤N,使得训练样本中的任意样本在特征空间的映射能够表示成該特征子集在特征空间的线性组合,即因此有相应地,分类判别函数只需特征子集B中的训练样本表示

    本文通过选择参数v来剔除特征空间中近似线性相关的向量,参数v用来控制向量子集B与被线性表示的样本的逼近程度,稀疏化流程如图3所示。

    具体步骤如下:

    首先设特征向量集B为空集,然后随机将训练样本中的一个样本放到B中,接下来对于剩余的每个训练样本,检查其是否能够在特征空间内被集合B中的样本线性表示。理论上如果存在系数向量η使得φ(xi)=Σηjφ(xj)成立,则新样本可以被当前子集线性表示。然而,实际上由于训练样本存在数值复杂无序、维度高等特点,这样的系数向量η可能并不存在,因此需要设定一个“阈值”u,使得训练样本可以在一定范围内被集合B近似线性表示。因此,系数η可以通过下式求解式中 u为控制稀疏程度的参数。如果式(12)成立,则φ(x)可以由当前向量子集B近似线性表示。下面求解最优系数η。将式(12)展开

    对于训练样本(x,y),若δ*>u,即不能被当前向量子集线性表示,则扩展为当前子集B=B U{(x,y)}。

    2)利用稀疏样本求解最优分类判别函数。

    将式(7)中约束条件里的松弛变量和式(10),(11)代入目标函数,得到无约束优化问题对角矩阵,(Kmm)i,j∈s=K(Xz,xj)=φ(xj)Tφ(xj),Km(xj)=[K(xi,xSl),K(Xi,xs2),…,K(Xz,XSm )]T,yN =[Yi,y2,…,yN ∈RN,D(yN)为以yN为对角元素构成的对角矩阵,KNM=[Km(x1),km(X2),…,km (XN )]T。1为元素全为1的单位列向量。

    式(16)是关于β和b的凸二次规划问题,因此最优解可以通过以下条件获得式中 D(yN)D(yN)=I,YTYN=N。整理后得到关于β和b的方程组,写成矩阵形式为

    2.2 深度稀疏最小二乘支持向量机

    DSLSSVM是将SLSSVM应用到深度支持向量机的网络结构中,将深度支持向量机的每一层替换为SLSSVM,实现多层SLSSVM的叠加。训练过程与DSVM相同,首先在输入层利用SLSSVM对原始样本进行训练,得到线性无关向量组B和系数β,然后利用“降维公式”对第一层输出结果进行处理,得到第二层的输入。需要注意的是,与SVM经训练得到支持向量sv与拉格朗日因子a不同的是,DSLSSVM利用SLSSVM的系数β与向量组B构造新的“降维公式”,相较于式(3),这里“降维公式”变为接下来将新的输入放入第二层SLSSVM中训练,之后逐层训练,直至得到输出结果。通过DSLSSVM的多层结构对训练样本不同表示进行训练,学习样本的深层特征,一方面保证了良好的分类准确率,另一方面也减少了计算复杂度与运行时间,同时不失良好的鲁棒性。

    3 实验验证

    为了验证本文所提方法的性能,分别在几组UCI数据集[19]和滚动轴承故障诊断实验平台采集的实验数据进行测试。

    3.1 UCI数据集验证

    本文选择UCI数据集中Breast Cancer数据集与Balance-scale数据集进行分类验证。BreastCancer数据集共683个样本,每个样本有10个属性,共2类,其中A类444个样本,B类239个样本。分别随机从A类选择100个样本、B类选择8 0个样本作训练集,剩余503个样本作测试集。Balance-scale数据集共576个样本,每个样本有4个属性,分为2类,每类各288个样本。分别从2类中截取1 00个样本作训练集,剩余共376个样本作测试集。在MATLAB环境下使用SVM,SLSSVM和两层DSVM及两层DSLSSVM进行分类。

    为了更好地对分类结果进行可视化,采用PCA算法对2个数据集进行降维,其中Breast Cancer数据提取出其前两个PC,对数据进行二维可视化。Balance-scale 据提取出其前3个PC,对数据进行三维可视化。各个数据的分类结果如图4,5所示,其中标记重合的点即分类错误点。分类准确率与用时如表1,2所示。

    由图4,5以及表1可知,对于Breast Cancer数据,SVM分类错误的点共15个,识别准确率为97. 02%;SLSSVM分类错误的点共1 6个,识别准确率为96. 8%;DSVM分类错误的点减少到8个,识别准确率为98. 4%;而DSLSSVM分类错误的点也下降到8个,识别准确率为98. 4%。对于Balance- scale数据,SVM的识别准确率80. 05%;SLSSVM的识别准确率80. 31%;DSVM识别准确率为85. 64%;DSLSS-VM的识别准确率为88. 03%。

    此外,由表2可知,DSVM在Breast Cancer数据集与Balance-scale数据集的训练用时分别为10. 42与12. 56 s,DSLSSVM则分别为5.89与6. 82 s,对于两组数据,DSLSSVM均明显获得了比DSVM更少的用时。

    根据实验结果可知,DSLSSVM不仅获得了比SVM与SLSSVM更高的分类准确率,与DSVM相比,对Breast Cancer数据集有相同分类准确率,而在Balance-scale数据集上则表现更好,且在用时上也比DSVM显著减少。因此,DSLSSVM具有良好的综合性能。

    3.2 滚动轴承故障诊断实验

    为进一步验证本文所提诊断方法在实际机械故障诊断中的性能,将该方法应用于风机的滚动轴承故障诊断实验中。算法验证框架如图6所示。本文实验数据采集于如图7所示风机实验平台,加速度传感器型号为PCBMA352A60,输出带宽为5-60Hz,灵敏度为10 mV/(m·S-2),测点在垂直方向。采集的信号通过传感器信号调节器(PCB ICO Model480C02)放大后传输至信号记录仪(Scope CoderDL750)。轴承转速分为6 00,8 00,1000 r/min,采样频率50 kHz,轴承的各项参数如表3所示。轴承的故障是人为通过线切割技术分别在轴承内圈、外圈、滾动体上加工出微小伤痕,如图8所示。伤痕尺寸有0. 25 mm×0.3 mm(宽×深)与O.l mm×0.3mm(宽×深)两种。

    实验在不同条件下采集了表4所示的3组数据,每种条件下采集的数据包含轴承正常、外圈故障、内圈故障及滚动体故障4种工作状态,每种工作状态的采样时间均为55 s。选取每种工作状态数据的前2750000个数据点作为实验数据,将每种工作状态数据分为1375个样本,每个样本2000个数据点。各状态分别随机取1 2 5个样本作为训练数据,剩余1250个样本均分为10组用作测试。

    对上述3组数据,在MATLAB环境下分别采用SVM、SLSSVM、深度卷积神经网络(CNN)方法、DSVM及DSLSSVM方法进行状态识别与诊断。实验中核函数类型均为高斯核函数,惩罚因子C与核函数参数σ利用交叉验证方法确定,DSVM与DSLSSVM均为2层结构,其中DSVM第1层参数与SVM相同,DSLSSVM第1层参数与LSSVM相同,稀疏化参数v在确保训练准确率的同时取较大值,以保证更好的稀疏效果。各方法具体参数如表5所示。

    记录各方法对10组测试样本的平均诊断准确率与方差如表6所示,各方法的结果对比如图9所示。同时,记录CNN,DSVM与DSLSSVM方法的训练用时如表7所示,各方法对比如图10所示。对比表6中的诊断准确率,对于3组数据,单层结构的SVM与SLSSVM的平均诊断准确率分别为86. 05%,86. 13%,均小于多层结构DSVM,DSLSSVM和CNN的准确率,三者的平均诊断准确率分别为95. 27%,97. 57%,94. 49%,而DSLSSVM的平均诊断准确率又高于DSVM与CNN。另外,根据诊断准确率的方差可以看出,与其他几种方法相比,DSLSSVM同样具有良好的稳定性。从训练用时来看,由表7可知CNN,DSVM与DSLSSVM的平均用时分别为399. 11,139. 71与73. 11 s,在获得高准确率的同时,DSVM与CNN明显需要比DSLSSVM更多的时间。图1 0也显示每组数据上DSLSSVM的用时均为最少。因此可知采用稀疏理论的DSLSSVM有效地减少了因多层结构带来的用时增加问题。

    综合准确率与诊断效率,DSLSSVM比其他几种方法具有更优的诊断性能。

    以上实验使用了两层结构的DSLSLSVM,下面讨论3层及以上结构对诊断结果的影响。利用3层与4层DSLSSVM对3组轴承数据进行训练与诊断,并对比不同层数DSLSSVM的诊断结果与时间如图1 1所示。

    由图11(a)可知,3层DSLSSVM对数据1-3中1 0组测试样本的平均诊断准确率分别为96. 39%,97. 12%,99. 2%,与两层DSLSSVM准确率几乎相同。4层DSLSSVM对数据1-3的平均诊断准确率分别为96. 4%,97. 13%,99. 24%,与2层结构相比同样几乎没有变化,3层与4层网络结构继续保持了良好的诊断效果;但由ll(b)可以看出,3层结构的训练用时分别为90. 52,94. 12,96. 42 s,4层结构用时分别为118. 72,12 7.68,134. 64 s,诊断用时会随层数的增加而递增。因此,综合诊断效率与准确率可知,相比3层及以上DSLSSVM,2层DSLSS-VM是更优的诊断模型。

    4 结 论

    提出了一种多层结构和稀疏最小二乘支持向量机的机械故障诊断方法。主要结论有:

    1)提出一种新的深度支持向量机结构。通过多层支持向量机的堆叠建立多层网络结构,利用支持向量与相关参数生成样本的复杂表示并逐层训练,学习样本深层特征,直至在输出层得到分类结果。

    2)为减少计算复杂度,采用最小二乘支持向量机方法,并结合在高维特征空间寻找样本近似最大线性无关集合的稀疏理论,获得样本的稀疏性,依此构建深度稀疏最小二乘支持向量机网络,提高了诊断效率,并保证了良好的诊断结果。

    3)将提出的方法分别用于风机轴承故障诊断以及两组UCI数据集的分类,并对比SVM,SLSS-VM,DSVM,DSLSSVM和卷积神经网络CNN等方法,诊断结果表明,综合考虑准确率和诊断效率,所提出的方法相对于其他的几种方法性能更佳。

    4)针对3层及以上DSLSSVM做了进一步讨论。对风机轴承故障诊断的诊断结果表明,3层及以上网络仍然具有良好的诊断结果,但由于层数增加,诊断效率不可避免地有所下降。

    参考文献:

    [1] 邵继业,谢昭灵,杨 瑞,基于GA-PSO优化BP神经网络的压缩机气阀故障诊断[J].电子科技大学学报,2018, 47(05):781-787,

    Shao Jiye, Xie Zhaoling, Yang Rui. Fault diagnosis ofcompressor gas valve based on BP neural network of aparticle swarm genetic algorithm[J]. Journal of Uni-versity of Electronic Science and Technology of China,2018, 47(05):781-787.

    [2] 崔 江,唐軍祥,张卓然,等,基于极限学习机的航空发电机旋转整流器快速故障分类方法研究[J].中国电机工程学报,2018,38(08):2458-2466.

    Cui Jiang, Tang Junxiang, Zhang Zhuoran, et al.Fastfault classification method research of aircraft genera-tor rotating rectifier based on extreme learning ma-chine[J]. Proceedings of the CSEE, 2018, 38(08):2458-2466.

    [3] 王文涛,深度学习结合支持向量机在人脸表情识别中的应用研究[D].西安:长安大学.2016.

    Wang Wentao. Studies on application of deep learningcombined with support vector machine in facial expres-sion recognition[D]. Xi' an: Chang' an University,2016.

    [4] 李永波,徐敏强,赵海洋,等,基于层次模糊熵和改进支持向量机的轴承诊断方法研究[J].振动工程学报,2016,29(01):184-192.

    Li Yongbo, Xu Minqiang, Zhao Haiyang, et al. Astudy on rolling bearing fault diagnosis method basedon hierarchical fuzzy entropy and ISVM-BT[J]. Jour-nal of Vibration Engineering, 2016,29(01):184-192.

    [5] 吐松江·卡日,高文胜,张紫薇,等,基于支持向量机和遗传算法的变压器故障诊断[J].清华大学学报(自然科学版),2018, (7):623-629.

    Kari.Tusongjiang, Gao Wensheng, Zhang Ziwei, eta1. Power transformer fault diagnosis based on a sup-port vector machine and a genetic algorithm[J]. Jour-nal of Tsinghua University (Science and Technology),2018,(7):623-629.

    [6] 王 新,闫文源,基于变分模态分解和SVM的滚动轴承故障诊断[J].振动与冲击,2017,36 (18):252-256.

    Wang Xin, Yan Wenyuan. Fault diagnosis of rollerbearings based on the variational mode decompositionand SVM[J]. Journal of Vibration and Shock, 2017,36 (18):252-256.

    [7] Abdullah A, Veltkamp R C, Wiering M A.An en-semble of deep support vector machines for image cat-egorization[C]. International Conference of IEEE SoftComputing and Pattern Recognition, SOCPAR' 09,2009:301-306.

    [8] Tamilselvan P, Wang P. Failure diagnosis using deepbelief learning based health state classification[J]. Re-liability Engineering&Systems Safety, 2013,115(7):124-135.

    [9] Tran V T, AIThobiani F, Ball A. An approach tofault diagnosis of reciprocating compressor valves u—sing Teager-Kaiser energy operator and deep beliefnetworks[J]. Expert Systems with Applications,2014, 41(9):4113-4122.

    [10] Shao H, Jiang H, Zhang X,et al.Rolling bearing faultdiagnosis using an optimization deep belief network[J]. Measurement Science and Technology, 2015, 26(11):115002-115018.

    [11] Jia F, Lei Y G,Lin J,et al.Deep neural networks:Apromising tool for fault characteristic mining and intel-ligent diagnosis of rotating machinery with massive da-to[J]. Mechanical Systems and Signal Processing,2015,2:303-315.

    [12]焦李成,赵 进,杨淑媛,等,深度学习、优化与识别[M].北京:清华大学出版社,2017:116-117.

    Jiao Licheng, Zhao Jin, Yang Shuyuan, et al. DeepLearning, Optimization and Recognition[M]. Beijing:Tsinghua University Press, 2017:116-117.

    [13] July.支持向量机通俗导论[EB/OL]. https://blog.csdn.net/macyanglarticleldetailsl38782399/. 2014.

    [14] Hinton G E, Osindero S,Teh Y W.A fast learningalgorithm for deep belief nets[J]. Neural Computa-tion, 2006, 18(7):1527-1554.

    [15] Wiering M A, Schomaker L R B.Multi-Layer SupportVector Machines[M]. Regularization, Optimization,Kernels, and Support Vector Machines. Chapman&H a11,2 014.

    [16]陈圣磊,陈 耿,薛 晖,最小二乘支持向量机分类的稀疏化方法研究[J].计算机工程,2011, 37(22):14 5-147.

    Chen Shenglei, Chen Geng, Xue Hui. Research onsparsification approach for least squares support vectormachine classification[J]. Computer Engineering,2011,37(22):145-147.

    [17]甘良志,孫宗海,孙优贤,稀疏最小二乘支持向量机[J].浙江大学学报(工学版),2007,(02):245-248.

    Gan Liangzhi, Sun Zonghai, Sun Youxian. Sparseleast squares support vector machine[J]. Journal ofZhejiang University(Engineering Science), 2007,(02):245-248.

    [18]陈 昌,汤宝平,吕中亮,基于威布尔分布及最小二乘支持向量机的滚动轴承退化趋势预测[J].振动与冲击,2014, 33(20):52-56.

    Chen Chang, Tang Baoping, Lv Zhongliang. Degrada-tion trend prediction of rolling bearings based onWeibull distribution and least squares support vectormachine[J]. Journal of Vibration and Shock, 2014, 33(20):52-56.

    [19] UCI Machine Learning Repository[EB/OL]. https://arehive. ies.uei.edu/ml/index.php.2018.05.08.