掌桥专利:专业的专利平台
掌桥专利
首页

一种支持增量训练的快速无监督异常检测方法及系统

文献发布时间:2024-04-18 20:00:50


一种支持增量训练的快速无监督异常检测方法及系统

技术领域

本发明涉及异常检测技术领域,具体而言,涉及一种支持增量训练的快速无监督异常检测方法及系统。

背景技术

无监督异常检测又称新颖性检测(Novelty Detection),是一种以正常分布样本为训练数据、预测未知数据是否为正常样本的机器学习技术。常规异常检测(OutlierDetection)的训练数据同时包含了正常样本和异常样本,而无监督异常检测的训练数据只含有正常样本、需要在训练时分析正常样本的分布规律、在预测时快速推断新样本的异常分数。此类技术被广泛地应用到缺少异常样本的异常检测任务中,例如在强化学习应用中识别环境异常以规避可能造成不确定性后果的行为、在工业生产中通过图像识别异常缺陷、在人体传感器数据中捕获异常行为等。现实应用场景常对无监督异常检测技术有三项需求:(1)模型预测计算复杂度低、时延低。(2)支持快速增量学习,在获取新训练数据后无需使用旧训练数据即可快速重训练模型。(3)在高维度数据下保持识别鲁棒性。

现有的大多数无监督异常检测方法难以同时满足上述需求。首先,基于参数模型概率密度估计或特征重建误差的方法难以支持增量学习,在新训练数据上重新训练后,会产生“灾难遗忘”,对旧数据的分布估计产生偏差。其次,基于非参数方法的模型大多是基于K近邻的,即针对新样本搜索最接近的K个正常训练样本,然后根据K近邻估计新样本概率密度或异常分数;但基于K近邻的方法计算复杂度较高,目前最优的近似K近邻搜索方法的时间复杂度为对数级,在训练数据较多时识别时延较高。最后,基于直方图的非参数概率密度估计方法虽然识别计算复杂度低(常数级),支持快速增量学习(直接更新直方图即可),但对于高维数据,由于空间复杂度过高(与样本特征维度成指数级),因此不具有可行性。

发明内容

本发明提供一种支持增量训练的快速无监督异常检测方法及系统,解决现有无监督异常检测预测计算的时间复杂度高、异常检测量大、异常检测时延长,难以满足异常检测实时性要求的问题。

在第一方面,本发明实施例中提供一种支持增量训练的快速无监督异常检测方法,所述方法包括以下步骤:

基于训练数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器构造,以实现模型的初次训练;

基于增量数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器更新,以实现模型的增量训练;

将待检测的实数向量输入初次训练或增量训练的模型,以得到异常检测结果。

于上述实施例中,通过使用局部敏感哈希编码将实数向量的训练数据编码为整数的哈希向量,并且对哈希向量进行随机分组;然后将随机分组后的各个哈希向量分别加入到一个布隆过滤器;由于局部敏感哈希能在一定概率下保证将两个距离较近的浮点数向量编码为相同的整数向量;布隆过滤器是一种概率数据结构,可以100%的召回率和较高的准确率查询一个离散值的元素是否存在于一个集合中,其查询的时间复杂度为常数级,因此可以解决现有无监督异常检测预测计算的时间复杂度高、异常检测量大、异常检测时延长,难以满足异常检测实时性要求的问题。

作为本发明一些可选实施方式,基于训练数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器构造的流程如下:

从训练数据集中随机挑选两个不同的实数向量,并且基于随机挑选的两个实数向量对训练数据集中的每个实数向量进行局部敏感哈希编码,以得到训练向量集合;

对训练向量集合中的每个编码向量进行等长分组,以得到若干训练分组向量;

基于每个训练分组向量构建一个布隆过滤器,以得到若干布隆过滤器。

于上述实施例中,在训练学习时,对训练数据集进行局部敏感哈希编码和分组,然后将分组后的各个哈希向量分别加入布隆过滤器中(布隆过滤器添加元素的操作也是常数时间复杂度),即可快速完成训练学习。

作为本发明一些可选实施方式,基于增量数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器更新的流程如下:

基于训练数据集中随机挑选的两个实数向量对增量数据集中的每个实数向量进行局部敏感哈希编码,以得到增量向量集合;

对增量向量集合中的每个编码向量进行等长分组,以得到若干增量分组向量;

基于增量分组向量对布隆过滤器进行更新。

于上述实施例中,在增量学习时,对新的训练数据集同样进行局部敏感哈希编码和分组,然后更新至布隆过滤器中(布隆过滤器添加元素的操作也是常数时间复杂度),即可快速完成增量学习。

