一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于能量和镜像生成对抗网络的异常检测方法与流程

2022-03-05 00:27:31 来源:中国专利 TAG:


1.本发明涉及机器学习和异常检测技术领域,特别是涉及一种基于镜像生成对抗网络结合能量思想的异常检测方法。


背景技术:

2.异常检测是人工智能领域中的一个非常活跃的研究课题,其目的是识别不属于正态数据分布的异常实例,即与大多数其他数据具有显着不同特征的观察值。这些观察结果是如此独特,以至于引起人们怀疑它们是由非法行为或未被发现的错误产生的。在数据集中,正例样本是比较容易获取的,并且正例样本的“模式”往往固定或者不多变的。异常则与之相反,数量很少、区域相对多变、甚至未知,此时异常检测就面临样本不均衡的情况。
3.一般来说,根据数据标签的可用性,现有的异常检测方法可以分为三类:无监督、半监督和有监督异常检测。无监督算法是研究最广泛的算法之一,因为它们不需要额外的标签或先验信息。包括基于统计、基于聚类、基于回归、基于近邻的方法。这类方法明确或隐含地假设异常值不像正常数据那样集中。因此,可以有效地检测离散异常。但是,在许多情况下,同一机制可能会产生多个异常(例如dos攻击)。它们变得越来越集中,以至于无监督的异常值检测错误地将这些组异常检测为正常数据。此外,模型和参数的选择对于没有先验知识帮助的无监督方法来说是一个相当大的挑战。而监督算法通常可以获得较高的检测率和较优参数,因为标签在训练过程中是完整和校正的。但在绝大多数情况下,完整标签的获取成本都是巨大的且无法承受的,由于完全基于监督式的方法对数据集的要求太高,故其的实施局限性较大。而半监督算法处于二者之间,只需要正常数据即可得到稳健的模型,而正常数据的获取相对更加容易,且占据了数据集中的绝大部分,基于此,本发明将异常检测视为一个半监督的问题。
4.生成对抗网络(generative adversarial networks,gan)是一种对抗性表示学习模型,在许多应用场景中都取得了先进的性能。在gan和异常检测领域结合的相关工作中,对于仅使用正常示例的无监督离群点检测和半监督离群点检测,已经研究了基于gan的重建模型和生成模型。基于gan的重建模型通常通过训练常规gan或gan和自动编码器的组合来学习正常数据的生成机制,然后基于重建损失或鉴别器损失。基于gan的生成模型通常使用gan生成信息性潜在异常值或不常见的正常样本,以便后续检测器可以描述正确的边界。对于有监督的异常值检测,gan常用于合成少数类示例以平衡两个类之间的相对比例。
5.本发明的目的在于针对异常检测领域内常见的数据集不平衡的问题,结合镜像生成对抗网络和能量的思想,生成关键异常点,补充数据集达到类别平衡的目的,生成的异常点所处的关键位置,也可以是异常检测器学习到正异常的分界信息,从而对未知异常具备良好的检测能力。


技术实现要素:

6.由于数据大多以多簇形式存在,簇内为正常空间,而广阔的簇间及簇外空间都是
异常点可能出现的位置,故本发明首先对数据进行预处理后,将其进行分簇,每一簇单独处理。改进生成对抗网络的单生成器单判别器结构,加入新的镜像判别器,并结合能量的思想,用于生成位于正常点外围的关键异常点,并加入原始数据集中,使数据集达到类别平衡。加入的异常点所处于关键的边缘位置,可以使得异常检测器学习到完整的正异常分界信息,提高其对于未知异常的识别能力。
7.本发明通过下述技术方案实现:一种基于能量和镜像生成对抗网络的异常检测方法,具体包括如下步骤:
8.步骤1:对正常数据进行预处理,将其标准化,以消除量纲对结果的影响。划分数据集得到训练样本和测试样本,分别用于模型的训练和测试,并将训练样本使用聚类算法进行分簇,消除簇间空隙对边缘异常点生成的影响;
9.步骤2:用神经网络构建镜像生成对抗网络,并引入能量的思想,使用步骤1所得的单簇训练数据,对模型进行迭代训练,以得到最优参数,并将训练完成后的边缘异常点加入到原始数据集中;
10.步骤3:用神经网络另外搭建异常检测器,使用步骤2对所有簇训练所得的边缘异常点及正常点,对其进行迭代训练,并使用测试集对其进行测试。
11.进一步的,所述步骤1对数据的预处理包括以下步骤:
12.步骤11:对数据集中所有数据进行标准化处理,以消除量纲对结果的影响。
13.步骤12:对数据集进行划分,将其中的全部异常数据划分到测试集中。对于正常数据,将80%的数据分割出来作为训练集,剩下的20%数据于异常数据合并成为测试集,分别记为x
train
,x
test

