基于降噪自编码器降维的汽车行驶工况分析①

2021-01-22 05:41施华君
计算机系统应用 2021年1期
关键词:降维运动学加速度

顾 珉,施华君

(华东计算技术研究所,上海 201808)

对汽车行驶工况的构建可以有效地反映一个城市甚至一个国家的汽车行业的发展水平,对于汽车行业、环境保护都有着深刻的影响[1-3].工况的变化对于汽车燃料消耗、污染物排放都有着重要的影响,因此本文主要针对汽车行驶工况进行科学有效的研究.作为国内知名的汽车之城,上海市嘉定区拥有着丰富的汽车制造资源,我国上汽集团正是坐落于此.由于目前该地区还没有关于汽车行驶工况的成熟的研究,因此本文选择上海市嘉定区作为实验区域.实验数据是通过为期2 周的实验测量获得,实验分别对3 辆同款同性能汽车从早中晚三个不同的时段,通过传感器反馈收集所得,以能充分满足实验所需的一般性.

研究工况的主要参数涉及到加速时间比例、怠速时间比例、减速时间比例、平均速度、平均行驶速度、加速段平均加速度、减速段平均减速段、最大加速度、最小减速度和平均加速度等.因此为了衡量工况的各项性能,本文在获取数据的行车实验时,记录下包含且不只包含以上参数在内的多项参数,利用这些潜在的影响因素进行后续的实验.

同时针对可能存在的怠速问题,本文进行了一个全面的讨论.因为汽车在堵车状态或者失去信号的状态下,信号可能会不完整,因此需要讨论汽车在一定范围的时间缺失值下,是否仍视为处于同一个连续运动区间的时间片段.这样不但满足对数据完整性的要求,而且也符合实际生活中的意义,处理过后对数据进行运动学片段划分.对于不同路况行驶的测量数据,其中上述涉及到的影响因素都通过每秒记录一次的方式保存下来.由于数据集本身的一些特殊性,根据实际情况分析,根据GPS 信号消失的时间长短,对于消失时间较长的数据段进行切割和删除.而对于较短和残缺的数据段,主要采用了线性插值法、拉格朗日插值法、样条插值等不同的方法进行实验.考虑到与实际情况可能有所偏差,然后在得到的新数据集中,进行异常值的过滤、筛选和清洗,通过计算瞬时加速度来检测加速度异常的情况,并用限幅算法进一步调整到合理的区间.

最终在构建工况的问题里,本文对之前数据预处理后所得的新数据集,进行了以下流程:提取特征—降维—聚类—提取典型片段—合成—评价.由于时间序列本身的前后倚赖关系和复杂性,我们进一步对每个片段不同维度的特征进行了细粒度更高的提取,从而得到了一个影响因素在29 维的运动片段特征数据集.维度过大是因为部分属性存在一定的冗余,出于对计算效率以及准确性的考量,需要对数据进行降维.基于这种思想,本文提出了一个改进的降维方法,首先利用T-SNE 算法提取主成分以获得非线性信息,接着使用PCA 主成分分析发现实验效果并不理想,因此最终选择了深度学习中比较流行的降噪自编码器进行降维处理,取得了不俗的实验效果,且非常贴近实际意义.在聚类过程中,经过实验发现K-Means 的欧氏距离在数据集上效果不是很理想,因此本文考虑结合时间序列相关性,将度量替换成DTW (动态时间规划)和Pearson相关性,取得贴近现实意义的结果.

同时我们根据收集数据和研究发现,工况与速度频率信息可能还有着密切的关系,而传统的工况研究里并没有涉及到此方面的研究,因此本文还决定将速度因素加入到新的考量中.因此本文采用了基于EMD和平均近似熵的时间序列复杂度度量方法[4].先对所有运动片段进行了EMD(本征模态分解),得到了自适应个数的模态.熵是一种能够反映序列复杂度的指标,为了衡量这些模态的复杂度信息,设计模态计算近似熵并求平均值作为一个运动片段的复杂度描述,再根据复杂度对属于同一类的运动片段进行排序,加入随机种子,得到最终的候选片段.图1为本实验总体所采取的流程图.

图1 实验总体流程图

1 数据预处理阶段

