前言
目前大多数小样本学习器首先使用一个卷积网络提取图像特征,然后将元学习方法与最近邻分类器结合起来,以进行图像识别。本文探讨了这样一种可能性,即在不使用元学习方法,而仅使用最近邻分类器的情况下,能否很好地处理小样本学习问题。
本文发现,对图像特征进行简单的特征转换,然后再进行最近邻分类,也可以产生很好的小样本学习结果。比如,使用DenseNet特征的最近邻分类器,在结合均值相减(mean subtraction)和L2归一化之后,其性能优于目前流行的更复杂的小样本学习方法。使用其它卷积神经网络的特征也能得到同样的结果。
本文的小样本学习器称为SimpleShot,作者希望将最近邻分类重新确立为小样本学习的一个baseline。
实现方法
定义输入图像为,假设给定一个训练集,它包含个base class,共有个带标记的图像,也就是说。再假设给定一个支持集,其中有个novel class,每个类有个样本。那么小样本学习的目标就是构建一个能够准确识别这个novel class的模型,这样的设置称为-shot -way。
在SimpleShot中,使用参数为的卷积神经网络从图像中提取出特征,然后在上进行最近邻分类。在上进行训练,以最小化线性分类器的损失:
损失函数是交叉熵损失,使用SGD对卷积神经网络和线性分类器进行联合训练。
1. 使用最近邻进行识别
一旦在base class上进行训练,我们就可以得到图像的一个特征空间,那么在访问图像的时候就可以直接访问特征空间中的图像,并且在后续操作中可以直接提供特征空间中的图像,这里定义为特征空间中的图像。那么接下来的最近邻分类就是在这个空间中进行的。
-
在one-shot情况下,,这里的是novel class 中的图像,而是中的图像。然后通过最近邻方法就将最相似的支持集图像的标签分配给测试集图像:
-
在multi-shot情况下,首先计算中每个类的平均特征向量,并将每个平均特征向量作为该类的one-shot样本,接下来的操作和one-shot中的一样。
2. 特征转换
这应该是最重要的一部分了,但整个方法又非常简洁。本文使用欧氏距离作为最近邻分类的距离度量,然后接下来仅考虑了两种特征转换方式,它们虽然很简单,但对SimpleShot小样本学习器的准确性产生了积极的影响。
-
Centering。计算base class的平均特征向量为:
然后从一个特征向量中减去这个平均特征向量:
这就是centering操作,也就是均值相减,它不会改变特征向量之间的欧氏距离,但是当它与L2归一化相结合之后,模型会变得更有效率 -
L2归一化(L2N)。给定一个特征向量,将其归一化为具有单位的范数:
上图说明了在使用最近邻方法处理小样本学习时的特征转换的重要性。其中UN是未进行归一化,L2N是L2归一化,CL2N是中心L2归一化,可以看到,CL2N特征比UN特征的性能要好,说明特征转换对小样本学习来说是非常重要的。
结论
本文主要分析了最近邻分类器中的特征转换对小样本学习的重要性,文中提到的特征转换是centering和L2归一化的结合,并且它确实能提升特征表示的质量,从而提升小样本学习的性能,并且这种方法与目前的一些小样本学习方法相比还是比较简洁的,因为它没有用到元学习。