当前位置: 首页 > news >正文

gcn+tcn+transformer入侵检测

gcn

gcn_out = self.gcn(A_hat, D_hat, X) 的公式实际上是图卷积网络(GCN)层的核心操作。具体来说,这一步的计算基于图卷积的基本公式:

H ( l + 1 ) = σ ( D ^ − 1 / 2 A ^ D ^ − 1 / 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma\left( \hat{D}^{-1/2} \hat{A} \hat{D}^{-1/2} H^{(l)} W^{(l)} \right) H(l+1)=σ(D^1/2A^D^1/2H(l)W(l))

在这个公式中:

  • H ( l ) H^{(l)} H(l) 是第 l l l 层的节点特征矩阵, H ( 0 ) = X H^{(0)} = X H(0)=X 即输入的节点特征矩阵。
  • A ^ \hat{A} A^ 是加入自环后的图的邻接矩阵。
  • D ^ \hat{D} D^ A ^ \hat{A} A^ 的度矩阵。
  • W ( l ) W^{(l)} W(l) 是第 l l l 层的权重矩阵。
  • σ \sigma σ 是激活函数(例如ReLU)。

GCN的公式推导

我们可以具体推导出计算步骤:

  1. 邻接矩阵和度矩阵:假设图的邻接矩阵为 A A A,我们首先加入自环得到 A ^ = A + I \hat{A} = A + I A^=A+I,其中 I I I 是单位矩阵。然后计算 A ^ \hat{A} A^ 的度矩阵 D ^ \hat{D} D^,其对角线元素为 D ^ i i = ∑ j A ^ i j \hat{D}_{ii} = \sum_j \hat{A}_{ij} D^ii=jA^ij

  2. 归一化的邻接矩阵:接下来计算 D ^ − 1 / 2 A ^ D ^ − 1 / 2 \hat{D}^{-1/2} \hat{A} \hat{D}^{-1/2} D^1/2A^D^1/2,用于对邻接矩阵进行归一化,使得卷积操作不会改变特征的尺度。

  3. 图卷积操作:最后,将归一化后的邻接矩阵与输入特征矩阵相乘,再与权重矩阵 W W W 相乘,并通过激活函数 σ \sigma σ 得到输出特征矩阵 H ( l + 1 ) H^{(l+1)} H(l+1)

tcn

在Temporal Convolutional Network(TCN)中,关键操作包括卷积操作、激活函数、丢弃和跳跃连接。以下是TCN中TemporalBlock的推理公式:

  1. 卷积操作:使用扩展卷积对输入进行时间卷积。

y ( 1 ) = ReLU ( Dropout ( Chomp ( Conv1d ( x , W 1 ) ) ) ) y^{(1)} = \text{ReLU}(\text{Dropout}(\text{Chomp}(\text{Conv1d}(x, W_1)))) y(1)=ReLU(Dropout(Chomp(Conv1d(x,W1))))

  1. 第二次卷积操作:再次使用扩展卷积,并应用相同的操作。

y ( 2 ) = ReLU ( Dropout ( Chomp ( Conv1d ( y ( 1 ) , W 2 ) ) ) ) y^{(2)} = \text{ReLU}(\text{Dropout}(\text{Chomp}(\text{Conv1d}(y^{(1)}, W_2)))) y(2)=ReLU(Dropout(Chomp(Conv1d(y(1),W2))))

  1. 跳跃连接:如果输入和输出的维度不同,则使用 1 × 1 1 \times 1 1×1 卷积对输入进行下采样。

res = { x , if  n inputs = n outputs Conv1d ( x , W downsample ) , otherwise \text{res} = \begin{cases} x, & \text{if } n_{\text{inputs}} = n_{\text{outputs}} \\ \text{Conv1d}(x, W_{\text{downsample}}), & \text{otherwise} \end{cases} res={x,Conv1d(x,Wdownsample),if ninputs=noutputsotherwise

  1. 输出计算:将卷积操作后的输出与跳跃连接的结果相加,并通过ReLU激活函数。

output = ReLU ( y ( 2 ) + res ) \text{output} = \text{ReLU}(y^{(2)} + \text{res}) output=ReLU(y(2)+res)

总结起来,TemporalBlock的推理公式如下:

output = ReLU ( Conv1d ( ReLU ( Dropout ( Chomp ( Conv1d ( x , W 1 ) ) ) ) , W 2 ) + res ) \text{output} = \text{ReLU}(\text{Conv1d}(\text{ReLU}(\text{Dropout}(\text{Chomp}(\text{Conv1d}(x, W_1)))), W_2) + \text{res}) output=ReLU(Conv1d(ReLU(Dropout(Chomp(Conv1d(x,W1)))),W2)+res)

其中:

  • Conv1d ( x , W ) \text{Conv1d}(x, W) Conv1d(x,W) 表示对输入 x x x 进行卷积操作,卷积核权重为 W W W
  • Chomp \text{Chomp} Chomp 用于去除卷积后多余的填充部分。
  • Dropout \text{Dropout} Dropout 是丢弃层,用于防止过拟合。
  • ReLU \text{ReLU} ReLU 是激活函数。
  • res \text{res} res 是跳跃连接的结果。

transformer

在TransformerBlock中,关键操作包括多头自注意力机制、前馈神经网络层、层归一化和跳跃连接。以下是TransformerBlock的推理公式:

  1. 多头自注意力机制

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V Attention(Q,K,V)=softmax(dk QKT)V

其中, Q = K = V = x Q = K = V = x Q=K=V=x d k d_k dk 是键的维度。多头自注意力输出为:

attn_output = MultiHeadAttention ( x , x , x ) \text{attn\_output} = \text{MultiHeadAttention}(x, x, x) attn_output=MultiHeadAttention(x,x,x)

  1. 第一跳跃连接和层归一化

x 1 = LayerNorm ( x + Dropout ( attn_output ) ) x_1 = \text{LayerNorm}(x + \text{Dropout}(\text{attn\_output})) x1=LayerNorm(x+Dropout(attn_output))

  1. 前馈神经网络层

ff_output = Linear 2 ( Dropout ( ReLU ( Linear 1 ( x 1 ) ) ) ) \text{ff\_output} = \text{Linear}_2(\text{Dropout}(\text{ReLU}(\text{Linear}_1(x_1)))) ff_output=Linear2(Dropout(ReLU(Linear1(x1))))

  1. 第二跳跃连接和层归一化

output = LayerNorm ( x 1 + Dropout ( ff_output ) ) \text{output} = \text{LayerNorm}(x_1 + \text{Dropout}(\text{ff\_output})) output=LayerNorm(x1+Dropout(ff_output))

总结起来,TransformerBlock的推理公式如下:

  1. 多头自注意力机制

attn_output = MultiHeadAttention ( x , x , x ) \text{attn\_output} = \text{MultiHeadAttention}(x, x, x) attn_output=MultiHeadAttention(x,x,x)

  1. 第一跳跃连接和层归一化

x 1 = LayerNorm ( x + Dropout ( attn_output ) ) x_1 = \text{LayerNorm}(x + \text{Dropout}(\text{attn\_output})) x1=LayerNorm(x+Dropout(attn_output))

  1. 前馈神经网络层

ff_output = Linear 2 ( Dropout ( ReLU ( Linear 1 ( x 1 ) ) ) ) \text{ff\_output} = \text{Linear}_2(\text{Dropout}(\text{ReLU}(\text{Linear}_1(x_1)))) ff_output=Linear2(Dropout(ReLU(Linear1(x1))))

  1. 第二跳跃连接和层归一化

output = LayerNorm ( x 1 + Dropout ( ff_output ) ) \text{output} = \text{LayerNorm}(x_1 + \text{Dropout}(\text{ff\_output})) output=LayerNorm(x1+Dropout(ff_output))

相关文章:

gcn+tcn+transformer入侵检测

gcn gcn_out self.gcn(A_hat, D_hat, X) 的公式实际上是图卷积网络(GCN)层的核心操作。具体来说,这一步的计算基于图卷积的基本公式: H ( l 1 ) σ ( D ^ − 1 / 2 A ^ D ^ − 1 / 2 H ( l ) W ( l ) ) H^{(l1)} \sigma\left…...

【Python】 了解二分类:机器学习中的基础任务

我已经从你的 全世界路过 像一颗流星 划过命运 的天空 很多话忍住了 不能说出口 珍藏在 我的心中 只留下一些回忆 🎵 牛奶咖啡《从你的全世界路过》 在机器学习和数据科学领域,分类问题是最常见的任务之一。分类问题可以分为多类分…...

搭建PHP开发环境:Linux篇

目录 一、引言 二、环境准备 三、安装Web服务器(Apache) Ubuntu/Debian系统: CentOS/Red Hat系统: 四、安装PHP解释器 Ubuntu/Debian系统: CentOS/Red Hat系统: 五、配置Apache以支持PHP Ubuntu/…...

ROS 自动驾驶多点巡航

ROS 自动驾驶多点巡航: 1、首先创建工作空间: 基于我们的artca_ws; 2、创建功能包: 进入src目录,输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名,后面两个是依赖&a…...

SQL学习,大厂面试真题(1):观看各个视频的平均完播率

各个视频的平均完播率 1、视频信息表 IDAuthorNameCategoryAgeStart Time1张三影视302024-01-01 7:00:002李四美食602024-01-01 7:00:003王麻子旅游902024-01-01 7:00:00 (video_id-视频ID, AuthorName-创作者, tag-类别标签, duration-视频时长(秒&…...

2023年全国大学生数学建模竞赛C题蔬菜类商品的自动定价与补货决策(含word论文和源代码资源)

文章目录 一、题目二、word版实验报告和源代码(两种获取方式) 一、题目 2023高教社杯全国大学生数学建模竞赛题目 C题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而…...

inpaint下载安装2024-inpaint软件安装包下载v5.0.6官网最新版附加详细安装步骤

Inpaint软件最新版是一款功能强大的图片去水印软件,这款软件拥有强大的智能算法,能够根据照片的背景为用户去除照片中的各种水印,并修补好去除水印后的图片。并且软件操作简单、界面清爽,即使是修图新手也能够轻松上手&#xff0c…...

分享三个仓库

Hello , 我是恒。大概有半个月没有发文章了,都写在文档里了 今天分享三个我开源的项目,比较小巧但是有用 主页 文档导航 Github地址: https://github.com/lmliheng/document 在线访问:http://document.liheng.work/ 里面有各种作者书写的文档&#xff…...

MacOS - 启动台多了个『卸载 Adobe Photoshop』

问题描述 今天安装好了 Adobe Ps,但是发现启动台多了个『卸载 Adobe Photoshop』强迫症又犯了,想把它干掉! 解决方案 打开访达 - 前往 - 资源库,搜索要卸载的名字就可以看到,然后移除到垃圾筐...

PHP 日期处理完全指南

PHP 日期处理完全指南 引言 在PHP开发中,日期和时间处理是一个常见且重要的任务。PHP提供了丰富的内置函数来处理日期和时间,包括日期的格式化、计算、解析等。本文将详细介绍PHP中日期处理的相关知识,帮助读者全面理解和掌握这一技能。 1. PHP日期函数基础 1.1 date()函…...

KVB:怎么样选择最优交易周期?

摘要 在金融交易中,周期的选择是影响交易成败的重要因素之一。不同的交易周期对应不同的市场环境和交易策略,选择合适的周期可以提高交易的成功率。本文将详细探讨交易中如何选择最优周期,包括短周期、中周期和长周期的特点及适用情况&#…...

前端面试题日常练-day69 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 TypeScript中,以下哪个关键字用于声明一个变量的类型为联合类型? a) union b) any c) all d) | 在TypeScript中,以下哪个符号用于声明一个变量的类型为对象类型&am…...

Java 解析xml文件-工具类

Java 解析xml文件-工具类 简述 Java解析xml文件,对应的Javabean是根据xml中的节点来创建,如SeexmlZbomord、SeexmlIdoc等等 工具类代码 import cn.hutool.core.io.FileUtil; import com.alibaba.cloud.commons.io.IOUtils; import com.seexml.bom.Se…...

PyQt5学习系列之新项目创建并使用widget

PyQt5学习系列之新项目创建并使用widget 前言报错新建项目程序完整程序总结 前言 新建项目,再使用ui转py,无论怎么样都打不开py文件,直接报错。 报错 Connected to pydev debugger (build 233.11799.298)新建项目程序 # Press ShiftF10 to…...

mtk8675 安卓端assert函数的坑

8675 安卓端, assert(pthread_mutex_init(&mutex_data_, &mattr) 0);用这行代码发现pthread_mutex_init函数没有被调用,反汇编发现不光没调用assert,pthread_mutex_init也没调用。直接pthread_mutex_init(&mutex_data_, &ma…...

编程入门笔记:从基础到进阶的探索之旅

编程入门笔记:从基础到进阶的探索之旅 编程,作为现代科技的基石,正日益渗透到我们生活的方方面面。对于初学者来说,掌握编程技能不仅有助于提升解决问题的能力,还能开启通往创新世界的大门。本篇文章将从四个方面、五…...

小规模自建 Elasticsearch 的部署及优化

本文将详细介绍如何在 CentOS 7 操作系统上部署并优化 Elasticsearch 5.3.0,以承载千万级后端服务的数据采集。要使用Elasticsearch至少需要三台独立的服务器,本文所用服务器配置为4核8G的ECS云服务器,其中一台作为 master + data 节点、一台作为 client + data 节点、最后一…...

MySQL 示例数据库大全

前言: 我们练习 SQL 时,总会自己创造一些测试数据或者网上找些案例来学习,其实 MySQL 官方提供了好几个示例数据库,在 MySQL 的学习、开发和实践中具有非常重要的作用,能够帮助初学者更好地理解和应用 MySQL 的各种功…...

VirtualBox、Centos7下安装docker后pull镜像问题、ftp上传文件问题

Docker安装篇(CentOS7安装)_docker 安装 centos7-CSDN博客 首先,安装docker可以根据这篇文章进行安装,安装完之后,我们就需要去通过docker拉取相关的服务镜像,然后安装相应的服务容器,比如我们通过docker来安装mysql,…...

链表 题目汇总

237. 删除链表中的节点...

grafana连接influxdb2.x做数据大盘

连接influxdb 展示数据 新建仪表盘 选择存储库 设置展示...

Java证件识别中的身份证识别接口

现如今,越来越多的互联网应用需要对身份证进行实名认证,但不知道大家有没有发现,从最初的手动录入身份证信息转变到了现在的图片上传自动识别呢?其实,这都是因为集成了身份证识别接口功能,今天,…...

迷你小风扇哪个品牌好?迷你小风扇前十名公开揭晓!

随着夏日的炎热袭来,迷你小风扇成为了许多人随身携带的清凉利器。无论是在办公室、户外活动,还是在旅行途中,迷你小风扇都以其小巧便携、强劲风力和持久续航的优势,迅速俘获了大批用户的喜爱。然而,市面上迷你小风扇品…...

MikroTik RouterOS 授权签名验证分析

MikroTik 软路由 百科https://baike.baidu.com/item/mikrotik/9776775官网https://mikrotik.com/ 授权文件分析 -----BEGIN MIKROTIK SOFTWARE KEY------------ mr3jH5qhn9irtF53ZICFTN7Tk7wIx7ZkxdAxJ19ydASY ShhFteHMntBTyaS8wuNdIJJPidJxbuNPLTvCsv7zLA …...

C#开发-集合使用和技巧(六)特殊转换方法SelectMany的介绍和用法

介绍 SelectMany 方法在C#中用于将集合中的元素转换为其他类型的集合&#xff0c;并将这些集合扁平化为一个单一的序列。它是LINQ的一部分&#xff0c;允许你在一个序列上进行投影和过滤操作&#xff0c;然后将结果合并成一个序列。 方法定义 public static IEnumerable<…...

高考后的抉择:如何在心仪专业与知名学校之间做出选择?

目录 前言1. 专业选择的深度探讨1.1 专业的优势与挑战1.1.1 课程学习1.1.2 就业前景 1.2 专业选择的个人经验与思考 2. 名校对个人发展的长短期影响2.1 名校声誉的品牌效应2.1.1 职业发展2.1.2 社会认可度 2.2 教育资源与学术氛围2.2.1 教育资源2.2.2 学术氛围 2.3 就业优势 3.…...

黄仁勋提到的机器人世界,还需要AI数据来“调教” | CVPR 2024

本周&#xff0c;CVPR 2024正在美国西雅图拉开序幕。今年CVPR论文投稿数再次创下新纪录&#xff0c;可想而知本届会议的火热。 从研究主题来看&#xff0c;具身智能这一大热点值得关注。 黄仁勋在COMPUTEX大会开幕前夕的演讲中预言&#xff1a;AI的下一个浪潮将是物理AI。 即…...

语言中 函数用地址传参的好处

在C语言中&#xff0c;使用地址传参&#xff08;传递指针&#xff09;有以下几个好处&#xff1a; 1. **减少内存开销**&#xff1a; - 传递一个指针&#xff08;通常是一个地址&#xff09;比传递一个大的结构体或数组要高效得多&#xff0c;因为指针通常是一个固定大小&a…...

Python进阶二: NumPy基础:数组和矢量计算

二、NumPy基础&#xff1a;数组和矢量计算 本文源自微博客(www.microblog.store),且以获得授权 NumPy&#xff08;Numerical Python的简称&#xff09;是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。 NumPy的部分功能如下&#xf…...

2024北京智源大会开幕,智源推出大模型全家桶及全栈开源技术基座新版图,大模型先锋集结共探AGI之路

2024年6月14日&#xff0c;第六届“北京智源大会”在中关村展示中心开幕。 北京智源大会是智源研究院主办的“AI内行顶级盛会”&#xff0c;以“全球视野、思想碰撞、前沿引领”为特色&#xff0c;汇聚海内外研究者分享研究成果、探寻前沿知识、交流实践经验。2024北京智源大会…...