论文阅读笔记《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》_第1张图片
   G l p = ( V l p , E l p ) G_l^p=(V_l^p,E_l^p) Glp=(Vlp,Elp),表示第 l l l代样本图PG, V l p = { v l , i p } V_l^p=\left \{v^p_{l,i}\right \} Vlp={vl,ip}表示节点集合,每个节点表示一个样本的特征向量, E l p = { e l , i j p } E_l^p=\left \{e^p_{l,ij}\right \} Elp={el,ijp}表示边集合,每个边描述两个样本之间的关系; G l d = ( V l d , E l d ) G_l^d=(V_l^d,E_l^d) Gld=(Vld,Eld),表示第 l l l代分布图DG, V l d = { v l , i d } V_l^d=\left \{v^d_{l,i}\right \} Vld={vl,id}表示节点集合,每个节点表示一个样本的分布, E l d = { e l , i j d } E_l^d=\left \{e^d_{l,ij}\right \} Eld={el,ijd}表示边集合,每个边描述两个分布之间的关系。
  首先,利用特征提取网络 f e m b f_{emb} femb提取支持集图像和查询集图像对应的特征向量,并用其初始化第一代样本图的节点 v 0 , i p v_{0,i}^p v0,ip
在这里插入图片描述
然后利用结点间的相似性关系来描述边 e 0 , i j p e_{0,ij}^p e0,ijp
在这里插入图片描述
对于第 l > 0 l>0 l>0代的样本图,边的计算方式如下
在这里插入图片描述
其中 f e l p f_{e_l^p} felp表示一个编码网络。得到样本图PG后,接着计算分布图DG,DG的目的是整合每个节点之间的联系,从而得到分布之间的关系,因此DG的每个节点 v l , i d v_{l,i}^d vl,id都是一个NK维(N-way K-shot)的特征向量,第 j j j行就描述了样本 i i i和样本 j j j之间的关系。第一代分布图DG节点 v 0 , i d v_{0,i}^d v0,id的初始化方式如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》_第2张图片
∣ ∣ || 表示级联操作, y i y_i yi表示样本 i i i的标签,如果 y i = y j y_i=y_j yi=yj δ ( y i , y j ) = 1 \delta(y_i,y_j)=1 δ(yi,yj)=1,否则为0。对于 l > 0 l>0 l>0代的分布图,其节点计算方式如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》_第3张图片
其聚合了样本图中每个节点之间的关系 e l , i j p e^p_{l,ij} el,ijp和上一代分布图中该节点的信息 v l − 1 , i d v^d_{l-1,i} vl1,id P 2 D P2D P2D表示PG到DG的传播过程。分布图DG中边的计算方式与PG类似,计算过程如下
在这里插入图片描述
在这里插入图片描述
其表征了每个分布之间的相似性关系。最后,利用DG推导出下一代样本图PG中的节点信息,计算过程如下
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》_第4张图片
D 2 P D2P D2P表示DG到PG的聚合网络。整个更新过程如下图所示
论文阅读笔记《DPGN: Distribution Propagation Graph Network for Few-shot Learning》_第5张图片
DPGN的整个传播过程可以概括为
在这里插入图片描述
由样本图的边 E l p E_l^p Elp得到分布图的节点 V l d V^d_l Vld,再得到分布图的边 E l d E_l^d Eld,进而推导出样本图的节点 V l p V^p_{l} Vlp,最后得到下一代样本的边 E l + 1 p E_{l+1}^p El+1p完成一个循环过程。

实现过程

网络结构

  特征提取网络可采用任意卷积神经网络结构(ConvNet-4,ResNet-12,ResNet-18等); f e l p f_{e_l^p} felp f e l d f_{e_l^d} feld均是由两个Conv-BN-ReLU的卷积块构成; P 2 D P2D P2D是由一个带有ReLU的全连接层构成; D 2 P D2P D2P由两个Conv-BN-ReLU的卷积块构成。

损失函数

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

算法推广

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

创新点

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

算法评价

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

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。

你可能感兴趣的:(深度学习,#,小样本学习)