Zero-shot

什么是Zero-shot

在ZSL中,某一类别在训练样本中未出现,但是我们知道这个类别的特征,然后通过语料知识库,便可以将这个类别识别出来。
概括来说,就是已知描述,对未知类别(未在训练集中出现的类别)进行推理。
Zero-shot_第1张图片

为什么要用Zero-shot

深度学习(deep learning)已经在各个领域取得了广泛的应用,例如在图像分类问题下,其准确率目前可以达到不错的成绩。然而,deep learning是一种data hungry的技术,高的准确率建立在预先给模型“喂了”大量的数据,即,需要大量的标注样本才能发挥作用,大多数方法是通过有标签的训练集进行学习,侧重于对已经在训练中出现过标签类别的样本进行分类。然而在现实场景中,许多任务需要对模型之前从未见过的实例类别进行分类,这样就使得原有训练方法不再适用。因为,现实世界中,有很多问题是没有这么多的标注数据的,或者获取标注数据的成本非常大。所以,我们思考,当标注数据量比较少时、甚至样本为零时,还能不能继续?我们将这样的方法称为小样本学习Few-Shot Learning,相应的,如果只有一个标注样本,称One-Shot Learning,如果不对该类进行样本标注学习,就是零样本学习Zero-Shot Learning.
对样本标注的成本大,存在模型未见过的实例类别
Zero-shot概念的提出源自
Learning to Detect Unseen Object Classes by Between-Class Attribute Transfer

在该文献中指出,该工作的动机:基于数据驱动的算法需要大量的标签样本进行学习,而获取足够数量且合适的标签数据集的成本往往很高。在此之前的算法,需要大量标签数据(监督学习),或至少需要少量的标签数据(半监督学习)。因此,作者希望能提出一种不需要任何目标数据类别信息的对象分类方法。
训练集和测试集中的类别不重叠,但需要建立训练集和测试集之间的联系,实现迁移学习,主要通过建立属性层来实现。

Zero-shot实现基于草图的图像检索

Challenge:

  • 是图像和草图之间的领域差距,其中草图只包含一个物体的轮廓,因此与图像相比,拥有较少的信息。
  • 是草图中存在的巨大的类内差异,这是由于人们倾向于用不同的抽象级别来绘制草图。

学习草图组件和相应图像之间的对齐

Motivations:

  • 基于视觉描述的图像检索(以图搜图)比基于文本的图像检索(以文搜图)具有更强的表达能力,而视觉描述不仅指自然图像,也可以是手绘草图(当自然图像难以获得时,用户可以在触屏设备上简单手绘草图)。SBIR的主要挑战是image和sketch之间的domain gap,sketch只有物体的轮廓,与image相比只有很少的信息。另外,sketch的类内方差大,因为人们在绘制草图时会有不同程度的抽象。因此,为了更好的泛化能力,SBIR模型需要能挖掘sketch和image之间的对齐关系。

  • 但是由于现有的评价方法只是关注类别粒度的检索,而不是形状或属性检索,导致SBIR模型只需要学习sketch到label的映射就能达到较好的性能。基于细粒度的评价方法能缓解此问题,但是它依赖人工标注排序,人力成本高而且会受到主观影响。所以提出在zero-shot场景下的粗粒度检索作为细粒度检索的替代,来避免上述问题。为了达到较好的性能,ZS-SBIR模型需要学会将sketch和image的潜在对齐关系联系起来。而且ZS-SBIR更符合实际场景,模型训练时不可能囊括所有类别。

  • This is also important from a practical standpoint wherein, in some domains, all possible classes many not be available at training time.For example, new product classes emerge every day in the fashion industry.

  • Due to the difficulty in collecting examples of every class in order to train supervised models, zero-shot learning has received significant interest from the research community recently

benchmark:

划分Sketchy数据库,确保测试类不与Imagenet的1000个类重叠

Sketchy数据集

Sketchy是由Sangkloyet收集的75471幅手绘草图和12500幅图片组成的数据集,属于125个类别。每张图片都有大约6个手绘草图。原始的Sketchy数据集使用与数据库相同的12500张图像。Liuet从Imagenet增加60,502张图像的数据库,以创建一个共有73,002张图像的检索数据库。
我们将125个类划分为104个训练类和21个测试类。我们确保21个测试类不出现在Imagenet的1000个类中。这样做是为了确保研究人员仍然可以在1000类Imagenet上预先训练他们的模型,而不违反Zero-shot假设。

方法:

generating additional information that is absent in the sketch in order to retrieve similar images
我们的模型以草图特征向量为输入,通过生成模型随机填充缺失信息,生成若干可能的图像向量。我们利用这些生成的图像特征向量从数据库中检索图像。
模型不仅可以学习从草图到类标签的映射,还可以使用标签信息检索所有图像。模型现在必须学习草图和图像之间的显著的共同特征,并使用它来检索来自不可见类的查询图像
我们以ImageNet-1K上训练的VGG-16网络作为基准。给定的草图-图像对的得分是由它们的VGG特征之间的余弦相似度给出的。
生成模型
通过生成模型的潜在先验向量来补充草图轮廓的细节
使用模型Variational Autoencoders 及 Adversarial Autoencoders
Gθ = P(ximg|xsketch;θ)
Zero-shot_第2张图片
模型学习将草图的特征,如大致轮廓、局部形状等与图像的特征相关联
G θ G_{\theta} Gθ是依据草图特征建立的图像特征的概率分布模型,训练使用训练集中成对的img和sketch。基于草图的特征训练生成图像特征

检索过程
使用decoder通过从先验分布中采样潜在向量在测试草图中生成若干图像特征向量
使用K-means对生成的样本进行聚类,得到每个测试草图对应生成样本的聚类中心

你可能感兴趣的:(深度学习,机器学习,人工智能)