数据采集阶段,对汽车上安置的传感器所收集的数据采用一秒一次的方式进行记录,虽然传感器已经有了相当的精度,但是可能还会出现一些不良的数据[5,6].经过后期调研和数据检查发现,不良数据的原因主要分为3 类,第1 类是缺省值,这个通常是传感器在经过高楼或者隧道时丢失信号造成;第2 类是汽车加、减速度的异常,这个通常是传感器自身出现的问题;第3 类是怠速情况下的异常,其中通常认为汽车在长时间处于10 km/h 的速度以下视为怠速,怠速的异常最主要原因通常是长时间停车未关闭检测器,也可能是堵车等交通路况复杂导致.

由于这些原因造成的数据不连续情况,经过仔细考虑,本文对3 类异常出现的原因进行总结,针对第1 类情况和第2 类情况,可以首先对异常的数据进行清零,然后再使用插值的方法进行补全.而针对怠速问题,本文采用限幅算法对车速进行约束,如果汽车在180 s内一直小于10 km/h 的速度视为异常状态,对这段时间就采用忽略的方法,而对180 s 内能恢复速度的采用插值的方法.

本文实验对收集到的数据处理的方法如下:首先以时间序列作为划分度量,分别得到汽车行驶的时间区间,汽车从上路到熄火的完整过程应视为同一个切片,实验划分以相邻两个记录的时间点间隔为依据,如果相距5 分钟以上的片段则进行划分和切片,对这些时间跨度小于5 分钟但不连续的运动区间进行数据补全的处理,然后主要是进行插值补全的方法.针对插值的方法,本文对线性插值法和拉格朗日插值法两种不同的方法分别进行讨论,为了得到更优的结果需要分别进行实验.

(1)线性插值法,即在两个片段之间按照两个区间边界的情况进行插值,呈现出一条线性递增或递减的曲线.

(2)拉格朗日插值法,即在已知的连续片段下,按照过这n+1 个点,且次数不超过n的多项式y=Pn(X),要估计任何一点 ξ,ξ≠Xi,,i=0,1,2,···,n,用该多项式计算结果进行插值.在这种情况下,插值曲线呈现出类抛物线的形式.

在这两种插值法的比较下,本文通过实验分别编程分析,最终发现线性插值法的效果更优.通过分析原因,主要是由于在信号丢失的情况下,汽车往往还能保持匀速或者其他非怠速状态的运动方式,即怠速时间比会小于正常数据的比例,因此,在时间段插值的补全结果里,我们都采用了线性插值法.

预处理实验阶段,本文利用Python 和Matlab 作为主要编程工具,首先将收集得到的数据导入,检查是否存在缺省值.接着,以时间作为唯一的index 进行筛选,第一步对时间中的小时进行划分,目的是将文件以时间为单位,将原始文件分为了13 个行间间隔为1 小时的新文件,接着利用相似的方法,继续将文件细分成最大间隔为5 分钟的不同数据段.在此基础上,本文对加减速度异常进行筛选后,利用线性插值法,将所有划分的时间段进行补全,最终得到处理后所有新文件记录时间的行间隔均为1 s.

运动学片段是指从一个怠速阶段开始到另一个怠速阶段开启的车速区间,这是构建汽车工况最主要的依据来源,因此需要针对怠速的各项特征进行分割运动学片段.针对之前经过预处理得到的数据集,本文对5 s 以内能够恢复到正常速度的值视为连续运动片段,因而进行保留,而对5 s 内不能恢复到非怠速状态的值视为异常,因而进行清零.最终根据怠速的定义(即小于每小时10 km 的速度)进行运动学片段的分割,将初始数据集中进一步细化成一个个独立的运动学片段.

2 运动学片段的提取

根据怠速的定义,设定在真怠速状态下的速度为0,因此经过预处理后得到一组0 或者10 以上的数据,本文的算法是以相邻不连续的两个0 作为怠速的划分.这具体是通过构建的函数cut_slice (data,level)来实现,其中具体参数data 表示数据,level 表示划分的标准,在本文中设为两段小于10.

算法流程是通过遍历在预处理后的数据集后,以时间片划分作为主要基准,对加速度、怠速等异常清理后得到,特别是针对怠速的处理,本文实验编写了data_search (data,level,time)函数,编程思想是将怠速的最大值设为10 km/h,如果5 s 以内仍然处于怠速状态,那么我们就将两个大于10 的值之间以0 填充,视为真怠速,否则即为假怠速,假怠速物理意义是车速在进入小于10 km/h 后能够很快恢复到10 km/h 以上,这样仍应保留数据视为行驶连续过程.