14.步骤13:使用聚类算法,将训练数据x
train
进行分簇,其中m为数据簇的个数。取每一簇数据单独执行后续的步骤2和步骤3,以消除簇间空隙对异常点生成的影响。
15.进一步的,所述步骤2训练镜像生成网络并结合能量思想包括以下步骤:
16.步骤21:构建镜像生成对抗网络,不同于传统的单生成器单判别器结构,我们加入镜像判别器,并将其各组件记为g(生成器),d(判别器),d
mirror
(镜像判别器),其中d和d
mirror
结构相同,但目标输出相反。
17.步骤22:引入能量的思想,更改d和d
mirror
为编码器-解码器的结构,经过编码解码计算得到原始数据xi的重构数据yi。xi与yi维度一致,以xi和yi的均方误差作为能量值,直接用于与生成器g的对抗训练。
18.步骤23:取预处理后的训练集中的一簇数据,记为其中n为该簇训练样本的个数。
19.步骤24:随机采样k维的均匀噪声z作为生成器g的输入,输出最初的生成样本,记为xg={x
g1
,x
g2
,...,x
gn
},其中n为生成样本的个数。
20.步骤25:将步骤23,24所得的生成样本xg及一簇训练样本作为d的输入,通过编解码操作,希望d对中的样本输出能量较低,对xg中样本的输出能量高。d的目标函数如公式2-1所示:
21.ld=d(x) [m-d(g(z))]

ꢀꢀꢀꢀꢀꢀꢀ
公式2-1
[0022]
步骤26:d
mirror
和d结构相同,但训练目标函数与之相反。将步骤23所得的生成样本
xg及步骤24中的作为d
mirror
的输入,通过编解码操作,希望d
mirror
对xg中的样本输出能量较低,对中样本的输出能量高。d
mirror
的目标函数如公式2-2所示:
[0023][0024]
步骤27:重新采样k维均匀噪声z
*
作为生成器g的输入,将输出的生成样本分别作为训练后d和d
mirror
的输入,分别得到二者对各生成样本的能量值。
[0025]
步骤28:为规避模式崩溃问题,对于生成点计算其均值最大化各点于其均值的距离,鼓励生成点散开分布,如公式2-3:
[0026][0027]
在生成器g的目标函数中加入公式2-3,根据步骤26中d和d
mirror
对各生成样本的能量值,训练生成器g。出生成器g的目标函数如公式2-4所示:
[0028]
lg=||d(g(z
*
))-d
mirror
(g(z
*
))||2 λlossdꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式2-4
[0029]
步骤29:转到步骤24,继续训练g,d,d
mirror
,直至模型收敛。
[0030]
步骤210:模型收敛后,重新采样k维均匀噪声z

