论文阅读笔记《Adaptive Subspaces for Few-Shot Learning》

核心思想

  本文提出一种基于度量学习的小样本分类算法(DSN)。作者引入了子空间的概念,为每种类别都寻找到一个适合的子空间,然后在子空间中进行距离度量,并预测类别。首先作者介绍了几种常见的基于度量学习的小样本分类器,其分类方式如下图所示
在这里插入图片描述
(a)成对的分类器,分别计算查询样本对应的特征向量和每个支持样本对应的特征向量之间的距离,然后按照最近邻的思想预测类别,如Matching Network。
(b)原型分类器,为支持集中每个类别计算出一个原型(每个类别所有样本特征向量的平均值),然后根据查询样本的特征向量与各个类别原型之间的距离预测类别,如Prototypical Network。
(c)非线性二元分类器,利用神经网络学习到一个非线性的距离度量函数,如Relation Network。
(d)子空间分类器,为每个类别计算出一个特征空间的子空间,然后将查询样本的特征向量投射到子空间中,在子空间中进行距离度量,并预测类别,如本文的算法(DSN)。DSN的处理过程如下图所示
在这里插入图片描述
  首先,利用特征提取器fΘf_{\Theta}将输入图像映射到特征空间中得到对应的特征向量fΘ(xi)f_{\Theta}(x_i),然后通过平均的方式计算每个类别cc对应的特征向量均值μc\mu_c,计算过程如下
在这里插入图片描述
对于每个类别cc都可以得到集合X~c=[fΘ(xc,1)μc,...,fΘ(xc,K)μc]\tilde{X}_c=[f_{\Theta}(x_{c,1})-\mu_c,...,f_{\Theta}(x_{c,K})-\mu_c],对X~c\tilde{X}_c进行奇异值分解(SVD)得到X~c=UVT\tilde{X}_c=U\sum V^T,然后选取UU中前nn个维度得到截断矩阵PcP_c,由X~c\tilde{X}_c得到子空间PcP_c的过程其实就是截断奇异值分解(TSVD),其与主成分分析PCA非常类似,是一种数据降维的方法。得到每个类别对应的子空间PcP_c后,可以计算查询向量fΘ(q)f_{\Theta}(q)与每个类别之间的距离d(q)d(q),计算过程如下
在这里插入图片描述
式中Mc=PcPcTM_c=P_cP_c^T,最后利用softmax函数计算查询样本属于各个类别的概率pc,qp_{c,q},计算过程如下
在这里插入图片描述

实现过程

网络结构

  特征提取网络采用4层卷积神经网络或ResNet网络

损失函数

  损失函数包含两项:分类损失和正则化项
在这里插入图片描述
第一项分类损失采用分类概率的负对数,是常见的操作;第二项正则化项目的是最大化各个子空间之间的距离,距离度量方式如下
在这里插入图片描述
根据上式可知,为了最大化δp2\delta_p^2,就需要最小化PiPjTF2\left \| P_iP_j^T\right \|_F^2

训练策略

  整个训练过程如下
在这里插入图片描述

算法推广

  本文的方法还可以拓展到半监督训练中,修改μc\mu_c的计算方式如下
在这里插入图片描述
在这里插入图片描述
式中rir_i表示无标签样本

创新点

  • 将特征空间降维到特定的子空间中,并在子空间中进行距离度量
  • 采用TSVD的方法生成子空间

算法评价

  本文对每个类别都计算了特定的子空间,并在子空间中进行距离度量,因此作者称其为自适应子空间(Adaptive Subspaces)。因为每个类别的距离度量过程都与类别相关,因此作者称其为动态分类器(Dynamic Classifier)。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章