Jie Song 等 作者

阿里巴巴&浙大Poster论文:基于直推式无偏嵌入的零样本学习

大多数现有的零样本学习(Zero-Shot Learning,ZSL)方法都存在强偏问题,因此在广义 ZSL 设置中部署后性能很差。本文提出了一个简单有效的方法——准完全监督学习(QFSL)来解决此问题。在 AwA2、CUB 和 SUN 数据集上进行的实验表明,该方法在遵循广义 ZSL 设置的情况下比现有方法提高了 9.3%至 24.5%,在遵循传统 ZSL 设置下有 0.2%至 16.2%的提升。

1 引言

在大规模的训练数据集的支撑下,计算机视觉中的物体识别算法在近几年取得了突破性的进展。但是人工收集和标注数据是一项十分耗费人力物力的工作。例如,在细粒度分类中,需要专家来区分不同的类别。对于如濒临灭绝的物种,要收集到丰富多样的数据就更加困难了。在给定有限或者没有训练图片的情况下,现在的视觉识别模型很难预测出正确的结果。

零样本学习是一类可以用于解决以上问题的可行方法。零样本学习区分 2 种不同来源的类,源类(source)和目标类(target),其中源类是有标注的图像数据,目标类是没有标注的图像数据。为了能够识别新的目标类(无标注),零样本学习假定源类和目标类共享同一个语义空间。图像和类名都可以嵌入到这个空间中。语义空间可以是属性(attribute)、词向量(word vector)等。在该假设下,识别来自目标类的图像可以通过在上述语义空间中进行最近邻搜索达成。

根据目标类的无标注数据是否可以在训练时使用,现有的 ZSL 可以分为 2 类:归纳式 ZSL(inductive ZSL)和直推式 ZSL(transductive ZSL)。对于归纳式 ZSL,训练阶段只能获取到源类数据。对于直推式 ZSL,训练阶段可以获取到有标注的源类数据和未标注的目标类数据。直推式 ZSL 希望通过同时利用有标注的源类和无标注的目标类来完成 ZSL 任务。

在测试阶段,大多数现有的归纳式 ZSL 和直推式 ZSL 都假定测试图像都来源于目标类。因此,对测试图片分类的搜索空间被限制在目标类中。我们把这种实验设定叫作传统设定(conventional settings)。然而,在一个更加实际的应用场景中,测试图像不仅来源于目标类,还可能来自源类。这种情况下,来自源类和目标类的数据都应该被考虑到。我们把这种设定叫作广义设定(generalized settings)。

现有的 ZSL 方法在广义设定下的效果远远不如传统设定。这种不良表现的主要原因可以归纳如下:ZSL 通过建立视觉嵌入和语义嵌入之间的联系来实现新的类别的识别。在衔接视觉嵌入和语义嵌入的过程中,大多数现有的 ZSL 方法存在着强偏(strong bias)的问题(如图 1 所示):在训练阶段,视觉图片通常被投影到由源类确定的语义嵌入空间中的几个固定的点。这样就导致了在测试阶段中,在目标数据集中的新类图像倾向于被分到源类当中。

图 1. 语义嵌入空间中对可见源类的偏向示意图。蓝色圆点表示源类指定的锚点。

为了解决以上问题,本文提出了一种新的直推式 ZSL 方法。我们假定有标注的源数据和目标数据都可以在训练阶段得到。一方面,有标注的源数据可以用于学习图像与语义嵌入之间的关系。另外一方面,没有标注的目标数据可以用于减少由于源类引起的偏置问题。更确切地来说,我们的方法允许输入图像映射到其他的嵌入点上,而不是像其他 ZSL 方法将输入图像映射到固定的由源类确定的几个点上。这样有效地缓解了偏置问题。

我们将这种方法称为准全监督学习(Quasi-Fully Supervised Learning, QFSL)。这种方法和传统的全监督分类工作方式相似,由多层神经网络和一个分类器组成,如图 2 所示。神经网络模型架构采用现有的主流架构,比如 AlexNet、GoogleNet 或者其他框架。在训练阶段,我们的模型使用有标注的源类数据和没有标注的目标数据进行端到端的训练。这使得我们的模型有一两个明显的特性:(1)如果未来可以得到目标类的标注数据,那么标注数据可以直接用于进一步训练和改进现有的网络模型;(2)在测试阶段,我们得到的训练模型可以直接用于识别来自于源类和目标类的图像,而不需要进行任何修改。

