异常检测 | Matlab基于GNN图神经网络的异常数据检测

文摘   教育   2024-11-14 22:11   广东  

异常检测 | Matlab基于GNN图神经网络的异常数据检测

请尊重原创劳动成果
转载请注明本文链接
及文章作者:机器学习之心

效果一览


使用教程

1 基本介绍


Matlab基于GNN图神经网络的异常数据检测。其核心思想是学习一个函数映射。本次使用人类活动数据(包含 60 个通道的 24,075 个时间步长)进行异常检测。

2 网络结构


图神经网络(Graph Neural Networks,GNNs)是一类用于处理图数据的深度学习模型。它们被广泛应用于图分析、图表示学习和图结构预测等任务中。

GNN的设计灵感来源于人类思维中对图的处理方式。它通过在图的节点和边上定义神经网络模型,并通过信息传递和聚合来捕捉节点之间的关系。GNN的核心思想是通过迭代地更新节点的表示,使得每个节点可以考虑到其邻居节点的信息。

GNN模型的基本结构包括两个主要的步骤:信息传递和聚合。在信息传递步骤中,每个节点通过聚合其邻居节点的信息来更新自身的表示。这个过程可以通过在节点和边上定义神经网络模型来实现。在聚合步骤中,节点将更新后的表示聚合到全局图级别的表示中,以便进行后续的任务。

GNN模型通常具有多层结构,每一层都进行信息传递和聚合操作。通过多层的堆叠,GNN可以对节点的表示进行多次迭代,从而捕捉到更复杂的图结构信息。

GNN是一类强大的图表示学习模型,能够处理各种类型的图数据,并在图分析和预测任务中取得了显著的成果。

使用图神经网络 (GNN) 检测多元时间序列数据中的异常。

要检测多元时间序列数据中的异常或异常变量/通道,可以使用图偏差网络(GDN)。GDN 是 GNN 的一种,它学习表示时间序列中通道之间关系的图结构,并通过识别与学习结构的偏差来检测异常通道和时间。GDN 由四个主要部分组成:

节点嵌入:生成学习的嵌入向量来表示每个节点/变量/通道的独特特征。

图结构学习:计算节点嵌入之间的相似性,并用它来生成表示学习的图结构的邻接矩阵。

基于图注意力的预测:使用图注意力预测值。

图偏差评分:计算异常分数并识别异常节点和时间。

各组件如下图所示。

设置网络参数


function adjacency = graphStructure(embedding,topKNum,numChannels)% graphStructure函数将通道嵌入embedding、前k个数topKNum和通道数numChannels作为输入,并返回表示通道之间关系的邻接矩阵。% 使用余弦相似度计算通道之间的相似度得分。% 对于每个通道,通过选择具有最高相似度得分的 topKNum 个通道,从整个通道集中确定相关通道(不包括考虑的通道)。% Similarity scorenormY = sqrt(sum(embedding.*embedding));normalizedY = embedding./normY;score = embedding.' * normalizedY;
% Channel relationsadjacency = zeros(numChannels,numChannels);for i = 1:numChannels topkInd = zeros(1,topKNum); scoreNodeI = score(i,:); % Make sure that channel i is not in its own candidate set scoreNodeI(i) = NaN; for j = 1:topKNum [~, ind] = max(scoreNodeI); topkInd(j) = ind; scoreNodeI(ind) = NaN; end adjacency(i,topkInd) = 1;end

完整代码联系QQ1153460737获取(白嫖勿扰)

注意:

class
% @author : 机器学习之心
% 完整代码:

% @author : 机器学习之心

end

属实不易,如果有用请留个叭~

未经允许本代码请勿作商业用途!!!


机器学习之心HML
机器学习和深度学习时序、回归、分类和聚类等程序设计与案例分析,CSDN博主机器学习之心,知乎、B站同名,由于博主公众号名称被别人占用,故加了HML,此号是官方账号,其余打着本人旗号做事本人概不负责,本人QQ1153460737。
 最新文章