Improved Few-Shot Visual Classification 论文笔记

前言

小样本学习方法主要可以分为两种形式:最近邻方法和embedding方法。在embedding方法中,通常是先将图像通过非线性映射到embedding空间中,然后在embedding空间中根据预设的距离度量来进行最终的最近邻分类,原型网络采用的就是这种方法。

人们发现,在经过灵活的非线性映射之后,得到的embedding基本可以适应任何距离度量,因此度量的选择似乎变得无关紧要。然而本文发现,度量的选择还是相当重要的。 在原型网络中,作者分析了文中所使用的距离函数,以证明使用样本均值作为原型是合理的,并且作者认为在所有的距离函数中,Bregman散度是最合适的,不过原型网络仅选用Bregman散度中的一个实例——平方欧几里得距离。但是,选择欧几里得度量会涉及两个错误的假设:

  1. 特征维度不相关;
  2. 具有一致的协方差。

此外,欧氏距离对于类内样本相对于原型的分布不敏感。本文发现,对这种分布进行建模是提升性能的关键。

本文的贡献如下:

  • 使用马氏距离作为度量,通过实验发现性能相比CNAPS提升了6.1%;
  • 作者发现即使在小样本分类的情况下,也能够估算出马氏距离;
  • 提出了一种新的Simple CNAPS结构,它从原始CNAPS中移除了788485个参数,并用固定的,不需要学习的确定性协方差和马氏距离来替代它们;
  • 本文还发现足够复杂的CNN特征提取器可以适应最终的任何度量标准。

方法实现

首先对小样本图像分类做一个说明。假设有一个大规模带标记数据集D={(xi,yi)}i=1ND=\lbrace(x_i,y_i)\rbrace^N_{i=1},其中xix_iyiy_i分别是图像和标签。那么从DD中就可以构建一个专门用于分类任务的大规模数据集DτDD^{\tau} \in D,这里τZ+\tau \in \Bbb Z_{+}定义的是一个分类任务。然后定义支持集Sτ={(xi,yi)}i=1NτS^{\tau}=\lbrace(x_i,y_i)\rbrace^{N^{\tau}}_{i=1}和查询集Qτ={(xi,yi)}i=1NτQ^{\tau}=\lbrace(x_i^*,y_i^*)\rbrace^{N^{*\tau}}_{i=1}Dτ=SτQτD^{\tau}=S^{\tau} \bigcup Q^{\tau}x1,xiRDx_1,x_i^* \in \Bbb R^D是向量化的图像,yi,yi{1,...,K}y_i,y_i^* \in \lbrace1,...,K\rbrace是类标签。那么最终的目标就是找到能使Er[Qτp(yifθ(xi,Sτ))]\Bbb E_r[\prod _{Q^{\tau}}p(y_i^*|f_{\theta}(x_i^*,S^{\tau}))]最大化的分类器fθf_{\theta}参数θ\theta

在实际构建DτD^{\tau}时,需要对支持集中的图像标签和查询集中的图像标签之间的关系上增加一个约束。比如,查询集标签是支持集标签的子集,这样的话,分类任务就可以看成是为查询集中的图像正确分配支持集中的某个类别。并且,在这种情况下,支持集就可以看作是训练数据。

1. CNAPS

CNAPS由两部分组成:特征提取器和分类器,它们都是task-adapted,利用支持集训练出自适应模块来实现这种adaption。
在这里插入图片描述
上图是CNAPS中特征提取器的结构,它包括了一个ResNet网络,ResNet网络的每一层的特征都会通过FiLM层的参数{γj,βj}j=14\lbrace \gamma_j,\beta_j \rbrace^4_{j=1}进行scale和shift,而参数{γj,βj}j=14\lbrace \gamma_j,\beta_j \rbrace^4_{j=1}是由特征自适应模块ψϕf\psi^f_{\phi}基于支持集样本SτS^{\tau}提供的。

ψϕf\psi^f_{\phi}包括两个阶段:

  • 首先由任务编码器(task encoder)gϕ()g_{\phi}(\cdot)生成任务表示gϕ(Sτ)g_{\phi}(S^{\tau})
  • 然后将gϕ(Sτ)g_{\phi}(S^{\tau})传递给ψϕj\psi^j_{\phi},从而为块jj生成FiLM参数{γj,βj}\lbrace \gamma_j,\beta_j \rbrace

一旦设置好FiLM的参数,那么这个特征提取器就实现了task-adapted,定义fθτf_{\theta}^{\tau}表示适应了任务τ\tau的特征提取器。

