图神经网络

传统神经网络要求输入的格式是固定的,规模是相同的,但是GNN要求输入的数据格式不做要求,多大的图都可以
图有N个点,那么图的邻接矩阵可写成 NN,但是一般传到NN中的是 2N 的矩阵,2指的是source->target 即 source 到 target 之间有一条边, N指的是边的个数

GNN中节点特征的更新不仅要考虑自身的,还要考虑邻居的信息:
在这里插入图片描述
GNN可以是多层的,对于多层GNN,输入的邻接矩阵不会改变
多层GNN可以使单个节点接受到其他节点的数据增多
在这里插入图片描述
比如上图,如果是一层GNN,节点信息更新时,节点h1会考虑他的两个临邻点;
如果是两层GNN,那么在第二层时,h1节点会把他的两个临邻点的邻接点考虑进来,即h7,h3等
得到节点最好的特征之后,可以对节点进行分类,对图进行分类等

所以GNN多层会使单个节点的感受野变大,甚至感受到全局
GNN不需要太多层,因为6层就可以感受到整个图

输入到GCN中的信息包含:1.各节点输入特征 2.网络结构图
GCN优势:
它是一个半监督学习,不需要所有的节点都有标签,训练的时候只用少量有标签的点进行训练,计算损失时只用有标签的
为什么这样可以?因为带标签的点会把邻居节点考虑进去,多层GCN会把感受野内的所有节点考虑进去
在这里插入图片描述
多层GCN算出来每个点都会对应一个向量,但是这个向量的维度不一定和输入点向量的维度一样,因为中间可能做了全连接等操作

邻接矩阵,度矩阵,特征矩阵
在这里插入图片描述
一般把邻接矩阵对角线设为1,表示也要考虑自己
同时为了使更新的特征进行平均,需要把度矩阵改为1/1, 1/2, 1/3, 1/4 等
由此得到
在这里插入图片描述
因此可写为
在这里插入图片描述
上述只是对行进行了归一化,加上对列的归一化,所以需要右乘D~,所以D~需要开根号
在这里插入图片描述
下面一幅图是一层GNN(使用的激活函数是relu)+一层全连接(使用的是softmax)
在这里插入图片描述
别人做的实验:GCN在2-5层时效果较好,层数再增多效果就变差了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值