CN114036992A - 基于自编码器和遗传算法的高维数据异常子空间检测方法 - Google Patents
基于自编码器和遗传算法的高维数据异常子空间检测方法 Download PDFInfo
- Publication number
- CN114036992A CN114036992A CN202110650606.XA CN202110650606A CN114036992A CN 114036992 A CN114036992 A CN 114036992A CN 202110650606 A CN202110650606 A CN 202110650606A CN 114036992 A CN114036992 A CN 114036992A
- Authority
- CN
- China
- Prior art keywords
- data
- abnormal
- subspace
- encoder
- genetic algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于自编码器和遗传算法的高维数据异常子空间检测方法。所提出的AEG模型包括两部分结构,第一部分是用神经网络构建稀疏自编码器,利用绝对正常的无标签数据迭代优化学习最佳的编码‑解码方案,将测试数据输入训练完善的稀疏自编码器中并基于重建误差得到数据点的异常分数,结合自动阈值检测高维数据的异常值。第二部分结合自适应遗传算法对稀疏自编码器检测到的异常数据集进行高维异常子空间搜索,从而实现异常点的异常子空间定位,对于得到的异常子空间特征可以投入进一步的分类训练。本发明实现了更加简单快速的异常过滤,提高了高维数据的异常值检测及异常子空间定位的效率,提高了异常现象的解释性。
Description
技术领域
本发明涉及机器学习和异常检测技术领域,特别是涉及一种基于稀疏自编码器和自适应遗传算法的高维数据异常子空间检测方法。
背景技术
异常检测是用于发现数据中有别于大部分数据的异常模式,其所占比例极小却可能蕴涵丰富的内容。异常检测是检验数据是否有录入错误以及含有不合常理的数据的过程。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,会对结果产生不良影响。重视异常值的出现并分析其产生的原因,常常成为发现问题进而改进决策的契机。因此在某些情境下,对数据异常的检测和分析具有一定的研究意义和实用价值。
传统的全空间异常检测方法包括基于统计的方法、基于最近邻的方法、基于聚类的方法、一类分类方法等,在实际应用中传统异常检测方法被维度诅咒所禁锢,随着维度的增加,其时间复杂性和计算复杂性相应的呈指数增长。这是由于对高维数据集进行异常检测时随着维度的增加,各个点的距离区分度很小。除此之外由于较高维度的数据结构很稀疏,几乎所有的点都有可能被认为是异常点,这就使得邻近的概念变得没有意义,因此传统的全空间异常检测方法并不能很好地处理高维数据。
现有的高维数据异常值检测方法主要包括基于特征选择的方法和基于特征变换的方法。基于特征选择的方法,也称为子空间异常检测,旨在检测某些特征子集中的异常值,通常包括子空间选择和异常度计算。但是面对子空间的指数级数,这种方法对于具有大量特征的数据集实际上是不可行的。基于特征变换的方法,即基于重构的方法可以用来检测高维数据的异常,该类方法假设异常不能从低维投影有效地重构。大体有两种思路:一种是将数据映射到低维特征空间,然后在特征空间不同维度上查看每个数据点跟其它数据的偏差,即将常规的异常值检测方法应用于转换后的数据。另外一种是将数据映射到低维特征空间,然后由低维特征空间重新映射回原空间,尝试用低维特征重构原始数据,观察重构误差的大小,即使用转换的重构误差大小来衡量数据的异常度。
本发明的目的在于针对上述现有技术的不足,提供了一种基于稀疏自编码器和自适应遗传算法的高维数据异常子空间检测方法。其中稀疏自编码器用于高维数据集的降维重建和异常过滤,自适应遗传算法是在基本遗传算法的基础上可以根据个体的适应度值自适应的改变交叉概率和变异概率,能自动获取和指导优化搜索空间,可以对搜索方向进行自适应地调整,从而既保证了物种的多样性,又保证了算法的全局收敛。两者相结合可以高效地处理高维数据中的异常检测问题,同时减小异常子空间计算复杂度,实现异常点的异常子空间检测,挖掘异常点隐藏的可用信息。
发明内容
本发明可以对无标签的样本数据集进行训练,通过学习去掉数据中的冗余信息,从而保留有意义的异常信息。首先对无标签的数据进行预处理,根据数据类型确定自编码器的结构,用神经网络作为编码器和解码器进行数据的训练,将清洗过后的无标签训练样本送入网络结构进行迭代优化,学习出最佳的自编码器模型。计算样本中输入数据和输出数据的重建误差,并根据重建误差的分布情况确定正常样本和异常样本的分界阈值,将越过阈值的高维数据作为异常检测的输出。其次是利用自适应遗传算法搜索异常检测输出的异常点的异常子空间,进一步根据异常点的异常子空间特征建模将异常点分类,从而支撑高维数据的异常原因分析,提高异常的可解释性。
本发明通过下述技术方案实现:一种基于稀疏自编码器和自适应遗传算法的高维数据异常子空间检测方法,具体包括如下步骤:
步骤1:选择较高维度的训练数据集,对高维度的数据集进行预处理操作,并对数据集进行合理地选择划分得到训练样本和测试样本,用于基于稀疏自动编码器和自适应遗传算法的高维数据异常检测模型AEG的训练和测试;
步骤2:用神经网络搭建稀疏自编码器模型,使用步骤1预处理操作得到的训练数据对模型进行迭代学习最佳的编码-解码方案;
步骤3:构建用于异常子空间搜索的自适应遗传算法模型;
步骤4:利用AEG模型中训练好的SAE模块对测试数据进行编码解码操作,通过计算重建误差来衡量数据点的异常分数,并结合阈值进行异常检测,得到测试数据集的异常点集合;
步骤5:将步骤4中快速过滤测试数掘得到的异常点数据集,输入到AEG模型的自适应遗传算法AGA模块中进行异常子空间搜索,得到异常点的异常子空间最优解。
进一步的,所述步骤1对高维度的数据集进行预处理具体包括以下步骤:
步骤11:对数据集进行划分,通过随机采样数据集中70%的高维数据作为稀疏自编码器模型学习的训练数据,剩下30%的数据作为验证模型的测试数据;
步骤12:对于存在缺失和不对齐的数据问题中,需要对缺失数据进行填充,不对齐数据需要通过空数据标识符进行补充;
步骤13:由于不同维度的数据具有不同的尺度,为了让模型能够有效地优化和收敛,需要根据数据的尺度将不同维度的数据分别标准化。为了满足模型中输入格式的要求,在数据预处理中对原始数掘进行特征变换和归一化处理。
进一步的,所述步骤2训练稀疏自编码器模型具体包括以下步骤:
步骤21:利用keras训练稀疏自编码器SAE(Sparse Auto-Encoder),将预处理后的训练数据作为训练稀疏自编码器的输入,记为X={x1,x2,…,xn},其中n为输入的测试样本个数。将训练样本数据xi输入到稀疏自编码网络中,经过编码解码计算得到原始数据xi的重构数据yi,yi的维度与xi一致在训练深度自编码网络的过程中,希望输出yi尽可能接近原始数据xi。
步骤22:最小化自编码器的损失函数。稀疏自编码网络的目标函数如公式1-1所示:
公式1-1中,Wki表示隐藏层到输出层之间的权重参数,β表示惩罚因子的权重。目标函数中除了包含重构数据yi与原始数据xi的误差项之外,还包含对权重的约束项以及额外的惩罚因子。
步骤23:为了实现这一限制,将基于相对熵的惩罚因子加入到目标函数中,相对熵称为KL散度(Kulback-Leibler),如公式1-2所示:
步骤24:训练阶段根据最小化目标函数的原则对网络中的参数W1,b1,W2,b2进行迭代更新。
进一步的,所述步骤3构建自适应遗传算法模型具体包括以下步骤:
步骤31:根据实际问题确定一种合适的编码方式,将异常数据进行染色体编码。通过分析问题得知,对于求解的异常点的异常子空间进行编码,使用标准的二进制个体编码。所有个体都由长度固定且等长的向量Z表示染色体,染色体表达了待测异常点的子空间特征串,具体表示为Z=(z1,z2,...,zm),其中m是数据集的维数。对基因等位基因使用二进制数字∑={0,1},个体中的每个位zi将取值“0”和“1”,分别表示是否选择了当前分量作为子空间构成部分。zi是对应于遗传算法中基因值的概念,zi=1时表示该异常点子空间包含处于i的分量,zi=0时反之。
步骤32:选取适应度函数。定义用于异常子空间搜索的遗传算法的适应度函数,该适应度函数来衡量不同子空间中给定数据点的异常程度,使用Dk(输入点与第k个最近邻点之间的距离)作为异常程度的度量标准。由于在子空间可能产生数值较大的离群距离,因此为了增加异常点在搜索子空间中异常度的可比性,将子空间异常度SOD定义为在相同子空间s中给定点p的Dk(p)与数据集Data中点的平均Dk之比,如下式所示:
该比率越高,给点样本p的Dk与其他点相比就越高,因此p的异常度越高,被遗传到下一代的概率也就越大,异常度较低的染色体淘汰掉,从而经过若干次迭代后可得到异常子空间的最优解。
步骤33:利用遗传算子来赋予遗传算法进化的能力,其中包括选择、交叉和变异操作,交叉和突变产生的新个体的长度与其父代的长度相同。
选择操作是通过轮赌算法按选择比例从当前代群体挑选较优个体构成下一代群体,适应度更高的个体会有更高的几率被选中用于进化,直到下一代个体数量达到种群数量上限。
交叉操作是通过轮赌法选择出两个待交叉的不同的染色体(父母)根据交叉概率Pc随机选择一个交叉点,采用单点交叉法交换其部分基因,产生新的基因组合,期望将有益基因组合在一起。
变异操作是在形成的新后代中,染色体按照变异概率Pm采用单点变异法进行染色体的变异,也就是说字符串中的一些比特会发生变动。发生变异是为了维护种群中的多样性,防止出现早熟收敛。
步骤34:自适应遗传算法是使交叉和变异算子可以随着适应度自动的改变,当种群个体适应度趋于一致或者趋于局部最优时,交叉和变异算子增加,当种群个体适应度比较分散时,交叉和变异算子减小,因此,自适应遗传算法可以在保持种群多样性的同时,保证算法的收敛性。在自适应遗传算法中,交叉算子和变异算子的调整函数为:
进一步的,所述步骤4利用稀疏自编码器进行异常点快速筛选操作具体包括以下步骤:
步骤41:利用重建误差来衡量测试样本的重建表示与原始样本之间的差异程度。对于每个实例权重较高的组件(即较低的重构误差)对数据的最终重构误差贡献更大。样本的特征都是连续数值变量,我们可以用MSE或者MAE作为还原误差;
步骤42:g(x)是重建误差分数分布,根据分布确定正常值和异常值的一个客观分界阈值;
步骤43:当测试样本数据的重建误差小于阈值时,则说明这项数据与正常样本的相似性较高,判定为正常数据,如果测试样本数据的重建误差大于或等于阈值时,则说明这项数据与正常样本的差异性较大,将这样的样本判定为异常数据。
进一步的,所述步骤5检测异常点的异常子空间具体包括以下步骤:
步骤51:给自适应遗传算法运行的参数赋值,其中包含群体规模M、运行代数、遗传操作中的交叉概率Pc和变异概率Pm;
步骤52:根据公式1-3的定义计算当前代种群中每个个体的适应度值SOD,同时计算群体中所有个体的适应度值的平均值,记录下当前群体中的最佳个体和整体的最佳个体的适应度,用于自适应遗传算子的自动调整,将当前群体最佳个体放在第M位。
步骤53:对前(M-1)个体进行自适应交叉和变异操作,最后一个个体为最优个体,不进行交叉操作从而避免了被破坏。通过轮赌法选择出两个待交叉的不同的染色体(父母)根据交叉概率Pc随机选择一个交叉点,采用单点交叉法交换其部分基因,产生新的基因组合放入到下一代群体前(M-1)个位置;
步骤54:在形成的新后代中,染色体按照变异概率Pm采用单点变异法进行染色体的变异,将染色体编码字符串Z中的一些基因zi进行改变;
步骤55:判断是否满足程序设定的终止条件,如果种群出现了收敛,即不再生成和之前几代有巨大差异的后代,或者满足迭代次数,遗传算法就会终止,从而得到当前异常点的异常子空间可行解。否则进化代数增1后转向步骤52。
本发明创造性的将自编码器和遗传算法结合应用于高维数据的异常子空间检测中,得到以下有益效果:
(1)为了准确地检测拥有较高维度数据集中的异常点,达到快速过滤数据的目的,使用稀疏自编码器对高维数据进行建模,利用梯度下降算法优化损失函数提高模型的性能,根据数据编码-解码后的的重建误差获取样本数据集中的异常点,极大的减小了进一步异常子空间搜索的计算复杂度;
(2)结合稀疏自编码器和自适应遗传算法的模型AEG,用于高维数据的异常点检测,包含两部分混合模型,首先通过训练AE模块获得能够检测异常点的稀疏自编码器,加速异常检测,其次将AE模块输出的异常点数据集传入到模型GA模块利用遗传算法进行异常子空间搜索,达到快速定位高位数据集的异常点所在异常子空间的目的;
(3)AEG模型能够较为准确地检测出在高维数据集中的异常值,以及得到异常值所在异常子空间,可以使得研究者从异常点的多个维度分析数据异常的原因,判断异常出现的场景,并逐步建立数据异常的规律;
(4)根据AGA模块搜索异常点得到的异常子空间特征,可以进一步对异常子空间特征进行建模,对完善大数据分布分析起着很大的作用,通过异常子空间特征可以从异常中获取信息,提高了异常现象的解释性。
附图说明
图1为基于自编码器和遗传算法的高维数据异常子空间检测方法结构图
图2为基于自编码器和遗传算法的高维数据异常子空间检测方法流程图
图3为基于自编码器和遗传算法的高维数据异常子空间检测方法中自适应遗传算法流程图
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
结合图1-图2所示,本发明实施例基于自编码器和遗传算法的高维数据异常子空间检测方法,包括如下步骤:
本实施例分为训练阶段和测试阶段,训练阶段提取训练数据的特征,并作为自编码网络的输入来训练整个自编码网络的权重参数,自编码网络对数据特征进行学习,通过学习去掉数据中的冗余信息,保留有意义的信息。训练好自编码网络后,根据学习到的数据计算得到数据的重建误差,来进行高维数据的异常检测。测试阶段将提取测试数据的特征输入到训练好的自编码网络中,得到隐藏层的数据表示,再利用重建误差是否越过阈值来检测高维数据集的异常数据。然后利用遗传搜索算法进行异常点的异常子空间遍历来得到位于高维数据集中异常点的异常特征,为后续的异常原因分析做铺垫。
本实施例一种基于自编码器和遗传算法的高维数据异常子空间检测方法,具体包括如下步骤:
步骤1:选择较高维度的训练数据集,对高维度的数据集进行预处理操作,并对数据集进行合理地选择划分得到训练样本和测试样本,用于基于稀疏自动编码器和自适应遗传算法的高维数据异常检测模型AEG的训练和测试;
步骤2:用神经网络搭建稀疏自编码器模型,使用步骤2预处理操作得到的训练数据对模型进行迭代学习最佳的编码-解码方案;
步骤3:构建用于异常子空间搜索的自适应遗传算法模型;
步骤4:利用AEG模型中训练好的SAE模块对测试数据进行编码解码操作,通过计算重建误差来衡量数据点的异常分数,并结合阈值进行异常检测,得到测试数据集的异常点集合;
步骤5:将步骤4中快速过滤测试数据得到的异常点数据集,输入到AEG模型的自适应遗传算法AGA模块中进行异常子空间搜索,得到异常点的异常子空间最优解。
进一步的,所述步骤1数掘的预处理具体包括以下步骤:
步骤11:检索选择的数据集中所有数据每个维度信息;
步骤12:对数据集进行划分,通过随机采样数据集中70%的高维数据作为稀疏自编码器模型学习的训练数据,剩下30%的数据作为验证模型的测试数据;
步骤13:对于存在缺失和不对齐的数据问题中,需要对缺失数据进行填充,不对齐数据需要通过空数据标识符进行补充;
步骤14:由于不同维度的数据具有不同的尺度,为了让模型能够有效地优化和收敛,需要根据数据的尺度将不同维度的数据分别标准化,为了满足模型中输入格式的要求,在数据预处理中对原始数据进行特征变换和归一化处理。对所述数值特征使用极小-极大法转换进行标准化处理,将数值映射到[0-1]之间,得到预处理后的原始数据。在标准化中使用极小-极大法(Min-Max technique)转换,如公式2-1所示:
其中Max为数值的最大值,Min为数值的最小值,X为原数值,X*为归一化后的数值。
步骤15:对步骤1中预处理得到的数据集使用K-Means算法计算数据点的异常值,进行异常子空间遍历,输出每一个子空间top5的数据点,得到该训练数据集的异常子空间标准对照数据集,用于评估本发明异常子空间检测结果的准确性。
进一步的,所述步骤2训练稀疏自编码器具体包括以下步骤:
步骤21:利用keras训练稀疏自编码器SAE(Sparse Auto-Encoder),将预处理后的训练数据作为训练稀疏自编码器的输入,记为X={x1,x2,…,xn},其中n为输入的测试样本个数。输入层节点为D,设置隐藏节点个数为H(H<D),输入层和隐藏层之间的权重参数记为W1,W1的维度为H×D,隐藏层与输出层之间的权重参数记为W2,W2的维度为D×H。自编码网络的计算公式2-2如下:
yi=W2δ(W1xi+b1)+b2 公式2-2
公式2-2中,b1和b2分别表示输入层和隐藏层的偏置,δ(x)表示Sigmoid激活函数。将训练样本数据xi输入到自编码网络中,经过上式的计算得到原始数据xi的重构数据yi,yi的维度与xi一致,都为度D。在训练深度自编码网络的过程中,希望输出yi尽可能接近原始数据xi。
步骤22:最小化自编码器的损失函数。通过两种主要的方式来强加这种稀疏性约束,都涉及到测量每个训练批次的隐藏层激活,并为损失函数添加一些惩罚过度的激活的项。可以添加一个对损失函数的L1正则化项,在h层中为观察i惩罚激活a的向量值的绝对值,使用微调参数λ进行缩放。稀疏自编码网络的目标函数如公式2-3所示:
公式2-3中,Wkj表示隐藏层到输出层之间的权重参数,β表示惩罚因子的权重。目标函数中除了包含重构数据yi与原始数据xi的误差项之外,还包含对权重的约束项,以及额外的惩罚因子。ρ′k表示隐藏神经元k的平均激活度
公式2-4中,ak表示隐藏神经元k的激活度。为了使隐藏层神经元能够保持稀疏性,设置稀疏参数ρ为一个接近于0的值,使ρ′k与ρ相等,也就是使隐藏神经元的活跃度接近于0。
步骤23:为了实现这一限制,将基于相对熵的惩罚因子加入到目标函数中,相对熵也称为KL散度(Kulback-Leibler),本质上,KL散度是两个概率分布差异的度量。我们可以定义一个参数ρ稀疏,它表示一个神经元在样本集合上的平均激活。这种期望可以计算为,下标j表示表示层h中特定的神经元,对m个训练观察的表征x的激活求和。本质上,通过限制一个神经元在样本集合上的平均激活,我们鼓励神经元只对观测的一个子集进行激活。我们可以将ρ描述为一个伯努利随机变量分布,我们可以利用KL散度来比较理想的分布在所有隐藏层节点上的观察分布。如下公式2-5所示:
步骤24:训练阶段根据最小化目标函数的原则对网络中的参数W1,b1,W2,b2进行迭代更新,如公式2-6到公式2-9所示:
步骤25:效果评估。接收器操作特性曲线下面积(AUCROC)、精确召回曲线(AUCPRC)和f1得分曲线下的平均精度或面积用于评估。
进一步的,所述步骤3构建自适应遗传算法模型具体包括以下步骤:
步骤31:根据实际问题确定一种合适的编码方式,将异常数据进行染色体编码。通过分析问题得知,对于求解的异常点的异常子空间进行编码,使用标准的二进制个体编码。所有个体都由长度固定且等长的向量Z表示染色体,染色体表达了待测异常点的子空间特征串,具体表示为Z=(z1,z2,...,zm),其中m是数据集的维数。对基因等位基因使用二进制数字∑={0,1},个体中的每个位zi将取值“0”和“1”,分别表示是否选择了当前分量作为子空间构成部分。zi是对应于遗传算法中基因值的概念,zi=1时表示该异常点子空间包含处于i的分量,zi=0时反之。
步骤32:选取适应度函数。遗传算法在运行的过程中会进行N次迭代,每次迭代都会生成若干条染色体。适应度函数会给本次迭代中生成的所有染色体打个分,来评判这些染色体的适应度,然后将适应度较低的染色体淘汰掉,只保留适应度较高的染色体,从而经过若干次迭代后染色体的质量将越来越优良。
定义用于异常子空间搜索的遗传算法的适应度函数,该适应度函数来衡量不同子空间中给定数据点的异常程度,使用Dk(输入点与第k个最近邻点之间的距离)作为异常程度的度量标准。由于在子空间可能产生数值较大的离群距离,因此为了增加异常点在搜索子空间中异常度的可比性,将子空间异常度SOD定义为在相同子空间s中给定点p的Dk(p)与数据集Data中点的平均Dk之比,定义如公式2-10所示。
我们对SOD的定义推导出基于SOD的离群子空间的定义:给定输入数据集Data,参数n为数据集维度和k为相邻数据点个数,如果不存在一个少于n-1个子空间数量的其他子空间s′,使得SOD(s′,p)>SOD(s,p),则给定数据点p的子空间s就是该数据点的最优异常子空间。由此可见,该比率越高,给点样本p的Dk与其他点相比就越高,因此p的异常度越高,被遗传到下一代的概率也就越大,异常度较低的染色体淘汰掉,从而经过若干次迭代后可得到异常子空间的最优解。
步骤33:利用遗传算子来赋予遗传算法进化的能力,其中包括选择、交叉和变异操作,交叉和突变产生的新个体的长度与其父代的长度相同。
选择操作是通过轮赌算法按选择比例从当前代群体挑选较优个体构成下一代群体,适应度更高的个体会有更高的几率被选中用于进化,直到下一代个体数量达到种群数量上限。
交叉操作是通过轮赌法选择出两个待交叉的不同的染色体(父母)根据交叉概率Pc随机选择一个交叉点,采用单点交叉法交换其部分基因,产生新的基因组合,期望将有益基因组合在一起。
变异操作是在形成的新后代中,染色体按照变异概率Pm采用单点变异法进行染色体的变异,也就是说字符串中的一些比特会发生变动。发生变异是为了维护种群中的多样性,防止出现早熟收敛。
步骤34:自适应遗传算法是使交叉和变异算子可以随着适应度自动的改变。当种群个体适应度趋于一致或者趋于局部最优时,交叉和变异算子增加;当种群个体适应度比较分散时,交叉和变异算子减小,因此,自适应遗传算法可以在保持种群多样性的同时,保证算法的收敛性。在自适应遗传算法中,交叉算子和变异算子的调整函数如公式2-11所示:
进一步的,所述步骤4利用自编码器进行异常检测操作具体包括以下步骤:
步骤41:利用重建误差来计算测试样本的重建表示与原始样本之间的差异程度。对于每个实例权重较高的组件(即较低的重构误差)对数据的最终重构误差贡献更大。每个分量的权重和每个实例的重建分数均已归一化。最后,将结果合并为数据点重建误差的加权总和,从而得出异常值。样本的特征都是连续数值变量,我们可以用MSE或者MAE作为还原误差。样本的特征都是连续数值变量,我们可以用MSE或者MAE作为还原误差。输入样本为:
X=(X1,X2,...,Xn) 公式2-12
经过Autoencoder重建的结果为:
步骤42:计算测试样本的还原误差MSE为:
以及还原误差MAE为:
步骤43:g(x)是重建误差分数分布,根据分布确定正常值和异常值的一个客观分界阈值;
步骤44:由上述式子计算测试数据与正常数据之间的差异程度,当测试样本数据的重建误差小于阈值时,则说明这项数据与正常样本的相似性较高,判定为正常数据,如果测试样本数据的重建误差大于或等于阈值时,则说明这项数据与正常样本的差异性较大,将这样的样本判定为异常数据。检测异常数据方法如下所示:
进一步的根据图3,所述步骤5实现异常子空间定位操作具体包括以下步骤:
步骤51:给自适应遗传算法运行的参数赋值,其中包含群体规模M、运行代数、遗传操作中的交叉概率Pc和变异概率Pm;
步骤52:根据公式3的定义计算当前代种群中每个个体的适应度值SOD,同时计算群体中所有个体的适应度值的平均值,记录下当前群体中的最佳个体和整体的最佳个体的适应度,用于自适应遗传算子的自动调整,将当前群体最佳个体放在第M位。
步骤53:对前M-1个体进行自适应交叉和变异操作,最后一个个体为最优个体,不进行交叉操作从而避免了被破坏。通过轮赌法选择出两个待交叉的不同的染色体(父母)根据交叉概率Pc随机选择一个交叉点,采用单点交叉法交换其部分基因,产生新的基因组合放入到下一代群体前(M-1)个位置;
步骤54:在形成的新后代中,染色体按照变异概率Pm采用单点变异法进行染色体的变异,将染色体编码字符串Z中的一些基因zi进行改变;
步骤55:判断是否满足程序设定的终止条件,如果种群出现了收敛,即不再生成和之前几代有巨大差异的后代,或者满足迭代次数,遗传算法就会终止,从而得到当前异常点的异常子空间可行解。否则进化代数增1后转向步骤52。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (6)
1.一种基于自编码器和遗传算法的高维数据异常子空间检测方法,其特征在于:具体包括如下步骤:
步骤1:对高维度的数据集进行预处理操作,并对数据集进行合理地选择划分得到训练样本和测试样本,用于基于稀疏自动编码器和自适应遗传算法的高维数据异常检测模型AEAG的训练和测试;
步骤2:用神经网络搭建稀疏自编码器模型,使用步骤1预处理操作得到的训练数据对模型进行迭代学习最佳的编码-解码方案;
步骤3:构建用于异常子空间搜索的自适应遗传算法模型;
步骤4:利用AEG模型中训练好的AE模块对测试数据进行编码解码操作,通过计算重建误差来衡量数据点的异常分数,并结合阈值进行异常检测,得到测试数据集的异常点集合;
步骤5:将步骤4中快速过滤测试数据得到的异常点数据集,输入到AEG模型的自适应遗传算法AGA模块中进行异常子空间搜索,得到异常点的异常子空间最优解。
2.根据权利1要求所述的高维数据集预处理,其特征在于:所述步骤1对高维数据集进行预处理具体包括以下步骤:
步骤11:对数据集进行划分,通过随机采样数据集中70%的高维数据作为稀疏自编码器模型学习的训练数据,剩下30%的数据作为验证模型的测试数据;
步骤12:对于存在缺失和不对齐的数据问题中,需要对缺失数据进行填充,不对齐数据需要通过空数据标识符进行补充,以及对原始数据进行特征变换;
步骤13:由于不同维度的数据具有不同的尺度,为了满足模型中输入格式的要求,需要根据数据的尺度将不同维度的数据进行归一化处理。
3.根据权利1要求所述的训练稀疏自编码器模型,其特征在于:所述步骤2用神经网络搭建稀疏自编码器模型并进行训练具体包括以下步骤:
步骤21:利用keras训练稀疏自编码器,将预处理后的训练数据作为训练稀疏自编码器的输入,记为X={x1,x2,…,xn},其中n为输入的测试样本个数,将训练样本数据xi输入到稀疏自编码网络中,经过编码解码计算得到原始数据xi的重构数据yi,yi的维度与xi一致,在训练深度自编码网络的过程中,希望输出yi尽可能接近原始数据xi;
步骤22:最小化自编码器的损失函数。稀疏自编码网络的目标函数如下所示:
公式1中,Wkj表示隐藏层到输出层之间的权重参数,β表示惩罚因子的权重。目标函数中除了包含重构数据yi与原始数据xi的误差项之外,还包含对权重的约束项以及额外的惩罚因子;
步骤23:为了实现这一限制,将基于KL散度的惩罚因子加入到目标函数中,如下式所示:
步骤24:训练阶段根据最小化目标函数的原则对网络中的参数W1,b1,W2,b2进行迭代更新。
4.根据权利1要求所述的构建自适应遗传算法模型,其特征在于:所述步骤3具体包括以下步骤:
步骤31:对于求解的异常点的异常子空间进行编码,使用标准的二进制个体编码。所有个体都由长度固定且等长的向量Z表示染色体,染色体表达了待测异常点的子空间特征串,具体表示为Z=(z1,z2,...,zm),其中m是数据集的维数。对基因等位基因使用二进制数字∑={0,1},个体中的每个位zi将取值“0”和“1”,分别表示是否选择了当前分量作为子空间构成部分;
步骤32:定义用于异常子空间搜索的遗传算法的适应度函数,该适应度函数来衡量不同子空间中给定数据点的异常程度,使用Dk(输入点与第k个最近邻点之间的距离)作为异常程度的度量标准,由于在子空间可能产生数值较大的离群距离,因此为了增加异常点在搜索子空间中异常度的可比性,将子空间异常度SOD定义为在相同子空间s中给定点p的Dk(p)与数据集Data中点的平均Dk之比,如下式所示:
该比率越高,给点样本p的Dk与其他点相比就越高,因此p的异常度越高,被遗传到下一代的概率也就越大,异常度较低的染色体淘汰掉,从而经过若干次迭代后可得到异常子空间的最优解;
步骤33:利用遗传算子来赋予遗传算法进化的能力,其中包括选择、交叉和变异操作,交叉和突变产生的新个体的长度与其父代的长度相同,选择操作是通过轮赌算法按选择比例从当前代群体挑选较优个体构成下一代群体,适应度更高的个体会有更高的几率被选中用于进化,直到下一代个体数量达到种群数量上限;交叉操作是通过轮赌法选择出两个待交叉的不同的染色体(父母)根据交叉概率Pc随机选择一个交叉点,采用单点交叉法交换其部分基因,产生新的基因组合,期望将有益基因组合在一起;变异操作是在形成的新后代中,染色体按照变异概率Pm采用单点变异法进行染色体的变异,也就是说字符串中的一些基因zi会发生变动。发生变异是为了维护种群中的多样性,防止出现早熟收敛;
步骤34:自适应遗传算法是使交叉和变异算子可以随着适应度自动的改变,当种群个体适应度趋于一致或者趋于局部最优时,交叉和变异算子增加,当种群个体适应度比较分散时,交叉和变异算子减小,在自适应遗传算法中,交叉算子和变异算子的调整函数如下所示:
5.根据权利1要求所述的利用稀疏自编码器进行异常点快速过滤,其特征在于:所述步骤4利用自编码器进行异常点快速过滤操作具体包括以下步骤:
步骤41:利用重建误差来计算测试样本的重建表示与正常样本之间的差异程度。对于每个实例权重较高的组件(即较低的重构误差)对数据的最终重构误差贡献更大。样本的特征都是连续数值变量,我们可以用MSE或者MAE作为还原误差;
步骤42:g(x)是重建误差分数分布,根据分布确定正常值和异常值的一个客观分界阈值;
步骤43:当测试样本数据的重建误差小于阈值时,则说明这项数据与正常样本的相似性较高,判定为正常数据,如果测试样本数据的重建误差大于或等于阈值时,则说明这项数据与正常样本的差异性较大,将这样的样本判定为异常数据。
6.根据权利1要求所述的检测异常点的异常子空间,其特征在于:所述步骤5具体包括以下步骤:
步骤51:给自适应遗传算法运行的参数赋值,其中包含群体规模M、运行代数、遗传操作中的交叉概率Pc和变异概率Pm;
步骤52:根据公式3的定义计算当前代种群中每个个体的适应度值SOD,同时计算群体中所有个体的适应度值的平均值,记录下当前群体中的最佳个体和整体的最佳个体的适应度,用于自适应遗传算子的自动调整,将当前群体最佳个体放在第M位。
步骤53:对前M-1个体进行自适应交叉和变异操作,最后一个个体为最优个体,不进行交叉操作从而避免了被破坏。通过轮赌法选择出两个待交叉的不同的染色体(父母)根据交叉概率Pc随机选择一个交叉点,采用单点交叉法交换其部分基因,产生新的基因组合放入到下一代群体前(M-1)个位置;
步骤54:在形成的新后代中,染色体按照变异概率Pm采用单点变异法进行染色体的变异,将染色体编码字符串Z中的一些基因zi进行改变;
步骤55:判断是否满足程序设定的终止条件,如果种群出现了收敛,即不再生成和之前几代有巨大差异的后代,或者满足迭代次数,遗传算法就会终止,从而得到当前异常点的异常子空间可行解。否则进化代数增1后转向步骤52。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110650606.XA CN114036992A (zh) | 2021-06-10 | 2021-06-10 | 基于自编码器和遗传算法的高维数据异常子空间检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110650606.XA CN114036992A (zh) | 2021-06-10 | 2021-06-10 | 基于自编码器和遗传算法的高维数据异常子空间检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036992A true CN114036992A (zh) | 2022-02-11 |
Family
ID=80134236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110650606.XA Pending CN114036992A (zh) | 2021-06-10 | 2021-06-10 | 基于自编码器和遗传算法的高维数据异常子空间检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036992A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114783524A (zh) * | 2022-06-17 | 2022-07-22 | 之江实验室 | 基于自适应重采样深度编码器网络的通路异常检测系统 |
CN114821187A (zh) * | 2022-05-19 | 2022-07-29 | 济南大学 | 一种基于判别学习的图像异常检测和定位方法及系统 |
CN114842472A (zh) * | 2022-07-04 | 2022-08-02 | 杭州德适生物科技有限公司 | 一种基于深度学习的染色体结构异常的检测方法及装置 |
-
2021
- 2021-06-10 CN CN202110650606.XA patent/CN114036992A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114821187A (zh) * | 2022-05-19 | 2022-07-29 | 济南大学 | 一种基于判别学习的图像异常检测和定位方法及系统 |
CN114783524A (zh) * | 2022-06-17 | 2022-07-22 | 之江实验室 | 基于自适应重采样深度编码器网络的通路异常检测系统 |
CN114842472A (zh) * | 2022-07-04 | 2022-08-02 | 杭州德适生物科技有限公司 | 一种基于深度学习的染色体结构异常的检测方法及装置 |
CN114842472B (zh) * | 2022-07-04 | 2022-09-23 | 杭州德适生物科技有限公司 | 一种基于深度学习的染色体结构异常的检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111814871B (zh) | 一种基于可靠权重最优传输的图像分类方法 | |
CN114036992A (zh) | 基于自编码器和遗传算法的高维数据异常子空间检测方法 | |
Sharman et al. | Genetic algorithms for maximum likelihood parameter estimation | |
Lévesque et al. | Bayesian optimization for conditional hyperparameter spaces | |
CN112084237A (zh) | 一种基于机器学习和大数据分析的电力系统异常预测方法 | |
Pandey et al. | An analysis of machine learning techniques (J48 & AdaBoost)-for classification | |
CN111368920A (zh) | 基于量子孪生神经网络的二分类方法及其人脸识别方法 | |
CN113240201B (zh) | 一种基于gmm-dnn混合模型预测船舶主机功率方法 | |
Wang | Fuzzy clustering analysis by using genetic algorithm | |
CN111814907A (zh) | 一种基于条件约束的量子生成对抗网络算法 | |
CN111985825A (zh) | 一种用于滚磨机定向仪的晶面质量评估方法 | |
CN111310722A (zh) | 一种基于改进神经网络的电力设备图像的故障识别方法 | |
Chu et al. | Co-training based on semi-supervised ensemble classification approach for multi-label data stream | |
CN114842371A (zh) | 一种无监督视频异常检测方法 | |
CN114037001A (zh) | 基于wgan-gp-c和度量学习的机械泵小样本故障诊断方法 | |
Leluc et al. | Sgd with coordinate sampling: Theory and practice | |
CN113065520A (zh) | 一种面向多模态数据的遥感图像分类方法 | |
CN112817954A (zh) | 一种基于多种方法集成学习的缺失值插补方法 | |
CN116739100A (zh) | 量子神经网络的漏洞检测方法及自动驾驶漏洞检测方法 | |
Narasimha Prasad et al. | CC-SLIQ: performance enhancement with 2 K split points in SLIQ decision tree algorithm | |
CN112465253B (zh) | 一种城市路网中的链路预测方法及装置 | |
Nakane et al. | A search history-driven offspring generation method for the real-coded genetic algorithm | |
CN112348275A (zh) | 一种基于在线增量学习的区域生态环境变化预测方法 | |
Ivanytska et al. | Study of Methods of Complex Data Analysis that Based on Machine Learning Technologies | |
Colla et al. | Genetic algorithms applied to discrete distribution fitting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |