Transfer Learning in a Transductive Setting阅读笔记NIPS2013

来源:互联网 发布:sql 求和带条件 编辑:程序博客网 时间:2024/06/05 20:58

论文地址:http://papers.nips.cc/paper/5209-transfer-learning-in-a-transductive-setting.pdf。

该论文发表在NIPS2013,主要的工作是解决zero-shot learning或few-shot learning问题,即利用少量标签样本或者不用任何标签样本训练分类器,能够对未见过的类别进行分类。算法分为三个部分:(1)利用外部知识,比如文本语料库等等,发现新的类别;(2)发掘了新类的流结构;(3)构建了能力更强的数据空间结构关系。该工作在当时在所有数据集上取得了半监督学习最好的效果。

算法的框架如图1所示。最终的预测结果由三部分组成:a)利用语义知识迁移产生新类;b)少量带标签的例子;c)样本之间的相似性。总结起来其实就是,先基于外部知识,利用已知类推测出未知类的表示,计算未知类数据的样本相似性,构建其有效的空间关系,如果有少量已知的未知类样本标签,则加入其标签,从而得到最终的结果。它其实就是将基于属性的学习模型融合进传统半监督模型里。


图1 算法框架示意图

主要贡献

  (1)将语义知识迁移扩展到直推式学习(直推式学习是指未标记的数据就是最后用来测试的数据,它是半监督学习的一个子类问题。);(2)在构建数据空间分布关系的时候,先将数据投影到低维的语义空间中,再找数据的空间分布关系;(3)该算法在三个数据集(Animals with Attributes, ImageNet for image classification, MPII composites for activity recognition)上均取得2013年的最好效果。

算法内容
算法取名为Propagated Semantic Transfer(PST)。

语义知识迁移(Semantic knowledge transfer)

该部分是指通过已知的类别y1,...,yk集合推测出未见过的类别z1,..,zn的过程。作者使用了两种方式,一种就是经典的加中间层的算法DAP[1](感兴趣的同学可以参考博主对该篇论文的阅读笔记)。设中间层A={a1,...,am}表示,且为二值量,这时,可以训练一个分类器,可以得出p(am|x)的值,其中x为样本。然后,就可以通过训练好的分类器,对新类样本进行类别的预测,得到新类别z的属性向量a的表示。由论文[2]可以得到推测测试样本x的新类别z的表达式为:


另一种方式是直接相似度比较:可以利用U个与z最相似的已知类别yz,对新类进行预测,即:


以上结论的相似推导过程可以参考论文[2]。在此算法中,作者将上述常用的概率形式改为了求和的形式。



在此,作者没有做过多的解释,只是说,对于后面的标签传播,求和形式已经能够达到足够好的效果了。

将少量的ground truth label加入迁移学习得到的类标中(combining transferred and ground truth labels)

通过上文方法可以得到新类的预测标签,利用这些标签可以和后面的数据的空间结构进行半监督学习,这样做还属于zero-shot learning的范围。如果是few-shot learning,即能够拿到一些数据的ground truth labels,则可以将这些标签和预测标签放在一起。


其中l(zn | x)表示最终的标签,gama参数用来平衡真实标签和预测标签。

基于图结构的分类模型的相似性矩阵(similarity metric based on discriminative models for graph construction)

常见的半监督学习,都分为两个部分,一个是少量带标签的样本学习,第二是建立未带标签数据的空间分布结构,通常利用图模型的内容进行数学建模。
第一部分上文已经提及,现在讨论第二部分,主要是建立未标记样本之间的相似性矩阵,从而建立未标记样本之间的分布关系。空间关系建立的好坏会直接影响到后面标签传递的过程。可以通过计算样本在样本空间中的距离,得到相似性矩阵。在此,作者不直接在原始样本空间中进行距离度量,而是将样本x转换为属性a之后,在属性空间中进行样本距离的比较。


作者还将样本表示为类别之后,在类别空间中进行样本的距离比较。


得到的所有距离都通过一个径向基函数核,得到最后相似度矩阵W。



利用标签进行标签传递(Label propagation with certain and uncertain labels)

作者使用的标签传递方法基于论文[3]。首先利用上文得到的矩阵W,计算归一化图拉普拉斯(normalized graph Laplacian)。


其中D为对角矩阵。传统的半监督学习中,由于初始情况下,只有ground truth标签,而且通常其数量是很少的,因此,图是稀疏的。而在此算法中,由于有前面预测到的类别标签,因此图要密集很多。设初始化为


对于N个新类别,使用如下方式进行标签传递。


其中阿尔法属于(0,1]。这实际上是一种利用流结构的方法,详细的推导过程可以参见论文[3]。作者称只需要迭代几次算法就能收敛。

实验结果

作者使用了三个数据集Animals with Attributes, ImageNet for image classification和MPII composites for activity recognition,前两个是图片数据集,后一个是视频数据集。在算法的第一步,即通过已知类别学习未知类别的过程中,属性层am和类间相似度yz均由数据集提供。
作者通过5折交叉验证法在数据集上得到了最佳的算法超参数。
如图2所示,为分别利用数据原始空间、属性空间、类别空间的数据关系结果影响的比较。可以看到利用属性空间和类别空间建立的结构要优于利用原始空间建立的结构。


图2 两个数据集不同空间结构对结果的影响图

在数据及AwA上,测试了算法的zero-shot learning结果。如表1所示,与论文[1]中的结果进行了比较。从结果上也可以看到,利用属性空间比利用原始空间的效果要好,并且得到了最好的效果。除此之外,相比通过图片低维特征进行空间关系建模,基于属性可以减少计算量,因为属性空间的维度要小于图片原始空间的维度。


表1 算法结果比较表

作者之后测试了few-shot learning的效果。如图3所示,本文算法比baseline的效果要好。可以看到,LP算法对于样本数量的要求很高,当训练样本数量减少时,其效果下降得很快。作者同时测试了基于属性空间和类别空间的LP算法,结果有着明显的提高,这再一次说明了属性空间和类别空间相比原始空间要好很多。注意图中的虚线,虚线表示的算法中,属性层am是自动生成的,其结果和人工定义的属性十分接近。


图3 算法few-shot结果

Imagenet属于一个十分大的数据集,共一千类,作者使用800类为训练集,200类为测试集。结果如图4所示,zero-shot learning和few-shot learning本文算法都有着最好的结果。其中黑色条为对比算法。


图4 imagenet上的结果

对于MPII数据集,作者主要是想测试该算法在视频分类上的表现。结果如图5所示,其中黑色的条表示zero-shot learning,红色的条表示few-shot learning。作者称few-shot learning能够接近论文[4]中监督学习的结果。


图5 MPII数据集上的结果

总结

总的来说,该工作是将基于属性的模型融入到半监督学习中,改善了半监督学习中的数据空间结构的建模方式,实现了当时好的zero-shot learning 和 few-shot learning。我想其主要的贡献在于(1)证明属性空间和类别空间相比数据原始空间有着更加优秀的数据关系的表达能力;(2)利用基于属性的模型得到预测的未知类别的类标,使得标签更加密集(3)此方法为当年效果最好的方法。

这篇论文的工作细想来其实思路比较简单,而且算法也不复杂,最终能达到最好的效果,并且发表在NIPS上,更重要的可能是作者对这个问题的深度理解和细节的把握。

参考文献

[1]Attribute-based classification for zero-shot learning of object categories
[2]Semantic Relatedness for Knowledge Transfer

[3]Learning with Local and Global Consistency

[4]Script data for attribute-based recognition of composite activities