CVPR Spotlight论文:当零示例学习遇上网络数据
雷锋网 (公众号:雷锋网) AI 科技评论按:本文由美国莱斯大学博士后牛力为 AI 科技评论提供的独家稿件,未经许可不得转载。
细粒度分类是分类问题中一个非常有挑战性的子问题。和传统的粗粒度分类不同,细粒度分类不是区分不同的大类,而是区分一个大类下面的子类,比如不同品种的猫。由于不同子类之间的差异非常微小,所以细粒度分类比粗粒度分类难度更大。并且,为细粒度分类收集训练数据也是一项十分艰巨的任务,原因如下。
首先,一个大类下面往往有大量子类。 据统计,世界上有 14000 种鸟,很难为每一种鸟都收集足够的训练数据。 其次,为子类标注需要专业的知识。 比如标注不同种类的鸟就需要知道每一类鸟的具体细节,比如嘴、翅膀、尾巴的颜色形状等等。大多数人并不具备这种专业知识,因而能做细粒度标注的专家非常稀缺。
由于为细粒度分类收集训练数据异常困难,注定会有很多子类没有对应的训练数据。对于某些种类缺乏训练数据的情况,现有的研究工作主要集中于以下两个领域: 第一,收集弱监督数据,也就是标签不准确的数据 ,比如从网络上获取免费但标签有噪音的数据 (webly supervised learning); 第二,借助类别的语义信息,把知识从有标注数据的种类转移到没有标注数据的种类, 比如零示例学习 (zero-shot learning)。但上述两个领域的研究都有各自的缺陷。具体来说,基于网络数据学习会受到标签噪音以及网络训练数据和测试数据之间分布差异问题的影响,而零示例学习性能不佳且忽视了大量免费可用的网络数据。基于以上观察,我们尝试将基于网络数据学习和零示例学习结合起来用来做细粒度分类,工作发表在 CVPR 2018 (spotlight):「Webly Supervised Learning Meets Zero-shot Learning: A Hybrid Approach for Fine-grained Classification」。
我们的做法如下,先选取一部分子类进行人工标注,然后为剩余的子类从网上下载图片。为了描述方便,我们把人工标注的子类称为标注子类,把利用网络图片的子类称为网络子类。标注子类和网络子类构成了所有的子类。之前提到了网络数据有标签噪音和数据分布差异的问题,而人工标注的子类没有这两个问题。为了解决基于网络数据学习的两个问题,我们借助于类别的语义信息,将知识从标注子类转移到网络子类。类别的语义信息有很多种,包括特征 (attribute) 和词向量 (word vector) 等等。因为特征需要专家进行标注,比较难获取,所以我们使用从免费的维基文本中学到的词向量。
我们方法的流程图如下,给定一个大类,我们为标注子类收集人工标注的精确数据,为剩余的网络子类从网络上下载图片,然后获取所有子类的词向量。借助词向量,我们建立起标注子类和网络子类之间的联系,将知识从标注子类迁移到网络子类,用来解决网络子类存在的标签噪音和数据分布差异问题。同时,我们在训练阶段也使用了无标签的测试图片,用来减小网络训练图片和测试图片在数据分布上的差异。总之,我们的学习模型把所有子类的词向量以及标注子类、网络子类和测试图片的视觉特征作为输入,输出测试图片的种类。
第一步:学习基于标注子类的词典 (dictionary)
我们用标准的词典学习得到基于标注子类的词典。
第二步:从标注子类转移知识到网络子类用来解决网络子类存在的问题
在上面的表达式中,第一项是标准的词典学习,第二项让基于标注子类的词典和基于网络子类的词典接近,也就是把标注子类的知识转移到网络子类,第三项期望测试集上的词向量矩阵是低秩的,因为相同子类测试图片的词向量应该彼此相似,第四项是在网络训练图片上赋予不同的权重以拉近加权网络数据的中心和测试数据的中心之间的距离,也就是减少网络图片和测试图片在数据分布上的差异,第五项是用同样的权重解决标签噪音的问题,注意到我们用group lasso迫使分类损失矩阵的某些行稀疏,也就是强制某些网络图片的分类损失很小。这些分类损失小的网络图片对应着标签准确的图片,相应的权重也会更大,因为他们对训练鲁棒的分类器更重要。同时,我们对权重加了限制条件,希望在限制的搜索空间内找到最优的权重,可以选出标签准确并且离测试图片分布较近的网络图片。上述问题可以通过交替的方式求解,也就是固定其他变量,求解剩下的一个变量。通过求解上述问题,我们可以获得测试数据的词向量。最后,把测试数据的词向量和测试子类的词向量作比较,我们就可以得到测试数据的子类标签。
在实验部分,我们用了零示例学习常用的三个数据库:CUB、SUN和Dogs。对每个数据库,我们把可见子类 (seen categories) 作为标注子类,把未见子类 (unseen categories) 作为网络子类和测试子类。和零示例学习不同的是,我们为未见子类从Flickr下载了网络图片,也就是说为未见子类提供了弱监督的训练数据。所以我们的学习范式可以看成弱监督的零示例学习,或者有额外子类的弱监督学习。以下是我们的实验设定和实验结果。我们比较了只使用网络子类 (web subcategories) 的方法、只使用标注子类 (labeled subcategories)的方法、和二者简单的结合。结果表明,我们的方法相比较基于网络数据学习和零示例学习的简单结合,效果取得了显著的提升,也说明了从标注子类转移知识到网络子类用来解决网络训练数据存在的问题是一套行之有效的方法。
除了定量分析,我们还提供了一些定性分析。记得在我们学习模型的第二步,我们为网络训练图片分配了不同的权重,期望选出标签准确并且离测试图片分布较近的网络图片。接下来,我们拿Dogs数据库举例,从网络训练图片中选出权重最大和最小的几张图片 (我们把权重范围设定在[0, 1.5])。从下图中可以看出我们方法选出的高权重图片都标签准确,并且物体占据图片的中间大部分区域,这也从另一个角度证明了我们方法的有效性。更多细节请参照我们的论文 http://openaccess.thecvf.com/content_cvpr_2018/CameraReady/3280.pdf 。
。