【零样本学习】A Generative Model For Zero Shot Learning Using Conditional Variational Autoencoders

Motivation

Zero shot learning假设虽然没有不能得到unseen class的图像,但是可以获得unseen class的语义信息(属性信息或者文本描述等),所以ZSL的研究有助于理解语言概念如何很好地转化为视觉信息。
倘若某个类别能够被语义向量准确地表示,那么ZSL问题就可以看作寻找语义向量和图像视觉特征之间的关系。现有的大多数ZSL方法就是学习图像视觉空间到语义空间的映射关系。然而这种方法存在domain shift问题。从seen class中学习到的映射关系不能正确捕获unseen class的关系,因为图像空间可能不是连续和平滑的(seen class和unseen class的分布不同)。由于复杂的图像生成过程,图像空间可能比语义空间更为复杂。
GAN和VAE能够很好地建模图像生成过程。(这个图像生成过程推广到unseen class的能力,对于ZSL问题很重要)
本文的方法不再关注建模visual-semantic映射关系,而是将ZSL问题看作数据缺失问题。通过VAE模型来建模图像生成过程,来填充unseen class的缺失数据。

Contributions

1、将ZSL问题看作数据缺失问题。利用Conditional Variational Autoencoder来学习在语义向量A的条件下,图像特征X的概率分布。由于这种方法以更为复杂的方式建模图像生成过程(相比于学习简单映射函数),能够缓解domain shift问题;

2、实验验证了方法的有效性,特别是在GZSL场景下;
Note:GZSL场景的识别更为困难:1)类别更多;2)seen class和unseen class来自不同的分布,会导致在seen class和unseen class上性能都下降

3、由于模型能够为unseen class生成图像,也验证了Conditional Variational Autoencoder能够捕获潜在图像生成过程,同时验证了生成模型的泛化能力。

Method

Variational Autoencoder
在这里插入图片描述
优化问题可以看成最小化重构误差,KL散度是正则化项。

Conditional Variational Autoencoders
在这里插入图片描述
【零样本学习】A Generative Model For Zero Shot Learning Using Conditional Variational Autoencoders_第1张图片
我们发现decoder(两层全连接)容易在seen class上过拟合(即使在使用了 batch normalization 和 dropout等技术情况下)。
于是,对损失函数修改(希望 q(z)接近于标准正态分布):
在这里插入图片描述
训练过程如下:
【零样本学习】A Generative Model For Zero Shot Learning Using Conditional Variational Autoencoders_第2张图片
在GZSL场景下,可以将seen class和unseen class的数据一起训练分类器。但是如果用seen class的真实数据,可能会导致偏向于seen class。所以,在GZSL场景下,对于seen class也生成伪数据,再与unseen class的伪数据结合。

你可能感兴趣的:(Zero-Shot)