本论文的主要贡献总结如下:

  • 提出了准全监督学习的方法来解决零样本学习中的强偏问题。据我们所知,这是第一个采用直推式学习方法来解决广义设定下零样本学习问题。

  • 实验结果表明我们的方法在广义设定下和传统设定下都远超现有的零样本学习方法。

3 方法

3.1 问题的形式化

假设存在一个源数据集,每张图片与相应的标签对应,其中, S 表示源类中类的个数。目标数据集, 每张图片与相应的标签对应,其中, T 表示目标类中类的个数。ZSL 的目标就是学习如下所示的预测函数 f(∙):

其中 F(∙) 是一个得分函数,其目标是正确的标注比其他不正确的标注具有更高的得分。W 是模型 F(∙) 的参数,F(∙) 通常使用如下的双线性形式:

其中θ(x) 和Φ(y) 分别表示视觉嵌入和语义嵌入。得分函数通常使用带正则化目标函数进行优化:

其中 L_p 表示分类损失,用于学习视觉嵌入和语义嵌入之间的映射。Ω 表示用于约束模型复杂度的正则项。

本文假设给定标注源数据集 D^s,无标注目标数据集和语义嵌入Φ,学习 ZSL 模型,使得其既能在传统设定下又能在广义设定下获取良好的表现。

图 2. QFSL模型的总体架构。标记和未标记的数据都用于训练相同的模型。为便于理解,将其分为两个部分进行描述。

3.2 QFSL 模型

不同于以上描述的双线性形式,我们将得分函数 F 设计成非线性形式。整个模型由深度神经网络实现。模型包括 4 个模块:视觉嵌入子网络,视觉-语义衔接子网络,得分子网络和分类器。视觉嵌入子网络将原始图像映射到视觉嵌入空间。视觉-语义衔接子网络将视觉嵌入映射到语义嵌入子网络。得分子网络在语义空间中产生每一类的得分。分类器根据得分输出最终的预测结果。所有的模块都是可微分的,包括卷积层,全连接层,ReLU 层和 softmax 层。因此,我们的模型可以进行端到端的训练。

3.2.1 视觉嵌入子网络

现有的大多数模型采用了 CNN 提取得到的特征作为视觉嵌入。在这些方法中,视觉嵌入函数θ是固定的。这些方法并没有充分利用深度 CNN 的强大的学习能力。本文采用了预训练的 CNN 模型来进行视觉嵌入。我们的视觉嵌入模型的主要不同之处在于可以和其他模块一起进行优化。视觉嵌入模块的参数记为 W_θ。除非特别说明,我们把第一个全连接层的输出作为视觉嵌入。

3.2.2 视觉-语义衔接子网络

衔接图像和语义嵌入之间的关系对 ZSL 来说很重要。这种关系可以通过线性函数或者非线性函数来建模。本文采用了非线性函数φ将视觉嵌入映射到语义嵌入。φ由若干个全连接层来实现,其中每一个全连接层后面跟了一个非线性激活函数:ReLU。衔接函数的设计依赖于上述的视觉嵌入子网络的架构。具体来说,我们的设计是按照所选择 CNN 模型的全连接层来设计的。视觉-语义衔接子网络和视觉嵌入网络一起进行优化。视觉-语义衔接子网络参数记作 W_φ。

3.2.3 得分子网络

衔接视觉嵌入和语义嵌入之后,识别任务可以通过在语义嵌入空间中使用最近邻搜索来实现。

给定一张图像,我们首先通过视觉嵌入子网络得到它的视觉嵌入。然后,利用视觉-语义衔接子网络,完成从视觉嵌入到语义嵌入的映射。最后,我们通过内积计算得到投影得到的视觉嵌入和语义嵌入的得分。因此,得分函数可以表示如下:

其中 W_θ和 W_φ分别为视觉嵌入函数和视觉-语义衔接函数的权重,Φ^* (y) 是 y 的归一化语义嵌入:

得分函数由单个全连接层来实现。它的权重使用源类和目标类的归一化语义:来初始化。和视觉嵌入子网络和视觉-语义衔接子网络不同的是,得分子网络的权重是固定的,在训练阶段不参与更新。通过这种方式,我们的模型将图像投影到与视觉嵌入相近的方向上。

需要注意的是目标类的数据没有标注,这些数据在我们的方法中用到了训练阶段当中。因此,在训练阶段,我们的模型对于一张给定的图像,产生了 S+T 个得分。

3.2.4 分类器

经过得分函数后,我们使用 (S+T) 路的 softmax 分类器产生了所有类的概率。输入图像的预测结果为概率最高的那个类。

3.3 模型优化

我们的方法采用了类似于由 (S+T) 路的 softmax 分类器的全监督分类模型,用来分类目标类和源类。但是,只有源类数据是有标注的,目标类数据没有标注。我们定义了准全监督损失函数来训练提出的模型:

通常,传统的全监督分类器的损失函数包括分类损失 L_p 和正则化损失Ω。和传统定义不同,我们提出的 QFSL 结合了一个额外的偏置损失 L_b 来缓解强偏问题:

其中,p_i 表示预测为类 i 的概率。给定一个来自目标类的实例,该损失鼓励模型增加所有目标类的概率和。这样可以防止目标类被映射到源类中。

对于分类损失 L_p,我们采用了交叉熵。对于正则化损失 Ω,L_2 范数来约束训练参数 W={W_θ,W_φ }。λ 和 γ 用于平衡不同损失之间的权重,通过交叉验证来确定。在训练阶段,所有标注的数据和未标注的数据混合在一起作为训练数据。模型使用随机梯度下降算法 (SGD) 进行优化。每一个批 (batch) 训练图像从混合数据集中随机抽取。实验结果表明我们的方法不仅有效地避免了偏置问题,还帮助建立起了更好的视觉嵌入和语义嵌入之间的联系。

4 实验

4.1 数据集

我们在三个数据集上评估了我们的方法。这三个数据集分别为 AwA2、CUB、SUN。在实验中,我们采用属性作为语义空间,用类平均准确度衡量模型效果。

4.2 在传统设置下的效果比较

首先我们在传统设置下对我们方法和现有方法。用来做对比的现有方法分为两类:一类是归纳式方法,包括 DAP、CONSE、SSE、ALE、DEVISE、SJE、ESZSL、SYNC;另一类是直推式方法,包含 UDA、TMV、SMS。与此同时,还比较了一个潜在的 baseline(标记为 QFSL-):只用有标注的源数据来训练我们的模型。实验效果如表 1。可以看出,我们的方法大幅度(4.5~16.2%)提升了分类准确度。

表 1. 在传统设置下的实验比较

4.3 在广义设置下的效果比较

大多数现有直推式方法在测试阶段都采用了同训练阶段同样的数据来评估性能。然而,如果我们的方法也采用这种方式来评估效果是很不合理的。因为我们的方法已经利用到了无标签的数据来源于目标类这一监督信息。为了解决这一问题,我们将目标数据平分为两份,一份用来训练,另一份用来测试。然后交换这两份数据的角色,再重新训练一个模型。最终的效果为这两个模型的平均。我们比较了我们的方法和若干现有方法,以及一个隐含的 baseline:先训练一个二分类器来区分源数据和目标数据,然后再在各自搜索空间中分类。实验结果如表 2。

可以看出,我们模型的整体性能(调和平均数 H)有着 9.3~24.5 的明显提高。该项指标的提高主要得益于在目标数据上的效果提升,同时又没有在源数据上大幅度降低准确度。该结果表明,我们的方法能够很大程度上缓解强偏问题。

5 讨论

现实世界中,目标类的数量可能远远高于源类数量。然而,大多数现有 ZSL 数据集的源、目标数据划分都违背了这一点。比如,在 AwA2 中,40 个类用来做训练,10 个类用来做测试。我们在实验上给出了随着源数据类别的增加,QFSL 在效果上如何变化。该实验在 SUN 数据集上进行,72 类作为目标类,随机选取剩下的类作为源类。我们尝试了 7 个大小不同的源类集,类的数量分别为 {100,200,300,450,550,600,645}。用这些不同大小的源类作为训练集,测试我们的方法,效果如图 3。由图可以看出,随着类别增加,模型能够学习到更多的知识,其在目标数据集上准确度越来越高。同时,由于源数据和目标数据变得越来越不平衡,强偏问题越来越严重。我们方法能够缓解强偏问题,因而其在效果上的优越性也越来越明显。

