基于VAE-LSTM 模型的航迹异常检测算法*
2020-03-14常吉亮赵建伟
常吉亮 谢 磊 赵建伟 杨 洋
(1.武汉理工大学国家水运安全工程技术研究中心 武汉 430063;2.武汉理工大学能源与动力工程学院 武汉 430063)
0 引 言
随着船舶定位技术、通信技术,以及大数据技术的迅速发展,在船舶行驶过程中,大量的船舶轨迹数据呈指数增长。航迹作为1 种时间序列数据,可视为时间到空间的映射,在客观上记录了船舶活动的位置信息和时间信息。航迹大数据中蕴藏着丰富的有价值的目标活动信息。近年来,航迹数据挖掘一直是研究热点,包括船舶交通流研究[1-2]、航迹聚类[3-4]、航迹数据压缩[5-6],以及船舶轨迹预测[7]等。船舶轨迹数据是由雷达、AIS等多种数据源感知获得,由于不同数据源定位误差的差异,导致航迹数据中出现异常,所以,在实际环境下轨迹数据的准确性是难以保证的[8],这些异常航迹严重影响了航迹数据挖掘的准确性。因此,航迹异常检测是开展航迹数据挖掘研究的重要前提。
航迹异常检测是指在海量无标签的航迹数据中识别出异常航迹。Hawkins[9]对异常的定义为:异常是指在数据集中显著偏离其他绝大部分数据的那些数据对象,以至于引起人们怀疑它们是由完全不同的机制产生的。具体而言,文中讨论的异常航迹是指:①在航迹集合中相同轨迹数量少;②空间上偏离其他航迹;③航迹中存在许多与其邻近大部分航迹点在运动特征上有显著差异的采样点的航迹。
近年来的船舶异常航迹检测方法主要集中在最近邻、专家系统、聚类算法、自动编码器,以及递归神经网络等算法模型。在最近邻的方法中,Laxhammar等[10]将待检测的轨迹数据与存储在数据库中的所有数据进行比较,找到最相似的数据,并对待检测数据进行分类。专家系统是通过有经验的专家制定异常轨迹的规则,根据这些规则对航迹进行分类,卫桂荣等[11]依据AIS 的通信原理,提出水上移动业务标识码校验、填充位和校验码综合检测、动态信息和静态信息匹配校验及异常位置点检测等数据错误检测方法;吴建华等[12]在对大量AIS 数据深入解析的基础上,归纳出AIS 轨迹异常的几种类型,针对各类型的特征得出相应的检测规则,实现了对航迹异常的自动检测。聚类算法是将所有训练数据聚类为多个组,密集的类被视为正常航迹,而稀疏的类为异常航迹,魏照坤等[13]使用Hausdorff 的度量方式,提出基于DBSCAN聚类算法的船舶运动模式识别方法,对航迹异常检测给出了理论性的支持。使用递归神经网络的目的在于,利用训练好的递归神经网络,在已知先前点的位置信息情况下,对下1个点进行预测,对规定时间段内的航迹点计算累积误差,如果误差超过阈值,则判定为异常,杨帆等[14]通过人为划分船舶异常航迹状态标签,对海量AIS数据进行学习,使用双向长短时记忆网络(long short-term memory,LSTM)神经网络建立了能够发现船舶异常航迹的模型。自编码器异常检测方法通常是将航迹转换为固定的长度,然后使用正常数据训练神经网络,网络的目的是将输入的航迹进行重建,重建的误差决定了异常检测结果[15]。
上述航迹异常检测方法均存在着一些影响模型效率或者检测准确度的问题:①最近邻和聚类算法的算法复杂度为O(n2),对于海量航迹数据来说,模型计算效率较低,难以适应大数据计算的要求;②专家系统的方法中,人为规定一些判别规则难以较为准确的契合数据的实际要求,一旦规则出现漏洞,方法容易出现漏检和错检;③航迹数据是1 种时间序列数据,航迹点与相邻点有着时空关系,这使得传统的最近邻、聚类和自编码器等算法直接用于航迹异常检测会忽略某些数据特征;④LSTM 等监督学习的分类器,在实际异常检测过程中需要进行海量的样本标注,而异常航迹在实际数据中的比例很小,正负样本不均衡增加了训练的难度,另外,标注的人工成本较大,过程较为繁琐。
随着深度学习技术的广泛应用,基于变分自编码器的无监督学习逐渐成为热门研究领域,An等[16]在2015 年证明了变分自动编码器(variationalautoencoder,VAE)在数据异常检测方面应用的可行性,变分自编码器在图像和语音的异常检测中开始被应用。Xu等[17]利用带有卷积核的变分自编码器解决了复杂场景下的视频监控异常检测问题。Chalapathy等[18]基于变分自编码器提出群体异常检测方法,该方法适用于医学影像等异常检测。马波等[19]利用变分自编码器解决了机械运转中的故障报警问题。Fan 等[20]提出了1 种基于变分自编码器的视频异常检测和定位方法,该方法在2 个主流数据集上展现了优越性。变分自编码器作为新兴的无监督深度学习技术,在数据异常检测领域有着非常大的潜力。
为了避免正负样本不均衡带来的训练困难问题,降低人工成本,应用LSTM 处理时序性数据的优势,提高异常检测的准确率,在上述无监督学习应用的启发下,笔者研究了基于VAE-LSTM 的船舶轨迹异常检测算法。以VAE 模型为主体结构,将VAE 中的BP 神经网络替换为残差门LSTM,设计了1 个VAE-LSTM 模型。将每个航迹点提取4 维运动特征向量,以一段时间序列的特征向量为模型输入,采用无监督学习方法训练模型,模型的输出为输入数据的重建概率,重建概率小于阈值的结果为异常航迹点,包含异常航迹点的航迹判定为异常航迹。
1 模型与方法
本文算法将无监督学习中的变分自编码器应用到航迹异常检测中,结合LSTM 模型时序性问题的处理优势,使航迹异常检测问题转化为1 个无监督学习问题。首先对航迹进行特征工程中的特征提取处理,然后对变分自编码器的相关理论知识进行描述,接着建立残差门LSTM 并构建本文的VAE-LSTM模型结构,最后介绍航迹异常检测算法的流程。
1.1 特征提取
特征提取是机器学习中特征工程的一部分。特征提取是指从文字、图像、声音等其他非结构化数据中提取新信息作为特征。航迹点是包含时间信息和空间信息的数据,时间信息是指船舶行驶到某一位置点的时间,空间信息是指船舶所处位置的经纬度。常用的船舶运动特征参数包括航速、船舶加速度、真航向、曲率半径等。对于异常航迹数据,其中包含一些距相邻点的距离明显大于其他点的航迹点,这些航迹点的速度和加速度明显超出了相邻的航迹点,甚至超出了实际船舶运动的速度和加速度阈值;真航向指的是船舶航行时,真北线与船首线之间的夹角,由于异常航迹中某些航迹点偏离了正常航线,作为离群点,其真航向对于相邻的航迹点有着很大的变化,所以具有真航向突变的数据特征的航迹,成为异常的可能性很大;曲率半径主要是用来描述曲线上某处曲线弯曲变化的程度,曲率半径越大,弯曲程度就越小,在异常航迹中,出现异常部分的航迹曲线的弯曲程度有更大可能性会变大,所以,异常航迹中某一段的曲率半径会有更大可能性变小。
选取船舶航速V,加速度a,真航向TC,曲率半径ρ为特征,对每个航迹点提取1个4维的特征向量。船舶航速、加速度、航向、曲率半径的公式分别见式(1)~(4)。
式中:Si为第i个航迹点;Dis为航迹点间的距离,m ;ti为第i个航迹点所处的时间,s;V为航速,m s;a为加速度,m s2;TC为真航向,rad;ρ为曲率半径,m-1;lati和 loni为航迹点Si的经纬度;e为Si-1与Si之间的距离,m;b为Si-1与Si+1之间的距离,m;c为Si与Si+1之间的距离,m。
1.2 变分自编码器
VAE可以看作是自编码器的升级版本,二者的主体结构大体相同,但是VAE 融入了贝叶斯理论,使得性能大幅度提升。VAE拥有1个编码器和1个解码器,编码器将输入编码成1 组高斯分布而不是简单的隐变量,然后解码器从这组分布中随机采样1个样本将其作为解码器的输入,得到1 个近似于编码器输入的输出结果。VAE 通过假设隐变量的概率分布,来增加模型的鲁棒性并降低刚性误差。
VAE 算法的基本思想是:对每1 个输入x来说都可以由1 个隐变量zk替代。因此,最终的输出xˆ可以由某种概率分布pθ(xk|zk)生成,通常这种概率分布被假设成较为普遍的高斯分布。解码器函数gθ(xk)能够生成最终的生成分布的参数,并由1组参数θ约束。编码器函数fθ(zk)能够生成每1 个概率分布qφ(zk|xk)的参数,同时也被θ约束。
变分自编码器中的变分推断目的是找出1个近似分布p(zk)来替代分布qφ(zk|xk),通常使用神经网络来拟合。2个分布间的相似度量通常使用Kullback-Leibler(KL)散度函数来度量。当单个数据输入模型中时,模型的置信下界(evidence lower bound,ELBO)目标函数的公式见式(5)。
式(5)中的DKL可以看作是正则化项,使qφ(zk|xk)向标准正态分布看齐,而Eq可以被看作是期望的自编码重建。由于p(zk)是高斯分布,可以使用重参数化(reparemerization)来解决模型中神经网络反向梯度求解问题,即对样本zk来说,不从正态分布N(μ,δ)中采样,而是从分布N(0,1)中取得1个变量ε,然后利用期望μ和标准差δ计算得到,见式(6)。
最终模型目标函数的公式见式(7)。
1.3 改进的LSTM
LSTM 是1 种循环神经网络,常用来处理时序性数据,图1为LSTM结构图,它由输入门、遗忘门、记忆门,以及输出门组成。这些门结构决定了数据信息的输入、存储、遗忘,以及输出。LSTM 的更新公式见式(8)~(11)。
图1 LSTM模型图Fig.1 Standard LSTM structure
式(8)~(11)分别为输入门、遗忘门、记忆门,以及输出门。Ct为LSTM 细胞单元状态;xt和ht为细胞单元输入和隐藏层输出;sigmoid(*)为sigmoid激活层;W*,b*为对应门结构的权重和偏置;为2个矩阵对应元素相乘。
残差结构[21]被广泛应用在卷积神经网络中,它直接将输入加到经过卷积操作得到的输出上,解决了梯度消失的问题,并且可以捕捉到很小的扰动,见图2。笔者将残差结构引入LSTM 模型中,提出了基于残差门的LSTM 模型,改进的LSTM 依据残差理论,将细胞单元的输入,通过残差门加到细胞单元状态的输出上,使得LSTM 模型对于轨迹数据能更好的记忆和学习数据特征,而避免梯度消失,见图3。
图2 残差结构图Fig.2 Residual structure
图3 残差门LSTMFig.3 Residual gate LSTM
残差门rt的定义见式(12)。
更新细胞状态的计算公式见式(13)。
1.4 模型构建与算法流程
本文以VAE为基础设计了1个VAE-LSTM模型,结构见图4。将VAE编码器和解码器中的BP神经网络层替换为残差门LSTM,旨在避免航迹数据特征提取过程的梯度消失和对航迹内的时序性信息更好的进行特征编码与解码。
图4 VAE-LSTM模型结构图Fig.4 A VAE-LSTM network
图5为航迹异常检测模型,图6为异常检测算法流程。航迹异常检测是1 个无监督模型,模型的输入为1 个定长时间序列的航迹点特征向量,每个特征向量Xi包含航速V、加速度a、真航向TC、曲率半径ρ,LSTM 编码器会自动提取输入数据的时序特征并且将数据编码为一系列隐变量,由另1 个LSTM 解码器完成对隐变量的重建,对于来自编码器的每个样本,概率解码器都会输出均值和方差,使用这些均值和方差,计算从该分布产生原始数据的概率。多次计算得到概率的平均值,记为重建概率。具有低重建概率的航迹数据点被归类为异常航迹点,航迹内存在异常航迹点的航迹判定为异常航迹。
图5 航迹异常检测模型图Fig.5 The model of ship trajectory outlier detection
图6 航迹异常检测流程图Fig.6 The flowchart of ship trajectory outlier detection
VAE-LSTM 模型中的LSTM 解码器与编码器充分考虑到一段时间内航迹数据的运动特征,有助于VAE-LSTM 模型学习正常数据隐变量的概率分布,提升正常数据重建概率的准确性。模型采用无监督训练方式,无需人工标注,并且允许训练数据中存在少量的异常数据,适用于航迹数据正负样本不均衡的数据环境。
2 实验验证
2.1 数据集描述
本文建立了1 个包含7 500 条的正常航迹训练数据集,该数据集数据来自于武汉段长江水域、宜昌段长江水域、南京段长江水域等多处实际项目水域,数据集中的航迹数据均由有经验的海事人员审核过,保证航迹数据的正常。另外,准备了3 000 条正常航迹数据和500条实验过程中常见的异常航迹数据,每条数据包含200个以上的航迹点,这些数据作为模型的测试集。异常航迹与正常航迹见图7~8,异常航迹存在某一航迹点的速度突然超出周围的航迹点、一小段航迹整体偏离正常航线等情况,这些航迹通常与正常航迹有着较大的差异。导致这些航迹异常的原因包括但不限于:由于环境的干扰,导致某一数据源设备定位精度降低,设备间的定位存在较大误差;数据源定位设备对不同船舶目标的误识别;数据传输过程中的信号干扰等。
2.2 实验设置
图7 异常航迹Fig.7 The abnormal ship trajectory
图8 正常航迹Fig.8 The normal ship trajectory
实验使用GTX1080 显卡在Tensorflow 深度学习框架上进行VAE-LSTM 模型的搭建。每个航迹点数据的输入维度设置为4,隐变量维度设置为16。输入的航迹时间序列长度如果太短不利于时序性信息的提取,长度太长则可能会造成冗余。为了不失一般性,分别尝试取值6,10,14,18 和22,重建概率异常判别阈值α分别尝试取值0.95,0.90,0.85,0.80和0.75,将最优准确率的结果作为参数设置值,最终进行对比实验的参数值为:α=0.90,时间序列长度为10。
2.3 实验评估指标
在无监督学习的异常检测任务中,常通过混淆矩阵对结果进行分析。混淆矩阵是1 种特定的矩阵,用来呈现监督学习或非监督学习算法性能的可视化效果。其每一列代表预测值,每一行代表的是实际的类别。通过分析可以得到常用的核心指标有分类的精度、准确率、召回率、F1 值,在航迹异常检测任务中,正常航迹数据占总数据的比例要远远超出异常航迹,更多的识别到异常航迹更为重要,所以本文着重关注召回率指标,它们的具体公式分别见式(14)~(17)。
2.4 实验对比结果与分析
训练之后,使用测试集对VAE-LSTM 航迹异常检测模型评估,得到混淆矩阵见图9。为验证本文VAE-LSTM航迹异常检测模型的实用性和有效性,将本文模型与 VAE 模型、Zhao 等[22]提出的 LSTM异常检测模型、孤立森林(iForest)、决策树(DT)、支持向量机(SVM)进行对比。孤立森林算法是1种适用于连续数据的无监督异常检测方法,在异常检测任务重被广泛使用。LSTM、决策树和SVM 是3 种常用的有监督分类算法,为了使用这3 种算法进行对比,实验人员又将本文的数据集进行了全部的标注,耗费了大量的人工成本,这相比于无监督学习算法是1 个较大的缺点。同样对上述对比模型采用4维特征提取,在相同的数据条件下进行测试。实验对比结果见表1。
图9 分类结果混淆矩阵Fig.9 Confusion matrix of classification results
航迹是时序性的数据,异常航迹段相比相邻航迹在运动特征上会有明显的区别。VAE、DT、SVM、iForest 在模型上只利用了当前点的信息,忽略了航迹段前后的船舶运动特征,这限制了模型的分类效果,使得模型的召回率较低。基于本文数据集,与 Zhao 等[22]提出的 LSTM 异常检测模型对比,Zhao等所提方法在异常检测前,使用DBSCAN聚类算法过滤噪声数据,数据质量高于本文的数据,此外,还将航迹的异常状态设置为高低2个档位,更方便研究人员进行判断。但是,对比结果显示,基于BP神经网络层的标准VAE的精度、召回率和F1值略微高于LSTM 模型,准确率只相差0.01;而VAE-LSTM 异常检测模型的召回率、精度、准确率等指标全面高于LSTM和VAE异常检测模型,而且相比于LSTM 模型不存在正负样本平衡性问题,无需数据标注。
表1 多种模型的对比结果Tab.1 The performance of different models
本文提出的VAE-LSTM 航迹异常检测模型在各项指标均高于其他机器学习算法,尤其是在召回率。VAE-LSTM 航迹异常检测模型利用无监督学习避免了训练数据正负样本不均衡问题,其中改进后的残差门LSTM 模块可以提取航迹时序性信息,VAE 结构可以自动学习正常航迹和异常航迹在运动特征上的差异,无论从模型效率、实用性、准确率上都要优于传统的模型。本文提出的VAE-LSTM航迹异常检测模型,可以在航迹数据挖掘之前,准确的对船舶航迹数据进行异常检测,提升航迹数据质量,为下一步的数据挖掘工作打下基础。
3 结束语
笔者提出1 种残差门LSTM,将VAE 中的BP神经网络层替换为残差门LSTM,对VAE 进行改进,并基于此,提出1 种基于VAE-LSTM 航迹异常检测方法。该方法对航迹点提取了运动特征,使用重建概率检测异常航迹。通过与多种机器学习算法的比较,本方法的优势在于:模型为无监督学习,避免了有监督分类的异常检测中正负样本不均衡问题;对航迹点提取运动特征向量,模型扩展性较好;使用残差门LSTM 作为编码器和解码器,可以对航迹时序性特征进行提取;训练数据集使用正常航迹,并且允许包含少量的异常航迹,无需人工标注;模型的各项指标均高于对比的其他分类算法,可满足异常航迹检测需求。下一步,笔者将尝试基于卷积神经网络的变分自编码器异常检测模型,进一步提高航迹异常检测准确率。