运动学片段提取的实验流程是通过遍历在预处理过程下,根据时间为主要基准,加速度、怠速等异常清理后的时间切片,对每段切片再分别进行运动学片段的提取,最终汇总成实验结果.核心算法是:考虑不同的怠速定义之下对实验结果的影响,本文分别设定能够从正常速度(大于10 km/h 的速度)恢复到下一个正常速度的最小时间间隔为3 s 和5 s,根据两者的实际情况及物理含义,分别代表汽车减速—>怠速—>加速的最短时间,完成运动学片段的切割.根据实验结果,本文最终采用了假设中的5 s 作为最大阈值,在此基础上,得到了运动学片段的划分结果.图2为实验下运动学片段的部分展示.

图2 运动学片段的部分展示

考虑到汽车合理的汽车运动特征评估体系,本文工况对于工况本身涉及的参数,主要包括平均速度(km/h)、平均行驶速度(km/h)、平均加速度(m /s2)、平均减速度(m /s2)、怠速时间比(%)、加速时间比(%)、减速时间比(%)、速度标准差(km/h)、加速度标准差(m /s2)等,最后根据实验得出的工况图以及汽车特征评估体系计算出汽车行驶工况与城市所采集数据源(经处理后的数据)的各指标(运动特征)值,并且说明本文结果的合理性.

3 降维分析及讨论

为了更有效的描述运动学片段并对其进行分类,通常采用特征值来表示运动学片段所具有的特点.而特征值个数的选择是此次实验的一大难点,如果只选用少量的特征,如加速度、平均速度等作为特征值,可能包含的信息并不是很全面,这样得到的分类一般不是很好.本实验中,大量的特征值其实存在着巨大的冗余,还会导致运算时间过长,计算开销太大.因此经过综合考虑和实验验证,本文对收集数据的29 个特征值结合运动学片段进行描述,并在此基础上采用降维思想,提升运算速度,减少冗余.本文实验采取了多种降维的思想,根据实验结果的好坏选择结果.

首先利用Pearson 相关性来辨识特征的线性相关性,但是实验发现这样的效果并不是很好,如图3所示,因为实验结果除了对角线是自相关以外,别的关联度不是很高,因此决定采取第2 种非线性降维的方法.

图3 协方差矩阵

T-SNE 是一种常用的非线性降维度方法,首先对这些明显的线性相关项直接去除,并插入这些项的TSNE 压缩项,主要是利用T 分布和随机近邻嵌入的思想,随机近邻嵌入通过将高维空间映射到低维空间转化为概率来实现,采用传统的欧氏距离,将距离关系通过概率的相似性来表示.如高维空间的两个数据点xi和xj,xi以条件概率Pj|i选择xj作为它的邻近点.考虑到xi为中心点的高斯分布,若xj越靠近xi,则Pj|i越大.定义Pj|i如下:

但是T-SNE 是一种非线性降维,这就导致其降维结果具有一定的随机性,因此为了保证此次实验的通用性,本文决定采用另一种降维方法——主成分分析,这是一种常用的线性降维方法.因为目前从综合表现来看,PCA 降维是丢失原始信息相对较少的一种线性降维方式,而根据线性投影的方式,将高维空间里的数据映射到低维空间中,以投影的方差大小来衡量优劣.根据PCA 优化目标,需要设定n维向量W为目标子空间的一个坐标轴方向,以此获得最大化数据映射后的方差,如下为PCA 的一般通式:

其中,m是 数据实例的个数,xi是 数据实例i的向量表达,是所有数据实例的平均向量.式中W为所有映射向量为列向量的矩阵,经过线性代数变换,得到如下优化目标:

其中,tr 表示矩阵的迹,化简过后,得到如下数据协方差矩阵:

该式最优解是由协方差矩阵的前k个最大特征值,把其所对的特征向量作为新的列向量所形成的,正交基可以清楚地表示了数据中原有的特征向量.PCA 最终的输出是Y=WTx,因此X 的原始维度降低到了K维.

针对上述PCA 需要处理的数据,由于原数据涉及到多种不同形式,因此需要采取归一化或标准化的方法,使数据消除量纲的影响.因此本文实验里分别采用了标准化和归一化的方法,实验结果如图4所示.

图4 标准化归一化结果

