2023.07.16 学习周报

news2024/11/27 0:17:19

文章目录

  • 摘要
  • 文献阅读
    • 1.题目
    • 2.问题
    • 3.介绍
    • 4.Problem definition
    • 5.Method
      • 5.1 Feature Extractor
      • 5.2 Synthetic Node Generation
      • 5.3 Edge Generator
      • 5.4 GNN Classifier
      • 5.5 Optimization Objective
      • 5.6 算法
    • 6.实验
      • 6.1 数据集
      • 6.2 基线
      • 6.3 实验结果
    • 7.结论
  • 数学建模
    • 1.欧式距离
    • 2.切比雪夫距离
    • 3.曼哈顿距离
  • 深度学习
    • 1.欧拉法的概念
    • 2.欧拉法的基本步骤
    • 3.NS方程与神经网络结合的可能性
  • 总结


摘要

This week, I read a computer science about GNN. At present, GNN is faced with the challenge of sample balance of nodes of different classes. Therefore, the development of GNN for unbalanced node classification is critical, but the work in this area is quite limited. Therefore, a new model framework, GraphSMOTE, is proposed. The framework constructs an embedding space to encode similarities between nodes, thereby synthesizing new samples in that space to maintain authenticity. At the same time, an edge generator is trained to model relational information and provide information for these new samples. This framework is generic and can be easily extended to different variants. By conducting experimental evaluations on three different datasets, the model significantly outperforms other baseline methods. In addition, I learn distance clustering and Euler’s method. Three different distance measurement formulas and the key points of Euler’s method are introduced.

本周,阅读了一篇与GNN相关的文章。目前,GNN 面临不同类别节点样本平衡问题的挑战。因此,开发用于不平衡节点分类的 GNN 至关重要,但这方面的工作却相当有限。为此,提出了一个新的模型框架,GraphSMOTE。该框架构建了一个嵌入空间来编码节点之间的相似性,从而在该空间中合成新的样本以保持真实性。同时,训练一个边缘生成器来建模关系信息,并为这些新样本提供信息。这个框架是通用的,可以轻松扩展到不同的变体。通过在三个不同的数据集上进行实验评估,该模型明显优于其它基线方法。此外,我学习了距离聚类和欧拉法。其中介绍了三种不同的距离度量公式,以及欧拉法的关键点。


文献阅读

1.题目

文献链接:GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks

2.问题

以前的算法并不适用于图:
1)对产生的新样本,很难生成边关系。过采样技术利用目标示例与其最近邻之间的插值来生成新的训练示例。然而,插值不适合于边,因为它们通常是离散的和稀疏的,插值会 破坏拓扑结构。 
2)产生的新样本可能质量较低。节点属性是高维的,直接对其进行插值很容易生成域外的情况,对训练分类器不利。

3.介绍

如下图所示,图中类不平衡的情况:
在这里插入图片描述
其中:每个蓝色节点表示一个真实用户,每个红色节点表示一个假用户,边表示关系。任务是预测未标记的用户是真还是假。这些类在本质上是不平衡的,因为假用户通常还不到所有用户的1%。半监督设置进一步放大了类不平衡问题,因为只给出了有限的标记数据,这使得标记的少数样本的数量非常小。

在不平衡的节点分类中,多数类主导着损失函数,使得训练后的 GNN 过度分类,无法准确预测样本。目前解决类不平衡问题的方法可以分为:
1)data-level approaches(数据级方法)
2)algorithm-level approaches(算法级方法)
3)hybrid approaches(混合方法)
数据级方法寻求使类分布更加平衡,使用过采样或降采样技术;算法级方法通常对不同的类引入不同的错误分类惩罚或先验概率;混合方法则是将这两者结合起来。

4.Problem definition

使用 G={V,A,F}来表示一个属性网络,其中 V={v1,…,vn}是一组 n 节点。A∈Rn×n
为 G 的邻接矩阵, F∈Rn×d 表示节点属性矩阵,其中 F[j, :]∈R1×d 为节点 j 的节点属性,d 为节点属性的维数。Y∈R^n 是 G 中节点的类信息。

