一种基于自动编码机的分布式离群点检测方法及系统的制作方法

文档序号:6547629阅读:124来源:国知局
一种基于自动编码机的分布式离群点检测方法及系统的制作方法
【专利摘要】本发明涉及一种基于自动编码机的分布式离群点检测方法及系统,包括定义训练数据集和测试数据集;将训练集的训练数据随机分配给若干个计算单元;所有计算单元并行执行,每个计算单元求解编码与解码参数;汇总每个计算单元的编码与解码参数得到最终编码与解码参数,构建一个自复制模型;将自复制模型应用到测试数据集上,并行计算每条测试数据的重建误差;按照重建误差降序排列测试数据,重建误差大于预定阈值的测试数据为离群点;本发明所述方法处理需要的总时间与处理的样本个数之间是独立的,仅仅取决于参数求解需要达到的精度;本发明非常适合基于MapReduce框架来处理大规模数据集上的离群点检测,具有良好的伸缩性与扩展性。
【专利说明】一种基于自动编码机的分布式离群点检测方法及系统
【技术领域】
[0001]本发明涉及信息安全领域,尤其涉及一种基于自动编码机的分布式离群点检测方法及系统。
【背景技术】
[0002]在数据挖掘与统计学里,离群点指观察值或者样本点显著地偏离其它数据。在很多数据挖掘应用中,离群点被过滤和丢弃,然而从知识发现的角度来看,罕见事件常常比平常事件更有价值,因而离群点是一个有着很高的应用价值的研究领域,例如在欺诈检测、网络入侵检测等领域。目前国内外基于计算机的离群点检测方法可以分为四大类:基于统计分布、基于深度、基于距离以及基于密度的局部离群点检测方法。
[0003]自动编码机(Auto-Encoders)是一种特殊类型的神经网络。自动编码机包括编码与解码过程,首先用编码机将输入数据映射到一个隐层表示(编码过程),然后利用相似的变换将隐层重新映射回与输入数据相同形状的重建数据(解码过程)。通过最优化重建误差来学习编码,常用来做特征提取。图1是一个包含一个隐含层的三层架构的自动编码机示例。基本的自动编码机也可以看做是一种自复制模型,对不包含离群点的训练数据编码学习自复制模型,然后通过计算测试数据的重建误差可检测离群点。
[0004]随着网络的普及,特别是物联网和社交网络的发展,各类感知终端产生海量的、形式多样的半结构化或非结构化数据,形成大数据问题。我们需要在有限资源、有限时间内检测出大规模数据集中的离群点,诸多传统的检测算法往往基于内存计算或者串行执行,只能处理小规模数据。基于自动编码机的离群点检测算法通常使用随机梯度下降方法来求解编码与解码参数,求解速度慢,数据全局依赖性高,难以处理比内存大得多的大规模数据。

【发明内容】

