Few-Shot Learning with Graph Neural Networks(图神经网络小样本学习)

Few-Shot Learning with Graph Neural Networks

  1. 来源:ICLR2018
  2. 链接
    原文下载:https://arxiv.org/pdf/1711.04043.pdf
    源码地址:https://github.com/vgsatorras/few-shot-gnn
    源码缺少image数据
  3. 主要贡献

我们将少样本学习作为一种有监督的消息传递任务,该任务使用图神经网络进行了端到端的训练。
我们用更少的参数匹配了Omniglot和Mini Imagenet任务的最新性能。
我们在半监督和主动学习机制中扩展了模型。
内容:基于图网络(知识图谱)+小样本目标检测

  1. 输入/输出数据

任意的值s,r,t和K.
s为有标签样本的数量。
r无标签样本的数量(r>0适用于半监督学习和主动学习场景)。
t是要分类的样本数。
K是类别数。
我们将关注t=1的情况,每个任务T只分类一个样本。
将输入数据集划分为三部分:
s个带有标签l 的数据集、
r不带有标签的训练集(用于半监督学习和主动学习),
t不带标签的查询集。
3个数据集是独立同分布的

  1. 模型
    5.1 整体框架Few-Shot Learning with Graph Neural Networks(图神经网络小样本学习)_第1张图片

核心思想:将有标签的样本信息传递到无标签的查询样例上去
首先,将支持集图片x1…x4(有标签的)和1个查询集图片输入到嵌入式网络ϕ(x)【本文用CNN】中转化为对应的特征向量,
然后,将特征向量与表示标签的向量h(l)【独热向量one-hot】级联起来,作为GNN的输入节点,共同输入到GNN中,
最后,使用GNN得到预测结果。

5.2 GNN部分的工作过程

GNN是由许多节点和边构成的图模型,在本文中,每一个节点都代表一幅输入的图像,而每个边上的权重就表示两幅图之间的关系(可以理解为距离或者相似程度)。本文采用的是稠密连接的图,因此每两个输入图片之间都有边连接起来,邻接矩阵就储存了任意两个节点之间的权重值。具体的权值计算过程:
Few-Shot Learning with Graph Neural Networks(图神经网络小样本学习)_第2张图片

Few-Shot Learning with Graph Neural Networks(图神经网络小样本学习)_第3张图片

先算关系权重,再修改节点特征,再重新算关系
可以看到图卷积层并不会改变图模型的结构,只改变节点上向量的值(由不同颜色表示)
而邻接矩阵的计算,就会更新两个节点之间的连接权重,因此图模型的结构也发生了变换。
图中由左向右第三个方框中的改为才更合适,表示网络的不同层。

  1. 实验
    6.1 网络结构 :

文中涉及到多个网络,首先是用于特征提取的嵌入式网络,与原型网络、Matching Network中结构相似,不再详述;然后是用于度量矩阵中权重计算的是由五个全连接层构成的,前四个带有BN和Leaky ReLU层;最后是用于学习的网络,代码中显示是由一个全连接层构成的。

6.2 损失函数:交叉熵在这里插入图片描述

6.3 2种数据集:

Omniglot miniImageNet

6.4 扩展:

SEMI-SUPERVISED半监督:修改h(l)为均匀分布
ACTIVE LEARNING主动学习:在GNN第一层后,对所有无标签样例对应的节点加注意力机制(也就是经过softmax后用一个多项式分布采样)
Few-Shot Learning with Graph Neural Networks(图神经网络小样本学习)_第4张图片

  1. 思考
    7.1 给定K,只能从K个类中选择样本的类别。但是如果需要判断的样本不在这K个类别中呢?
    7.2 GNN相比较与其他模型准确率低,不适用于自然语言处理。

你可能感兴趣的:(小样本,神经网络,深度学习,知识图谱)