在训练过程中,只有 Y 的一个子集 VL 可用,其中包含节点子集 VL 的标签。总共有 m 类,{C1,…,Cm}。|Ci| 是第 i 类的大小,指的是属于该类的样本数量。我们使用不平衡率 mini(|Ci|)maxi(|Ci|) 来衡量类不平衡的程度。在不平衡设置下,YL 的不平衡比较小。

给定节点类不平衡的 G,以及节点 VL子集的标签,目标是学习一个节点分类器 f ,可适用于多数类和少数类,即:
在这里插入图片描述

5.Method

在这里插入图片描述

5.1 Feature Extractor

SMOTE用于原始节点特征空间存在的问题:
1)原始特征空间可能是稀疏和高维的,且特征空间不好;
2)未考虑图的结构,可能会导致次优的合成节点。

过采样方法同时考虑了节点表示和拓扑结构,并且遵循了同质性假设。本文研究中使用 GraphSage 作为主干模型结构来提取特征:
在这里插入图片描述

5.2 Synthetic Node Generation

对目标少数类的样本与嵌入空间中属于同一类的最近邻样本进行插值。设 h1v 为一个带标记的少数类节点,标记为 Yv。第一步是找到与 h1v 在同一个类中的最近的标记节点,即:
在这里插入图片描述
其中,nn(v)是指同一类中 v 的最近邻,可以生成合成节点为:
在这里插入图片描述
其中,δ 为一个随机变量,在 [0,1] 范围内呈均匀分布。由于 h1v 和 h1nn(v) 属于同一个类,且非常接近,因此生成的合成节点 h1v′ 也应属同一个类。

5.3 Edge Generator

边生成器是一个加权内积:
在这里插入图片描述
其中:Ev,u 为节点 v 和 u 之间的预测关系信息,S 为捕获节点间相互作用的参数矩阵。
边生成器的损失函数为:
在这里插入图片描述
此时,并没有合成节点,而是学习一个好的参数矩阵 S。利用边生成器,本文尝试了两种策略:
1)该生成器只使用边重建来进行优化,而合成节点 v′ 的边是通过设置一个阈值 η
生成:
在这里插入图片描述
其中:A~是过采样后的邻接矩阵,通过在 A 中插入新的节点和边,并将其发送给分类器。
2)对于合成节点 v′,使用软边而不是二进制边:
在这里插入图片描述
A~上的梯度可以从分类器中传播,因此可以同时使用边缘预测损失和节点分类损失对生成器进行优化。

5.4 GNN Classifier

采用另一个 GraphSage 块,在 G~ 上附加一个线性层进行节点分类:
在这里插入图片描述
Pv 是节点 v 在类标签上的概率分布,利用交叉熵损失进行优化:
在这里插入图片描述
在测试过程中,将节点 v 的预测类设置为概率最高的类 Y′v:
在这里插入图片描述

5.5 Optimization Objective

GraphSMOTE 的最终目标函数可以写成:
在这里插入图片描述

5.6 算法

在这里插入图片描述

6.实验

6.1 数据集

Cora、BlogCatalog、Twitter

6.2 基线

Over-sampling、Re-weight、SMOTE、Embed-SMOTE、GraphSMOTE T、GraphSMOTE O、 GraphSMOTE preT、GraphSMOTE preO

6.3 实验结果

1)不平衡的节点分类
在这里插入图片描述
2)过采样量的影响
设置不平平衡率为 0.5,过采样的尺度为 {0.2,0.4,0.6,0.8,1.0,1.2}。
在这里插入图片描述
3)不平衡比的影响
设置过采样的尺度为 1,不平衡率为 {0.1,0.2,0.4,0.6}。
在这里插入图片描述
4)基础模型的影响
基础模型一个采用 GCN,一个采用 GraphSAGE。
在这里插入图片描述
5)参数敏感性分析
在这里插入图片描述