接下来说一下CNAPS中的分类,分类是通过一个task-adapted线性分类器完成的,其中查询集图像xix^*_i的类别概率是通过softmax(Wfθτ(xi)+b)(Wf_{\theta}^{\tau}(x^*_i)+b)计算的。通过分类器自适应网络ψϕc\psi^c_{\phi}来计算权值WW和偏差bb[W,b]=[ψϕc(μ1)ψϕc(μ2)...ψϕc(μK)]T[W,b]=[\psi^c_{\phi}(\mu_1) \psi^c_{\phi}(\mu_2)...\psi^c_{\phi}(\mu_K)]^T,对于任务中的每个类kkψϕc\psi^c_{\phi}根据类均值μk\mu_k产生分类权重中的相应行。类均值μk\mu_k是通过对类kk的支持集样本的特征向量做平均池化得到的,而特征向量是通过自适应特征提取器fθτf^{\tau}_{\theta}提取得到的。下图是CNAPS中分类器的结构:
在这里插入图片描述

2. Simple CNAPS

在Simple CNAPS中,特征提取器的结构和CNAPS中的相同,但分类器结构是不同的。在Simple CNAPS中,直接使用马氏距离dkd_k来计算类别概率:
在这里插入图片描述
其中,
在这里插入图片描述
QkτQ^{\tau}_k是特定于任务τ\tau和类kk的协方差矩阵。由于事先并不清楚QkτQ^{\tau}_k的值,因此需要根据任务τ\tau中支持集的feature embedding来对QkτQ^{\tau}_k进行估计。因为支持集中的样本数量远远小于特征空间的维度,因此使用一种正则化的估计方法:
在这里插入图片描述
上式是通过class-within-task协方差矩阵kτ\sum^{\tau}_k,和all-classes-in-task协方差矩阵τ\sum^{\tau}进行凸组合得到的。

对于kτ\sum^{\tau}_k,通过对所有xiSkτx_i \in S^{\tau}_k的feature embedding fθτ(xi)f_{\theta}^{\tau}(x_i)进行估计得到,其中SkτS^{\tau}_kSτS^{\tau}中类标签为kk的样本,也就是说kτ\sum^{\tau}_k任务中某一类的协方差矩阵
在这里插入图片描述
如果该类中的支持集样本数为1,即Skτ=1|S^{\tau}_k|=1,那么就将kτ\sum^{\tau}_k定义为合适大小的零矩阵。

对于τ\sum^{\tau},它的估计方式和kτ\sum^{\tau}_k一样,只不过它使用的是支持集中的所有样本xiSτx_i \in S^{\tau},也就是说τ\sum^{\tau}任务中所有类的协方差矩阵

对于任务τ\tau及类kk的协方差来说,采用一种确定的方法来计算它的权值:
在这里插入图片描述

  • 在single-shot情况下,Qkτ=0.5τ+βIQ^{\tau}_k=0.5\sum^{\tau}+\beta I,也就是说相对于任务协方差τ\sum^{\tau}增加了正则化参数β\beta的强度。当Skτ=2|S^{\tau}_k|=2时,λkτ\lambda^{\tau}_k变成了2/32/3,而QkτQ^{\tau}_k中只有部分是class-level协方差;
  • 在high-shot情况下,λkτ\lambda^{\tau}_k趋向于1,而QkτQ^{\tau}_k中基本都是class-level协方差。

这也说明,当shot的数量增加时,估计的class-within-task协方差的值也越好,从而使得QkτQ^{\tau}_k在开始时越接近kτ\sum^{\tau}_k。本文也考虑过将λkτ\lambda^{\tau}_k设置成可学习的参数,但发现这种固定形式得到的结果是最好的。下图是Simple CNAPS中分类器的结构:
在这里插入图片描述

3. 一些理论

式(1)中类别概率的计算对应于一个等权指数族混合模型(equally-weighted exponential family mixture model),其中指数族分布是通过Bregman散度来确定的:
在这里插入图片描述
式(2)中的平方马氏距离是通过凸函数F(x)=12xT1xF(x)=\frac{1}{2}x^T\sum^{-1}x生成的,它对应于多元正态指数族分布(multivariate normal exponential family distribution)。那么式(1)就可以看成是高斯混合模型的"responsibilities":
在这里插入图片描述
那么这样就暴露出欧式距离的一个问题,如下图所示,欧式距离对应的是Qkτ=IQ^{\tau}_k=I时的平方马氏距离,它假设每个聚类是围绕类均值μk\mu_k进行单位正态分布的,如(a)所示;而平方马氏距离在计算到聚类中心的距离时,它考虑的是聚类的协方差:
在这里插入图片描述


结论

本文是在CNAPS的基础上做出了一点修改,用马氏距离作为距离度量,计算类别概率并进行分类,取代了CNAPS中task-adapted分类器,本文的设计更加的简洁,并且也取得了很好的效果。作者认为马氏距离甚至可以应用到零样本学习中,在以后的研究工作中也可以探索一下其它Bregman散度的有效性。

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