当前位置: 首页 > 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. 删除链表中的节点...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...