对于论文Semi-Supervised Classification with Graph Convolutional Networks,小白的学习理解

参考笔记:论文笔记:Semi-Supervised Classification with Graph Convolutional Networks_hongbin_xu的博客-CSDN博客

论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS_semi supervised classification_饮冰l的博客-CSDN博客

拉普拉斯矩阵与正则化_拉普拉斯正则化_solicucu的博客-CSDN博客

图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导_详细给出图卷积网络推导过程_不务正业的土豆的博客-CSDN博客

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧 - 知乎

前言

卷积神经网络:灵感来源于人类的大脑,在识别一个物体时,首先识别边缘,再识别形状,最后确定物体的类型。卷积神经网络利用大脑识别的特点,建立多层神经网络,较低层识别物体的特征,若干底层特征组成更高一层特征,最终通过多层特征组合来进行分类。

典型的卷积神经网络CNN由卷积层、池化层和全连接层组成。卷积层用来提取特征,池化层用来降维和降低过拟合,全连接层用来输出最后的结果。研究的对象通常是有规则的空间结构,比如有序的语句,对于猫狗的分类。这些特征都可以用矩阵来表示。对于具有平移不变性的图片,一个小窗口移动到任意位置都不影响内部结构,可以使用CNN来提取特征。而RNN通常用于NLP这种序列信息。但是生活中还具备很多没有规则的空间结构数据,比如分子结构等,可以认为是无限维的数据,不具有平移不变性,这些不规则的空间结构难以用固定的卷积核来表示特征。每一个节点都是独一无二的,会让CNN,RNN失效.而GCN设计了一套从图数据中提取特征的办法,本质是个特征提取器。论文(Semi-Supervised Classification with Graph Convolutional Networks)使用谱图理论,利用拉普拉斯矩阵的特征值和特征向量来研究图的性质。

半监督学习是指样本集只有部分数据含有标签 ,通过已有标签的数据推断出没有标签数据的分类。给定一个数据集,可以映射成一个图,数据集中每个数据对应一个结点,由于一个图可以对应一个矩阵,这使得我们可以基于矩阵来进行半监督学习算法的分析。但是这有两个问题,一是假设有n个样本,复杂度就是n^2,这使得如此大规模的数据很难处理。二是构图过程只能使用样本集,再加入新的样本需要对原图进行重构并重新标记。

该论文的目标是解决半监督学习的问题。本文使用神经网络f(X,A)对图结构进行编码,对带有标签的节点在监督目标上进行训练。

 1 介绍

我们考虑在图中对节点进行分类的问题,其中标签只适用于一小部分节点。这个问题被定为半监督学习,其中标签信息通过某种形式基于图的显示正则化在图上平滑。例如公式(1),在损失函数中使用拉普拉斯正则化项:

  • L_{0}表示图中有标签的监督损失
  • f(.)表示类似神经网络的可微函数
  • λ 是个权重因子
  • X是节点特征向量X_{i}的矩阵
  • A表示图的邻接矩阵
  • D_{ii}=\sum_{j}^{}A_{ij}表示A的度矩阵,是个对角矩阵
  • ∆=D-A表示无向图的非归一化图拉普拉斯算子

这有两个好处,我们为图神经网络引入了一个简单且行为良好的前向传播公式,并展示了它是如何从谱图卷积的一阶近似中被激发。其次,我们演示了这种形式的基于图的神经网络模型如何用于图中节点的半监督分类。缺点是依赖于假设:相连接的节点可能共享相同的标签。这个假设可能会限制建模的能力,因为图边不一定需要编码节点相似性,而是可能包含附加信息。

2 图上的快速近似卷积

这节考虑多层图卷积网络(GCN):

  • A是图的邻接矩阵
  • \tilde{A}=A+I_{A},是A加上自环
  •  \tilde{D_{ii}}\tilde{A}的度矩阵 \sum j \tilde{A}ij,是一个对角矩阵
  • W^{(l)}是用于特定层可训练的权重矩阵
  • σ(.)是激活函数,例如ReLU(.)=max(0,.)
  • H^{l}R^{N*D}是l层的激活矩阵可以认为是第l-1层的输出,且H^{0}=X

下面将证明这种前向传播形式可以通过图上的局部谱滤波器的一阶近似来激发。

