High-order structure preserving graph neural network for few-shot learning

https://arxiv.org/pdf/2005.14415

https://github.com/yangfeifei02/HOSP

High-order structure preserving graph neural network for few-shot learning,2020

总结:文章提出的HOSP-GNN是对EGNN模型的改进,创新点在于将高阶结构引入GNN中,近似统一了不同任务中的度量标准,提高了小样本元学习算法的准确度。另外在GNN逐层迭代的过程中增加了流行结构约束,进一步提高了模型性能。

1. 简介

1.1 摘要

Few-shot learning can find the latent structure information between the prior knowl-edge and the queried data by the similarity metric of meta-learning to construct thediscriminative model for recognizing the new categories with the rare labeled samples.Most existing methods try to model the similarity relationship of the samples in the intra tasks, and generalize the model to identify the new categories. However, the relationship of samples between the separated tasks is difficultly considered because of thedifferent metric criterion in the respective tasks. In contrast, the proposed high-orderstructure preserving graph neural network(HOSP-GNN) can further explore the richstructure of the samples to predict the label of the queried data on graph that enablesthe structure evolution to explicitly discriminate the categories by iteratively updat-ing the high-order structure relationship (the relative metric in multi-samples,insteadof pairwise sample metric) with the manifold structure constraints. HOSP-GNN cannot only mine the high-order structure for complementing the relevance between sam-ples that may be divided into the different task in meta-learning, and but also generatethe rule of the structure updating by manifold constraint. Furthermore, HOSP-GNNdoesn’t need retrain the learning model for recognizing the new classes, and HOSP-GNN has the well-generalizable high-order structure for model adaptability. Experi-ments show that HOSP-GNN outperforms the state-of-the-art methods on supervised and semi-supervised few-shot learning in three benchmark datasets that are miniIma-geNet, tieredImageNet and FC100.

小样本学习能够通过元学习的相似度度量学习先验知识和查询数据之间的潜在结构信息,来构建判别模型,用于区分只有少量标记样本的新类。现有的方法大多都是对任务内的样本间的相似度关系进行建模,对模型进行泛化来识别新类。但是不同任务之间的度量标准不同,因此不同任务之间的样本间的关系难以考量。相比之下,本文提出的HOSP-GNN模型能够更进一步挖掘样本间丰富的结构,来预测图上查询数据的标签,从而使结构演化能够通过迭代更新模型来明确区分类别,具有流形结构的约束(乱吹)。HOSP-GNN不仅能够挖掘高阶结构来补充样本之间的相关性,这些样本在元学习中可能被划分到了不同任务中,还能生成流形约束下的结构更新规则。另外,HOSP-GNN不需要重新训练就能用于新的类别,而且HOSP-GNN具有well-generalizable高阶结构,模型自适应性更好。miniImageNet、tieredImageNet和FC100三个数据集上的实验表明作者的方法在全监督和半监督小样本学习任务上的性能要优于当前最先进方法。

1.2 本文工作

1.2.1 背景

利用在大规模标记数据集上训练的基于深度学习的判别模型,视觉内容的识别和理解取得了很大进展。事实上,有两个原因限制了深度学习方法在新类上的学习效率:一是大规模数据集上人工标记成本过高,二是新类上的少量样本不足以支撑判别模型的训练。因此如何在只有少量样本的新类上学习判别模型仍然具有很大挑战。为了解决这个问题,受人类视觉系统的启发,即人类只需要少量样本通过feature learning或者meta-learning就能学会判别一个新的类别,研究人员提出了小样本学习。Feature learning主要强调基于各种可迁移信息来学习特征生成和提取模型,而Meta-learning主要关注于relevance模型,通过episode训练挖掘数据样本之间的共同关系。

元学习在不同任务之间迁移知识,传播潜在的结构信息以提高模型的泛化能力避免过拟合,是当前小样本学习最重要的方向之一。**但是元学习的构建依赖于大规模独立的任务,不同任务之间独立的度量标准导致了不同任务的样本之间难以迁移信息。**尽管现有的方法通过将相同的样本填充到不同的任务中,可以在一定程度上缓解这一差距,但是还是很难在不同任务之间构建相似的度量标准,进行有效的信息迁移和传播。