本文在对传统PCA 降维方法进行实验的同时,考虑到PCA 可能不一定适用于如此高维度的实验分析,因此借鉴了如今深度学习中非常流行的降噪自动编码器(de-noise Autoencoder,dA)[7]降维,dA 是一种类似PCA 的无监督机器学习算法,目的是与传统的PCA 降维进行对比,从而选择更优的降维方式.

而根据自编码器的定义,dA 是一种利用反向传播算法使得输出值等于输入值的神经网络,通过将输入压缩成潜在的空间表征,然后将这种表征重构为输出来实现.相比于传统PCA 算法,自编码器在适当的维度和系数约束下可以学习到比PCA 更有意义的数据映射.

同时,降噪自编码器作为一种无监督的机器学习算法,相较于传统PCA 算法,增加了非线性补充,这就降噪自编码器比PCA 具有更加灵活的特点,不但能进行线性变换,还可以进行非线性变换,因此可以学习到比PCA 更加有意义的数据分析.针对数据模糊情况,降噪自编码器还可以通过设置噪声,恢复以前可能“损坏”的原始数据.因此,将通过实验来对这两种不同的降维方法进行实验验证.

4 降维实验流程

本文首先使用SPSS 软件对数据进行主成分分析,最终PCA 实验验证保留了最有特征的4 项.具体实验流程如下,首先对于原始文件中的18 万条数据,通过预处理过程,将其分割成1230 个运动学片段.利用Python 建立函数将计算得到的各运动片段的特征值作为SPSS 的输入,最终,得到一个1230×29 的特征矩阵.接着,对数据进行标准化处理,用以消除量纲对特征分析的影响.使用SPSS 将得到的特征文件的标准化处理,并使用因子分析,选择主成分分析,得到4 个主要的特征,主成分表用来列出所有的主成分,且按照特征根的从大到小排列如图5所示,前4 项分别主要包括着着运动片段时间、平均速度、加速时间和减速时间.

图5 主成分分析结果

可以从图5中直观地看出,经过主成分分析提取后得到了7 个相关成分的方差、贡献率以及累计贡献率.然而从PCA 分类结果来看,传统PCA 并没有将该29 项特征值进行很好的降维,结果中至少前7 个成分包含了29 个特征值的超过90%的信息,然而主成分分析仅仅列出其中4 项作为降维后的主成分,且实验数据上前4 项的累积占比也仅占72.436%,这就与主成分分析所达到的效果不相吻合,分析原因可能是因为PCA 降维是线性降维,本实验可能在初始数据存在一定的偏差,同时在运动学片段的分割上也不是均匀且连续,因此PCA 对于该实验的降维效果不是很理想.

因此,结合之前的分析,本文采取深度学习中的dA 降维方法重新对该实验进行降维,具体实验流程如下,首先设置初始网络的节点数为数据维度29,由于维度不是很高,因此设置网络深度为4,同时对中间隐层的节点数逐渐收敛到15 和10,激活函数选择了tanh.针对可能存在一定的原始数据损害情况,因此将噪声系数设置为0.2.

实验发现,在设置噪声系数后,对初始数据的不连续性以及可能存在的损坏进行了很好的修复.同时在经过反复地实验后,在得到了当输出节点数为7 作为最终的降维结果时,如图6所示,实验效果是最优的,这也与之前传统PCA 分类所体现出的实验效果高度吻合,而且这个降维后的主成分也十分贴近实际意义.

图6 主成分分析结果

经过实验证明,本文选择前7 个作为主成分进行分析,大大减少了冗余情况.分析结果发现,第1 主成分主要反映运动片段时间、加速段时间、减速段时间、匀速段时间、平均速度、行驶时平均速度;第2 主成分主要反映速度标准差、怠速时间和行驶距离;第3 主成分主要反映加速段平均加速度、加速度标准差、加速度最大值,即可以理解主要反映行驶过程中加速度相关信息;第4 主成分主要反映行驶时间标准差、速度为10 到20 m/s 的信息;第5 主成分主要反映加速段的最大加速度、减速段的最大加速度以及匀速段的占比;第6 主成分主要反映运行片段时间标准偏差、中等行驶速度(速度为30 到50 m/s);第7 主成分主要反映速度为零的时间、加速段平均加速度和减速段平均加速度.

5 聚类实验流程

