论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》

核心思想

  本文提出一种基于度量学习的小样本学习算法(TapNet),其特点是设计了一个与任务相关的分类空间,在该空间内进行距离度量,而且每个类别的参考向量Φ\Phi是通过学习更新得到的,而不是根据训练样本的特征向量计算得到的,这与PN和MN算法有明显的不同。整个算法的处理过程如下图所示。
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》
  与所有的采用Episode训练方式的算法一样,训练集包含支持集{(x1,y1),...,(xNc,yNc)}\left \{(x_1,y_1),...,(x_{N_c},y_{N_c})\right \}和查询集{(x^1,y^1),...,(x^Nc,y^Nc)}\left \{(\hat{x}_1,\hat{y}_1),...,(\hat{x}_{N_c},\hat{y}_{N_c})\right \}两部分。整个网络分成三个部分:特征提取网络fθf_{\theta},每个类别参考向量的集合Φ\Phi和映射矩阵MM,用于将特征向量映射到一个与任务相关的分类空间。其中Φ=[ϕ1;...;ϕNc]\Phi=[\phi_1;...;\phi_{N_c}]是一个由参考向量构成的矩阵,每一个行向量对应一个类别。输入图像经过特征提取网络得到特征向量fθ(x^k)f_{\theta}(\hat{x}_k),该类别对应的参考向量为ϕk\phi_k,与其他的度量学习算法直接计算fθ(x^k)f_{\theta}(\hat{x}_k)ϕk\phi_k之间距离的方式不同,本文首先利用一个映射矩阵MM,将其投影到一个与任务相关的分类空间中,得到M(fθ(x^k))M(f_{\theta}(\hat{x}_k))M(ϕk)M(\phi_k),再度量二者之间的欧氏距离,并利用softmax函数将其转化为分类概率,如下式:
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》
  然后利用分类损失对特征提取网络fθf_{\theta}和参考向量的集合Φ\Phi进行更新,将更新后的fθf_{\theta}Φ\Phi用于下一个Episode的训练中。测试时,训练得到的fθf_{\theta}Φ\Phi是固定的,但映射矩阵MM会根据任务进行自适应调整,然后根据距离度量结果进行类别预测。
  最后介绍一下映射矩阵MM是怎样构建的,该矩阵的目的是希望将特征向量fθ(x^k)f_{\theta}(\hat{x}_k),和参考向量ϕk\phi_k映射到一个分类空间中,而且在这个空间里特征向量fθ(x^k)f_{\theta}(\hat{x}_k)与对应类别的参考向量ϕk\phi_k之间的距离尽可能的小,而与其他类别的参考向量ϕl(lk)\phi_l(l\neq k)之间的距离尽可能的大。作者利用一个简单的不需要训练的线性映射就解决了该问题,首先在考虑到其他类别参考向量的影响后,得到一个修正后的类别kk对应的参考向量ϕ~k\tilde{\phi}_{k},计算过程如下
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》
然后,用ckc_k表示类别kk的样本特征向量的平均值,就可以计算ϕ~k\tilde{\phi}_{k}ckc_k的偏差值εk\varepsilon_k,计算过程如下
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》
那么映射矩阵MM的目标就是让将映射后的偏差值为0,即εkM=0\varepsilon_kM=0。换句话说MM就是偏差εk\varepsilon_k的一个线性零解(linear nulling)
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》
式中DD表示MM的列数,求解上述问题的一个方法就是计算εk\varepsilon_k的奇异值分解:
εk=UΣVT\varepsilon_k=U\Sigma V^T式中Σ\Sigma是一个对角矩阵,且除了对角线上的前NcN_c个值之外其他的值均为0,因此只要取右奇异值矩阵VTV^T的从第Nc+1N_c+1列到第Nc+DN_c+D列共DD个列向量,其构成的矩阵MM就是所求。并且只要偏差εk\varepsilon_k的长度LNc+DL\geq N_c+D,映射矩阵MM就一定存在。

实现过程

网络结构

  特征提取网络采用ResNet-12结构。

损失函数

  损失是根据距离度量结果计算的,计算方法如下
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》

训练策略

  整个网络的训练策略如下图所示
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》

创新点

  • 利用映射矩阵将特征向量和参考向量映射到一个与任务相关的分类空间中,其能够根据任务中包含的样本类别进行自适应的调整、
  • 参考向量利用分类损失进行更新,而与输入样本无直接关系

算法评价

  本文算是对度量学习的进一步探索吧,与PN,MN相比他的变化主要有两点,第一不是直接在特征空间中进行距离度量,而是设计了一个与任务相关的分类空间,三种算法的对比如下
论文阅读笔记《TapNet: Neural Network Augmented with Task-Adaptive Projection for Few-Shot Learning》
其次,每个类别对应的参考向量,并不是PN算法中通过求平均值的方法进行计算,而是由一个初始值通过逐步迭代更新的方式来计算,文中并没有介绍初始值选择的方式,可能是一个随机初始化的方式。此外作者也在文中提到,本文的方法其实与基于外部记忆的MANN算法有些相似,本文中映射矩阵MM其实就扮演了MANN中外部记忆矩阵MeM_e的角色。

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