[0005]本发明所要解决的技术问题是针对现有技术的不足,提供一种基于自动编码机的分布式离群点检测方法及系统,实现大规模数据集上的离群点高效准确检测。
[0006]本发明解决上述技术问题的技术方案如下:一种基于自动编码机的分布式离群点检测方法,包括如下步骤:
[0007]步骤1:定义训练数据集和测试数据集;
[0008]步骤2:将训练集的训练数据随机分配给若干个计算单元;
[0009]步骤3:所有计算单元并行执行,在每个计算单元内使用随机梯度下降算法求解编码与解码参数;
[0010]步骤4:汇总每个计算单元的编码与解码参数得到最终编码与解码参数,构建一个自复制模型;
[0011]步骤5:将自复制模型应用到测试数据集上,并行计算每条测试数据的重建误差;
[0012]步骤6:按照重建误差降序排列测试数据,重建误差大于预定阈值的测试数据为离群点。[0013]本发明的有益效果是:本发明通过将训练数据随机分配到不同的计算单元,从而可以通过在并行地每一个计算单元内使用随机梯度下降算法来求解编解码参数,这一过程可以并行执行,从而可以通过增加计算单元来减少每个计算单元内部的计算时间,最终大大减少训练时间;本发明所述方法处理需要的总时间与处理的样本个数之间是独立的,仅仅取决于参数求解需要达到的精度;本发明非常适合基于MapReduce框架来处理大规模数据集上的离群点检测,具有良好的伸缩性与扩展性。
[0014]在上述技术方案的基础上,本发明还可以做如下改进。
[0015]进一步,步骤I中所述训练数据集和测试数据集分别如下式:
[0016]训练数据集IxiIxi e Rd, I = I,…,N}用来学习自动编码机的编码与解码参数;
[0017]测试数据集{V Jxi J e Rd, j = I,…,N' },为待检测离群点的数据集。
[0018]进一步,步骤2的具体实现为:
[0019]步骤2.1:定义每个计算单元的计算样本个数:T = floor (N/K);
[0020]其中,N为训练数据集中训练数据的条数,K为计算单元的个数;
[0021]步骤2.2:随机划分训练数据集,给每个计算单元分配T个训练样本。
[0022]进一步,步骤3的具体实现为:
[0023]步骤3.1:所有计算单元并行执行,对于计算单元k e {1,2,…,K},对分配的训练数据随机排序;
[0024]步骤3.2:初始化计算单元k的编码参数劣与解码参数P
[0025]步骤3.3:依次读取单元k上的第t个样本xf,t e {1,…,T},T为每个计算单元计算样本个数,依照下式更新编码参数与解码参数,
[0026]更新编码参数
【权利要求】
1.一种基于自动编码机的分布式离群点检测方法,其特征在于,包括如下步骤: 步骤1:定义训练数据集和测试数据集; 步骤2:将训练集的训练数据随机分配给若干个计算单元; 步骤3:所有计算单元并行执行,在每个计算单元内使用随机梯度下降算法求解编码与解码参数; 步骤4:汇总每个计算单元的编码与解码参数得到最终编码与解码参数,构建一个自复制模型; 步骤5:将自复制模型应用到测试数据集上,并行计算每条测试数据的重建误差,输出以重建误差为key的键值对; 步骤6:按照重建误差降序排列测试数据,重建误差大于预定阈值的测试数据为离群点。
2.根据权利要求1所述一种基于自动编码机的分布式离群点检测方法,其特征在于,步骤I中所述训练数据集和测试数据集分别如下式: 训练数据集IxiIxi e Rd, i = l,…,N}用来学习自动编码机的编码与解码参数; 测试数据集IVj e Rd, j = 1,…,N' }为待检测离群点的数据集。 D为数据的纬度,即属性个数。
3.根据权利要求1所述一种基于自动编码机的分布式离群点检测方法,其特征在于,步骤2的具体实现为: 步骤2.1:定义每个计算单元的计算样本个数:T = floor (N/K); 其中,N为训练数据集中训练数据的条数,K为计算单元的个数; 步骤2.2:随机划分训练数据集,给每个计算单元分配T个训练样本。
4.根据权利要求1所述一种基于自动编码机的分布式离群点检测方法,其特征在于,步骤3的具体实现为: 步骤3.1:所有计算单元并行执行,对于计算单元k e {1,2,…,K},对分配的训练数据随机排序; 步骤3.2:初始化计算单元k的编码参数< 与解码参数0^ ; 步骤3.3:依次读取单元k上的第t个样本Xi t e {I,…,T}, T为每个计算单元计算样本个数,依照下式更新编码参数与解码参数, 更新编码参~" 更新解码参数^ 其中Θ1 (化丨―)表示第t轮迭代单元k上的编码(解码)参数;α为学习速率,▽e (Vr)表示以θ (Θ’)为参数的梯度,()表示第t轮迭代单元k上的编码(解码)损失函数,损失函数可选择/(屹;xf) = |.<-/(^;xf)|2,/(也;xf)表示输入样本<、参数为贫—i的网络输出,损失函数为输入与输出的L2范式。
5.根据权利要求1所述一种基于自动编码机的分布式离群点检测方法,其特征在于,所述步骤4的具体实现为:聚集所有计算单元的编码参数与解码参数,计算最终编码与解码参数,计算公式如下式
6.根据权利要求1所述一种基于自动编码机的分布式离群点检测方法,其特征在于,步骤5的具体实现为,针对测试数据集{Vj∈RD,j = l,一,N' }进行如下操作: 步骤5.1:对于测试数据X’ j并行执行,计算测试输出xj=f(θlxj') 其中,f(9 ;x' j)表示输入为χ’」,编码参数为Θ的网络输出; 步骤5.2:根据下式计算重建误差

7.根据权利要求1所述一种基于自动编码机的分布式离群点检测方法,其特征在于,步骤3中每个计算单元之间是相互独立的,当数据量增加时,可通过增加计算单元个数来减少每个计算单元的计算量。
8.一种实现权利要求1-7中任一项所述基于自动编码机的分布式离群点检测方法的系统,其特征在于,包括数据集定义模块、数据分配模块、编解码参数计算模块、编解码参数汇总模块、重建误差计算模块和离群点筛选模块; 所述数据集定义模块,其用于定义训练数据集和测试数据集; 所述数据分配模块,其用于将训练集的训练数据随机分配给若干个计算单元; 所述编解码参数计算模块,其用于并行计算每个计算单元的编解码参数,每个计算单元使用随机梯度下降算法求解编码与解码参数; 编解码参数汇总模块,其用于汇总每个计算单元的编码与解码参数得到最终编码与解码参数,构建一个自复制模型; 重建误差计算模块,其用于将自复制模型应用到测试数据集上,并行计算每条测试数据的重建误差; 离群点筛选模块,其用于按照重建误差降序排列测试数据,重建误差大于预定阈值的测试数据为离群点。
【文档编号】G06N3/08GK104008420SQ201410225026
【公开日】2014年8月27日 申请日期:2014年5月26日 优先权日:2014年5月26日
【发明者】马云龙, 张鹏, 曹亚男, 翟立东, 杜跃进 申请人:中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1