few-shot learning——图神经网络专题
few-shot learning——图神经网络专题
基本概念
Few-shot learning:
few-shot的训练集包含很多类别,每个类别有多个样本,在训练阶段,会在训练集中随机抽取K个类别,每个类别q个样本(供qK个数据构成一个meta-task),作为Support Set(支撑集),再从K个类中剩余的数据中抽取一批样本作为模型的预测对象。即要求以qK个数据学会如何区分这K个类别,这样的任务称为K-way,q-shot问题。
episodic training:少样本学习采用episodic training训练方式,即分multi-task训练,task即上meta-task。
常用数据集:
miniImagenet
tiered-imagenet
omniglot
CIFAR-FS
CUB-200-2011
下面介绍最近用GNN做Few-shot Learning的几篇论文。
Few-Shot Learning with Graph Neural Networks--ICLR2018
papers: Few-Shot Learning with Graph Neural Networks
code: https://github.com/vgsatorras/few-shot-gnn
本论文是首次将GNN应用到少样本学习问题中,方法很创新但是精度却没有达到当时最高。
Construction of Initial Node Features
上图是一个4-Way 1-Shot问题,从4个对应的类中各自选取一张图片,,x5最后一个为Query集中选取要预测的样本。五张图片经过得到对应的特征向量,(卷积神经网络具体详看论文),
得到的特征向量与经过One-hot编码的label 拼接作为图的初始化点,而对于Query样本均匀分布填充,代码中只是简单的用0填充
Graph Neural Networks
进入GNN之前,构建邻接矩阵,论文中是用可学习的Edge Features来替代。
对两节点求差的绝对值后进入一个多层感知器(代码中是卷积神经网络)得到A matrix。
上图为图卷积模块,B是上面求的邻接关系矩阵A。
重复几次图卷积(每层都会计算边特征矩阵A)之后,
输出与Query 样本的label求loss,进行反向传播,训练。
注:
Query set的·label填充全0
A学习边特征邻接矩阵是卷积神经网络
GNN里面的Gc()模块不是真正的GCN,没有学习的参数只是学习邻接矩阵边特征与node聚簇
Edge-Labeling Graph Neural Network for Few-shot Learning--CVPR2019
paper:Edge-Labeling Graph Neural Network for Few-shot Learning
code:code
本篇论文是基于Edge-Labeling的,上一篇仅基于Node Label,没有显式的考虑类内的相似性和类间的不相似性,并且本篇论文可以实现Tranductive Inference,可以实现跨类测试而不用重新训练。
Tranductive Inference:就是训练时不仅考虑Support Set与Query Set的关系也要考虑Query Set之间的关系,更直接点说:就是Query Set间的Edge Label也有,但是非Tranductive Inference会忽略Query Set之间的Edge Lable,只是简单地单个样本与Support Set构图,Tranductive Inference是多个Query Set与Support Set构图。
Graph Construction
上图是一个2-Way 2-Shot网络图,从训练集中随机选取两个类每个类中随机选取两个样本,与Query Set(从两个类中选取一个样本或者多个样本)经过卷积神经网络得到对应的特征向量作为初始化图节点Node.
设定Edge Label
i、j属于同一个类,Edge Label设为1,否则设为0
初始化边特征
Edge Feature是一个二维向量,表示类内相似性和类间不相似性的简单拼接。
i、j属于同一类并且属于Support Set边特征为[1||0],i j不属于同一类但属于Support Set边特征设为[0||1],其他情况全部设为[0.5:0.5].
Node Feature Update
代表l-1层i j两节点的类内相似性,聚簇之前首先对Edge Feature归一化,然后i点与j点类内相似性、类间不相似性进行聚簇在进行拼接,经过Transform 函数,也就是下图a网络
Edge Feature Update
相似函数下图b,计算两节点的相似性,利用更新的Node节点计算相似性,每个点与其他点的Edge Feature按照相似性作为权重重新分配。论文将(1-)规定为不相似性,同样也可以用另一个网络代替。Edge Feature的更新不仅考虑到成对i j两点,也考虑了i与Graph其他点的关系聚簇。
最后对Edge Feature做归一化
Predict
Edge Label的预测可以从最后一层的Edge Feature的输出获得,
利用Support Set的Label 与Edge Label的预测进行简单的加权求和,预测Node Label.
Training
因为每层的Edge Feature的输出都是作为一种预测,论文考虑的每层的损失,Edge Label预测与Edge Label计算交叉熵损失,m meta-task,L层数。
Learning to Ptopagate Labels:Transductive propagation network For Few-shot Learning--ICLR2019
paper:Transductive propagation network For Few-shot Learning
code:code
本篇论文很简单,如上图所见包括特征嵌入,图构建,标签传播。
特征嵌入
与其他论文类似,几层CNN网络提取特征,作为图片的高级特征--向量
图构建
这篇论文采用的是图学习的方式来构建图,相似性的计算是通过网络学习得到,为高斯核的变式。
传统的高斯核计算
具体的相似性计算网络框架 如下
标签传播
首先提出的标签传播是如下形式
通过数学证明的闭合解
并不需要迭代过程,简单的一行代码搞定。
F = torch.matmul(torch.inverse(torch.eye(N).cuda(0)-self.alpha*S+eps), y)
然后就是普通的交叉熵loss
注:
论文对所有节点都计算loss,而不是同其他论文一样只用query标签计算loss.
本片论文提出的直推学习Transductive Learning.
学习边的方法值得借鉴。
DPGN: Distribution Propagation Graph Network for Few-shot Learning--CVPR2020
paper:https://arxiv.org/pdf/2003.14247.pdf
code : https://github.com/megviiresearch/DPGN
概括:本文是引入了Distribution-leve信息,框架分为两路instance-level 和distribution-level。
distribution-level information: 分布图节点由support的标签利用Kronecker delta function进行初始化,初始化的节点包含了节点与support的关系,也就是说包含了分布信息,在更新过程中进行初始化节点与support set的边权重拼接学习作为分布图节点,使得分布图去引导点图的学习。
Point Graph Construction:
上图以2-way 1-shot为例,嵌入网络提取图片的特征
提取特征向量
利用神经网络将两节点的特征差转化为一个尺度值,作为节点之间的相似性权重作为节点图的边。
Edge Feature Updating
利用最新的节点信息对边进行更新,其方法去上一篇EGNN相同。
Distribution Graph Node Initialization:
可以看到是一个维度的向量,如果有标签,则根据的标签初始化,否则为, 也就是说如果是support 样本直接用Kronecker delta function初始化,否则直接赋值。
P2D Aggregation
DPGN在训练的过程中,Distribution Graph与Point Graph是交互学习的。
点图到分布图的传播如上图所示,将分布图节点与在点图中节点与support的边权重进行拼接经过两层的神经网络进行学习,降维到分布图节点的原维度。
Distribution Graph Construction and Edge Feature Updating
分布图的构建与边特征的更新与点图相同,只是用的是分布图节点。
D2P Aggregation
分布图到点图的传播,如上图所示。
将分布图节点与其他所有点的边权重与相连边点乘求和与原分布图节点进行拼接经过两层的神经网络进行学习。
Objective
经过几次交互传播,利用point graph对query set经过softmax进行预测。
Point Loss
Distribution Loss
Total Loss
总损失是点图与分布图损失的加权和。
本文第一次引入Distribution Graph来引导节点图的学习,之前方法对于每一个小样本分类任务support 与query之间的分布关系没有被考虑到,都是利用节点特征的相似性或非相似性进行学习。通过本篇文章我们知道样本之间的边权重引入到节点信息中由非常好的作用。
注:
dual graph框架,在最后一层的分布图与点图的融合可以进一步的探索。
边特征的更新可以利用更有效的方法。
在其他小样本方法,可以进一步的考虑分布级的样本关系去指导实例之间的关系学习。
***********************
Transductive Relation-Propagation Network for Few-shot Learning--IJCAI2020
本篇论文利用support 同一类中的样本与query的关系相同,而引出的一种比较新颖的方式做小样本学习。
核心思想很简单:
Non-transductive设置:
关系图结点的构建:
拼接support样本特征与query样本特征作为关系结点,其中support样本作为主导样本
对于query而言,文章定义了pseudo relational nodes,也就是
为了保持一般性,我们把中的当作主导元素,以便邻接矩阵的计算。
transductive设置:
和上述non-transductive设置相似,只是主导元素和全部查询集进行拼接。
关系邻接矩阵的定义:
其中i,j代表不同结点的主导元素
如果i,j都是支撑集但不属于同一类那么权重设为相似性的负值,使得不同类相互远离。
Relation Propagation
通过上述构造的图节点和图,经过单层图卷积神经网络(单层的原因是防止过度平滑)
通过图神经网络后输出判别性的关系嵌入,然后经过MLP输出相似性分数。
因为support set中的每个类可能不止一个样本所以需要对同类样本相似性分数求和
输出每个query set的样本和每个类的分数,最大值对应的类就是该样本属于的类。
few-shot learning——图神经网络专题相关推荐
- 2020北京智源大会 图神经网络专题 总结
目录 引言 [1] 基于感知和认知系统的逻辑关系推理 作者介绍 分享内容 system1 和 syetem2 reasoning GMNN: Graph Markov Neural Networks ...
- Graph Representation 图神经网络
Graph Representation 图神经网络 图表示学习(representation learning)--图神经网络框架,主要涉及PyG.DGL.Euler.NeuGraph和AliGra ...
- Learning to Learn:图神经网络上的元学习
© 作者|田长鑫 机构|中国人民大学信息学院 研究方向 | 图表示学习和推荐系统 来源 | RUC AI Box 图神经网络(GNN)在实际应用中往往会受到可用样本数量太少的限制,而元学习(meta- ...
- 【论文解读|AAAI2021】HGSL - Heterogeneous Graph Structure Learning for Graph Neural Networks 图神经网络的异构图结构学习
文章目录 1 摘要 2 引言 相关工作 3 方法 3.1 特征图产生器 3.1.1 特征相似图 3.1.2特征传播图 3.2 语义图生成器 4 实验 5 结论 论文链接: http://shichua ...
- 为什么要进行图学习?谈一谈逆势而上的图神经网络
点击上方 蓝字关注我们 问一问近几年来逆势而上的技术有什么?相信你一定会说出来一个:图神经网络. 图神经网络将会在人工智能的各个领域起着非常重要的作用,虽然目前还没有完全成为各大顶会的焦点,但不可否认 ...
- AAAI2021 | 图神经网络最新进展解读
作者:纪厚业,北京邮电大学,智源 AAAI预讲会讲者 近年来,图神经网络(GNN,Graph Neural Network)逐渐成为人工智能领域的一大热门领域.GNN的一大优势是能够使各个领域(不仅仅 ...
- 原来Transformer就是一种图神经网络,这个概念你清楚吗?
Transformer和GNN有什么关系?一开始可能并不明显.但是通过这篇文章,你会从GNN的角度看待Transformer的架构,对于原理有更清楚的认知. 选自NTU Graph Deep Lear ...
- 论文解读| NeurIPS 2022:面向科学任务的图神经网络设计
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 近日中国人民大学高瓴人工智能学院师生有23篇论文被CCF A类国际学术会议NeurIPS 2022录用.神经信息处理系统大会(Neura ...
- 百度李伟彬:基于PGL的图神经网络基线系统
不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...
最新文章
- .NET MVC+ EF+LINQ 多表联查VIEW显示列表
- mybatis使用find_in_set导致cpu占用过高
- 自由自在休闲食品带给小资的冰淇淋生活
- 【Python】大数据存储技巧,快出csv文件10000倍!
- 爬虫python入门_如何入门Python爬虫?爬虫原理及过程详解
- js的一些function
- 【深度好文】simhash文本去重流程
- 用html和css轻松实现康奈尔笔记(5R笔记)模板
- 最优化理论极简入门(第一部分):最优化条件和KKT条件
- 如何在电脑中找到Win10自带锁屏壁纸
- 部署tomcat之appBase和docBase
- ChinaMode评选:2010最受瞩目的45个初创公司/产品
- vue push html,html5 - Vue 2.0 javaScript 数组循环push json 对象问题
- elementUI输入框只能输入数字解决方案
- Java代码走查审查规范总结
- 恢复IDEA中误删的文件
- 【工具】Latex 入门
- 【洛谷】P2356 弹珠游戏 c++
- Java读.xlsx表格
- 买《Python从小白到大牛》专题视频课程,送配套纸质图书
热门文章
- python微信好友检测_用Python调教微信,实现自动回复 和 微信好友分布,好友性别图,好友标签...
- slf4j log4j 和 reload4j
- DDB和DIB概念区别 及 程序示例。
- an....软件一直在加载,打不开的解决办法
- Sql Server2008如何让外网访问自己的数据库
- 【Python茴香豆系列】之 拍扁列表
- 项目开发流程_视频网课:房地产开发项目全流程全税种税收筹划
- Springboot 我随手封装了一个万能的导出excel工具,传什么都能导出
- 如何写一份HR主动给你发送面试邀请的简历
- 多因子模型水平测试题