近期因加入学校教研室,教授安排的研究方向是Domain adaptation 或Zero-Shot Learning ,我选择的是后者,在此之前虽然我对ZSL有初步的了解,但是仅限于此。今后我将每周更新5-10篇ZSL方向的相关博客或者论文的学习笔记,在此分享出来望共同探讨学习,如有理解上的偏差或错误恳请各位大佬及时指出,谢谢!
https://zhuanlan.zhihu.com/p/34656727?spm=5176.9876270.0.0.399ce44aXsg7cN
形象解释:
假设小暗(纯粹因为不想用小明)和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小暗安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小暗有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小暗根据爸爸的提示,在动物园里找到了斑马。
实现思路:(转化为一般的图片分类问题,且只考虑图片分类问题)
训练集数据X_tr 及其标签 Y_tr ,包含了模型需要学习的类别(马、老虎和熊猫),这里和传统的监督学习中的定义一致;
测试集数据 X_te及其标签 Y_te ,包含了模型需要辨识的类别(斑马),这里和传统的监督学习中也定义一致;
训练集类别的描述 A_tr,以及测试集类别的描述 A_te ;我们将每一个类别 y_i∈ Y ,都表示成一个语义向量 a_i∈ A 的形式,而这个语义向量的每一个维度都表示一种高级的属性,比如“黑白色”、“有尾巴”、“有羽毛”等等,当这个类别包含这种属性时,那在其维度上被设置为非零值。对于一个数据集来说,语义向量的维度是固定的,它包含了能够较充分描述数据集中类别的属性。
在ZSL中,我们希望利用X_tr和Y_tr来训练模型,而模型能具有识别X_te的能力,因此模型需要知道所有类别的描述A_tr和A_te
Questions:
类别的描述A到底是怎么获取的:
人工专家定义护着海量的附加数据集自动学习
ZSL definition:
利用训练集数据训练模型,使得模型能够对测试集的对象进行分类,但是训练集和测试集类别之间没有交集;期间需要借助类别的描述,来建立训练集和测试集之间的联系,从而使模型有效。
https://blog.csdn.net/tianguiyuyu/article/details/81948700
获取合适的类别描述A
目前主要是自然语言处理(NLP)方法,难度大,进展慢
建立一个合适的分类模型
方法多,比较容易出成果
直推式学习(Transductive setting)
在训练模型的时候,我们或许已有测试集的数据,只是没有拿到测试集的样本标签。因此可以通过迁移学习的方法,利用测试集数据的到一些测试类别的先验知识。
泛化的ZSL(generalized ZSL)
在现实的问题中,拿到的样本也可能属于训练类别,因此在测试是,同时加入训练类别。
研究了测试集和训练集不相交时的对象分类问题。
在此文章发表之前,没有对于毫无关联的训练集和测试集进行抽样检测的工作,也即是只能对训练集所包含的样本进行分类。作者希望能提出一种不需要任何目标数据类别信息的对象分类方法(无直接训练集)。
提出高维特征的概念,这里的高维特征包括但不限于形状、颜色、地理位置,而且是可以事先学习的。(they can be pre-learned, e.g. from image datasets unrelated to the cur- rent task. )然后,可以根据它们的属性表示(高维语义)检测新类,而不需要新的学习。
实验表明,利用属性层确实可以构建一个不需要目标类训练图像的学习对象检测系统。
该工作在一定程度上实现了迁移学习。
在样本和训练类标之间加入一个属性表示层 A A A,利用监督学习的方式,通过训练集 Y Y Y对应的属性向量进行训练可以学到从样本 x x x到生成 A A A的属性参数 β \beta β。在测试阶段,可以得到测试样本对应的属性向量 A A A,对比测试集 Z Z Z类别的属性向量,即可得到对于不可见数据的预测类别,从而实现迁移学习。
对于DAP模型,可以用概率图模型的知识进行建模。首先,每一个训练类别y都可以表示为长度为m的属性向量ay=(a1,…,am),且该属性向量为二值属性。
之后,可以通过监督学习,得到image-attribute层的概率表示,p(a|x),它是样本x对于所有am的后验概率的乘积。在测试时,每一个类别z可以用一个属性向量az表示。利用贝叶斯公式即可得到概率公式 p ( z ∣ x ) p(z|x) p(z∣x)。
p ( z ∣ x ) = ∑ a ∈ { 0 , 1 } M p ( z ∣ a ) p ( a ∣ x ) = p ( z ) p ( a z ) ∏ m = 1 M p ( a m z ∣ x ) p ( z | x ) = \sum _ { a \in \{ 0,1 \} ^ { M } } p ( z | a ) p ( a | x ) = \frac { p ( z ) } { p ( a ^ { z } ) } \prod _ { m = 1 } ^ { M } p ( a _ { m } ^ { z } | x ) p(z∣x)=a∈{0,1}M∑p(z∣a)p(a∣x)=p(az)p(z)m=1∏Mp(amz∣x)
由于类别Z是未知的,所以可以假设它的先验概率相同,即每个p(z)的值是相同的,因此可以去除掉公式中的p(z)。对于先验概率p(a),可以使用训练时学习到的属性层值得平均值表示,作者称在实验中,该值固定为0.5时,可以得到comparable result.最终由X->Z的推测,可以使用MAP prediction:
f ( x ) = argmax l = 1 , … , L ∏ m = 1 M p ( a m z l ∣ x ) p ( a m z l ) f ( x ) = \underset { l = 1 , \ldots , L } { \operatorname { argmax } } \prod _ { m = 1 } ^ { M } \frac { p ( a _ { m } ^ { z _ { l } } | x ) } { p ( a _ { m } ^ { z _ { l } } ) } f(x)=l=1,…,Largmaxm=1∏Mp(amzl)p(amzl∣x)
也就是说,DAP可以理解为一个三层模型:第一层是原始输入层,例如一张电子图片(可以用像素的方式进行描述);第二层是p维特征空间,每一维代表一个特征(例如是否有尾巴、是否有毛等等);第三层是输出层,输出模型对输出样本的类别判断。在第一层和第二层中间,训练p个分类器,用于对一张图片判断是否符合p维特征空间各个维度所对应的特征;在第二层和第三层间,有一个语料知识库,用于保存p维特征空间和输出y的对应关系,这个语料知识库是事先人为设定的。
DAP的缺点:
在训练阶段,和传统的监督训练一样,只是在其标签 Y Y Y上,学习一层属性表示层 A A A,在测试阶段,利用标签层 Y Y Y和属性层 A A A就可以推出测试数据的类别 Z Z Z.
DAP的准确率达到40.5%,IAP的准确率为27.8%。下图为每个不同属性的预测准确率。
Quality of individual attribute predictors (trained on train classes, tested on test classes), as measured by by area under ROC curve (AUC). Attributes with zero entries have constant values for all test classes of the split chosen, so their AUC is undefined.
Lampert C H , Nickisch H , Harmeling S . Learning to detect unseen object classes by between-class attribute transfer[C]// 2009 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2009.
文章描述了一种关于ZSL的新方法,且只需要一行代码就可以实现,但是它能够在标准数据集上胜过当时最先进的方法。
该方法基于一个更通用的框架,该框架将特征(features)属性(attributes)和类(classes)之间的关系建模为一个具有两个线性层的网络,其中顶层的权重不是通过学习得到的,而是由环境给出的。通过将这些方法转换为域适应(domain adaptation)方法,文章进一步提供了这类方法的泛化误差的学习边界。
文章使用签名举证 S S S和训练实例的学习矩阵 V V V,从特征空间映射到属性空间。在推理阶段,文章使用矩阵 V V V,加上不可见类 S ′ S' S′的label,得到了最终的线性模型 W ′ W' W′。算法框架概要如下图所示:
详细流程暂略
[1]:Akata,Z.,Perronnin,F.,Harchaoui,Z.,Schmid,C.:Label-embeddingforattribute-basedclas- sification. In: Conference on Computer Vision and Pattern Recognition (CVPR) (2013)
Romera-Paredes B , Torr P H S . An embarrassingly simple approach to zero-shot learning[C]// Proceedings of the 32nd international conference on Machine learning (ICML '15). JMLR.org, 2015.
文章指出ZSL的现状与不足之处:大多数现有的ZSL都是通过在带注释的训练集和不带注释的不同类的目标数据集之间共享的中间层语义表示来实现转移学习。从底层特征空间到语义表示空间的映射是从辅助数据集学习而来的,在进行应用时没有对目标数据集进行自适应。
文章具体阐述了传统方法的两个限制,并给出了相应的解决方法:
首先,由于具有不相交且可能不相关的类,将辅助数据集(训练集)学习的映射语义函数在直接应用于目标数据集时会存在偏差。也就是领域漂移(domain shift )问题【注:domain shift 这一概念由该文章首次提出】,并提出了一个新的框架——直推式多视图嵌入transductive multi-view embedding来解决这个问题。
以AwA数据集为例,现在尝试通过训练“是否有尾巴”这一特征。斑马是40个训练集中的有尾巴的十个类中的一个,图中蓝色为预测特征,红色为原型特征。从图中不难看出,虽然斑马都是“有尾巴的”,但是他们之间也存在很大的差异,而对于训练集的猪类来说,虽然猪有尾巴,但是猪的原型与其他成员实例之间有非常大的差距,这就是领域漂移问题,导致了传统ZSL很难预测成功。而采用本为给出的直推式多视图嵌入方法,则可以取得较好的效果。
第二个限制是原型稀疏性(prototype sparsity)问题,即对于每个目标类,在给定语义表示的情况下,通常只有一个原型可用于零样本学习。针对这一问题,文章提出了一种新的异构多视图标签传播 novel heterogeneous multi-view hypergraph label propagation
方法,用于在换向嵌入空间中进行零样本学习。它有效地利用了不同语义表示提供的互补信息,以一致的方式利用了多个表示空间的流形结构。
以下图(b)和(c)为例,对于传统ZSL,一个类只有一个标签,然而同一类中不同个体之间的差异往往是巨大的。这样做的显然会导致较大的类内差异和类间相似性。即使单个原型集中在语义表示空间的类实例之间,现有的ZSL分类器仍然难以分配正确的类标签。也就是说,每个类一个原型不足以表示类内部的可变性或帮助消除类间相重叠特征所带来的歧义。
文章通过大量的实验证明新方法的优越性:
该方法较好的解决了领域漂移的的问题,利用了多种不同语义表征之间的互补性。在对三个标准图像和视频数据集的对比实验中发现,利用文中提出的方法实验效果显著优于现有方法。
暂略
暂略
Fu Y , Hospedales T , Xiang T , et al. Transductive Multi-view Zero-Shot Learning[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(11):1-1.
文章指出了现有的零样本学习主要是学习从特征空间(feature space)到语义层次空间(semantic embedding space)的映射函数,这种映射函数只关心被训练类的语义表示或分类。当应用于测试数据时,因为没有训练数据,所以ZSL会遇到一个普遍的问题:领域漂移问题(domain shift problem).
文章提出了一种新方法:基于学习的语义自编码方案Semantic AutoEncoder (SAE)。文章的核心思想是
自编码器在进行编码时,像现有的ZSL模型一样,将视觉特征向量投射到目标空间中。然而,解码器施加了一个额外的约束,即程序必须能够重建原始的视觉特性。
也就是说,
SAE在编码和和解码时,使用了原始数据作为约束,即编码后的数据能够尽可能恢复为原来的数据。
文章提出的编码器和解码器时线性同步的,且取得了较好的效果:在6个基准数据集上的大量实验表明,文章提出的SAE优于现有的ZSL模型,具有较低的计算成本。此外,当SAE应用于监督聚类问题时,它也优于当时最先进的算法。
具体目标函数最优化求见过程相关的方程函数解析暂略
本文使用的6个数据集如下所示:
不同算法的实验结果如下,可见本文给出的效果最好。
原文:https://arxiv.org/pdf/1704.08345.pdf
Kodirov E , Xiang T , Gong S . Semantic Autoencoder for Zero-Shot Learning[J]. 2017.
参考:
https://blog.csdn.net/u011070272/article/details/73498526