LUNAR:基于图神经网络统一局部异常检测算法

2023-11-22 23:59

本文主要是介绍LUNAR:基于图神经网络统一局部异常检测算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AAAI 2022上的论文《LUNAR: Unifying Local Outlier Detection Methods via Graph Neural Networks》提出了一种基于图神经网络进行异常检测的框架,统一了常见局部异常检测方法的同时,也一定程度上解决了局部异常检测算法超参数无法学习,难于优化的问题。

研究动机

提到异常检测算法,最常见的思路往往是基于局部近邻距离来判断样本点是否为异常点。这种局部异常检测的方法,比如LOF,DBSCAN,KNN,在基于特征的非结构化的数据集上往往有不错的表现。但是,这些算法普遍缺乏可学习的参数,这使得他们难以适应不同的数据集。同时由于异常检测算法往往是无监督学习,上述算法的超参数,比如KNN和LOF中k值的选取,很难基于表现进行调优,而这些超参数的影响又很大。因此,现有局部异常检测的方法很难在不同数据集中取得同样稳定的表现。

基于神经网络的异常检测方法,由于有标注的异常点数据有限以及其主要是针对如图像数据的高维度结构化数据集的原因,在基于特征的低结构化数据集上的表现始终不尽人意。目前缺乏一种在这一类数据的异常检测中表现优异且稳定的,具有一定可学习参数的算法模型。

解决的问题

作者首先提出了目前的局部异常检测算法在图神经网络(Graph Neural Networks)上的统一框架。之后,基于这个图神经网络的框架,作者提出了LUNAR(Learnable Unified Neighbourhood-based Anomaly Ranking)。凭借更多的可训练参数,LUNAR在多个数据集中的灵活度与适应性要强于现有的局部异常检测算法。在性能上和健壮性上,LUNAR也比传统的异常检测算法以及基于神经网络的异常检测算法表现更好。

所提的方法

引入图神经网络,将现有局部异常检测算法与图模型进行结合,从而得到一个统一的框架。

图神经网络(GNNs)

G ( V , E ) G(V,E) G(V,E)由节点集 V V V和边集 E E E构成。两个相邻节点 i , j ∈ V i, j\in V i,jV,其连接的边记作 ( j , i ) ∈ E (j,i)\in E (j,i)E。边可以是无向的,信息在无向边上可以双向流动。边也可以是有向的,即信息只能由源节点流向目标节点。节点和边都可以具有特征向量,节点 i i i的特征向量记作 x i x_i xi,边 ( j , i ) (j,i) (j,i)的特征向量记做 ( e j , i ) (e_{j,i}) (ej,i)

每个节点都具有一个节点向量。依靠一个消息传递方案,GNNs可以基于神经网络为每个节点进行分类。消息传递方案由消息,聚合,和更新三部分构成。消息函数 ϕ \phi ϕ决定了从每个相邻节点发送至当前节点的信息。聚合函数 □ \square 将这些相邻节点传来的信息汇总为一个信息,比较常见的方式是使用平均或者最大池化。更新函数 γ \gamma γ使用聚合后的信息为当前节点更新其向量。在一个GNN的第k层,节点的向量值计算可以表示为:
h N i ( k ) = □ j ∈ N i ϕ ( k ) ( h i ( k − 1 ) , h j ( k − 1 ) , e j , i ) \textup{h}_{\mathcal{N}_i}^{(k)}=\square_{j\in \mathcal{N}_i}\phi^{(k)}(\textup{h}_i^{(k-1)}, \textup{h}_j^{(k-1)}, \textup{e}_{j,i}) hNi(k)=jNiϕ(k)(hi(k1),hj(k1),ej,i)
h i ( k ) = γ ( k ) ( h i ( k − 1 ) , h N i ( k ) ) \textup{h}_i^{(k)}=\gamma^{(k)}(\textup{h}_i^{(k-1)}, \textup{h}_{\mathcal{N}_i}^{(k)}) hi(k)=γ(k)(hi(k1),hNi(k))
其中 h i ( 0 ) = x i \textup{h}_i^{(0)}=\textup{x}_i hi(0)=xi N i \mathcal{N}_i Ni是节点 i i i的相邻节点集合, h N i ( k ) \textup{h}_{\mathcal{N}_i}^{(k)} hNi(k)是相邻节点传来的消息的聚合结果。

问题定义

假设我们有 m m m个训练样本 x 1 ( t r a i n ) , . . . , x m ( t r a i n ) ∈ R d \textup{x}_1^{(train)}, ..., \textup{x}_m^{(train)}\in\R^d x1(train),...,xm(train)Rd以及 n n n个测试样本 x 1 ( t e s t ) , . . . , x n ( t e s t ) ∈ R d \textup{x}_1^{(test)}, ..., \textup{x}_n^{(test)}\in\R^d x1(test),...,xn(test)Rd,每个样本都可能是正常的或异常的。算法为每一个测试样本 x i ( t e s t ) \textup{x}_i^{(test)} xi(test)输出一个异常分 s ( x i ( t e s t ) ) s(\textup{x}_i^{(test)}) s(xi(test)),分数高意味着其为异常值,分数低则为正常值。局部异常检测的算法可以被理解为,如何将 x i ( t e s t ) \textup{x}_i^{(test)} xi(test)到其最近样本的距离用于计算其异常分。

统一框架