7.结论

1)图中节点的类不平衡问题广泛存在于现实任务中,这个问题会显著影响分类器在这些少数类上的性能。
2)提出了一个新的框架GraphSMOTE,它将以前的i.i.d数据过采样算法扩展到这个图设置。
3)GraphSMOTE使用特征提取器构建中间嵌入空间,并在此基础上同时训练边缘生成器和基于GNN的节点分类器。
4)实验证明了它的有效性,并以很大的幅度优于所有其他基线。
5)进行消融研究以了解GraphSMOTE在各种情况下的表现,通过参数敏感性分析,了解GraphSMOTE对超参数的敏感性。

数学建模

1.欧式距离

欧几里得距离,是最常见也是最简单的一种距离,在n维空间下的公式为:
在这里插入图片描述
python实现:

import numpy as np
from scipy.spatial.distance import pdist

# 1.欧式距离
x = [1, 1, 1]
y = [3, 4, 5]
xy = np.vstack([x, y])

distance = pdist(xy, metric='euclidean')
print('euclidean distance:', distance)

运行程序结果:

euclidean distance: [5.38516481]

2.切比雪夫距离

切比雪夫距离是向量空间中的一种度量,两点之间的距离定义是其各坐标数值插值绝对值的最大值。公式如下:
在这里插入图片描述
python实现:

# 2.切比雪夫距离
x = [1, 1, 1]
y = [3, 4, 5]
xy = np.vstack([x, y])

distance = pdist(xy, metric='chebyshev')
print('chebyshev distance:', distance)

运行程序结果:

chebyshev distance: [4.]

3.曼哈顿距离

用于计算城市的道路距离,由于城市中由一点到达另外一点的通过方式要通过道路来到达,此时两点间的距离不能直接使用欧式距离来计算。公式如下:
在这里插入图片描述
python实现:

# 3.曼哈顿距离
x = [1, 1, 1]
y = [3, 4, 5]
xy = np.vstack([x, y])

distance = pdist(xy, metric='cityblock')
print('cityblock distance:', distance)

运行程序结果:

cityblock distance: [9.]

深度学习

1.欧拉法的概念

欧拉法是一种常见的数值解法,用于求解常微分方程。它是数值计算中最简单和最直接的一种方法,常被用于初步探索和近似求解微分方程的数值解。欧拉法的基本思想是将微分方程转化为差分方程,通过迭代逼近连续解。

2.欧拉法的基本步骤

1)确定步长:欧拉法中的步长表示在自变量上的离散间隔。需要根据具体问题和精度要求选择合适的步长。步长越小,数值解的精度越高,但计算量也越大。
2)设定初始条件:为微分方程设置初始条件,即确定在自变量起始点上的函数值。
3)迭代计算:根据微分方程的导数定义,使用差分逼近近似微分方程的解。假设已知当前点上的函数值,通过微分方程得到当前点的导数值,然后将其与步长相乘,并加到当前点上,得到下一个点的函数值。
4)更新自变量:根据设定的步长,更新自变量的值,即从当前点移动到下一个点。
5)重复迭代:重复步骤3和4,直到达到所需的自变量值或时间步长。

3.NS方程与神经网络结合的可能性

1)使用大量的模拟数据来训练神经网络,以达到学习NS方程的解。通过输入的初始状态和边界条件,神经网络可以预测在未来的演变过程中的变化情况。
2)利用神经网络来近似NS方程的解,同时满足NS方程的物理约束。神经网络可以通过学习来预测速度和压力场,同时满足连续性方程和动量方程等物理约束条件,以提高NS方程数值求解的效率和精确度。
3)将NS方程和神经网络结合组成混合模型,就可以用神经网络处理复杂的流动结构或边界层等难以处理的情况,以此提高求解的效率和稳定性。
最后,还需要查阅文献和相关资料继续学习,以此思考挖掘NS方程和神经网络结合的可能性。


总结