1.2.2 本文工作

本文作者针对上述讨论的元学习存在的问题,提出了HOSP-GNN模型。作者尝试通过挖掘高阶结构来构建相似的度量标准,并且通过约束数据流形结构来更新样本之间的度量值,实现小样本学习。下图展示了HOSP-GNN和现有的元学习方法之间的差异:

2. 方法

2.1 问题定义

  • CeC_eCnC_n分别表示有大量标记样本的已知类集合和只有少量标记样本的新类集合,$C_e\cap C_n= \emptyset $。

  • De={(xi,yi)yiCe,i=1,...,De}D_e=\{(x_i,y_i)|y_i\in C_e,i=1,...,|D_e|\},其中xix_i表示第i张图片,类别标签为yiy_iDe|D_e|表示集合DeD_e中元素数量。

  • Dn={(xi,yi)yiCn,i=1,...,Dn}D_n=\{(x_i,y_i)|y_i\in C_n,i=1,...,|D_n|\},其中xix_i表示第i张图片,类别标签为yiy_iDn|D_n|表示集合DnD_n中元素数量。

如果新类CnC_n中每个类别只有K个标记样本,则称之为K-shot问题,即Dn=KCn|D_n|=K|C_n|。小样本学习的目标就是从DnD_n学习一个判别模型,能够准确预测测试集DtD_t中数据的类别(来自CnC_n),DnDt=D_n\cap D_t=\emptyset

2.2 基于图神经网络的元学习

元学习的训练阶段通过构建一个任务集合来训练分类器模型,每个任务T={S,Q}\mathcal T=\{S,Q\}包含有标签的支持集SDnS\subseteq D_n和用于测试的查询集QDtQ\subseteq D_t。其中S包含N个类别,每个类别有K个有标签样本,此时称之为N-way-K-shot小样本分类。

在实际应用中,使用只有少量标记样本的DnD_n数据集训练处的分类模型,在DtD_t上难以取得好的分类表现。因此大多数方法都会从DeD_e(有大量有标签样本)中进行数据采样来训练分类模型。一种常用的元学习方法就是episodic training,从DeD_e中进行数据采样来模拟DnD_nDtD_t下的N-way-K-shot分类任务。每个episodic都从DeD_e中采样数据构建任务Tep=(Sep,Qep)\mathcal T_{ep}=(S_{ep},Q_{ep}),称之为N-way-K-shot T查询样本的小样本分类任务。其中Sep={(xi,yi)yiCep,i=1,...,N×K}S_{ep}=\{(x_i,y_i)|y_i\in C_{ep},i=1,...,N\times K\}Qep={(xi,yi)yiCep,i=1,...,N×T}Q_{ep}=\{(x_i,y_i)|y_i\in C_{ep},i=1,...,N\times T\}SepQep=S_{ep}\cap Q_{ep}=\emptyCep=N|C_{ep}|=N。在训练阶段CepCeC_{ep}\in C_e,在测试阶段CepCnC_{ep}\in C_n

在每个episodic,作者构建一个图Gep=(Vep,Eep,Tep)G_{ep}=(\mathcal V_{ep},\mathcal E_{ep},\mathcal T_{ep})来描述样本间的结构特征,其中Vep\mathcal V_{ep}表示顶点集合,Eep\mathcal E_{ep}表示边集合,Tep\mathcal T_{ep}表示图片特征。模型损失如下:

Lep=l=1L(xi,yi)Qepyilog(hWl(f(xi,Wf);Sep,Gep))=l=1L(xi,yi)Qepyilog(y^il)(1)\begin{aligned} L_{ep}&=-\sum_{l=1}^L\sum_{(x_i,y_i)\in Q_{ep}}y_ilog(h_W^l(f(x_i,W_f);S_{ep},G_{ep}))\\ &=-\sum_{l=1}^L\sum_{(x_i,y_i)\in Q_{ep}}y_ilog(\hat y_i^l) \end{aligned}\tag 1