局部异常检测的方法是从邻近样本点收集信息,计算出一个统计量,然后根据这个统计量来判断当前样本点是否为异常点。下面以KNN为例,将这一过程结合到GNNs的消息传递框架中。

KNN可以被认为是在一个有向图中,每个节点 i i i最近的 k k k个近邻节点 j ∈ N i j\in N_i jNi依次与其有一条有向边 ( j , i ) (j,i) (j,i),由邻近节点 j j j向当前节点 i i i传输信息。边的权重 e j , i e_{j,i} ej,i等于有向边 ( j , i ) (j,i) (j,i)的边长,即:
e j , i = { dist ( x i , x j ) if  j ∈ N i 0 otherwise \textup{e}_{j,i}=\left\{ \begin{aligned} &\textup{dist}(\textup{x}_i,\textup{x}_j) & \textup{if} \ j\in \mathcal{N}_i \\ &0 & \textup{otherwise} \end{aligned} \right. ej,i={dist(xi,xj)0if jNiotherwise
由于 j ∈ N i ⇏ i ∈ N j j\in N_i \nRightarrow i\in N_j jNiiNj,沿有向边 ( j , i ) (j,i) (j,i)的信息流仅能由源节点 j j j发送至目标节点 i i i。在这样的图中,KNN可以被等效为以下消息,聚合,更新三部分:

消息:
ϕ ( 1 ) : = e j , i \phi^{(1)}:= \textup{e}_{j,i} ϕ(1):=ej,i
聚合:
h N i ( 1 ) : = max ⁡ j ∈ N i ϕ ( 1 ) \textup{h}_{N_i}^{(1)}:=\max_{j\in N_i}\phi^{(1)} hNi(1):=jNimaxϕ(1)
更新:
γ ( 1 ) = h N i ( 1 ) \gamma^{(1)}=\textup{h}_{N_i}^{(1)} γ(1)=hNi(1)
同样的,使用两层消息传递就可以获得LOF和DBSCAN在图模型上的等效。
请添加图片描述

可学习的重要性

论文中的实验表明,在选取不同的k值时,LOF的变化相对较大,而LUNAR则有更为健壮的表现。请添加图片描述

LUNAR

LUNAR首先为数据集构建一个k-NN图,将数据集中的每个样本作为节点,将每个节点的k个近邻与其进行有向连接。消息是有向边的向量,不同于其他GNNs的一点是,LUNAR中的聚合函数是一个可学习的聚合函数。

LUNAR不仅仅可以针对图数据进行建模,同时对于基于特征的结构化数据也可以建模。

模型设计

LUNAR在聚合时,并没有对k个近邻传来的信息采取统一的最大池化将其转化为一个最终信息,而是将这k个信息编码为一个k维的向量,并送入神经网络进行运算,从而通过神经网络的权重更新来实现聚合时的策略的可学习性。

由神经网络运算得到的聚合结果最终用于分类,0为正常样本,1为异常样本。由于训练集中的数据我们认为均是正常样本,因此需要一个合理的异常样本生成策略,使模型学到区分正负样本的分界线。

生成负样本

均匀分布

第一种方法是通过均匀分布生成负样本:
x ( n e g a t i v e ) ∼ U ( − ε , 1 + ε ) ∈ R d \textup{x}^{(negative)}\sim~\mathcal{U}(-\varepsilon, 1+\varepsilon)\in \R^d x(negative) U(ε,1+ε)Rd
其中 ε \varepsilon ε是一个极小的正数,为了方便,原文中所有的实验 ε \varepsilon ε均设为0.1。训练数据标准化至的范围。由于异常样本可能距离正常样本距离过远导致模型难以学习到决策边界,因此需要生成一些更靠近正常样本的,分辨难度更高的异常样本。

子空间扰动

第二种方法,是在正常样本的所有特征维度中选取一个子空间,通过向子空间内的特征添加高斯噪声从而生成负样本:
z ∼ N ( 0 , I ) ∈ R d \textup{z}\sim\mathcal{N}(0, I)\in\R^d zN(0,I)Rd
x i ( n e g a t i v e ) = x i ( t r a i n ) + M ∘ ε z \textup{x}_i^{(negative)}=\textup{x}_i^{(train)}+\textup{M}\circ\varepsilon \textup{z} xi(negative)=xi(train)+Mεz
其中 ε \varepsilon ε为一个极小的正整数, M ∈ R d \textup{M}\in\R^d MRd是一个二进制随机变量构成的向量, M \textup{M} M中的每个元素均有 p p p的概率为1, ( 1 − p ) (1-p) (1p)的概率为0。每个置为1的维度将会受到噪声干扰。原文的所有实验中, p p p均被设为0.3。

关键结果及结论

LUNAR在运算速度上明显快于其他深度模型,如HRSS数据集上,LUNAR耗时33.71秒,DAGMM则为55.92秒。这是因为LUNAR在训练时避免了直接训练高维输入特征,而是使用两点之间的距离。

和其他局部异常检测方法一样,LUNAR的思路还是寻找k近邻来解决问题。这在高维空间中,比如在处理图像数据时,很难保证距离是否有意义。

LUNAR的一大贡献在于,它成功统一了包括KNN,LOF,以及DBSCAN在内的局部异常检测方法。在统一框架下,基于其变换一致性,可以不同变换后的异常分。
请添加图片描述

这篇关于LUNAR:基于图神经网络统一局部异常检测算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413866

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费