本公开涉及一种异常检测技术,用于检测不符合预期分布的异常模式或数据点。本发明特别涉及这样的技术:当有更多的异常或反常数据时,可以不断地提高异常检测性能,解决冷启动问题,并且可以在出现越来越多的异常示例时逐渐演化。
背景技术:
1、异常检测关注的是识别异常,即不符合预期分布的异常模式或数据点。一种在业界流行的方法是将机器学习技术应用于异常检测。由于在大多数实际异常检测场景中异常数据是非常罕见的,因此机器学习模型通常是用正常数据来学习的,有时需要额外的少量异常数据。由于缺乏训练数据的多样性,会导致异常检测性能不佳。除了性能不佳之外,还会导致其他问题,例如由于机器学习技术的计算机实施的内存效率低而导致检测速度低,以及缺乏持续提高异常检测性能的能力。本领域需要一种改进的机器学习技术来解决上述技术问题。
2、该技术有许多工业应用,特别是在测试生产线上制造物品的领域。解决异常检测性能差的问题使该技术能够更有效地用于制造物品的检测和质量控制。解决检测速度慢的问题使该技术能够加速产品检测。具备持续改进异常检测性能的能力,可以使测试和质量控制自适应或个性化,以适应所制造物品的特点。
技术实现思路
1、本公开的一个方面是提供一种用于检测多个样本中的样本异常的计算机实施的方法。
2、在该方法中,多个样本在推理阶段被处理,用于异常检测。在推理阶段之前插入一个冷启动阶段。推理阶段被分为多个推理阶段会话。在任何两个连续的推理阶段会话之间插入一个再训练会话。在推理阶段,使用卷积神经网络(cnn)来提取单个样本的特征,从而生成特征图。使用一个或多个支持向量集建模的机器学习分类器被用来处理特征图,以确定该单个样本是否异常。在冷启动阶段,一个或多个支持向量集根据特征图初始训练集进行初始化,该特征图初始训练集是cnn预训练后用cnn处理一组正常样本而生成的。在再训练会话中,根据在该再训练会话之前的推理阶段会话中识别的至少一组临时(interim)自生成的异常样本,对cnn进行微调。该一个或多个支持向量集根据特征图中间训练集进行更新,该特征图中间训练集是cnn被微调后用cnn处理该组正常样本而生成的。因此,由于在增量训练(incrementallytraining)cnn和分类器时引入了新识别的自生成(self-generated)异常样本,同时避免了在冷启动阶段需要寻找异常样本初始训练集来初始化cnn和分类器,从而使异常检测性能能得到持续改进。
3、在冷启动阶段,优选地,从特征图初始训练集中提取的特征生成第一多个特征k-中心。初始化的一个或多个支持向量集中的各个支持向量是选自第一多个特征k-中心。
4、尽管在再训练会话中,一个或多个支持向量集可以像在冷启动阶段那样通过使用k-中心算法直接从特征图中间训练集中确定,但更优选的是利用现有支持向量的知识,从特征图中间训练集更新一个或多个支持向量集以减少计算。因此,公开了用于动态选择特征k-中心以表示正常数据的动态密度估计。根据动态密度估计,首先根据特征图中间训练集确定一个或多个支持向量集中的单个支持向量是否不再是特征k-中心。因此,一个或多个支持向量集合中的各个支持向量被划分为可保留的支持向量和可丢弃的支持向量,以更新一个或多个支持向量集。然后,在可保留的支持向量位于第二多个特征k-中心中的条件下,从特征图的中间训练集中提取的特征生成第二多个特征k-中心。因此,与从头开始生成第二多个特征k-中心相比,它减少了计算量。最后,更新的一个或多个支持向量集中的各个支持向量从第二多个特征k-中心中选择。优选地,在形成各个支持向量时充分利用整个第二多个特征k-中心,以避免在生成第二多个特征k-中心时浪费一些计算工作。
5、在某些实施例中,第一和第二多个特征k-中心是通过使用贪心k-中心算法获得的。
6、在某些实施例中,该一个或多个支持向量集由多个支持向量集组成,其中单个支持向量集收集位于特征图的预选区域上的各个支持向量,并且多个支持向量集的各个预选区域是不重叠的。此外,在推理阶段,使用多个支持向量集中的每一个来处理特征图,以确定单个样本上出现异常的任何位置。
7、在某些实施例中,该一个或多个支持向量集由单个支持向量集组成。
8、在某些实施例中,cnn包括平均池化层,从而将特征图缩减为一个特征向量。此外,一个或多个支持向量集由单个支持向量集组成。
9、在冷启动阶段,可以通过将预先存储的cnn模型参数加载到cnn中来对cnn进行预训练。
10、在再训练会话中,cnn的微调可以包括:通过将自生成的异常样本临时集中的各个异常样本的选定异常部分复制到正常样本集中的一个或多个正常样本上,用自生成的异常样本临时集增强正常样本集,从而创建一组合成训练样本,以丰富微调cnn的训练集的种类;根据该组合成训练样本,更新cnn的模型参数,方法是对模型参数进行多次迭代优化,使每次迭代中的损失函数最小化,并在模型参数优化的迭代中交替和递归地使用中心损失和多样性损失作为损失函数。
11、所公开方法的实施例是针对单个样本是图像的特定情况而开发的。在这种情况下,通常使用二维卷积运算来实现cnn。可以手动对异常样本集中的单个异常样本进行逐像素标记(pixelwise labelled),以提高cnn模型的准确性。在这种情况下,单个合成训练样本也会自动进行逐像素标记。
12、在某些实施例中,单个样本是图像,并且cnn的微调还包括:接收自生成的异常样本临时集合,其中单个异常样本被逐像素标记,以在再训练cnn时增加cnn模型的准确性。
13、在某些实施例中,分类器采用l2距离作为分类标准。
14、本公开的其他方面公开如下文。
1.一种用于检测多个样本中样本异常的计算机实现方法,该方法包括:
2.根据权利要求1所述的方法,还包括:
3.根据权利要求2所述的方法,其中所述第一和第二多个特征k-中心中的每一个都是通过使用贪心k-中心算法获得的。
4.根据权利要求2所述的方法,其中所述一个或多个支持向量集由多个支持向量集组成,单个支持向量集收集位于所述特征图的预选区域上的各个支持向量,所述多个支持向量集的各个预选区域合是非重叠的,并且该方法还包括:
5.根据权利要求2所述的方法,其中所述一个或多个支持向量集由单个支持向量集组成。
6.根据权利要求2所述的方法,其中:
7.根据权利要求1所述的方法,还包括:
8.根据权利要求1所述的方法,其中,在所述再训练会话中,对所述cnn进行微调包括:
9.根据权利要求1所述的方法,其中所述单个样本是图像,所述cnn通过二维卷积运算实现。
10.根据权利要求1所述的方法,其中所述单个样本是图像,其中所述cnn的微调还包括:接收所述自生成的异常样本临时集合,其中单个异常样本被逐像素标记,以便在再训练cnn时提高cnn模型的准确性。
11.根据权利要求1所述的方法,其中所述分类器采用l2距离作为分类标准。