作为生成器g的输入,生成位于边缘位置的异常点,加入数据集中,切换下一簇数据,转到步骤23,直至训练集中的所有数据簇均处理完成。
[0031]
进一步的,所述步骤3训练异常检测器包括以下步骤:
[0032]
步骤31:利用神经网络构建异常检测器ad,输入层维度与样本一致,输出层维度为1,即是位于区间0-1的异常分数。经过步骤2增广后的训练集数迭代训练异常检测器,直至收敛。
[0033]
步骤32:将测试集中的数据作为异常检测器的输入,输出对应分数,根据阈值threshold,将其判定正常或异常,如公式3-1所示:
[0034][0035]
本发明创造性地改进生成对抗网络,并结合了能量的思想,应用于异常检测中,得到以下有益效果:
[0036]
(1)为解决数据集的类别不平衡问题,训练对抗生成网络生成异常点,并补充到原始数据集中,使得数据集中正异常样本的比例到达1∶1,提高了异常检测器的有效性。
[0037]
(2)修改对抗生成网络的结构,加入与原判别器结构相同,目标相反的镜像判别器,形成单生成器、双判别器的对抗形式,使得生成点位于边缘的关键位置。结合能量的思想,将判别器的结构改成编码-解码的形式,进一步简化各部件的目标函数,提高模型的训练稳定程度。生成异常点所处的边缘位置,使得异常检测器能学习到正确的正异常分界信息,从而对未知异常具备良好的识别能力。
附图说明
[0038]
图1是基于能量和镜像生成对抗网络的异常检测方法流程图
[0039]
图2是结合能量的镜像生成对抗网络结构图
具体实施方式
[0040]
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
[0041]
结合图1-图2所示,本发明实例基于能量和镜像对抗生成网络异常检测方法,包括以下步骤:
[0042]
本实施例分为训练阶段和测试阶段,训练阶段将数据分簇,每一簇单独处理,以规避簇间空隙对生成点的影响。将每一簇数据作为镜像生成对抗网络的输入,来训练得到整个网络的权重参数,结合能量的思想,通过两个判别器与生成器的对抗训练,使得生成异常点集位于正常点外围的关键位置,并加入到原始数据集中,使之达到类别平衡。所有数据簇处理完成,将正负样本数量平衡的训练集作为异常检测器的输入,由于生成异常点所处的关键位置,可以使其学习到完整的正异常分界信息,提高对未知异常的识别能力。测试阶段将测试集中的数据作为异常检测器的输入,输出各数据对应的正异常判断,与测试集中的标签进行对比分析,得到异常检测器的性能指标。
[0043]
本实施例一种基于能量和镜像生成对抗网络的异常检测算法,具体包括如下步骤:
[0044]
步骤1:对正常数据进行预处理,将其标准化,以消除量纲对结果的影响。划分数据集得到训练样本和测试样本,分别用于模型的训练和测试,并将训练样本使用聚类算法进行分簇,消除簇间空隙对边缘异常点生成的影响;
[0045]
步骤2:用神经网络构建镜像生成对抗网络,并引入能量的思想,使用步骤1所得的单簇训练数据,对模型进行迭代训练,以得到最优参数,并将训练完成后的边缘异常点加入到原始数据集中;
[0046]
步骤3:用神经网络另外搭建异常检测器,使用步骤2对所有簇训练所得的边缘异常点及正常点,对其进行迭代训练,并使用测试集对其进行测试。
[0047]
进一步的,根据图1中的数据处理阶段,所述步骤1对数据的预处理包括以下步骤:
[0048]
步骤11:对数据集中所有数据进行标准化处理,以消除量纲对结果的影响。按列属性,将每个数据减去平均值并缩放到标准差来标准化特征,其转化函数为公式1-1,其中μ为该属性列的均值,σ为其标准差
[0049][0050]
步骤12:对数据集进行划分,将其中的全部异常数据划分到测试集中。对于正常数据,将80%的数据分割出来作为训练集,剩下的20%数据于异常数据合并成为测试集,分别记为x
train
,x
test

[0051]
步骤13:使用dbscan聚类算法,将训练数据x
train
进行分簇,其中m为数据簇的个数。取每一簇数据单独执行后续的步骤2和步骤3,以消除簇间空隙对异常点生成的影响。
[0052]
进一步的,根据图1中的边缘异常点生成阶段及图2,所述步骤2训练镜像生成网络并结合能量思想包括以下步骤:
[0053]
步骤21:利用pytorch构建镜像生成对抗网络,不同于传统的单生成器单判别器结构,我们加入镜像判别器,并将其各组件记为g(生成器),d(判别器),d
mirror
(镜像判别器),其中d和d
mirror
结构相同,但目标输出相反。
[0054]
步骤22:引入能量的思想,更改d和d
mirror
为编码器-解码器的结构,经过编码解码计算得到原始数据xi的重构数据yi。xi与yi维度一致,以xi和yi的均方误差作为能量值,直接用于与生成器g的对抗训练。
[0055]
步骤23:取预处理后的训练集中的一簇数据,记为其中n为该簇训练样本的个数。
[0056]
步骤24:随机采样k维的均匀噪声z作为生成器g的输入,输出最初的生成样本,记为xg={x
g1
,x
g2
,...,x
gn
},其中n为生成样本的个数。
[0057]
步骤25:将步骤23、24所得的生成样本xg及作为d的输入,通过编解码操作,希望d对中的样本输出能量较低,对xg中样本的输出能量高。即通过训练,得到d关于的重建样本y
l
,使得和y
l
之间的均方误差较小;而对于x
gl
∈xg的重建样本y
gl
,使得x
gl
和y
gl
之间的均方误差较大。d的目标函数如公式2-1所示:
[0058]
ld=d(x) [m-d(g(z))]