欧拉法的优点是简单易懂、计算速度快,适用于求解简单的微分方程。然而,它也存在一些缺点。首先,欧拉法的数值解存在误差,特别是当步长较大时,误差会积累导致结果偏离真实解。其次,对于某些复杂的微分方程,欧拉法可能需要很小的步长才能达到足够的精度,从而导致计算量的增加。因此,对于更复杂的微分方程问题,通常会考虑其他更高级的数值解法,提供更准确的数值解。下周,将对欧拉法进行展开学习。

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

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

相关文章

0130 物理层1

目录 2.物理层 2.1通信基础 2.1部分习题 2.物理层 2.1通信基础 2.1部分习题 1.下列说法正确的是() A.信道与通信电路类似,一条可通信电路往往包含一个信道 B.调制是把模拟数据转换为数字信号的过程 C.信息传输速率是通信信道上每秒传…

SIP支持的传输协议

一、SIP支持的传输协议-UDP、TCP、TLS SIP是一个应用层的会话协议,与一般协议不同的是,SIP协议可以同时支持各种传输协议。 SIP支持UDP传输:UDP是一个无连接的协议,且不提供可靠性。在UDP上建立SIP连接存在不可靠性。 SIP…

【K210模块】使用UART模块发送和接收数据

官方案例链接 【K210模块】使用UART模块发送和接收数据 官方案例链接 一、代码部分1、添加转换句(1)字节data 转字符串① 添加了转换语句② 没有添加转换语句 (2)字符串str 转 字节data 2、三种方式的比较,K210发送到S…

图解Vit 2:Vision Transformer——视觉问题中的注意力机制

文章目录 Patch Embedding 回顾Seq2Seq中的attentionTransformer中的attention Patch Embedding 回顾 上节回顾 Seq2Seq中的attention 在Transformer之前的RNN,其实已经用到了注意力机制。Seq2Seq。 对于Original RNN,每个RNN的输入,都是对…

vue3项目创建(vite3+ts+elementui-plus)

文章目录 1.创建工程 1.创建工程 目的:vue3vitets 安装依赖,安装vite的工具 Vite下一代的前端工具链为开发提供极速响应v4.3 npm install -g create-vite创建工程 create-vite font-userui --template vue-ts –template vue-ts 后面的是配置模板&#…

CS 144 Lab Zero

CS 144 Lab Zero 环境搭建使用socket写一个网络程序In-memory reliable byte stream 对应课程视频: 【计算机网络】 斯坦福大学CS144课程 Lab 0 对应的PDF: Lab Checkpoint 0: networking warmup Lab 0 会省去Telnet部分内容。 环境搭建 Run Ubuntu version 22.10, then ins…

基于linux下的高并发服务器开发(第二章)- 2.3 进程创建

