Wasserstein自编码器异常检测模型

2020-11-17 06:56霍纬纲
计算机工程与设计 2020年11期
关键词:脉冲星编码器距离

王 星,霍纬纲

(中国民航大学 计算机科学与技术学院,天津 300300)

0 引 言

异常检测技术广泛应用于现实生产领域,并与实际应用场景密切相关[1]。例如从传感器产生的时间序列数据中发现异常运行状态,网络安全领域中网络攻击、异常流量的检测,金融业中用户信用卡交易数据的欺诈检测。由于现实的异常检测任务中异常十分稀少并且标注十分的困难,使用以分类、预测为基础的监督模型通过学习训练数据的固定模式进行异常检测不仅应用场景有限,而且待检测数据含有噪声且分布十分复杂时,异常检测效果不佳[2]。

文献[3-6]将变分自编码器(variational autoencoder,VAE)[7]、生成对抗网络(gererative adversarial net,GAN)[8,9]为代表的深度生成模型应用于半监督的异常检测任务中。首先使用只由正常数据组成的训练集训练异常检测模型收敛,模型能够学习正常数据的高维复杂分布,再根据验证集得到异常判定阈值,最后将待检测数据输入到训练好的模型计算异常得分并与阈值比较进行异常检测[9-11]。基于深度生成模型的半监督异常检测模型根据数据的重建概率进行异常检测,减少了随机噪声对模型异常检测效果的影响,因此具有更高的鲁棒性和可解释性[15]。

在异常检测任务中,当模型拟合分布与数据真实分布的支撑集没有重叠或重叠很少时,VAE中用于度量两个分布之间距离的KL散度(Kullback-Leibler divergence)没有意义,而GAN中的JS(Jensen-Shannon divergence)散度为常数,都无法为模型学习输入数据的真实分布提供有用的梯度信息[12]。同时,VAE模型使用变分推断方法学习数据真实分布,该方法鼓励神经网络模型将输入样本的潜变量分布编码为高斯分布,限制了模型学习高维复杂分布的能力[13]。GAN模型从随机噪声向量中学习数据的真实分布,但是缺少自编码器的网络结构使得模型在训练中存在训练模型崩溃(mode collapse)的问题[14]。

Wasserstein自编码器[15](Wasserstein autoencoder,WAE)深度生成模型采用更易稳定训练的自编码器网络结构,并且使用最优运输理论中的Wasserstein距离度量数据真实分布与模型拟合分布之间的距离,对样本数据分布支撑集的拓扑限制更少,因而能学习更加复杂的数据分布[16,17]。本文在原始WAE深度生成模型的基础上结合收缩自编码器(contractive autoencoder)理论[18],通过引入F范数作为模型隐藏层单元的惩罚项来进一步提高模型在异常检测任务中的鲁棒性,进而提出WAE-AD异常检测模型。该模型使用正常数据训练,再根据待检测数据的重建概率计算异常得分,并与异常阈值比较进行异常检测。在多种异常检测数据集上的结果表明WAE-AD异常检测模型能够明显提高异常检测性能指标。

1 WAE深度生成模型及其改进

1.1 WAE深度生成模型

生成模型假设训练数据集X={x1,x2,…,xn}中的样本都由潜空间中的潜变量Z生成。其中,训练数据集的真实分布记为PX,模型对该训练数据集的拟合分布记为PG。最优运输理论(optimal transport,OT)中的Wasserstein距离可以用来度量这两个概率分布之间的距离。Wasserstein距离的原始定义为

(1)

基于Wasserstein距离定义构造的WAE深度生成模型通过限制模型中潜变量Z的条件后验分布q(z) 与先验分布p(z) 相等:q(z)≜∑xq(z|x)p(x)=p(z) 来学习数据的真实分布PX。模型训练时使用编码器网络对样本数据x进行采样计算得到潜变量Z的边缘分布,再将Z输入到生成器网络进行分布变换,得到训练数据的模型拟合分布。为了便于深度神经网络计算,WAE模型构造p(z) 和q(z) 之间距离的惩罚项来放松模型中潜变量Z的约束。

本文选择使用最大平均差异(maximum mean discre-pancy)作为惩罚项度量关于潜变量Z的两个分布的距离。MMD距离使用核函数将两个分布映射到高维空间并采样计算得到分布的期望值,将产生的所有期望值的差值的上界定义为MMD距离。给定一个再生正定核函数k∶Z×Z→R,MMD距离的定义由式(2)表示

