前言
小样本学习方法主要可以分为两种形式:最近邻方法和embedding方法。在embedding方法中,通常是先将图像通过非线性映射到embedding空间中,然后在embedding空间中根据预设的距离度量来进行最终的最近邻分类,原型网络采用的就是这种方法。
人们发现,在经过灵活的非线性映射之后,得到的embedding基本可以适应任何距离度量,因此度量的选择似乎变得无关紧要。然而本文发现,度量的选择还是相当重要的。 在原型网络中,作者分析了文中所使用的距离函数,以证明使用样本均值作为原型是合理的,并且作者认为在所有的距离函数中,Bregman散度是最合适的,不过原型网络仅选用Bregman散度中的一个实例——平方欧几里得距离。但是,选择欧几里得度量会涉及两个错误的假设:
- 特征维度不相关;
- 具有一致的协方差。
此外,欧氏距离对于类内样本相对于原型的分布不敏感。本文发现,对这种分布进行建模是提升性能的关键。
本文的贡献如下:
- 使用马氏距离作为度量,通过实验发现性能相比CNAPS提升了6.1%;
- 作者发现即使在小样本分类的情况下,也能够估算出马氏距离;
- 提出了一种新的Simple CNAPS结构,它从原始CNAPS中移除了788485个参数,并用固定的,不需要学习的确定性协方差和马氏距离来替代它们;
- 本文还发现足够复杂的CNN特征提取器可以适应最终的任何度量标准。
方法实现
首先对小样本图像分类做一个说明。假设有一个大规模带标记数据集 D = { ( x i , y i ) } i = 1 N D=\lbrace(x_i,y_i)\rbrace^N_{i=1} D={ (xi,yi)}i=1N,其中 x i x_i xi和 y i y_i yi分别是图像和标签。那么从 D D D中就可以构建一个专门用于分类任务的大规模数据集 D τ ∈ D D^{\tau} \in D Dτ∈D,这里 τ ∈ Z + \tau \in \Bbb Z_{+} τ∈Z+定义的是一个分类任务。然后定义支持集 S τ = { ( x i , y i ) } i = 1 N τ S^{\tau}=\lbrace(x_i,y_i)\rbrace^{N^{\tau}}_{i=1} Sτ={ (xi,yi)}i=1Nτ和查询集 Q τ = { ( x i ∗ , y i ∗ ) } i = 1 N ∗ τ Q^{\tau}=\lbrace(x_i^*,y_i^*)\rbrace^{N^{*\tau}}_{i=1} Qτ={ (xi∗,yi∗)}i=1N∗τ, D τ = S τ ⋃ Q τ D^{\tau}=S^{\tau} \bigcup Q^{\tau} Dτ=Sτ⋃Qτ, x 1 , x i ∗ ∈ R D x_1,x_i^* \in \Bbb R^D x1,xi∗∈RD是向量化的图像, y i , y i ∗ ∈ { 1 , . . . , K } y_i,y_i^* \in \lbrace1,...,K\rbrace y