/*#include <sys/types.h>#include <unistd.h>pid_t fork(void)函数的作用&#xff1a;用于创建子进程返回值&#xff1a;fork()的返回值会返回两次。一次是在父进程中&#xff0c;一次是在子进程中在父进程中返回创建的子进程的ID&#xff0c;在子进程中返回0如何…

《微服务架构设计模式》第十三章 微服务架构的重构策略

微服务架构的重构策略 一、重构到微服务需要考虑的问题1、为什么重构2、重构形式3、重构策略 二、设计服务与单体的协作方式三、总结 一、重构到微服务需要考虑的问题 1、为什么重构 单体地狱造成的业务问题&#xff1a; 交付缓慢充满故障的软件交付可扩展性差 2、重构形式 …

itheima苍穹外卖项目学习笔记--Day6: 微信登录 / 商品浏览

Day6 a. HttpClientGET方式请求&#xff1a;POST方式请求&#xff1a; b. 微信登录 a. HttpClient HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新…

chrome插件reading-time开发

本插件开发文档翻译于Google官方文档Chrome Extensions Tutorial: Reading time - Chrome Developers 一、reading-time reading-time项目的功能是 将预期的阅读时间添加到任何Chrome extension 和 Chrome Web Store documentation 页面里面 通过这个项目&#xff0c;我们可以…

拓扑序列及其排序

目录 一、拓扑序列及其排序的相关概念拓扑序列的定义拓扑序列的性质出度、入度、度数拓扑排序 二、拓扑序列及其排序的应用有向图的拓扑序列代码实现 一、拓扑序列及其排序的相关概念 拓扑序列的定义 拓扑序列是对一个 有向无环图(DAG)&#xff08;也称为拓扑图&#xff09;而…

SpringBoot整合gRPC -- 简单明了

项目结构 pom引入(parent中引入即可) <properties><net-devh-grpc.version>2.14.0.RELEASE</net-devh-grpc.version><os-maven-plugin.version>1.6.0</os-maven-plugin.version><protobuf-maven-plugin.version>0.5.1</protobuf-mave…

Python绘制一个圆

代码 import matplotlib.pyplot as plt import numpy as npradius 10 # 半径的长度 center np.array([0,0]) # 圆心的坐标 t np.linspace(0, 2 * np.pi, 100) x center[0] radius * np.cos(t) y center[1] radius * np.sin(t)plt.figure(figsize(5,5)) plt.plot(x,y) p…

C# Modbus通信从入门到精通(5)——Modbus RTU(0x03功能码)

1、03(0x03)读保持寄存器 使用该功能码能从远程地址中读取1到125个保持寄存器的值,每个保持寄存器都占两个字节,读取的保持寄存器数量由主站读取时指定。 2、发送报文格式 更详细的格式如下: 从站地址+功能码+起始地址高位+起始地址低位+寄存器数量高位+寄存器数量低位+…

Redis进阶源码 - 主流程源码

redis底层是C语言编写的一个可执行程序&#xff0c;主方法为server.c 中main方法 主要包括&#xff1a;从初始化 到 EventLoop整个流程源码内容介绍 画的分析图太大了&#xff0c;需要的直接下载看吧.....想提醒大家的是&#xff0c;看源码时一定要带着目标去看&#xff0c;比…

《微服务架构设计模式》第十一章 开发面向生产环境的微服务应用

内容总结自《微服务架构设计模式》 开发面向生产环境的微服务应用 一、开发安全的服务1、安全性概述2、单体应用安全性3、微服务应用安全性 二、如何使用外部化配置模式三、如何使用可观测性模式四、使用微服务基底模式开发服务1、使用微服务基地2、从微服务到服务网格 五、总结…

前端开发面试题及答案整理(合集)

前端开发面试题及答案 1、对Web标准以及W3C的理解与认识? 答&#xff1a;标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链CSS和JS脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组…

2023年NOC决赛-加码未来编程赛项决赛模拟题-Python模拟题--卷1

第一题: 小码君在和朋友们玩密室逃脱。他们被困在一个封闭的房间中,只有破解密码,才能逃出密室。密码提示如下:“将 1 到 100 以内,能被 7 整除的数的个数以及这些数累加起来的和拼在一起即是打开房门的密码” 。请帮小码君算出密码。(注:只需显示表示结果的纯数字,不…

动手学深度学习——softmax回归的从零开始(代码详解)

目录 1. softmax回归的从零开始实现1.1 初始化模型参数1.2 定义softmax操作1.3 定义模型1.4 定义损失函数1.5 分类精度1.6 训练1.7 预测1.8 小结 1. softmax回归的从零开始实现 引入Fashion-MNIST数据集&#xff0c; 并设置数据迭代器的批量大小为256。 import torch from IP…

快速实现单数据表编辑

目录 1 简介 2 准备电子表格 3 初始化 4 根据电子表格生成数据库表并导入数据 5 使刚创建的表显示在待编辑列表中 6 开始编辑单表 7 一段代码用于实现中文字段名、调整列宽、只读字段、隐藏字段 1 简介 单数据表是最容易实现的表。由于不需要从零开始一个一个地增加字段…