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

news2025/1/20 10:56:53

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

目录

    • 异常检测 | Matlab基于GNN图神经网络的异常数据检测
      • 效果一览
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

效果一览

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基本介绍

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

模型描述

图神经网络(Graph Neural Networks,GNNs)是一类用于处理图数据的深度学习模型。它们被广泛应用于图分析、图表示学习和图结构预测等任务中。
GNN的设计灵感来源于人类思维中对图的处理方式。它通过在图的节点和边上定义神经网络模型,并通过信息传递和聚合来捕捉节点之间的关系。GNN的核心思想是通过迭代地更新节点的表示,使得每个节点可以考虑到其邻居节点的信息。
GNN模型的基本结构包括两个主要的步骤:信息传递和聚合。在信息传递步骤中,每个节点通过聚合其邻居节点的信息来更新自身的表示。这个过程可以通过在节点和边上定义神经网络模型来实现。在聚合步骤中,节点将更新后的表示聚合到全局图级别的表示中,以便进行后续的任务。
GNN模型通常具有多层结构,每一层都进行信息传递和聚合操作。通过多层的堆叠,GNN可以对节点的表示进行多次迭代,从而捕捉到更复杂的图结构信息。
GNN是一类强大的图表示学习模型,能够处理各种类型的图数据,并在图分析和预测任务中取得了显著的成果。

使用图神经网络 (GNN) 检测多元时间序列数据中的异常。
要检测多元时间序列数据中的异常或异常变量/通道,可以使用图偏差网络(GDN)。 GDN 是 GNN 的一种,它学习表示时间序列中通道之间关系的图结构,并通过识别与学习结构的偏差来检测异常通道和时间。 GDN 由四个主要部分组成:
节点嵌入:生成学习的嵌入向量来表示每个节点/变量/通道的独特特征。
图结构学习:计算节点嵌入之间的相似性,并用它来生成表示学习的图结构的邻接矩阵。
基于图注意力的预测:使用图注意力预测值。
图偏差评分:计算异常分数并识别异常节点和时间。
各组件如下图所示。

在这里插入图片描述

程序设计

  • 完整程序和数据资源私信博主回复Matlab基于GNN图神经网络的异常数据检测
function adjacency = graphStructure(embedding,topKNum,numChannels)
% graphStructure函数将通道嵌入embedding、前k个数topKNum和通道数numChannels作为输入,并返回表示通道之间关系的邻接矩阵。
% 使用余弦相似度计算通道之间的相似度得分。
% 对于每个通道,通过选择具有最高相似度得分的 topKNum 个通道,从整个通道集中确定相关通道(不包括考虑的通道)。
% Similarity score
normY = sqrt(sum(embedding.*embedding));
normalizedY = embedding./normY;
score = embedding.' * normalizedY;

% Channel relations
adjacency = 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

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/124864369
[2] https://blog.csdn.net/kjm13182345320/article/details/127896974?spm=1001.2014.3001.5502

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

04 HAL库下使用定时器产生一个中断

目录 一、定时器的相关知识点 1.定时器的定义 2. 查看时钟配置 3. 定时器的分类 二、实验开始 1. 配置一个定时器 2.打开定时器的中断配置 引言 在本文的开头我想给大家分享一下单片机工作的两种工作模式轮询和中断(异步), 中断也叫做…

元旦小礼品:想去面试的时候如何快速打造自己的面试亮点

新年快乐! 对于毕业生,或者工作时间不太长的同学来说,面试实习之前写简历是一件很痛苦的事情,特别是简历上没什么亮点,总感觉很心虚。这时候就会发现很多人凡是知道的,叫得上名字的统统写上去。可惜即使通…

Pix2Pix如何工作?

一、说明 在本指南中,我们将重点介绍 Pix2Pix [1],它是用于配对图像翻译的著名且成功的深度学习模型之一。在地理空间科学中,这种方法可以帮助传统上不可能的广泛应用,在这些应用中,我们可能希望从一个图像域转到另一个…

【转载】最强搜索工具Everything的搜索技巧,你可能根本不会用!

转载自B站视频 https://www.bilibili.com/video/BV1Hw411W7vK/?spm_id_from333.880.my_history.page.click&vd_source5d2fad4f7faecf136254f663320a80a7 指定在某个文件夹下搜索 可以缩小搜索范围 排除某个目录 前面加! 运算符,与的关系 (空…

webrtc中的接口代理框架

文章目录 接口代理框架Proxy体系类结构导出接口 webrtc的实际运用PeerConnectionFactoyPeerConnection使用 接口代理框架 webrtc体系庞大,模块化极好,大多数模块都可以独立使用。模块提供接口,外部代码通过接口来使用模块功能。 在webrtc中通…

步进电机为什么叫步进电机,内部结构是什么,工作原理是什么,有什么特点,什么用途。

