迁移学习系列文章六:
CVPR 2018论文:Feature Generating Networks for Zero-Shot Learning
前言:
迁移学习,是指利用数据、任务、或模型之间的相似性,将在旧领域学习过的模型,应用于 新领域的一种学习过程。
我们都对机器学习有了基本的了解。机器学习是人工智能的一大类重要方法。机器学习解决的是让机器自主地从数据中获取知识,从而应用于新的问题中。迁移学习作为机器学习的一个重要分支,侧重于将已经学习过的知识迁移应用于新的问题中。 迁移学习的核心问题是,找到新问题和原问题之间的相似性,才可以顺利地实现知识的迁移。
迁移学习主要解决一下问题:
1. 大数据与少标注之间的矛盾。
2. 大数据与弱计算之间的矛盾。
3. 普适化模型与个性化需求之间的矛盾。
4. 特定应用的需求。
文章目录
- 1 简介
- 2 模型
- 3 实验
- 4 总结
- 5 有意思的地方
零样本问题可以看作是数据缺失问题。由于目标域数据不可见,导致模型训练时的数据不均衡。一个直观的想法就是生成目标域的数据。生成图像是最简单的想法,但是本文提出直接生成目标域的特征,而不是图像。我认为,这样做确实能够提高精度,因为最后做分类都是在特征上做的,直接生成特征,能够缓解生成图像质量不好的问题。
1 简介
介绍一篇CVPR 2018的文章:Feature Generating Networks for Zero-Shot Learning。作者使用GAN在特征空间生成数据的思想来解决zero-shot learning的问题。相比GAN生成图像,该方法能取得更好的结果。
为什么生成特征比生成图像好?
- 生成的特征的数量是没有限制的
- 特征生成网络FGN的输入是提取的高质量特征,使得FGN可以比较简单,计算高效
- 生成的特征判别性很强
- 同样判别性的要求下,生成特征的维度要远远低于生成图像。
问题:
- 图像生成对数量的限制数量是什么原因?
- 为什么生成图像的判别性弱?作者说生成的图像缺少必须的判别性的细节。应该是图像生成质量不够好,缺失了一些信息。
2 模型
图1 f-CLSWGAN模型
f-CLSWGAN模型相对比较简单,训练如图1所示。
- 第一行是真实图像的特征提取过程。首先,用CNN网络提取特征x;然后,将特征x与其对应的属性描述 c(y) 拼接后输入判别器,并判别为真。
- 第二行是生成特征的分支,随机生成一个变量,与属性描述拼接后输入生成器,生成特征\hat{x},再次将 \hat{x} 与属性描述 c(y) 拼接后输入判别器并判别为假。
- 为提高生成质量,加一个auxiliary classifier,对生成的数据进行分类,类别为y
CNN网络:可以是GoogleNe,ResNet,ImageNet上预训练的模型,特定任务微调过的模型,本文采用的是预训练模型。
3 实验
观察GZSL的实验结果,没有生成数据的时候,所有模型的可见类精度明显高于未见类精度,说明许多样本被错分类为已见类。令人惊奇的是,只使用简单的softmax分类器就能得到SOTA的结果。这表明生成的特征潜力和泛化能力。
4 总结
f-CLSWGAN有两个创新点:
- 一是在特征空间生成数据,而不是直接生成图像;
- 二是添加了auxiliary classifier,提高了生成器的性能。
5 有意思的地方
- 关于为什么进行ZSL?
- 论文说深度学习需要大量数据。但是你不能标注所有的类别。
- 关于生成图像判别性不足?
- 4.4 中: 基于观察,许多生成图像有正确视觉外观,比如鸟和花,但是他们缺少必须的判别性信息来进行正确的分类,而且生成图像的类别不一致。判别性不足也和类别的力度有关系,细粒度应该更难生成判别性的图像或者特征。
- 关于细粒度ZSL?
- 实验中CUB和Flowers数据集是细粒度图像数据集。生成方法在细粒度ZSL中可能会有发展。
- 关于分类器提高生成质量在ZSL中的表现?
- 论文没有对比使用和不使用auxiliary classifier的性能对比。
- 关于方法没有使用Batch Normalization?
- 作者没有采用BN,他们的经验评估表明使用BN后精度会有很大的降低。