图 3. 准全监督在 SUN 数据集上效果

6 结论

本文提出了一种用于学习 ZSL 无偏嵌入的直接但有效的方法。这种方法假设标注的源数据和未标注的目标数据在模型训练的过程中可以使用。一方面,将标注的源数据映射到语义空间中源类对应的点上。另外一方面,将没有标注的目标数据映射到语义空间中目标类对应的点上,从而有效地解决了模型预测结果向源类偏置的问题。在各种基准数据集上的实验表明我们的方法在传统设定和广义设定下,大幅超过了现有的 ZSL 方法。

论文:Transductive Unbiased Embedding for Zero-Shot Learning

论文链接:http://arxiv.org/abs/1803.11320 

摘要:大多数现有的零样本学习(Zero-Shot Learning,ZSL)方法都存在强偏问题:训练阶段看不见(目标)类的实例在测试时往往被归类为所看到的(源)类之一。因此,在广义 ZSL 设置中部署后,它们的性能很差。在本文,我们提出了一个简单而有效的方法,称为准完全监督学习(QFSL),来缓解此问题。我们的方法遵循直推式学习的方式,假定标记的源图像和未标记的目标图像都可用于训练。在语义嵌入空间中,被标记的源图像被映射到由源类别指定的若干个嵌入点,并且未标记的目标图像被强制映射到由目标类别指定的其他点。在 AwA2,CUB 和 SUN 数据集上进行的实验表明,我们的方法在遵循广义 ZSL 设置的情况下比现有技术的方法优越 9.3%至 24.5%,在遵循传统 ZSL 设置下有 0.2%至 16.2%的提升。

理论CVPR 2018论文计算机视觉阿里巴巴浙江大学
1
相关数据
激活函数技术
Activation function

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

Alex网络技术
AlexNet

AlexNet是一个卷积神经网络的名字,最初是与CUDA一起使用GPU支持运行的,AlexNet是2012年ImageNet竞赛冠军获得者Alex Krizhevsky设计的。该网络达错误率大大减小了15.3%,比亚军高出10.8个百分点。AlexNet是由SuperVision组设计的,由Alex Krizhevsky, Geoffrey Hinton和Ilya Sutskever组成。

交叉验证技术
Cross validation

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

深度神经网络技术
Deep neural network

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

计算机视觉技术
Computer Vision

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

交叉熵技术
Cross-entropy

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

范数技术
Frobenius Norm

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。半范数反而可以为非零的向量赋予零长度。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

损失函数技术
Loss function

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

最近邻搜索技术
Nearest neighbor search

最邻近搜索(Nearest Neighbor Search, NNS)又称为“最近点搜索”(Closest point search),是一个在尺度空间中寻找最近点的优化问题。问题描述如下:在尺度空间M中给定一个点集S和一个目标点q ∈ M,在S中找到距离q最近的点。很多情况下,M为多维的欧几里得空间,距离由欧几里得距离或曼哈顿距离决定。

规范化技术
Normalization

规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0 到1.0 或0.0 到1.0。 通过将属性数据按比例缩放,使之落入一个小的特定区间,如0.0到1.0,对属性规范化。对于距离度量分类算法,如涉及神经网络或诸如最临近分类和聚类的分类算法,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘,对于训练样本属性输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性与具有较小初始值域的属相相比,权重过大。有许多数据规范化的方法,包括最小-最大规范化、z-score规范化和按小数定标规范化。

零样本学习技术
One/zero shot learning

从仅仅一个或一小撮样本中学习一个新的概念,而普通的机器学习标准算法通常需要几十或几百个表现类似的样本。

目标函数技术
Objective function

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

监督学习技术
Supervised learning

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

直推式学习技术
Transductive learning

在逻辑学、统计推理和监督学习中,转换或转换推理是从观察到的具体(训练)案例到具体(测试)案例的推理。 这与常见的案例-一般规则-案例的归纳推理有所不同

随机梯度下降技术
Stochastic gradient descent

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

推荐文章