目录
位置和对象嵌入 Location and Object Embedding
4.2 实现细节 Implementation Details
摘要 Abstraction
仅仅靠外观信息,想要精细地区分细粒度视觉分类往往是不够的。专家使用额外的线索来形成他们的最终决定,例如给定的图像是在何时何地被摄影。在许多在线图像的收集中,文字信息是稳定可获得的,但是在当下的图像分类中却没有被充分使用,因为目前的图像分类更关注单独基于图像的内容来进行预测。
我们提出了一种有效的时空先验,给定地理位置和时间作为条件,估计一个给定的对象分类在该地点出现的概率。我们的先验是根据presence-only观测数据,模型对象的联合分类,以及它们的时空分布和摄影师偏好来训练的。在多种数据集上的表现都显示出,我们的先验和图像分类器预测的联合,在最终的分类表现上取得了很大的进步。
1 介绍 Introduction
正确地将对象分类到不同的细粒度分类是一项具有挑战意义的问题。 与通用的对象识别对比,它可以获得惊喜的特征,这对于区分视觉上相似的分类之间的区分是有本质意义的。然而,如果不能获得图像中可能表现不出的额外的信息,对一些视觉上相似的图像可能无法区分。例如下图的两个物种,在外观上很相似,但是它们却出现在欧洲完全不一样的两个地区。了解一张图像是在哪里摄制的,对于图像中可能包含什么对象来说,是一种强先验。
为了解决这个问题,我们提出了一种时空先验编码,用于对给定类别可能出现的时间和地点进行编码。对于已知的测试位置,先验预测每个类别出现的可能性。
现在一些摄影并在网络上分享的图像,都包含一些额外的元数据信息,例如它们是在哪里摄制的,在何时摄制,是谁捕捉到它们。这些信息不仅能够帮助解决图像分类中一些模糊不清的事例问题,还可以为我们生成不同的对象可能会在何时、何地被观测到的预测。
现在的工作中,使用位置信息来改善分类表现的工作,有将输入数据离散化为时空体积的,有在推理时将整个训练集存储在内存中的,还有结合相应的位置信息训练深度图像分类器的。对原始训练数据进行离散化或存储的方法在内存方面不能很好地扩展,而训练深度图像分类器的方法要求在测试时,位置信息必须出现——但是很多时候并非如此。我们从物种分布模型(SDM)中获得启示,用一个可以和任何图像分类器的预测结合的分离的地理先验来代替模型。不像很多SDM的方法那样,假定可以在训练中获得存在和不存在的信息,我们设定了一个更加通用的假设——只有存在的信息是可获得的。也即,我们知道物种已经在哪里被观测到,但是没有确切的数据证明它们在哪里是找不到的。(这应该就是标题说的Presence-Only的意思)
在本文的工作中,我们做出了如下贡献:
- 一种高效的时空先验模型,联合建模位置、时间、摄影师和多个不同对象类别之间的关系
- 一种新的presence-only训练损失(training loss),能够抓取这些关系
- 实验表明,在具有挑战性的细粒度图像数据集上,将图像分类器的概率预测与先验知识相结合可以显著提高测试时间性能
2 相关工作 Related Work
细粒度图像分类
正确地定义一张图像会出现哪一个可能的细粒度分类,需要理解精细的视觉特征和相关的图像层次分类标签之间的关系。现有的方法已经研究了部分建模、高阶特征交互、注意力机制、噪声网络数据、新的训练损失,以及成对的类别信息。与这些工作正交,我们提出了一种时空先验,可以与任何图像分类器的概率预测相结合,以提高最终的分类性能。
位置和分类
少部分方法探索了使用位置信息来改进图像分类在测试时间上的性能。 Berg提出了一个时空先验,当和图像分类器的输出结合时,能够提升鸟类分类的准确度。他们的方法将位置和时间离散化到时空块,使用一个自适应的核密度估计器来表示每个物种独立的分布。同样在预测生物物种的出现,Wittich等人评估了不同的基于最近邻的查找策略,用于在地理标记的观测训练集中检索最相关的实例。从内存需求的角度来看,这些方法是效率低下的,因为这些方法需要将整个数据集或者离散的版本保存在内存上。现有的公民科学数据存储库可以包含数以千万计的观测数据,这使得它们的存储和检索容量大得令人望而却步。选择正确的离散化是一种挑战,不正确的选择会明显影响到最终的表现。我们的方法的一个关键的好处是,不需要离散化。
Tang等人探索了不同的特征编码,以此在训练时将位置信息直接包含到深度神经网络中。这包括原始位置特征、人口普查的统计信息、用户提供的哈希tag、以及地理地图特征。他们的方法的缺点是,他们假定位置信息在测试时出现,以及所有的需要的特征都可以根据给定的测试位置信息进行计算得出。此外,他们不能使用那些没有关联图像的位置信息。他们仍然需要在新的位置数据被收集到时,约束整个模型。对此,我们提出了一种高效的时空先验模型,可以联合多种对象类的时空分布进行建模,可以独立于图像分类器进行训练。
时空分布模型
我们的目标是估计一组对象类别的时空分布。与此相关的是,有大量文献探索了用于估计生物标本在地理空间和时间上分布的模型。这被称为物种分布模型或环境生态位模型。大体上,这些方法可以分为两组,一组使用presence-absence数据,另一组使用presence-only数据。
在一个给定的地点做presence-absence观测,要求预先确定的感兴趣的物种集合中的每一个物种在该采样事件中被确认为存在或不存在。实际上,这种数据的收集是很艰巨的,因为它需要在调查上付出很大的努力,来证明一个物种很高程度上确定不存在。然而,一旦这些数据被收集到,它就可以与标准的有监督分类法结合,例如逻辑回归、概率回归、高斯过程、决策树,以及神经网络等等。Presence-absence数据也和传统的多标签学习兼容。最近,深度模型被应用于这个问题,以便联合模拟不同物种的位置偏好和人类采样偏差。
与之对比,presence-only观测只要遇到感兴趣的对象,就可以记录下来——不需要证明它不存在。虽然Presence-Only数据更容易收集,对于“absence”信息的缺失也使得它难以建模。这种局限性可以使用以下三种典型方法中的一种来解决。
- 产生“伪负”,在上面的presence-absence方法中选择一种应用。由于没有真正的负面信息可用,这些方法随机抽样一组位置,并假设这些位置是不存在的。
- 第二种常用的方法是,在presence-only数据上训练一个高度正则化的模型。例如:通过拟合一个最大熵分布或低秩模型,迫使模型来解释已被观测到的数据或者其他地方不确定的数据。
- 第三种也是和我们的工作最相关的一种,有一些使用额外信息的方法,例如给定物种的可检测性,或摄影师的拍摄习惯等。
和许多经典的时空分布建模方法不同,在本文工作中,我们为每个感兴趣的类,使用一个神经网络摊销计算,联合学习一种持续性的时空先验。和从前的深度分布模型对比,我们不要求presence-absence数据或额外的环境特征作为输入。我们代替使用在线图像库中存在的结构,例如那些公民科学家们收集的图像库,来联合建模对象、它们的位置和摄影师的偏好。
3 方法 Methods
首先概述我们的时空先验模型,它模拟了一组对象类别和摄影师的地理和时间分布。在训练中,我们假定我们获得了一个元组,其中是一张图像,是对应的类别标签,表示图像摄制的位置(经度和纬度)和时间,是各自的信息,即捕捉这张图像的摄影师。请注意,位置信息不需要随图片一起被捕获到。只要不相关的图像和位置数据集包含相同的类别,就可以从它们中组合而成。
在测试时,给定一张图像,以及它是在何时何地摄制,我们需要估计的是它包含哪种类别,即。一种方法是像文献[5]那样对联合分布进行建模,但是这需要位置信息在测试期间始终是可获得的。另一种方法是受[5]启发,我们可以将信息合并为贝叶斯先验。如果我们假定给定y,和条件独立,那么:
我们假定一个统一的先验,。实际上一张图像中可能包含和类别标签不相关的位置信息,例如背景,但是我们假定因式分解是有效的。通过以这种方式分解分布,我们可以分别表示图像分类器,以及时空先验。注意,在训练时,我们假定我们不知道任何p(摄影师)的信息。在本文工作中,我们把我们的注意力放在表示上。对于,我们可以使用任何产生概率输出的辨别模型来获得,例如卷积神经网络。
Present-Absence Loss
在对图像分类器的时空先验数据进行独立建模时,我们的训练数据是以的形式来表示的。在理想情况下,我们可能会拥有完整的信息,包括给定的分类在何时何地被观测到存在和观测到不存在。接下来代替
, 每个时空位置将与二进制多标签向量相关联,其中表示类别是否在地点被观测到存在。公式最终转化为一个标准的多标签学习问题,使我们能够通过求解:
其中我们定义,由参数化。然而如前所述,在现实世界中获取presence-absence信息既困难又耗时。
Present-Only Loss
在这项工作中,我们将探索更具挑战性的presence-only,其中每个时空位置是与表示被观测的类别的单一标签相关联的。我们有一个只有一个确定项的标签向量,即对于某个C来说,,余下的项是未知的。在这个设定下,等式4可以被写作:
其中,表示第个训练示例的absence,表示相应的观测类别。现在的问题变成了如何选择。
一种常见的表示的方法是通过从某些参数分布中随机采样absence数据来生成“伪负”。例如,可以设置:
其中是一个随机选择的时空位置,,以及。隐含的假设是,每个类别(无论是人为的还是自然发生的)都发生在相对较小的一个子集中,所以一个类别在随机选择的位置出现的概率也很小。在这个假设成立的范围内,这些伪负可能是有效的。
另一种方法是,在其他类别的presence数据出现的位置和时间上对absence情况进行抽样。这种情况下,我们仍像等式(6)那样设置,但是从正面的出现位置中抽样负数据,即,这使训练偏向于包含有效数据的区域。
3.1 我们的方法 Our Approach
在这一节中,概述我们是如何建模和训练我们的时空先验的。
位置和对象嵌入 Location and Object Embedding
在许多情况下,不同的对象不会在给定的时空位置独立出现。已知对象A的出现,可能会提供一些在同一地点和时间,有关B的presence或absence的信息。相似地,不同的时空位置也不是独立的,它们可能会分享一些共性。我们利用这种结构来编码对象和时空位置的低维嵌入。
从[11]中得到启发,我们将我们的时空先验建模为 。在这里的是一个多层的全连接神经网络,可以将一个时空位置映射到一个维的嵌入向量。表示一个对象嵌入矩阵,其中每列都代表一个不同的类别。计算的积,得到一个C维向量,其中每个元素表示时空位置与类别的紧密程度。直觉是,我们在一个共享的嵌入空间中表示时空位置和对象类别,如果可能出现在位置,则位置和对象的嵌入之间的内积很大。最后,是一种按条目进行的sigmoid操作,以确保生成的预测在[0,1]范围内。
摄影师嵌入 Photographer Embedding
在在线图像的收集中,我们可以在训练中获得一些额外信息,例如捕捉这张图像的摄影师。想要知道为什么这个信息是有价值的,那么就考虑一下接下来的这个例子。
假设一位摄影师来到了位置,没有报告对象。如果从来没有拍摄过一张与对象相像的照片,那么这个“无报告“带给我们的信息很少。然而,如果摄影师有过报告类似对象的类别的历史,那么这就构成了可能在那个位置不存在的弱证据。因此,基于提供这些信息的个人,我们可以用不同的方法解释同样的presence-only信息。
(也就是,摄影师p来到x这个地方,他说“x这里没有y”,如果他也是第一次来x这个地方,那么他的判断其实没有确切的价值。但如果p曾经报告过一个和y很像的东西,那他的话就比前一种情况更有可信度一些。)
为了捕捉摄影师的偏好,我们通过在训练时学习一个摄影师嵌入矩阵将摄影师嵌入和对象、位置相同的共享嵌入空间。与不同的对象类别一样,摄影师可能对特定的位置和时间具有偏好,并与其他摄影师在时空模式上具有相似性。这使我们能够通过给定位置和一个摄影师对于给定对象类别的喜好来表示摄影师偏好。一旦经过训练,在测试时就不需要摄影师,如下图所示:
图2:推断时间。我们的目标是估计某个对象类别y是否在一个输入图像I中存在。在测试时,我们使用附加的表示图像在何时何地被拍摄的时空信息 。
联合嵌入损失 Joint Embedding Loss
我们在训练阶段的目标就是估计参数组,其中指的是位置嵌入网络的权重,是对象的嵌入矩阵,是摄影师嵌入矩阵。我们从约束开始,我们的模型应该是保守的,即如果在训练集中,一个对象类别在时空位置已经被观测到,那么应该接近于1,否则接近于0。这里的指的是的第y列。我们依赖于位置嵌入函数在presence位置之间进行插值。这是保守的,因为它假定一个对象没有被观测到过,那么它是absent的。这是一个非常有力的假设,但它使时空先验在降低来自图像分类器的错误预测的权重方面具有攻击性。
我们的第一个loss鼓励模型去预测在训练集中观测到的对象的presence,同时当它们没有被观测到时,降低它们的可能性的权重:
λ是一个给正面观测加权的超参数,是一个统一的随机时空数据点。接下来,如果p在x处出现(有presence),我们需要摄影师和位置之间的密切程度是比较高的,否则比较低:
我们假定一个摄影师和一个类别之间的密切程度是比较低的,除非摄影师之前曾经观测到它:
最后,为了估计先验知识的参数,我们通过迭代训练集中的每个数据点,将其最大化:
4 实验 Experiment
我们通过在几个包含位置和时间信息的图像分类数据集上的实验表现,来评估我们的时空先验。我们选择图像分类,是因为对于其他领域(例如物种分布模型),获得感兴趣的分类的真实时空分布的准确信息是很有挑战性的。
4.1 数据集 Datasets
在线图像的位置元数据是可以稳定获得的,许多知名的图像分类数据集不包含这样的信息。一些数据集存在位置信息,但只是对于图像的一个子集。然而,包括不同动植物物种图像的数据集可以获得位置、时间和摄影师等信息。 为此,我们在iNaturalist 2017和2018(iNat2017和iNat2018)物种分类数据集上进行实验,其中包含公民科学家收集和注释的图像。它们分别有5089和8142个类。虽然[5]在BirdSnap数据集上评估了它们的位置先验,但作者并未提供所使用的图像和位置的元数据。我们使用原始图像URL从web上重新收集图像和位置数据。尽管数据集包含在北美常见的物种,当我们重新收集图像和位置时,我们发现原始图像来自世界各地,40%是缺失位置信息的。与[5]类似,我们还通过将每个图像与eBird的物种观测相关联,模拟BirdSnap和另一个鸟类细粒度数据集Nabird的位置元数据。我们训练的位置和摄影师都是从eBird 2015中采样,测试数据集是从eBird 2016中获取。BirdSnap和NaBird分别包含北美鸟类中500个和555个不同的物种。最后,我们也在YFCC100M-GEO100(YFCC)上测试了实验表现,YFCC包含100个日常对象类别和相关位置,但未提供日期或摄影师信息。我们使用一种新的划分训练和测试数据集的方式。与其他数据集不同,YFCC中的许多对象类别在地理位置上并不是不同,例如“乐队”、“福特”或“ipod”。
4.2 实现细节 Implementation Details
我们的位置编码是一个全连接的神经网络,由一个输入层、多个剩余层和一个最终输出嵌入层组成。我们将位置编码和摄影师、对象的嵌入进行联合训练,将Adam用于批量大小为1024的30个epoch,使用dropout来防止过拟合。共享的嵌入空间的维度被设置为。当对训练期间的积极实例进行加权时,我们将λ设置为类别数。为了抵消许多数据集的严重不平衡性,我们限制了每个epoch中每个类别的最大数据点数量。我们设置最大数据点数量为100,对于每个epoch,我们为每个类别随机选择一个不同的子集。唯一的例外是YFCC,对数据进行封顶会影响性能。我们网络架构的详细信息见补充资料。
除注明外,在测试时,我们的模型接收三个输入——经度、纬度和一年中的哪一天,指定拍摄感兴趣图像的地点和时间。对于这三个输入特征,我们探索了不同的方式,用于“包装”坐标。即,一个在12月31日进行的观测需要和在1月1日的观测有一个相似的嵌入。同样,我们希望地理坐标环绕地球。为此,对于每个输入的维的,我们取一个映射,为每个维度产生两个数字作为结果。这里我们假定输入的每个维度都被规范化到区间中。
对于图像分类器,我们从图像分辨率为299×299的ImageNet初始化权重开始,为每个数据集微调单独的InceptionV3网络(除非另有说明)。