(2)

式中:Hk表示由正定核函数k构成的再生希尔伯特空间(reproducing kernel Hilbert space,RKHS)。

WAE模型假设潜变量Z的先验分布为多元高斯分布N(Z;0,σ2·I),并选择使用高斯径向基核函数(radial basis function kernel,RBF)计算MMD距离。由于MMD距离理论上是一个无偏估计量,模型训练时可以直接对q(z) 和p(z) 这两个分布进行采样,并将得到的样本数据输入到深度神经网络,计算得到两个分布的MMD距离。输入一批样本数据,其MMD距离可以通过式(3)进行计算

(3)

JWAE(PX,PG)=EPXEQ(Z|X)[c(X,G(Z))]+λ·MMD

(4)

算法1:基于MMD距离的WAE深度生成模型

输入:正则化系数λ>0,正常数据组成的训练数据集X={x1,x2,…,xn},正定核函数k,潜变量Z的先验分布p(z),编码器网络Qφ,生成器网络Gθ的初始化参数。

输出:WAE模型

while(φ,θ)未收敛do:

从训练数据集X中采样得到 {x1,x2,…,xn}

从先验分布中采样得到 {z1,z2,…,zn}

fori=1 to n:

endfor

使用下面的公式更新Qφ和Gθ的参数

endwhile

1.2 改进的WAE深度生成模型

当输入的训练数据集含有随机扰动带来的噪声时,为了进一步提高基于WAE模型的异常检测性能,本文在WAE模型中引入收缩自编码器理论。收缩自编码器通过在传统自编码器模型的训练目标函数中引入一个关于隐藏层单元的惩罚项来达到局部空间收缩的效果。该惩罚项是关于输入数据的隐藏层单元表示的雅克比矩阵的F范数(Frobenius norm),其目的是使特征空间在训练数据附近的映射达到收缩效果,具体表示为

(5)

式(5)作为自编码器模型的惩罚项具有如下特性:当该惩罚项具有较小的一阶导数时,表明该输入数据对应的隐藏层表达比较平滑,那么当输入出现一定的噪声时,隐藏层单元的表达不会发生较大的改变。WAE模型将式(5)作为惩罚项加入到损失函数中,减少了模型中隐藏层对输入数据微小变化的敏感程度,进一步提高了模型的鲁棒性。改进后的WAE模型的损失函数为

(6)

2 WAE-AD异常检测模型

2.1 异常得分计算

如图1所示,我们使用只包含正常样本数据组成的训练集训练WAE模型收敛后,将待检测数据x输入到训练好的模型中,并利用式(7)中蒙特卡洛估计方法(Monte Carlo estimation)计算该样本数据的重建概率(reconstruct probability),L设定为固定采样次数10次

图1 异常得分计算

(7)

2.2 WAE-AD异常检测模型

本文提出的基于WAE的异常检测模型WAE-AD的总体框架如图2所示。该模型由数据预处理模块和异常检测模块两部分组成。

图2 WAE-AD异常检测模型总体框架

(1)数据预处理模块首先需要对数据集中的数据依次使用缺失值填充,连续型数据离散化,特征数据归一化方法。该过程首先将待检测数据处理为适合异常检测任务要求的形式,然后将数据集划分为3部分:只含有正常数据的训练集traindata,由正常数据和异常数据组成的验证集validationdata、测试集testdata。

(2)异常检测模块将validationdata中的数据输入到训练好的WAE模型,并使用超参数搜索方法找到使得测试集中异常检测性能指标F1值(F1 score)最大的检测阈值τ。然后在测试集testdata中记录WAE-AD异常检测性能指标。该过程如算法2所示。

算法2:WAE-AD异常检测算法

输入:训练好的WAE模型,验证集validationdata,测试集testdata

输出:检测阈值τ

步骤1 确定异常检测阈值τ的范围和搜索步长;

步骤2 以F1值作为模型评价指标,在validationdata数据集中找到F1使得值最大的τ值;

步骤3 将测试集testdata中的数据输入到WAE模型中,根据式(6)计算异常得分,异常大于τ则为异常数据;

步骤4 计算WAE-AD异常检测的性能指标。

3 实验与分析

3.1 实验准备