在取得了影响因子的最主要成分后,本文对之前数据集中分离出的1230 个样本进行聚类[8,9],主要采用了动态聚类的思想方法,具体实验步骤如下.

首先需要定义以变量或指标的个数为维度的空间里的一种距离,根据K-Means 算法,需要计算出1230 个样本两两之间的距离,本文在计算传统层次聚类方式时,考虑到传统欧式距离是一般层次聚类所选的主要度量方式.但由于本文实验数据是以时间序列为基准的,拥有很强的间断性和不等长的特点,且时间序列还存在着伸缩或者平移的可能性,因此选用传统的欧氏距离不能反映两段序列之间的相似性.即使序列有等长的可能,欧氏距离在对时间序列进行距离的度量时,由于仅仅以时间轴对齐方式来计算各个序列值的距离,而没有考虑序列的平移,因此极易导致距离计算结果的不准确,最终算法准确性也会下降.

基于上述所说的欧氏距离在进行时间序列上度量计算的诸多不足,本文采用DTW 算法作为改进,采用DTW 作为距离计算的度量.具体流程如下:

(1)初始阶段,将每个分段序列单独视为一个簇,同时计算每个分段序列之间的DTW 距离,将得到一个初始距离矩阵;

(2)对距离按升序方式进行排序,将升序后数组中按索引存入二维数组中;

(3)将数组中第1 个值(最小值)对应的子序列合并到一个新簇中;

(4)从数组第2 个值开始,先判断其对应的两个子序列有无合并.若未合并,则将两个序列合并为一簇;若其中一个已合并,则将另一个子序列合并到该簇;若两个子序列分别合并到不同簇中,则将两个粗合并为一个簇.每次合并时簇的个数减1;

(5)取数组下一个值,并将簇的个数减1;

(6)重复步骤(4)和步骤(5),直至数组中所有元素均处理完.

最终本文主要通过组间连接的聚类方法,使用DTW 作为距离度量得到图7示意的聚类结果.

图7 聚类过程

6 EMD 本征模态分解

以往的研究对从各个子工况中提取典型运动片段,基本上采用的平均速度匹配,近似一种随机挑选的方法.实际上,工况与汽车的速度波动有着密切的联系,运动片段的频域信号往往隐藏着速度变化的信息.EMD 本征模态分解可以理解成一种自适应的小波分解,它的优点在于并不需要预先设定分解的频段,所以可以从运动片段中自然分解出很多潜在的行为.

如图8,一个运动片段中分解出了5 个模态.第3 个模态与减速有关,第1 个第2 个模态与趋势有关,第4 个模态与速度突变有关.当然并不是所有的运动片段都有相同的对应,所以我们需要一种方法去评价这个运动片段所包含的信息.相对的认为,信息越多,越能代表这一类的信息,而熵经常被用于衡量一个序列的信息复杂度.我们采用运动片段所有模态的平均近似熵来描述这个这个运动片段的特征.

图8 本征模态分解

按比例加入随机种子,得到最终的候选片段,从各分类中选择相应数量的运动片段组成1200 到1300 s的运动工况,校验标准参照与总体平均值的偏差不超过5%.最终构建出的嘉定区汽车行驶工况如图9所示,从整体来看,可以看出嘉定汽车行驶的工况在连续行驶的大部分时间还是处于一个相对比较连续的过程,证明堵车情况较好,总体行驶工况结论为:嘉定区汽车行驶速度中等,加减速度较为频繁,怠速时间比例总体偏低.

7 结论与展望

本文运用机器学习和人工智能的方法,结合实际应用需求,创新性地提供了一种利用降噪自编码器降维方式对汽车工况实验数据进行降维的方法,为创建和构造汽车行驶工况的研究提供了一些可行性的方法,也希望为我国未来其余城市的汽车行驶工况研究提供参考.同时,提出了对于汽车行驶工况的主要影响因素,当然不同城市的工况可能会存在着差异,但是本文将一种通用的研究方法提出以供参考,希望为我国环境保护和汽车工业的发展提供一定的帮助.

图9 工况构建图

猜你喜欢
降维运动学加速度
轿车前后悬架运动学仿真分析
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
基于数据降维与聚类的车联网数据分析应用
基于MATLAB的工业机器人运动学分析与仿真
速度轮滑直道双蹬技术的运动学特征
降维打击
创新,动能转换的“加速度”
几种降维算法的研究及应用
“必修1”专题复习与训练
向心加速度公式推导