2.1 谱图卷积

我们考虑图上的谱卷积。对于一个输入信号x∈R^{N},在傅里叶领域中取参数θ∈R^{N},设置一个过滤器g\theta =diag(\theta )

  • U是图的标准化拉普拉斯的特征向量矩阵
  • 拉普拉斯矩阵:L=I_{N}-D^{-1/2}AD^{-1/2}=U\Lambda U^{T}
  • Λ特征值是对角矩阵,U^{T}x就是图上的傅里叶变换
  • 可以将g\theta理解成为L的特征值函数,即g\theta (\Lambda )

计算公式(3)成本很昂贵,复杂度是O(N^{2}),此外,计算L的特征分解代价很高。为了避免这个问题,g\theta (\Lambda )可以使用切比雪夫多项式T_{k}(x)的截断展开式很好的近似到k阶。

  •  \tilde{\Lambda }=\frac{2}{\lambda _{max}}\Lambda -I_{N}\lambda _{max}代表拉普拉斯矩阵L最大的特征值
  • {\theta}'\epsilon R^{K} 是一个切比雪夫系数
  • 切比雪夫多项式定义:
  1. T_{0}(x)=1
  2. T_{1}(x)=x
  3. T_{k}(x)=2xT_{k-1}(X)-T_{k-2}(x)

回到信号x和滤波器g\theta (\Lambda )卷积的定义,可得:

  •  \tilde{L }=\frac{2}{\lambda _{max}}L -I_{N}
  • (U\Lambda U^{T})^{k}=U\Lambda ^{k}U^{T}
  • k是拉普拉斯函数的k阶多项式,它只依赖于距离中心点步长最大为k步的节点

2.2 分层线性模型

可以通过叠加公式(5)来构建基于图卷积的神经网络。当K=1,即为拉普拉斯L上的线性函数。论文提到,通过这种形式的GCN,可以缓解具有非常宽节点度分布的图的局部邻域结构的过拟合问题。可以通过堆叠多个这样的层来提取特征。

在GCN的这个线性公式(K=1)中,进一步假设\lambda _{max}\approx 2.可以预测到神经网络参数能在训练过程中适应这种变化。在这些近似下,公式(5)化简为:

证明过程:

拉普拉斯矩阵L=D(度矩阵)-A(邻接矩阵)

拉普拉斯矩阵正则化证明:L^{sym}= D^{-1/2}LD^{-1/2}= D^{-1/2}(D-A)D^{-1/2}= D^{-1/2}DD^{-1/2}-D^{-1/2}AD^{-1/2}= I_{N}-D^{-1/2}AD^{-1/2}

在这里插入图片描述

  •  这里有两个过滤器参数\Theta ^{0}\Theta ^{1},可以在整个图上共享。
  • k是卷积层的数量
  • 进一步限制参数的数量有助于减少过拟合

  •  \Theta =\Theta ^{0}=-\Theta ^{1}

此时I_{N}+D^{-1/2}AD^{-1/2}特征值范围是[0,2],当神经网络使用该公式可能造成数值不稳定和梯度爆炸/消失。为了解决这个问题,引入了以下归一化技巧。

  • I_{N}+D^{-1/2}AD^{-1/2}->\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}(即加上图中自环)
  • \tilde{A}=A+I_{N}
  • \tilde{D}_{ii}=\sum_{j}^{}\tilde{A}_{ij}

在加上激活函数σ(.),可以得到H^{l+1}=f(H^{l},A)=\sigma(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}H^{l}W^{l}),也就是公式2.

可以将这个定义推广到信号X\epsilon R^{N*C},它有C个输入通道(即每个节点有一个C维特征向量)和F和滤波器或特征映射,如下图所示

  • \Theta \epsilon R^{C*F}是滤波器参数矩阵
  • Z\epsilon R^{N*F}是卷积后输出的信号矩阵

3 半监督节点分类

前面介绍了在图上有效的传播信息的模型f(X,A),现在回到半监督节点分类问题。通过调节模型f(.)使得在邻接矩阵包含了一些X中不存在的信息的情况下更有用,例如引用网络中文档之间的引用链接或知识图中的关系。如图是整体模型用于半监督学习的多层GCN:

3.1 样例