实验中使用HTRU2脉冲星检测和ULB信用卡欺诈检测作为异常检测数据集。两种数据集都使用CSV文件存储,数据样本中类别0和1分别代表正常数据和异常数据。HTRU2脉冲星检测数据集包含17 898条数据样本,将1939条标签为1的脉冲星数据样本视为异常数据,剩余 16 259 条标签为0的非脉冲星数据样本作为正常数据,异常比例为9.157%。ULB信用卡欺诈检测数据集中共有 284 807 条数据样本,其中492条标签为1的欺诈数据样本,异常数据比例为0.172%。两个数据集都存在严重的数据倾斜,异常数据十分稀少,符合异常检测任务要求。两种数据集的详细信息见表1。

表1 实验数据集统计信息

实验中使用Python数据分析工具包pandas读取异常检测数据集,ULB欺诈检测数据集中每条样本数据由经过PCA主成分分析处理后的30个数值型特征属性组成,HTRU2 数据集中每条样本数据由表示待分类数据样本的简单统计信息的8个数值型特征属性组成。对两个实验数据集中的原始数据使用最小-最大归一化方法进行归一化预处理,使用公式x′=(x-xmin)/(xmax-xmin) 将原始数据映射到[0,1]范围内,其中x为该数据的原始值,xmin为该属性的最小值,xmax为该属性最大值。

实验所用计算机的硬件配置为Inter i7-6700 CPU、Nvidia GTX1080GPU、16G内存。编程环境采用Ubuntu16.04LTS操作系统,Python3.6及TensorFlow 1.10GPU深度神经网络开发工具。

3.2 模型设置及评价指标

WAE-AD异常检测模型中的编码器网络Encoder和解码器网络Decoder均采用全连接层(fully connected layers)实现的多层感知器MLP结构模型。在WAE-AD异常检测模型中,编码器输入层和解码器输出层神经网络的神经元个数均为与待检测数据集特征属性个数相同,信用卡欺诈检测中设置为30维,脉冲星检测中设置为8维。隐藏层神经网络单元个数设置中,信用卡欺诈检测任务设置为输入层神经元个数的一半,脉冲星检测任务设置为与输入层神经元个数相同。

随机抽取标签为0的正常数据的80%组成训练集traindata训练WAE-AD模型,批大小(batch size)设置为128,epoch设置为200,使用Adam算法优化神经网络中的参数,学习率设为0.0001。随机抽取剩余10%的正常数据和50%的异常数据组成验证集validationdata,并使用网络搜索算法确定两个超参数:潜变量Z的维度nZ和异常检测阈值τ。由其余正常数据和异常数据组成测试集testdata,并选取合适评价指标验证模型在异常检测任务中的性能。

为验证WAE-AD模型在异常检测任务中的有效性,选取了以下异常检测模型作为对比:

OC-SVM(one class support vector machines),它是使用核函数学习正常数据的决策边界来进行异常检测的监督模型。实验中选择使用径向基核函数(RBF kernel),设置参数ν为待检测数据集中的异常比例,参数γ为1/m,其中m为数据集的特征数,异常检测中数据集划分与WAE-AD模型相同。

AE-AD,使用与WAE-AD相同的模型结构及参数,根据待检测数据的重建误差进行异常检测。

VAE-AD,使用WAE-AD模型相同的多层感知机MLP网络结构及参数,选择各向同性的高斯分布作为潜变量Z的先验分布,最终根据待检测数据的重建概率进行异常检测。

GAN-AD,该模型中生成器网络结构及参数与WAE-AD模型的生成器部分相同,鉴别器网络采用两层全连接网络构成的二分类神经网络。异常检测中结合生成器网络的重建概率和鉴别器网络的分类输出进行异常检测。

DAGMM[19](deep autoencoding Gaussian mixture model),深度自编码器部分使用和WAE-AD相同的结构及参数,使用具有两个分量的高斯混合模型(Gaussian mixture model,GMM)作为样本似然概率估计部分。该模型使用待检测数据的重建概率进行异常检测。

使用机器学习包scikit-learn及TensorFlow实现上述异常检测模型,重复训练10次并计算以下性能指标的平均值:

精确率(precision):它表示所有被检测为异常的样本数据中,实际标签为异常的比例。P=TP/TP+FP,TP表示异常样本被模型正确检测到的数量,FP表示正常样本被模型错误的检测为异常数据样本的数量。

召回率(recall):它表示被正确检测为异常的数据样本占所有异常数据样本的比例。R=TP/TP+FN,FN表示异常样本数据被模型错误检测为正常样本数据的数量。