y^il=softmax(ji and cCepeijlδ(yi=c))(2)\begin{aligned} \hat y_i^l=softmax(\sum_{j\neq i\ and\ c\in C_{ep}}e_{ij}^l\delta(y_i=c)) \end{aligned} \tag 2

其中δ\delta是指示函数,yi=cy_i=c时值为1,否则为0。

2.3 高阶结构

在每个元任务中,现有的小样本方法都是采用pairwise的方式计算样本之间的结构关系,根据图中的相似度矩阵生成一个具有唯一度量标准的独立的度量空间。在不同的元任务中,不同的度量标准导致不同样本之间结构关系存在差异,如下图所示:

这种差异影响了模型在新类任务中的分类准确度。为了降低不同任务度量标准的差异,作者尝试通过不可见的潜在联系来获取样本的高阶结构信息。由于样本是在每个独立任务中分别进行标准化的,因此传统的pairwise度量方式不具备一个统一的度量标准。而绝对统一的bench marking难以在不同任务的样本之间构建高阶关系结构。因此作者将任务中的**多样本的相对度量图**定义为高阶关系结构。

相对度量图G^ep=(V^ep,E^ep,Tep)\hat G_{ep}=(\hat{\mathcal V}_{ep},\hat{\mathcal E}_{ep},\mathcal T_{ep}),其中Tep={(xi,yi)(xi,yi)Sep or (xi,yi)Qep,SepQep=,i=1,...,N×(K+T)}\mathcal T_{ep}=\{(x_i,y_i)|(x_i,y_i)\in S_{ep}\ or\ (x_i,y_i)\in Q_{ep},S_{ep}\cap Q_{ep}=\empty,i=1,...,N\times (K+T)\}V^ep={vii=1,...,N×(K+T)}\hat{\mathcal V}_{ep}=\{v_i|i=1,...,N\times(K+T)\}E^ep={eiji=1,..,N×(K+T) and j=1,...,N×(K+T)}\hat{\mathcal E}_{ep}=\{e_{ij}|i=1,..,N\times(K+T)\ and\ j=1,...,N\times(K+T)\}。作者构建一个L层图神经网络来学习边特征eijle_{ij}^l和节点特征vilv_i^l。节点初始特征vi0v_i^0计算方法如下:

ui0=f(xi),i=1,...,N×(K+T)(3)u_i^0=f(x_i),\qquad i=1,...,N\times(K+T)\tag 3