作为本发明一些可选实施方式,将待检测的实数向量输入初次训练或增量训练的模型,以得到异常检测结果的流程如下:

将待检测的实数向量输入初次训练或增量训练的模型,通过模型对待检测的实数向量进行局部敏感哈希编码、分组以及布隆过滤器查询,以得到若干异常分数;

对若干异常分数进行聚合,以得到异常检测结果。

于上述实施例中,初步训练或增量训练的模型在推理时,只需要对新样本进行局部敏感哈希编码、分组、布隆过滤器查询、对查询结果进行聚合(都是常数时间复杂度)即可计算一个总的异常分数。

作为本发明一些可选实施方式,所述训练向量集合和增量向量集合中的编码向量均为布尔值向量。

作为本发明一些可选实施方式,基于每个训练分组向量构建一个布隆过滤器之前,需要对训练分组向量进行哈希编码,以将布尔值向量转化为整数。

作为本发明一些可选实施方式,基于增量分组向量对布隆过滤器进行更新之前,需要对增量分组向量进行哈希编码,以将布尔值向量转化为整数。

在第二方面,本发明提供一种支持增量训练的快速无监督异常检测系统,所述系统包括初次训练单元、增量训练单元以及异常检测单元;

所述初次训练单元基于训练数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器构造,以实现模型的初次训练;

所述增量训练单元基于增量数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器更新,以实现模型的增量训练;

所述异常检测单元用于将待检测的实数向量输入初次训练或增量训练的模型,以得到异常检测结果。

在第三方面,本发明提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的算机程序,所述处理器执行计算机程序时实现所述一种支持增量训练的快速无监督异常检测方法。

在第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述一种支持增量训练的快速无监督异常检测方法。

本发明的有益效果如下:

(1)本发明使用非参数方法对高维数据的近似概率密度估计取得了较低的异常检测计算时间复杂度。

(2)本发明的模型训练基本不依赖于训练数据分布,从而支持计算简单、快速的增量数据训练。

(3)本发明的模型可扩展性强,在大数据量、高特征维度条件下,线性地增加局部敏感哈希和常规哈希函数数量、增加布隆过滤器内存占用即可适应大数据量、高维的数据分布。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例所述硬件运行环境的计算机设备结构示意图;

图2是本发明实施例所述支持增量训练的快速无监督异常检测方法的流程图;

图3是本发明实施例所述支持增量训练的快速无监督异常检测方系统的结构框图。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了解决现有无监督异常检测预测计算的时间复杂度高、异常检测量大、异常检测时延长,难以满足异常检测实时性要求的问题。本发明提供了一种支持增量训练的快速无监督异常检测方法及系统,在介绍本发明的具体技术方案之前,先介绍下本发明实施例方案涉及的硬件运行环境。

请参阅图1,图1为本发明实施例方案涉及的硬件运行环境的计算机设备结构示意图。

如图1所示,该计算机设备可以包括:处理器,例如中央处理器(CentralProcessing Unit,CPU),通信总线、用户接口,网络接口,存储器。其中,通信总线用于实现这些组件之间的连接通信。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如无线保真接口)。存储器可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储(Non-VolatileMemory,NVM),例如磁盘存储器,存储器可选的还可以是独立于前述处理器的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及软件程序模块。

在图1所示的计算机设备中,网络接口主要用于与网络服务器进行数据通信;用户接口主要用于与用户进行数据交互;本发明计算机设备中的处理器、存储器可以设置在计算机设备中,所述计算机设备通过处理器调用存储器中存储的支持增量训练的快速无监督异常检测系统的软件程序,执行本发明实施例提供的支持增量训练的快速无监督异常检测方法。

基于前述实施例的硬件环境,本发明的实施例提供了一种支持增量训练的快速无监督异常检测方法,请参阅图2,图2为所述支持增量训练的快速无监督异常检测方法的流程图。