F1值是精确率和召回率的调和均值,能够综合衡量异常检测模型的性能。它可以由F1=2TP/2TP+FP+FN计算得到。

3.3 实验结果及分析

(1)WAE-AD异常检测模型中潜变量Z的维度nZ表征了模型对数据真实分布的拟合能力,当潜变量Z的维度较低时,模型的表征能力不足,潜变量Z不能通过学习真实数据的低维流形来完全重建输入的正常数据。当潜变量Z的维度较高时,模型在潜空间中的低维流形存在过拟合,通过此过拟合的低维流形表示待检测数据,解码器网络Decoder将无法对正常数据和异常数据进行差异化重建。

为确定潜变量维度对异常检测模型性能的影响,实验在两个异常检测任务的测试集traindata中设置其它参数相同,设定不同的潜变量维度,比较模型在测试集中的F1值来确定最优的潜变量维度nZ。如图3所示,HTRU2脉冲星检测中,设置潜变量Z的维度nZ为2时,模型的F1值达到最大,为0.902,ULB信用卡欺诈检测中,当潜变量Z的维度nZ为4时,模型的F1值最大,达到0.773。

图3 测试集中潜变量维度不同时模型的检测性能比较

(2)表2、表3展示了各个异常检测模型在HTRU2脉冲星检测数据集和ULB信用卡欺诈检测数据集中的性能表现,其中黑体表示最优检测指标。从表中反映异常检测模型性能的数值指标可以看出,传统的基于分类方法的异常检测模型在面对异常检测任务中严重的数据倾斜时,模型倾向于将全部待检测样本数据分类为正常数据,因此召回率指标最差,体现了传统机器学习模型的局限性。AE-AD模型使用数据的重建误差进行异常检测,相比于OC-SVM的分类模型提高了异常检测任务中的召回率指标,因此改进了模型的异常检测性能。基于VAE、GAN的异常检测模型使用输入数据的重建概率进行异常检测,3种性能指标均高于自编码器异常检测模型,显示出了深度生成模型在异常检测任务中的明显优势。WAE-AD异常检测模型在两种数据集的异常检测中性能指标均为最高,超过了目前异常检测中的最佳模型。并且和基于VAE、GAN的异常检测模型相比,3种异常检测性能指标均有较大提高,验证了WAE-AD模型在异常检测任务中的优异性能。

表2 各异常检测模型在HTRU2数据集中的性能比较

表3 各异常检测模型在ULB数据集中的性能比较

(3)实验分别在HTRU2脉冲星检测和ULB信用卡欺诈检测的验证集traindata和测试集testdata中抽取3000例标签为0的正常数据和300例标签为1的异常数据输入到训练好的WAE-AD模型中,通过TSNE算法可视化展示 WAE-AD 模型对异常数据和正常样本的重构输出。图4为 HTRU2 脉冲星检测数据集重构输出的可视化展示,图5为ULB脉冲星数据集重构输出的可视化展示。可以看出将待检测数据输入训练好的WAE-AD模型,模型的重构输出中正常数据和异常数据有较好的区分。

图4 可视化HTRU2数据集的重构输出

图5 可视化ULB数据集的重构输出

4 结束语

本文基于WAE深度生成模型提出改进的半监督异常检测模型WAE-AD。该模型使用Wasserstein距离度量数据真实分布与模型拟合分布之间的距离,与基于VAE、GAN的异常检测模型相比易于训练并且能够学习更加复杂的数据真实分布。在多个公共数据集中的实验结果表明了WAE-AD模型在异常检测任务中的优异性能。下一步的研究工作中,可以从以下两个方面进行进一步研究:一方面如何进一步提高WAE-AD模型的分布学习能力,使得模型能够学习更加复杂的数据真实分布,另一方面如何将该深度生成模型和无监督学习方法相结合,扩展WAE-AD异常检测模型在实际应用场景。

猜你喜欢
脉冲星编码器距离
融合CNN和Transformer编码器的变声语音鉴别与还原
脉冲星方位误差估计的两步卡尔曼滤波算法
算距离
基于双增量码道的绝对式编码器设计
宇宙时钟——脉冲星
应用旋转磁场编码器实现角度测量
基于虚拟观测值的X射线单脉冲星星光组合导航
长征十一号成功发射脉冲星试验卫星
每次失败都会距离成功更近一步
基于数字信号处理的脉冲编码器