问题描述:步进电机为什么叫步进电机,内部结构是什么,工作原理是什么,有什么特点,什么用途。 问题解答: "步进"一词表示电机按照固定的步进角度运动。步进电机以控制脉冲信号来驱动转子按照一定的…

Ps:三角形工具

三角形工具 Triangle Tool可以绘制三角形形状(矢量形状,或者是基于像素的形状)和路径(形状轮廓)。 快捷键:U ◆ ◆ ◆ 常用操作方法与技巧 1、一般使用拖拽的方式绘制三角形。也可直接在画布上点击&#…

1.项目简介

本次项目建立的基础是基于Django后台admin管理功能上的二次加工以符合实际情况,所以需要读者对Django这个架构有一定的了解,具体可以查看作者的另一个专栏Django详解。 随着信息技术的迅猛发展,图书馆的借阅系统也在不断地进行更新和改进。传…

基于 OpenVINO Python API 部署 RT-DETR

1. RT-DETR 飞桨在去年 3 月份推出了高精度通用目标检测模型 PP-YOLOE ,同年在 PP-YOLOE 的基础上提出了 PP-YOLOE。而继 PP-YOLOE 提出后,MT-YOLOv6、YOLOv7、DAMO-YOLO、RTMDet 等模型先后被提出,一直迭代到今年开年的 YOLOv8。 YOLO 检测…

.net8 AOT编绎-跨平台调用C#类库的新方法-函数导出

VB.NET AOT无法编绎DLL,微软的无能,正是你的机会 .net8 AOT编绎-跨平台调用C#类库的新方法-函数导出 1,C#命令行创建工程:dotnet new classlib -o CSharpDllExport 2,编写一个静态方法,并且为它打上UnmanagedCallersO…

第二节 linux操作系统安装与配置

一:Vmware虚拟机安装与使用   ①VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC ,以此来实现在一台机器上真正同时运行多个独立的操作系统。   ②VMware主要特点&#xff1a…

【C#】知识点实践序列之Lock的锁定代码块

大家好,我是全栈小5,欢迎来到《小5讲堂之知识点实践序列》文章。 2023年第1篇文章,此篇文章是C#知识点实践序列之Lock知识点,博主能力有限,理解水平有限,若有不对之处望指正! 本篇验证Lock锁定代…

【Spark精讲】一文讲透Spark宽窄依赖的区别

宽依赖窄依赖的区别 窄依赖:RDD 之间分区是一一对应的宽依赖:发生shuffle,多对多的关系 宽依赖是子RDD的一个分区依赖了父RDD的多个分区父RDD的一个分区的数据,分别流入到子RDD的不同分区特例:cartesian算子对应的Car…

C#线程基础(线程启动和停止)

目录 一、关于线程 二、示例 三、生成效果 一、关于线程 在使用多线程前要先引用命名空间System.Threading,引用命名空间后就可以在需要的地方方便地创建并使用线程。 创建线程对象的构造方法中使用了ThreadStart()委托,当线程开始执行时&#xff0c…

【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数

文章目录 🚀前言🚀C有何过C之处?🚀C中的关键字🚀命名空间✈️为什么要引入命名空间?✈️命名空间的定义✈️如何使用命名空间中的内容呢? 🚀C中的输入和输出✈️C标准库的命名空间✈…

VStudio2022导出Qt项目在Linux的Qtcreator中运行修复错误记录

公司项目中的代码在VStudio2022中编写,交给我需要移植Linux的Qtcreator中,记录一下移植过程中的遇到的坑,按照错误顺序由高到低记录一下,边尝试边解决边记录,写作方面没有逻辑,每个人项目环境不一样&#x…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK里函数来获取相机当前数据吞吐量(C#) Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在NEOAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过NEOAPISDK获…

PHP与Angular详细对比 帮助你选择合适的项目技术

开发可有效扩展并提供诺克斯堡级安全性的Web应用程序和网站是每个开发人员的梦想。而使用这样的产品是每个用户的愿望。因此,为您的项目选择最合适和可靠的技术非常关键。 虽然PHP和Angular是完全不同的技术——PHP与JavaScript是一个更恰当的比较——但它们都广泛…

【JavaFX】JDK11 基于Gson、hutool、Jackson持久化存储实体类数据的解决方案 (读取、追加、去重、写入json对象)

文章目录 开发环境效果前言一、Gson是什么?二、使用步骤1.引入依赖2.创建实体类创建 JsonFileService类创建JsonFileService的实现类 JsonFileServiceImpl三、实现效果开发环境 JDK11IDEA 2023.3Gson、hutool、JacksonJavaFX 11效果 前言 使用JDK1

浅聊配置化-要不要实现动态表单

1、配置化的原则 配置化是一种抽象,把事物分成2类:不变的,可变的。 如果事物都是可变的,是无法实现配置化的。 配置化的根本在于找到不变的事物,基于不变的事物进行可变事物的配置。 所以,认为一切皆可…