vi0={ui0ui+10,i=1,...,N×(K+T)1,ui0u10,i=1N×(K+T),(4)v_i^0=\left\{ \begin{aligned} &u_i^0-u_{i+1}^0,\quad i=1,...,N\times(K+T)-1, \\ &u_i^0-u_1^0,\qquad i=1N\times(K+T), \end{aligned} \right.\tag 4

其中f()f(·)表示特征提取网络,ui0u_i^0表示节点的原始特征,vi0v_i^0表示在第0层基于ui0u_i^0的相对度量。作者希望基于这些相对度量vilv_i^l构建高阶结构eij1le_{ij1}^l表示第l层节点i和节点j之间的边特征,eij2le_{ij2}^l表示pairwise相似度,eij3le_{ij3}^l表示不相似度。初始值eij0e_{ij}^0计算方法如下:

eij0={[eij10eij20=1eij30=0],yi=yj and (xi,yi)Sep[eij10eij20=0eij30=1],yiyj and (xi,yi)Sep[eij10eij20=0.5eij30=0.5],otherwise(5)e_{ij}^0=\left\{ \begin{aligned} &[e_{ij1}^0||e_{ij2}^0=1||e_{ij3}^0=0],\quad y_i=y_j\ and\ (x_i,y_i)\in S_{ep}\\ &[e_{ij1}^0||e_{ij2}^0=0||e_{ij3}^0=1], \quad y_i\neq y_j\ and\ (x_i,y_i)\in S_{ep}\\ &[e_{ij1}^0||e_{ij2}^0=0.5||e_{ij3}^0=0.5],\quad otherwise \end{aligned} \right.\tag 5

eij10e_{ij1}^0计算方法如下:

eij10=1vi0vj02/kvi0vk02,(xi,yi)SepQep(6)e_{ij1}^0=1-||v_i^0-v_j^0||_2/\sum_k||v_i^0-v_k^0||_2,\quad (x_i,y_i)\in S_{ep}\cup Q_{ep}\tag 6

下图展示了pairwise度量和high-order度量之间的区别:

## 2.4 高阶结构的保留
HOSP-GNN构建一个L层的GNN来更新顶点和边特征,更新方式如下列公式所示: $$ \begin{array}{c} u_{i}^{l}=f_{v}^{l}\left(\left[\sum_{j} \tilde{e}_{i j 1}^{l-1} v_{j}^{l-1}\left\|\sum_{j} \tilde{e}_{i j 2}^{l-1} u_{j}^{l-1}\right\| \sum_{j} \tilde{e}_{i j 3}^{l-1} u_{j}^{l-1}\right], W_{v}^{l}\right) \\ \end{array}\tag 7 $$

vil={uilui+1l,i=1,,N×(K+T)1uilu1l,i=N×(K+T)(8)\begin{array}{c} v_{i}^{l}=\left\{\begin{array}{ll} u_{i}^{l}-u_{i+1}^{l}, & i=1, \ldots, N \times(K+T)-1 \\ u_{i}^{l}-u_{1}^{l}, & i=N \times(K+T) \end{array}\right. \end{array}\tag 8

uilu_i^l通过uil1u_i^{l-1}vil1v_i^{l-1}eijl1e_{ij}^{l-1}计算得到,再计算得到vilv_i^l。其中||表示concatenation操作,e~ijkl1=eijkl1/keijkl1(k=1,2,3)\tilde{e}_{i j k}^{l-1}=e_{ijk}^{l-1}/\sum_ke_{ijk}^{l-1}(k=1,2,3)fvl()f_v^l(·)表示顶点特征更新网络,WvlW_v^l表示第l层的参数。

上面顶点的更新过程中,高阶结构影响下一层节点特征,但是不能有效地逐层传递下去,因此作者对边特征也逐层进行更新。更新方式如下列公式所示:

eˉij1l=fhl(vilvjl2,Whl)eij1l1kfhl(vilvkl2,Whl)eik1l1/keik1l1,(10)\bar{e}_{i j 1}^{l}=\frac{f_{h}^{l}\left(\left\|v_{i}^{l}-v_{j}^{l}\right\|_{2}, W_{h}^{l}\right) e_{i j 1}^{l-1}}{\sum_{k} f_{h}^{l}\left(\left\|v_{i}^{l}-v_{k}^{l}\right\|_{2}, W_{h}^{l}\right) e_{i k 1}^{l-1} / \sum_{k} e_{i k 1}^{l-1}},\tag {10}

eˉij2l=fpl(uilujl2,Wpl)eij2l1kfpl(uilukl2,Wpl)eik2l1/keik2l1(11)\bar{e}_{i j 2}^{l}=\frac{f_{p}^{l}\left(\left\|u_{i}^{l}-u_{j}^{l}\right\|_{2}, W_{p}^{l}\right) e_{i j 2}^{l-1}}{\sum_{k} f_{p}^{l}\left(\left\|u_{i}^{l}-u_{k}^{l}\right\|_{2}, W_{p}^{l}\right) e_{i k 2}^{l-1} / \sum_{k} e_{i k 2}^{l-1}}\tag {11}

eˉij3l=(1fpl(uilujl2,Wpl))eij3l1k(1fpl(uilukl2,Wpl))eik3l1/keik3l1,(12)\bar{e}_{i j 3}^{l}=\frac{\left(1-f_{p}^{l}\left(\left\|u_{i}^{l}-u_{j}^{l}\right\|_{2}, W_{p}^{l}\right)\right) e_{i j 3}^{l-1}}{\sum_{k}\left(1-f_{p}^{l}\left(\left\|u_{i}^{l}-u_{k}^{l}\right\|_{2}, W_{p}^{l}\right)\right) e_{i k 3}^{l-1} / \sum_{k} e_{i k 3}^{l-1}},\tag {12}

eijl=eˉijl/eˉijl1(13)e_{ij}^l=\bar e_{ij}^l/||\bar e_{ij}^l||_1\tag {13}

其中fhl()f_h^l(·)表示计算高阶度量的网络,fplf_p^l表示计算pairwise度量的网络,WhlW_h^lWplW_p^l分别表示这两个网络的参数。

根据manifold learning和structure fusion,数据从一个空间映射到另一个空间时,要想保留结构信息,可以通过最小化这两个空间度量差异来实现。高阶结构信息也遵循这样一个规则,因此作者构建了损失函数LmlL_{ml}来约束模型的优化:

Lml=i,j,lfhl(vilvjl2,Whl)eij1l1+i,j,lfpl(uilujl2,Wpl)eij2l1+i,j,l(1fpl(uilujl2,Whl))eij3l1(9)\begin{aligned} L_{m l}=& \sum_{i, j, l} f_{h}^{l}\left(\left\|v_{i}^{l}-v_{j}^{l}\right\|_{2}, W_{h}^{l}\right) e_{i j 1}^{l-1}+\\ & \sum_{i, j, l} f_{p}^{l}\left(\left\|u_{i}^{l}-u_{j}^{l}\right\|_{2}, W_{p}^{l}\right) e_{i j 2}^{l-1}+\\ & \sum_{i, j, l}\left(1-f_{p}^{l}\left(\left\|u_{i}^{l}-u_{j}^{l}\right\|_{2}, W_{h}^{l}\right)\right) e_{i j 3}^{l-1} \end{aligned}\tag {9}

这样整个模型的损失函数LtotalL_{total}包含LepL_{ep}LmlL_{ml}两部分:

Ltotal=Lep+λLmlL_{total}=L_{ep}+\lambda L_{ml}

HOSP-GNN的伪代码如下图所示:

整个算法分成四步,第一步初始化节点特征和边特征,第二步逐层更新节点特征,第三步逐层更新边特征,第四步预测查询样本的标签。

3. 实验

3.1 简介

  1. baseline对比实验
  2. state-of-the-art方法对比实验
  3. 半监督小样本学习
  4. 一些消融实验

3.1.1 数据集

miniImageNet,tieredImageNet和FC100

### 3.1.2 **实验设置**

特征提取部分和现有的其他方法一致,采用3×33\times 3的卷积核,1个线性单元,1个batch正则化,1个leakReLU单元。

为了方便和其他方法作对比,作者设定层数L为3。

3.2 baseline对比实验

HOSP-GNN的主要架构是基于EGNN模型构建的,区别在于EGNN只考虑了相似性和不相似性,并且在逐层迭代的时候没有考虑manifold structure constraint,而HOSP-GNN尝试捕捉多个样本(不是两个)之间的高阶结构,将样本间的相似性和不相似性融合到一起,并且在更新过程中增加了约束条件。

作者设置的baseline方法有:EGNN,HOSP-GNN-H-S,HOSP-GNN-H-D,HOSP-GNN-H,HOSP-GNN-S,HOSP-GNN-D。(其中H表示高阶结构关系,S表示相似关系,D表示不相似关系)

## 3.3 半监督实验

和GNN、EGNN、CML-BGNN三种方法进行对比,三种方法的不同之处在于样本结构的描述。GNN采用的时最通用的方式挖掘结构信息,EGNN强调节点特征的更新方式,CML-BGNN关注episode任务的连续信息用于结构补全。

## 3.4 消融实验
  1. 层数

  2. 损失函数

  3. 损失函数中λ\lambda

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信