下列例子中考虑在一个对称邻接矩阵A的图上使用两层GCN进行半监督节点分类。我们首先计算\tilde{A}=D^{-1/2}\tilde{A}D^{-1/2},前向传播模型采用:

左图用于半监督学习的多层网络GCN的示意图,在输入层有C个输入,若干个隐藏层和F个输出特征。右图是在Cora数据集上训练的双层GCN的隐藏层可视化结果,颜色表示文档分类。

在这里,我们定义属于输入层到隐藏层的参数,属于隐藏层到输出层的参数。softmax激活函数定义为e^{x_{i}}/\sum_{i=1}^{N}e^{x_{i}},按行应用。用交叉熵误差来评估所有有标签数据。

其中Yl是带有标签节点的集合。神经网络对W0和W1采用梯度下降法进行训练。使用dropout引入训练过程的随机性。

4 总结

利用切比雪夫公式作k阶近似拟合滤波器,依赖于周围步长最长为k的节点,进一步考虑周围节点对其影响,即取K=1,\lambda_{max} \approx 2,并进一步优化,取\Theta =\Theta ^{0}=-\Theta ^{1},为了防止梯度爆炸做了改进,得到最终定义。

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

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

相关文章

IO模型:阻塞和非阻塞

一、五种IO模型------读写外设数据的方式 阻塞: 不能操作就睡觉 非阻塞:不能操作就返回错误 多路复用:委托中介监控 信号驱动:让内核如果能操作时发信号,在信号处理函数中操作 异步IO:向内核注册操作请求&…

【微服务部署】08-监控与告警

文章目录 1. PrometheusOperator1.1 优势1.2 配置脚本1.3 部署脚本 2. Granfana实现监控看板2.1 Granfana核心特性2.2 部署文件 目前Kubernetes中最流行的监控解决方案是使用Prometheus和AlertManager 1. PrometheusOperator 1.1 优势 自动化安装将配置资源化灵活的扩展能力 …

ctfshow—萌新—杂项1

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up ed400fbcff269bd9c65292a97488168a 首先这是一个md5,然后在线解密一下,解密站点 https://www.somd5.com/ 解密出来的内容是helloctf 然后去掉ctf就是最终的答案 结果就是flag{hello}…

023 - STM32学习笔记 - 扩展外部SDRAM(二) - 扩展外部SDRAM实验

023- STM32学习笔记 - 扩展外部SDRAM(一) - 扩展外部SDRAM实验 本节内容中要配置的引脚很多,如果你用的开发板跟我的不一样,请详细参照STM32规格书中说明对相关GPIO引脚进行配置。 先提前对本届内容的变成步骤进行总结如下&…

supervisorctl(-jar)启动配置设置NACOS不同命名空间

背景 由于需要在上海服务器上面配置B测试环境,原本上面已有A测试环境,固需要将两套权限系统分开 可以使用不同的命名空间来隔离启动服务 注:本文章均不涉及公司机密 1、新建命名空间 命名空间默认会有一个public,并且不能删除&a…

【QT】信号和槽(15)

前面的内容说了很多不同的控件如何使用,今天来看下QT的核心,信号与槽(Signals and slots)! 简单理解一下,就是我们的信号与槽连接上了之后,发射一个信号给到槽,槽函数接收到了这个信…

数据库(一) 基础知识

概述 数据库是按照数据结构来组织,存储和管理数据的仓库 数据模型 数据库系统的核心和基础是数据模型,数据模型是严格定义的一组概念的集合。因此数据模型一般由数据结构、数据操作和完整性约束三部分组成。数据模型主要分为三种:层次模型,网状模型和关…

docker linux(centos 7) 安装

这是个目录 1:安装1:手动安装(适用于centos7)之一2:手动安装(适用于centos7)之二3:一键安装docker4:二进制安装1:下载二进制包2:解压3:移动文件4:后台运行docker5:测试 dicker命令表999:遇到的问…

java解析html

目录 场景描述一.引入依赖二.调用接口响应回来的html三.测试代码 场景描述 我调用外部接口&#xff0c;但是返回来的数据是html的格式&#xff0c;所以我就需要进行处理来获得我想要的数据。我使用的是jsoup。 一.引入依赖 <dependency><groupId>org.jsoup</gr…

Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例,并做可视化UI界面展示(附源码)

