这篇博客为阅读论文后的总结与感受,方便日后翻阅、查缺补漏,侵删!
论文:
- 零样本学习研究进展
- 零样本图像识别
零样本学习 (Zero-shot learning).,零样本学习是迁移学习的一种特殊场景;在零样本学习过程中,训练类集和测试类集之间没有交集,需要通过训练类与测试类之间的知识迁移来完成学习, 使在训练类上训练得 到的模型能够成功识别测试类输入样例的类标签。更一般来说,零样本学习如果模型在训练过程中,只使用训练类的样本进行训练,,且在测试阶段可以识别从未见过的测试类样例,,那么就认为该模型实现 了零样本学习。
迁移学习简单来说,就是将一个学习任务A建立的模型可以迁移到学习任务B中;这里举个例子:人在实际生活中有很多迁移学习,比如学会了骑自行车,就比较容易学摩托车,学会了C语言,再学一些其它编程语言会简单很多。
应用:
在机器视觉领域,你如果想实现一个应用,而不想从零开始训练权重,比方从随机初始化开始训练,实现最快的方式通常是下载已经训练好的权重的网络结构,把它当做预训练迁移到你感兴趣的新任务上,这样可以节省大量的训练时间。
如上图所示,已有一个模型,该模型输入最后经Sigmoid处理可以输出猫和狗的概率;但现在我们有一个新任务分类猫、狗、猪、其他动物。这时我们不需要重新训练模型的所有参数,只需要修改模型最后一层并训练改层的参数。
当然这不是绝对的,如果我们的训练集比较充分,可以选择从零开始训练我们模型的参数,这样分类效果可能更高;但如果我们的数据集较少,也可以选择冻结模型参数的一部分,训练模型的其他参数,实现特定任务的分类。
零样本学习利用训练集中的样本,和样本对应的辅助信息 (例如文本描述或者属性特征等) 对模型进行训练,在测试阶段利用在训练过程中得到的信息,以及模型的测试类辅助信息对模型进行补足,使得模型能够成功对测试集中的样例进行分类。我的理解,在训练样本中假设有个牛的样本,我们可以运用该样本集对神经网络模型进行训练,我们知道神经网络可以将输入样本压缩成隐空间的一个向量表示,如果在训练过程还得知,对应隐空间的第维数值表示待识别动物的体重,第维数值表示待识别动物鼻子的长短;当我们如果规定,在隐空间的对应牛和训练样本距离很近,且第维数值较大,我们有理由相信待识别的图像为大象图像。
零样本学习结构示意图 :
单样本学习 (One-shot learning)是与零样本学习最为相似的研究领域,单样本学习希望识别模型可以实现仅使用某些对象类极为少量 (100 以 内, 甚至只有 1 个) 的训练样本,,就可以对这些类的样例进行识别。但是,单样本学习模型较差的泛化能力是它所具有的致命缺陷,如果测试阶段的样例与训练样例不是十分相似的话,那么单样本学习模型很有可能无法准确地识别测试样例的类标签.。因此,为了回避这一问题,零样本学习在单样本学习的基础上得以产生。
“偶然学习” (Serendipitous learning, SL) 方法,该方法希望能够在给定的标签空间之外,识别未定义类标签的测试样例所属类标签;这一方法的核心思想是在对见过的训练类的样例进行识别的同时,也可以对从未见过的未见类样例进行聚类分析。
零数据学习的目标在于如何构造模型学习没有可用的训练数据、且只有类描述的分类器学习问题。因此在定义上,零数据学习与零样本学习本质上是相同的。零数据学习主要有(1)输入空间方法 (2)模型空间方法 。
核心思想:
利用训练类和测试类中对应于每一类的描述信息,对模型进行信息补充, 使得模型不再是简单的学习由输入样例到类标签的映射关系,而是把输入样例与对应类描述的信息对作为新的输入, 并学习其到类标签的映射关系。 在训练阶段,输入空间方法利用训练类的样本以及对应的类描述信息对模型进行训练,因为是直接在输入阶段,对模型所需要的信息进行了补充,所以该 方法被命名为输入空间方法。个人理解:即测试阶段将测试集类描述信息与已知训练集的辅助联系起来,从而确定未知样本的类别。
示意图 :
上述过程简单来说:训练过程,将训练样例的描述信息看做该样例的类别和训练样例一块输入到模型中进行训练,得到与映射关系。测试阶段,将未知类别的测试样例输入到模型中,找到待分类样例的描述信息,从而确定类别的方法。
核心思想:
模型空间方法假设对于每一类 y, 都存在对应的分类函数 d(y)∈D。 假定 d(y)为该类所对应的描述信息,用把分类函数参数化为即令:
零数据学习问题变为用 d(y) 和输入样例学习的表示问题,例如,可以使用以下平均损失最小化来求解模型参数::
通俗来讲:训练阶段,如果可以利用给定的 、以及 对函数 g 进行充分的训练,在测试阶段,假定每一个测试类都具有给定的 d(y) 时,就可以利用训练阶段学习到的函数 g, 计算每个测试类样例所对应的分类函数,这样,就可以利用这一系列测试类函数族,来判断测试类输入样例的类标签。
示意图 :
个人感觉这个和输入空间方法是一样的,但论文给的解释为:与输入空间方法相比, 模型空间方法具有更 强的泛化能力, 输入空间方法相当于令 gd(y)(x) = g(x,d(y)), 可看作是模型空间方法的特例. 模型空 间方法将 d(y) 作为调整模型 gd(y)(x) 的参数,不太理解。
具体做法:先定义多维的语义特征空间,每个维度都对应一个二值编码特征。例如,对于 “狗” 这一类标签来说,在 “多毛”、“有尾巴”、“水下呼吸”、“肉食 性” 和 “可以快速移动” 5 条语义特征下的语义空间中,“狗” 这一类可以利用布尔值表示为语义特征向量 [1, 1, 0, 1, 1],(这里假设知识库只有这5个语义知识)。定义语义输出编码分类器为 H :X → Y,假定 H 是复合映射函数H = L(S(·)),S 函数负责将图像映射到语义空间,L 函数负责将语义编码空间映射到标签集上。 L函数通过查询知识库 K 中语义编码与类标签的对应关 系实现映射。
学习过程示意图:
个人感觉这个和新任务的零数据学习相比,就是把新任务的零数据学习中的描述信息进行了one_hat编码而已。
基于属性类间迁移的未见类检测方法, 这一模型可谓是零样本学习的奠基之作,现有的零样本学习方法大多都继承了该模型的思想,Lampert 等建立的数据集 “Animals with attributes” 也成为研究零样本学习所必须使用的数据集之一。
下面介绍两种拓扑结构零样本学习模型,分别为(1)直接属性预测 (Direct attribute prediction, DAP) 模型,(2)间接属性预测 (Indirect attribute prediction, IAP) 模型。
(1)直接属性预测 (Direct attribute prediction, DAP) 模型
假定 ,··· ,为训练类, ,··· , 为 测试类; ,··· ,为全部属性特征的集合。在测试阶段时,尽管模型从未针对测试类进行训练,但属性层仍然可以利用训练阶段得到的属性分类器 β 对输入的测试类图像所具有的属性进行判断,得到输入图像的属性特征估计之后,就可以利用得到测试样例的属性特征估计以及测试类的属性指示对输入样例进行分类判断。通俗来讲:假设我们要通过{有无尾巴,体积大小、头有没有角}来对动物种类识别,属性分类器 β 可以提取输入图像有无尾巴?体积有多大?头有没有角?,得到的结果与测试类的属性指示对输入样例进行分类判断。
(2)间接属性预测 (Indirect attribute prediction, IAP) 模型
分类公式如下图所示:
核心思想:
跨模态迁移学习的核心思想是将图像和类标签同时映射到相同的子空间内, 目前通常是将图像和类标签同时映射 (或称为嵌入 (Embedding)) 到语义空间中, 并在语义空间内, 利用一定的相似性度量方法,去确定测试类输入图像的类标签。
学习示意图:
上图五边形白点代表测试类 “猫” 的输入图像在语义空间中的表示, 除此之外的白点代表训练类的输入图像在语义空间中的映射向量。在该方法中,黑点代表所有类标签的语义向量,所有的语义向量都是预先给定的辅助信息,这些语义向量可以是 属性向量,也可以是使用文本描述生成的单词语义向量。 训练阶段,首先利用训练类标签对应的语义向量和训练类的样例对跨模态映射模型进行训练。训练后,映射模型可以成功地将输入样例映射到语义空间中,并准确地映射到输入样例所对应的类标签的语义向量附近,测试阶段,输入测试类的样例时, 首先利用训练阶段得到的跨模态映射模型将测试类输入样例映射到语义空间中,并根据相似性判断方法 (如余弦相 似性、K 近邻方法等), 将与输入样例的的语义向量估计最为相似的语义向量的类标签, 作为测试类图 像的类标签估计。
简单来说,将类标签映射到语义空间中,根据训练集依据一定原则来训练样例到语义空间的映射关系,原则即:“样例映射到语义空间中应该在类标签向量周围”,依据映射关系将测试集也映射到语义空间中,并根据相似性判断方法确定其类别。
零样本学习在测试阶段,只有未 见类样例出现。” 这在实际应用中是不现实的,已见类的对象往往是现实世界中最为常见的对象, 而且,如果在训练阶段已见类样本容易得到、未见类样本难以获取, 那么在测试阶段就也不应只有未见类样例出现。
广义零样本学习定义:
如果模型在训练过程 中,只可以使用训练类的样本进行训练,并且在测试 阶段可以准确识别已见类样例以及从未见过的未见类样例,那么就认为该模型实现了广义零样本学习。
虽然广义零样本学习定义十分简单, 但传统零样本学习方法仍会出现上述未见类识别准确率较低的问题,这是因为模型在训练过程中只使用了已见类样本进行训练,已见类的先验知识也更为丰富,从而使得已见类模型占主导地位。所以在输入测试样例时,模型会更加倾向于对未见类样例标注为已见类的标签,从而造成识别准确率与传统零样本学习相比的大幅度下跌对于这一问题, 一般有两种解决方法,一种是 在输入样例时,判断其属于已见类或未见类,这种方 法称为新颖检测;另一种方法是在模型判断输入样例为已见类时,叠加一个校准因子以平衡模型对已见类识别的倾向性, 这一种方法称为叠加校准,两种方法具体内容如下。
这一问题是指将原始空间 (例如图像特征空间或类标签空间) 中的某个元素映射到特征子空间中,得到原始空间中某个元素的在特征子空间中的新表示,这时如果使用 K 近邻方法进行相似性度量时,可能会有某些原始空间中无关元素映射到多个测试样本特征空间中表示最近的几个近邻中, 而这些无关向量,就称为 “枢纽 (hub)”, 枢纽的出现,污染了测试类的近邻列表,对零样本学习产生了较大的影响。所有利用特征子空间的机器学习模型,都会存在这一现象,维度越高,这一现象愈发明显。简单来说,就是在原特征空间类别可分的样例,映射到特征空间中出现类别不可分的现象。
枢纽化现象的示意图:.
映射域偏移问题的根源在于映射模型较差的泛化能力:模型使用了训练类样本学习由样例特征空间到类标签语义空间的映射,由于没有测试类样本可以用于训练,因此,在映射测试类的输入样例时,就会产生一定的偏差。示意图如下所示:白色圆点为训练类标签的语义向量,黑色圆点为测试类标签的语义向量,灰色圆点为测试类输入在语义空间中的映射向量,其余为训练类在语义空间的映射向量,可以看出,老虎、马和斑马为训练类, 熊猫为测试类,训练类的样本都很好地映射到了训练类语义向量的附近,而测试类输入样例映射到语义空间后,却与它所对应的类标签距离较远。 因此,如果想要解决映射域偏移问题,就需要提高映射模型的泛化能力。
映射域偏移问题示意图:
目前的零样本学习方法一般都沿袭了将输入和输出映射到子空间的思路,在这一思路下的零样本学习方法可以分为两类:“相容性模型” (主要是DAP 模型)和 “混合模型”(主要是IAP 模型)。
相容性模型又分为线性相容性模型和非线性相容性模型。 非线性相容性模型使用非线性相容函数,与线性相容性模型相比具有着更强的表达能力;因此, 目前的零样本学习研究中,非线性相容性模型在相容性模型中占据主流地位。
线性相容性模型与非线性相容性模型的主要区别在于 F(θ(x),ϕ(y),w) 是否为线性函数。 在线性相容性模型中,相容性函数定义为:
线性相容性零样本学习模型:分别是深度语义嵌入模型、属性标签嵌 入模型、属性描述替换模型、文本描述替换模型、多视图零样本学习模型和细粒度数据视觉描述的深度表示模型。
顾名思义,非线性相容性模型的相容性函数是非线性的, 一般来说有两种常见形式:(1)距离函数形式 (2)概率形式。我们将介绍 7 种典型非线性相容性模型:语义自编码器模型、语义嵌入一致 性度量模型、联合隐变量相似嵌入模型、隐嵌 入模型、反向深度嵌入模型、基于文本描述的 深度零样本卷积神经网络和基于随机森林的零 样本学习模型。
利用训练类类标签所对应的特征子空间映射的混合组合来表示测试类输入样例在特征子空间中的映射,进而判断输入样例的映射与测试类类标签映射之间的相似性,得到输入样例类标签估计的模型,称为混合模型。简单来说:训练样例映射到特征子空间中,测试阶段过来一个测试样例同样方法可以映射到特征子空间中,且可以用其他已知样例的特征向量表示出来,比如熊猫 = 猫+熊,这样我们就可以预测输入的类别。
语义凸组合模型
综合零样本学习模型
语义相似嵌入模型
高斯混合模型
结构预测模型
相关知识迁移模型
属性回归类原型矫正模型
基于神经网络输出无监督学习应用的零样本学习
辅助信息用于描述训练类和测试类, 并将训练类和测试类关联起来,使得训练类和测试类之间可以共享某些特征, 是成功实现零样本学习的关键,目前来说,有三种形式的辅助信息成功应用于零样本学习中,分别为:手工标注的属性、文本学习模型、 以及层次结。
属性特征向量表示形式为:,代表类标签索引值,,M为第 个类标签中所有可能出现的属性个数;这种方法带来巨大的人力损耗。
运用自然语言处理领域语义向量来表示,得到的特征表示为类标签单词在语义空间中的特征向量。目前,应用在零样 本学习中的自然语言处理工具共有三种:Bag-ofWords、Word2Vec和 GloVe。
WordNet 为包含100000 个英语单词的数据库, 可以提供大量的类层次结构关系, 可以使用多个相似性度量函数对各个类标签的相似度进行度量;层次结构信息在零样本学习中应用较少。
零样本图像识别通俗来讲,处理对象为图片的零样本学习。
机器学习方法对比表:
零样本图像学习技术结构图:
其中,函数是由训练数据集学习而来,用来完成 图像特征到嵌入空间的映射,函数一般选用最近邻算法或是其他更复杂的相似度计算方法,用来确定图像所属的类别标签 。目前根据在训练阶段是否使用未知类的无标记数据,可以将零样本学习分为两大类,分别是直推式零样本学习和归纳式零样本学习。
直推式零样本学习是指在训练阶段使用未知类的无标记数据,在训练阶段使用无标签未知类数据提高最终分类器对未知类的判别能力,如下图所示:一方面,利用未知类中的数据训练分类器可以提高在未知类上的泛化能 力;另一方面,未知类与已知类的数据相互结合用于学习,可以联合优化分类器 。
直推式零样本学习结构示意图如下:
归纳式零样本学习是指在分类器训练阶段只使用训练集数据学习函数 ,在测试阶段以并行方式对所有测试集数据进行类标签预测,预测过程相互独立,如下图所示:该方法也是目前零样本学习问题中应用最广泛的一种解决思路。 在归纳式零样本学习中最经典的方法就是 Lampert等人提出的直接预测模型(Direct Attribute Prediction, DAP)和间接预测模型(Indirect Attribute Prediction, IAP),前面已经介绍过,这里就不赘述啦。
归纳式零样本学习结构示意图:
(1)图像处理领域:
(2)视频处理领域:
(3)自然语言处理领域:
处理零样本学习问题中使用的普遍的步骤为:(1)提取视觉特征构建视觉空间; (2)提取语义特征构建语义空间;(3)实现视觉空间 与语义空间之间的映射构建嵌入空间。
(1)传统方法(只能提取图像的低级特征):
- 描述颜色信息 {HSV、 Lab、HIS等颜色模型和HOG特征}
- 描 述纹理信息 {灰度共生矩阵、Tamura特征、自回归模型和LBP算子}
- 描述形状信息 {Hough变换、傅里叶形状描述符、SIFT、 SURF、Haar等特征 }
(2)基于深度学习方法(可以提取图像的高级特征):
tip:在零样本图像识别任务中,一般使用基于深度学习方法提取特征效果较好。
零样本学习中使用较为广泛主要有(1)VGG(2)GoogleNet(3)ResNet
零样本学习中深度卷积神经网络使用情况统计表:
语义特征提取的目的在于构建语义向量,它必须同时具有足够的语义性和较强的判断性。两者相 互矛盾,语义性强要求语义向量能够包含更多对象 的细节信息,其中包含了与分类任务不相关的信息,如动物的习性、人类的习惯、场景的描述等; 而判断性强则要求语义向量更应该关注最能区分不同对象类别的信息。如何平衡两者之间的权重,强 化零样本学习的泛化能力也是目前零样本学习领域的研究重点之一。
零样本学习中主要的语义特征提取方法分为(1)基于属性(2)基于词嵌入向量(3)基于知识图;其中这3中属性前面已经介绍过了,这里同样不在赘述了。
视觉-语义映射是解决零样本学习问题必不可少的基石,是图像特征与语义向量之间的连接的枢纽。一旦建立好视觉-语义映射,便可以计算任意未知类数据和未知类原型之间的相似度,并基于该相似度对未知类进行分类。
构建视觉-语义映射主要有3种方式:
(1)正向映射
在视觉端构建,将图片特征映射到语义向量空间, 并在语义向量空间进行未知类识别。(通俗来讲:就是将图片特征映射成语义向量的形式)
(2)反向映射
在语义端构建,将语义向量映射到图片特征空间,并在图片特征空间进行未知类识别。(通俗来讲:就是将语义向量映射成图片特征的形式)
(3)公共 映射
该方式为零样本学习的主流映射方式;在公共端构建,将图片特征和语义向量映射到公共空间,比如嵌入空间,并在公共空间内完成识别任务。
3种视觉-语义映射示意图:
零样本学习领域常用数据集:
它们分别是(1)AwA(2)CUB(3)aPY(4)SUN(5)Flower (6)Dogs(7)ImageNet。其中前6个数据集为小规模数据集,最后一个为大规模数据集。
注意:上面两项与直推式零样本学习/归纳式零样本学习的区别与联系。
一个切实有用的零样本学习系统应该既能精确地识别已知类,又能准确地区分未知类。它不但可以区分待识别对象是来自于已知类还是未知类,也可以识别待识别对象属于已知类或未知类中的哪种 物体。但是由于传统零样本学习的测试阶段设置过 于严苛,不能真实反映现实世界中物体识别的情 景,为了更好地评价零样本学习模型在实际情况中 的性能,泛化零样本学习必不可少。
零样本学习性能比较(%):
传统零样本学习性能比较选取两个量化指标对模型性能进行分析,其中SS表示数据集在标准分割规则下得到的识别精度,PS表示数据集在新提出的分割规则下得到的识别精度:(1)早期基于浅层图像特征的模型性能普遍较低,当使用深度卷积神经网络提取图像的深度特征后,性能大幅度提升。(2)零样本学习对于粗粒度数据集的性能要优于细粒度数据集,在表中表现为各个模型在AwA数据集上的性能均大于在CUB和 SUN数据集上的性能。
泛化零样本学习性能比较选取3个量化指标对模型性能进行分析,其中U->T表示假设测试数据来自于未知类,但在所有对象类中进行识别, S->T表示假设测试数据来自于已知类,但在所有对象类中进行识别, H表示调和平均数。从对比结果可以发现:(1)大多数模型在泛化零样本学习设置下的性能指标都不理想,这说明了传统的零样本学习设置存在一定程度的缺陷,未能较真实地契合现实世界的分类情况;(2)QFSL模型在泛化能力上要明显好于其他模型,由于该模型属于直推式零样本学习模型,所以从侧面说明了只依靠已知类数据构建的 算法缺乏泛化能力。