ꢀꢀꢀꢀꢀꢀꢀꢀ
公式2-1
[0059]
步骤26:d
mirror
和d结构相同,但训练目标函数与之相反。将步骤23所得的生成样本xg及步骤24中的作为d
mirror
的输入,通过编解码操作,希望d
mirror
对xg中的样本输出能量较低,对中样本的输出能量高。即d
mirror
目标与d相反,d
mirror
得到x
gl
∈xg的重建样本y
gl
,使得x
gl
、y
gl
之间的均方误差较小;而对的重建样本y
l
,使得y
l
之间的均方误差较大。d
mirror
的目标函数如公式2-2所示:
[0060][0061]
步骤27:重新采样k维均匀噪声z
*
作为生成器g的输入,将输出的生成样本分别作为训练后d和d
mirror
的输入,分别得到二者对各生成样本的能量值。
[0062]
对于某一特定生成样本在训练之初位于异常空间的随机位置,由于d和d
mirror
的训练目标相反,故二者对该样本的输出能量值不同,其中d输出能量值较大,而d
mirror
对其输出能量较低。而生成器g的生成目标在于使得两个判别器对同一生成点产生相近的能量值,从而约束g的生成行为,使得生成点的位置不能太过偏离正常点区域或者与正常点区域重合,造成d,d
mirror
的输出能量值差异较大。当且仅当g的生成点位于正常点外侧的边缘位置,d和d
mirror
的输出能量相近。
[0063]
步骤28:在生成器g的目标函数中加入启发项,以规避模式崩溃问题,根据步骤26中d和d
mirror
对各生成样本的能量值,训练生成器g。
[0064]
由于模式崩溃的现象,我们生成的边缘点不一定能覆盖全部的边缘区域,从而实现对正常点的包围。对生成点计算其均值最大化各点于其均值的距离,鼓励生成点散开分布,以规避模式崩溃问题。该启发项如公式2-3:
[0065][0066]
生成器g接收d和d
mirror
对各生成样本的能量,其目标是让二者产生相近的输出值。
用均方误差描述二者输出能量值的差异,并将公式2-3加入生成器g的目标函数,可得出生成器g的目标函数如公式2-4所示:
[0067]
lg=||d(g(z
*
))-d
mirror
(g(z
*
))||2 λlossdꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式2-4
[0068]
步骤29:转到步骤24,继续训练g,d,d
mirror
,直至收敛。即对于g的生成点,d和d
mirror
给出相近的能量值,说明此时的生成点位于边缘位置,且由步骤27中的lossd约束,生成点在边缘位置均匀分布。
[0069]
步骤210:模型收敛后,重新采样k维均匀噪声z

作为生成器g的输入,生成位于边缘位置的异常点,加入数据集中,切换下一簇数据,转到步骤23,直至训练集中的所有数据簇均处理完成,此时的训练集已经达到类别平衡。
[0070]
进一步的,根据图1中异常检测阶段,所述步骤3训练异常检测器包括以下步骤:
[0071]
步骤31:利用神经网络构建异常检测器ad,输入层维度与样本一致,输出层维度为1,并使用sigmoid作为激活函数将输出值映射到0-1区间,作为输入样本的异常分数。经过步骤2增广后的训练集数据达到了类别平衡,利用此平衡训练集,迭代训练异常检测器,直至收敛。
[0072]
步骤32:将测试集中的数据作为异常检测器的输入,输出对应分数,根据阈值threshold,将其判定正常或异常,如公式3-1所示:
[0073][0074]
步骤33:将测试集中各数据的判断结果及输出分数同标签进行对比分析,计算准确率并画出受试者工作特征曲线,作为异常检测器的性能指标。
[0075]
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献