论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》

核心思想

  本文提出一种基于图神经网络的小样本学习算法(DPGN)。先前基于图神经网络的小样本算法通常将每个样本当作一个结点,然后通过结点之间的关系,来推导出未知结点的类别。本文不仅关心样本与样本之间的关系,而且关注样本的分布之间的关系。本文提出了一个双图神经网络模型,一个图用于描述样本(PG),一个图用于描述分布(DG)。PG通过聚合每个样本和其他所有样本之间的关系来得到DG,DG又利用每对样本分布之间的关系来优化PG,这种循环信息传递关系将实例级别和分布级别的关系融合起来。本文提出模型的整体流程如下图所示
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
  Glp=(Vlp,Elp)G_l^p=(V_l^p,E_l^p),表示第ll代样本图PG,Vlp={vl,ip}V_l^p=\left \{v^p_{l,i}\right \}表示节点集合,每个节点表示一个样本的特征向量,Elp={el,ijp}E_l^p=\left \{e^p_{l,ij}\right \}表示边集合,每个边描述两个样本之间的关系;Gld=(Vld,Eld)G_l^d=(V_l^d,E_l^d),表示第ll代分布图DG,Vld={vl,id}V_l^d=\left \{v^d_{l,i}\right \}表示节点集合,每个节点表示一个样本的分布,Eld={el,ijd}E_l^d=\left \{e^d_{l,ij}\right \}表示边集合,每个边描述两个分布之间的关系。
  首先,利用特征提取网络fembf_{emb}提取支持集图像和查询集图像对应的特征向量,并用其初始化第一代样本图的节点v0,ipv_{0,i}^p
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
然后利用结点间的相似性关系来描述边e0,ijpe_{0,ij}^p
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
对于第l>0l>0代的样本图,边的计算方式如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
其中felpf_{e_l^p}表示一个编码网络。得到样本图PG后,接着计算分布图DG,DG的目的是整合每个节点之间的联系,从而得到分布之间的关系,因此DG的每个节点vl,idv_{l,i}^d都是一个NK维(N-way K-shot)的特征向量,第jj行就描述了样本ii和样本jj之间的关系。第一代分布图DG节点v0,idv_{0,i}^d的初始化方式如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
||表示级联操作,yiy_i表示样本ii的标签,如果yi=yjy_i=y_jδ(yi,yj)=1\delta(y_i,y_j)=1,否则为0。对于l>0l>0代的分布图,其节点计算方式如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
其聚合了样本图中每个节点之间的关系el,ijpe^p_{l,ij}和上一代分布图中该节点的信息vl1,idv^d_{l-1,i}P2DP2D表示PG到DG的传播过程。分布图DG中边的计算方式与PG类似,计算过程如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
其表征了每个分布之间的相似性关系。最后,利用DG推导出下一代样本图PG中的节点信息,计算过程如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
D2PD2P表示DG到PG的聚合网络。整个更新过程如下图所示
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
DPGN的整个传播过程可以概括为
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
由样本图的边ElpE_l^p得到分布图的节点VldV^d_l,再得到分布图的边EldE_l^d,进而推导出样本图的节点VlpV^p_{l},最后得到下一代样本的边El+1pE_{l+1}^p完成一个循环过程。

实现过程

网络结构

  特征提取网络可采用任意卷积神经网络结构(ConvNet-4,ResNet-12,ResNet-18等);felpf_{e_l^p}feldf_{e_l^d}均是由两个Conv-BN-ReLU的卷积块构成;P2DP2D是由一个带有ReLU的全连接层构成;D2PD2P由两个Conv-BN-ReLU的卷积块构成。

损失函数

  本文最终预测结果计算方式如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
损失函数包含两个部分:样本损失和分布损失。样本损失计算过程如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
分布损失计算过程如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
总的损失函数为
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》
可以看到是将所有代图模型的结果都进行了损失计算。

算法推广

  本文提出的模型还可以采用半监督学习或直推学习的模式

创新点

  • 提出一种包含分布图和样本图的双图神经网络模型,用于小样本学习任务
  • 建立起分布图和样本图之间的循环传播过程,融合了实例级和分布级的关系

算法评价

  本文提出的图模型相较于先前的小样本学习算法都有明显的效果提升,在有监督学习条件下性能提升5%-12%,在半监督学习条件下性能提升7%-13%,这也展示了图神经网络在小样本学习问题中的巨大潜力,可能取代简单的度量学习方式成为未来研究的主流方向。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》