Go 使用 Gorm 将操作信息集成到链路跟踪 Jaeger,进行增删改查使用举例(附源码)。 为了增强程序的可观测性,方便问题定位,在发起数据库操作请求时我们也可以调用代码统一集成链路跟踪的能力,Jaeger 是当今比较流行的选择。使用 Gorm 来将操作信息集成到 Jaeger 中。 全面…

C++笔记之临时变量与临时对象与匿名对象

C笔记之临时变量与临时对象与匿名对象 code review! 文章目录 C笔记之临时变量与临时对象与匿名对象1.C中的临时变量指的是什么&#xff1f;2.C中的临时对象指的是什么&#xff1f;3.C中临时对象的作用是什么&#xff1f;什么时候要用到临时对象?4.给我列举具体的例子说明临…

回归预测 | MATLAB实现CSO-ELM布谷鸟算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现CSO-ELM布谷鸟算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现CSO-ELM布谷鸟算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介…

html中如何用vue语法,并使用UI组件库 ,html中引入vue+ant-design-vue或者vue+element-plus

html中如何用vue语法&#xff0c;并使用UI组件库 前言 先说一下本次应用的场景&#xff0c;本次项目中&#xff0c;需要引入github中别人写好的插件&#xff0c;插件比较大&#xff0c;没有方法直接在自己项目中&#xff0c;把别人的项目打包合并生成html&#xff08;类似于前…

Muscles|Tissue —— 介绍

BETA —— 此功能仍然在开发测试中&#xff0c;相关文档很少或没有&#xff0c;使用时需注意&#xff1b; 可使用Vellum-based Muscles & Tissue系统&#xff0c;模拟角色的肌肉、组织、及皮肤&#xff1b;可轻易导入模型和动画&#xff0c;并快速配置解算模拟&#xff1b;…

提高企业会计效率,选择Manager for Mac(企业会计软件)

作为一家企业&#xff0c;良好的财务管理是保持业务运转的关键。而选择一款适合自己企业的会计软件&#xff0c;能够帮助提高会计效率、减少错误和节约时间。在众多的选择中&#xff0c;Manager for Mac(企业会计软件)是一款值得考虑的优秀软件。 首先&#xff0c;Manager for…

Java流式编程详细介绍

文章目录 1. 流式编程介绍2. 过滤2.1 filter2.2 distinct2.3 limit2.4 sorted2.5 skip 3. 映射3.1 map3.2 flatmap 4 查找4.1 allMatch4.2 anyMatch4.3 noneMatch4.4 findFirst4.5 findAny 5. 归约6. 收集6.1 counting6.2 maxBy,minBy6.3 summingInt、summingLong、summingDoub…

【jvm】运行时数据区

目录 一、运行时数据区一、作用二、说明三、线程共用与私有区域 一、运行时数据区 一、作用 1.内存是非常重要的系统资源&#xff0c;是硬盘和CPU 的中间仓库及桥梁&#xff0c;承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策…

分布式集群——搭建Hadoop环境以及相关的Hadoop介绍

系列文章目录 分布式集群——jdk配置与zookeeper环境搭建 分布式集群——搭建Hadoop环境以及相关的Hadoop介绍 文章目录 前言 一 hadoop的相关概念 1.1 Hadoop概念 补充&#xff1a;块的存储 1.2 HDFS是什么 1.3 三种节点的功能 I、NameNode节点 II、fsimage与edits…

Kubernetes(K8s 1.28.x)部署---超详细

目录 一、基础环境配置&#xff08;所有主机均要配置&#xff09; 1、配置IP地址和主机名、hosts解析 2、关闭防火墙、禁用SELinux 3、安装常用软件 4、配置时间同步 5、禁用Swap分区 6、修改linux的内核参数 7、配置ipvs功能 二、容器环境操作 1、定制软件源 2、安…

色温曲线坐标轴的选取:G/R、G/B还是R/G、B/G ?

海思色温曲线坐标 Mstar色温曲线坐标 高通色温曲线坐标 联咏色温曲线坐标 查看各家白平衡调试界面&#xff0c;比如海思、Mstart、高通等调试资料&#xff0c;白平衡模块都是以R/G B/G作为坐标系的两个坐标轴&#xff0c;也有方案是以G/R G/B作为坐标系的两个坐标轴。 以G/R G…