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

news2025/1/21 0:54:55

参考笔记:论文笔记: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.coloradmin.cn/o/951044.html

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

相关文章

创建ffmpeg vs2019工程

0 写在前面 本文主要参考链接:https://www.cnblogs.com/suiyek/p/15669562.html 感谢作者的付出; 1 目录结构 2 下载yasm和nasm 如果自己在安装VS2019等IDE的时候已经安装了它们,则不用再单独进行安装,比如我这边已经安装了&a…

VScode 国内下载源 以及 nvm版本控制器下载与使用

VScode 国内下载源 进入官网 https://code.visualstudio.com/ 点击下载 复制下载链接到新的浏览器标签 将地址中的/stable前的az764295.vo.msecnd.net换成vscode.cdn.azure.cn,再回车就会直接在下载列表啦。 参考大神博客 2.使用nvm 对 node 和npm进行版本控制…

【混合时变参数系统参数估计算法】使用范数总和正则化和期望最大化的混合时变参数系统参数估计算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【洁洁送书第一期】Python高并发与高性能编程: 原理与实践

这里写目录标题 Python高并发、高性能解决问题书本介绍关于作者直播预告 Python高并发、高性能 Python成为时下技术革新的弄潮儿,全民Python的发展趋势让人们不再满足于简单地运行Python程序,逐步探索其更为广泛的日常应用和高性能设计。 以ChatGPT为代…

LeetCode-53-最大子数组和-贪心算法

贪心算法理论基础: 局部最优推全局最优 贪心无套路~ 没有什么规律~ 重点:每个阶段的局部最优是什么? 题目描述: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素&#…

Running transaction check,yum卡在这个地方不动了

问题:运行yum update卡在这个地方不动 解决办法:运行下面的命令 # /bin/rm /var/lib/rpm/__db.* # cd /var/cache/yum # /bin/rm -rf * # yum clean all # yum update如果运行还不成功,那么重启服务器试试。我的服务器用了各种办法不行&…

金属矿山电子封条系统 yolov5

金属矿山电子封条通过pythonyolov5网络模型框架算法,金属矿山电子封条算法识别到运输设备启动运行或者识别到运输设备运行工作状态下有煤、无煤转换,进行预警分析,金属矿山电子封条算法利用智能化视频识别等技术,实时监测分析矿井出入井人员、…

机器学习技术(六)——有监督学习算法之线性回归算法实操

机器学习技术(五)——有监督学习之线性回归算法实操 引言: 机器学习监督算法是一种基于已有标记数据的学习方法,通过对已知输入和输出数据的学习,建立一个模型来预测新的输入数据的输出。这种算法模仿人类的学习过程&a…

抢跑预制菜,双汇发展转守为攻?

懒,懒出新风口,预制菜竟成了年轻人新时代的“田螺神话”? 《2022年中国预制菜产业发展白皮书》数据显示,2022年全国预制菜的市场规模是4196亿元人民币,到2026年可以突破万亿大关。 预制菜的火爆显而易见,…

ELK日志收集系统集群实验(5.5.0版)

目录 前言 一、概述 二、组件介绍 1、elasticsearch 2、logstash 3、kibana 三、架构类型 四、ELK日志收集集群实验 1、实验拓扑 2、在node1和node2节点安装elasticsearch 3、启动elasticsearch服务 4、在node1安装elasticsearch-head插件 5、测试输入 6、node1服…

【LeetCode题目详解】第八章 贪心算法 part06 738.单调递增的数字 968.监控二叉树 (day37补)

本文章代码以c为例&#xff01; 一、力扣第738题&#xff1a;单调递增的数字 题目&#xff1a; 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数…

嵌入式技术

嵌入式技术 嵌入式微处理器体系结构嵌入式微处理器分类多核处理器嵌入式软件嵌入式系统的组成嵌入式系统的特性 嵌入式技术和计算机网络 超纲的内容很多 这个课件只包含一半的分 其他的分看真题 嵌入式微处理器体系结构 将指令存储器和数据存储器合并在一起的结构 处于同一个存…

搭建一个你的文件共享站

说起文件共享&#xff0c;类似文件站这样的功能。在很久之前我使用过用apache httpd这个方案&#xff0c;这个的话就是太过于简单了。当然是满足需求的&#xff08;又不是不能用&#xff09; 今天来分享一个开源的文件共享平台。Pingvin Share 作者的github地址&#xff1a;ht…

面试了38位Java候选人之后,我总结出了他们关于面试中的16条通病

都说现在Java面试卷&#xff0c;前段时间项目招人的时候&#xff0c;我刚好就作为面试官面试了一些人 在整个面试的过程中&#xff0c;我就发现了一些关于面试的通病 所以呢&#xff0c;趁着这次金&#xff08;铜&#xff09;九银&#xff08;铁&#xff09;十的机会&#xf…

C++用于算法题中简化代码的冷门函数与类模板集合(持续更新中~)

1.accumulate ①求和&#xff1a; 第三个参数作为初始值&#xff0c;将区间[first, end)的值相加&#xff0c;返回初始值加上区间总和的值。 需要注意的是&#xff0c;如果总和超出区间中数的类型范围&#xff0c;可以将第三个参数强转成64位的long long类型 #include <iost…

CentOS 8 安装 Code Igniter 4

在安装好LNMP运行环境基础上&#xff0c;将codeigniter4文件夹移动到/var/nginx/html根目录下&#xff0c;浏览器地址栏输入IP/codeigniter/pulbic 一直提示&#xff1a; Cache unable to write to "/var/nginx/html/codeigniter/writable/cache/". 找了好久&…

企业数字化转型有没有通用的路径和准则?

数字化转型是利用数字技术从根本上改变企业运营方式并向客户提供价值的过程。它涉及将数字技术集成到组织活动的各个方面&#xff0c;从客户交互到内部流程。虽然数字化转型的具体方法可能会根据组织的目标、行业和现有基础设施而有所不同&#xff0c;但有一些通用路径和指南可…

异常的捕获和处理

目录 一、异常 1.异常概述 1.1认识异常 1.2Java异常体系结构 2.Java异常处理机制 2.1异常处理 2.2捕获异常 2.2.1使用try-catch捕获异常 2.2.2使用try-catch-finally处理异常 2.2.3使用多重catch处理异常 2.3抛出异常 2.3.1使用throws声明抛出异常 2.3.2使用throw…

小企业需不需要内部知识库?为什么都在倡导内部知识沉淀?

有多种方法可以提高员工敬业度和员工工作效率&#xff0c;从给予信任到创造积极的工作环境。但一还有一个不为人知但十分有效的方式——为员工创建良好的内部知识库。所以小企业同样需要内部知识库&#xff0c;以下是为什么倡导内部知识沉淀的理由&#xff1a; 知识积累与传承…

Http 1.0 1.1 2.0 3.0 版本差别

Http 1.0 发布年份&#xff1a;1996 非官方标准 短链接&#xff1a;每一次请求都对应一次TCP的连接与释放 开销大&#xff1a;每次请求都要TCP的连接与释放队头阻塞&#xff1a;每次请求都必须等上一次请求获得响应之后&#xff0c;才可以发送&#xff1b;效率低下 缓存&…