Fine-Grained Visual Categorization via Multi-stage Metric Learning
细粒度视觉分类(FGVC)是指将对象归入从属类而不是基本类。FGVC的一个主要挑战是两个问题的共同存在。1)许多从属类高度相关,难以区分;2)存在较大的类内变化(例如,由于物体的姿势)。本文提出通过距离度量学习(DML)明确地解决上述两个问题。DML通过学习嵌入来解决第一个问题,使来自同一类别的数据点被拉到一起,而来自不同类别的数据点应该被相互推开;它通过允许同一类别的邻居中只有一部分(而不是所有的数据点)需要被拉到一起的灵活性来解决第二个问题。
流行的FVGC的管道包括两个步骤,特征提取步骤和分类步骤。特征提取步骤,有时与分割[1, 7, 24]、部位定位[2, 35]或两者结合[6],是为了提取图像级别的表示,流行的选择包括LLC特征[1]、Fisher向量[14]等。最近的一个发展是在大规模的图像数据集(如ImageNet[26])上训练卷积神经网络(CNN)[18],然后使用训练好的模型来提取特征[12]。
对于分类步骤,许多现有的FGVC方法直接为每个细粒度的类学习一个单一的分类器,使用一比一的策略[1, 2, 7, 35]。显然,这种策略对细粒度类的数量没有很好的扩展性,而FGVC中的下属类的数量可能非常大(例如,在birds11数据集中有200个类)。此外,这种一刀切的方案只是为了解决这两个问题中的第一个问题,即努力分离不同的类而不对类内的变化进行建模。在本文中,我们提出了一种距离度量学习(DML)方法,旨在用一个单一的度量明确地处理这两个共同出现的要求。图1说明了DML如何在FGVC中工作。它学习一个距离度量,将同一类别的相邻数据点拉近,将不同类别的数据点推远。通过在学习指标时改变邻域大小,它能够有效地处理类间和类内变化之间的权衡。有了学习到的度量,一个k-近邻分类器将被应用于寻找测试图像的类别分配。
DML?
尽管已经开发了许多DML的算法[8, 11, 32, 33],但大多数算法仅限于低维数据(即不超过几百个维度),而图像数据的维度通常高于10, 000[1]。实现高维DML的一个直接方法是通过使用原则成分分析(PCA)[32]和随机投影[29]等方法来降低数据的维度。大多数降维方法的主要问题是,它们无法考虑监督信息,因此,降维方法所识别的子空间通常是次优的。直接从原始高维空间中学习度量有三个挑战。
- 大量的约束条件。通常需要大量的训练约束来避免高维DML的过度拟合。训练约束的总数量 三重约束的总数可能达到O(n 3 ),其中n是 例子的数量。
- 计算方面的挑战。DML必须学习一个大小为d×d的矩阵,其中d是数据的维度,在我们的研究中d=134,016。O(d2)的变量数导致了在寻找最优度量方面的两个计算挑战。首先,它导致解决相关优化问题的收敛率较慢[25]。其次,为了确保所学到的度量是正半定义的(PSD),大多数DML算法需要在每次优化迭代时,将中间解投射到PSD锥体上,这是一个复杂度为O(d)的昂贵操作。这是一个昂贵的操作,其复杂度为O(d 3 )(至少是 O(d 2 )).
- 存储限制。简单地保存 O(d 2 )数量的变量在内存中的成本。比如说。 在我们的研究中,需要超过130GB的内存来存储完成的度量,这就给已经很困难的优化问题增加了 这给已经很困难的优化问题增加了复杂性。
在这项工作中,我们提出了一个用于高维DML的多阶段度量学习框架,明确地解决这些挑战。