于本发明实施例中,无监督异常检测问题的形式化定义为:存在仅包含正常样本的训练数据集X={x

于本发明实施例中,增量训练是指对已经使用一批采样于分布P

具体的,本发明实施例提供的支持增量训练的快速无监督异常检测方法的流程如下:

(1)基于训练数据集X={x

具体的,局部敏感哈希(LSH)编码是一类将实数向量编码为离散值向量(布尔值、整数、自然数等)的技术,并且使得距离越近的实数向量被编码为相同离散值向量的概率越高。

具体的,本发明实施例采用随机划分的方式将训练数据集X={x

(1.11)从训练数据集X={x

(1.12)基于实数向量

则令b

由于随机划分的局部敏感哈希编码对高维特征空间信息有较大的压缩幅度,但编码后仅占用1bit,因此可以适当选择较大的M;例如,对于较高的维度D可以令M=D,M越高,每个实数向量x

于本发明实施例中,在获取训练向量集合B之后,需要对训练向量集合B中的每个布尔值向量进行等长分组,即是对训练向量集合B={b

于本发明实施例中,在对训练向量集合B进行等长分组之后,需要基于每个训练分组向量构建一个布隆过滤器,即是将G组训练分组向量再次进行哈希编码并加入布隆过滤器;对于m组(m∈{1,…,G})编码{b

具体的,每组的布隆过滤器构造过程包括:

(1.21)使用k个哈希函数h:{0,1}

(1.22)根据计算机可用内存容量,为数组A∈{0,1}

(1.23)对于步骤(1.21)产生的共N*G*k个正整数

(2)基于增量数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器更新,以实现模型的增量训练;

具体的,基于增量数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器更新的流程如下:

(2.1)基于训练数据集中随机挑选的两个实数向量对增量数据集中的每个实数向量进行局部敏感哈希编码,以得到增量向量集合;

(2.2)对增量向量集合中的每个编码向量进行等长分组,以得到若干增量分组向量;

(2.3)对增量分组向量进行哈希编码,并且基于哈希编码的增量分组向量对布隆过滤器进行更新。

当模型得到新一批数据需要增量训练时,对新数据重复模型初次训练的步骤即可完成增量训练,其中,增量训练时局部敏感哈希编码不进行随机挑选而使用已选好的

(3)将待检测的实数向量输入初次训练或增量训练的模型,以得到异常检测结果;

于本发明实施例中,当模型初次训练或增量训练完成后,对一条新的数据x

(3.1)执行初次训练和批量训练相同的局部敏感哈希编码和分组过程,以得到分组后的分组布尔值编码:{{b

(3.2)对每个分组{b

(3.3)计算并输出总的异常检测结果:

综上,本发明实施例使用局部敏感哈希编码将实数向量的训练数据编码为整数的哈希向量,并且对哈希向量进行随机分组;然后将随机分组后的各个子哈希向量分别加入到一个布隆过滤器;由于局部敏感哈希能在一定概率下保证将两个距离较近的浮点数向量编码为相同的整数向量;布隆过滤器是一种概率数据结构,可以100%的召回率和较高的准确率查询一个离散值的元素是否存在于一个集合中,其查询的时间复杂度为常数级;因此本发明实施例具有以下优势:①异常检测的计算量非常低,仅需要进行一次局部敏感哈希编码、G次常规哈希函数计算和G个布隆过滤器查询,时间复杂度为常数级,即使用非参数方式对高维数据的近似概率密度估计取得较低的异常检测计算时间复杂度;②模型训练基本不依赖于训练数据分布,从而支持了计算简单、快速的增量数据训练;③模型可扩展性强,在大数据量、高特征维度条件下,线性地增加局部敏感哈希编码和常规哈希函数数量以及增加布隆过滤器内存占用,即可适应大数据量、高维的数据分布。

此外,在一种实施例中,基于与前述实施例相同的发明思路,本发明实施例提供了一种基于对抗训练的命名实体识别模型训练系统,所述系统与实施例1的所述方法一一对应,请参阅图3,图3为快速无监督异常检测系统的结构框图,所述系统包括初次训练单元、增量训练单元以及异常检测单元;

所述初次训练单元基于训练数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器构造,以实现模型的初次训练;

所述增量训练单元基于增量数据集中的实数向量进行局部敏感哈希编码、分组以及布隆过滤器更新,以实现模型的增量训练;

所述异常检测单元用于将待检测的实数向量输入初次训练或增量训练的模型,以得到异常检测结果。

需要说明的是,本实施例中支持增量训练的快速无监督异常检测系统中各单元是与前述实施例中的支持增量训练的快速无监督异常检测方法中的各步骤一一对应,因此,本实施例的具体实施方式和达到的技术效果可参照前述支持增量训练的快速无监督异常检测系统的实施方式,这里不再赘述。

此外,在一种实施例中,本发明还提供一种计算机设备,所述计算机设备包括处理器,存储器以及存储在所述存储器中的计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法。

此外,在一种实施例中,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台多媒体终端设备(可以是手机,计算机,电视接收机,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术分类

06120116541861