Zero-Shot Learning论文学习笔记(第三周)
Feature Generating Networks for Zero-Shot Learning
原文链接:
http://openaccess.thecvf.com/content_cvpr_2018/papers/Xian_Feature_Generating_Networks_CVPR_2018_paper.pdf
摘要
深度学习经常被用于计算机视觉任务中,但是深度学习需要大量的训练数据,然而实际情况中常常缺乏这些数据,这也就造成了seen class和unseen class训练数据大多数情况下的极度不平衡。
GAN网络可以生成很真实且清晰的图像,但是由于这种图像类别间的不平衡,现有的ZSL方法在GZSL任务上的性能很差。
文章提出基于GAN框架,利用语义信息来生成不可见类的CNN特征。文章的方法利用Wasserstein GAN和分类损失,生成判别性强的CNN特征,来训练分类器。作者的实验结果表明,在零样本学习和广义零样本学习设置中,在五个具有挑战性的数据集(CUB,FLO,SUN,AWA和ImageNet)上的准确率比其他方法有显著提高。
由下图所示,CNN的特征可以从以下几个方面提取:
1)真实图像,但是在零次学习中,无法获得任何不可见类的真实图像;
2)合成图像,但是它们不够精确,无法提高图像分类性能。
文章为了解决了这两个问题,提出了一种新的基于属性条件特征生成对抗性网络公式,即f-CLSWGAN,用于生成不可见类的cnn特征。
论文提出了两个任务,zero shot learning (ZSL)和generalized zero shot learning(GZSL),前者只需要解决未见过的数据的分类任务,后者需要同时对见过的和未见过的数据进行分类。
算法简介:
使用GAN在特征空间生成数据的原因
文章提到了DC-GAN,InfoGAN和Wasserstein-GAN(WGAN),指出这些先进的GAN虽然已经可以生成逼真的图像,但是并没有将这一思想应用到图像特征生成中的先例。
(1)生成的特征数据是无限制的。
(2)生成的特征通过大规模数据集学习到的具有代表性的特征表示,可以在某种程度上泛化未知类别的特征。
(3)学习的特征具有很强的判别性。
- 作者使用三种conditional GAN的变体来循序渐进的生成图像特征:embedding feature。
- 首先通过下式表示可见类和不可见类。
S = { ( x , y , c ( y ) ) ∣ x ∈ X , y ∈ Y s , c ( y ) ∈ C } S = \{ ( x , y , c ( y ) ) | x \in X , y \in Y ^ { s } , c ( y ) \in C \} S={ (x,y,c(y))∣x∈X,y∈Ys,c(y)∈C}
U = { ( u , c ( u ) ) ∣ u ∈ Y u , c ( u ) ∈ C } U = \{ ( u , c ( u ) ) | u \in Y ^ { u } , c ( u ) \in C \} U={ (u,c(u))∣u∈Yu,c(u)∈C}
其中 S S S代表可见训练集全体, x ∈ R d x x \in R ^ { d _ { x } } x∈Rdx是CNN特征, y s = { y 1 , . . . , y k } y^s=\{y_1,...,y_k\} ys={ y1,...,yk}代表有 k k k个不交叉的可见类, y y y代表类标签, c ( y ) ∈ R d c c(y)\in R^{d_c} c(y)∈Rdc代表y类的embedding 属性集,由语义向量构成。
U代表不可见类,与可见类相比,缺少了图像和图像特征,也就缺少了CNN特征。 - 在给出S和U的类别定义后,文章给出ZSL和GZSL的任务要求:
ZSL的任务:学习一个分类器 f z s l : X → Y u f_{zsl}:X\to Y^u fzsl:X→Yu;
GZSL的任务:学习一个分类器 f g z s l : X → Y s ∪ Y u f_{gzsl}:X\to Y^s \cup Y^u fgzsl:X→Ys∪Yu。
1.f-GAN
- f-GAN的目标是学习一个条件生成器 G : Z × C → X G:Z\times C\to X G:Z×C→X
其中Z是从高斯分布中随机采样的噪声 z ∈ Z ⊂ R d z z \in Z \subset R ^ { d _ { z } } z∈Z⊂Rdz, c ( y ) ∈ C c(y)\in C c(y)∈C是类别 y y y的语义向量,这两者作为输入。 x ^ ∈ X \hat { x } \in X x^∈X是 y y y类中的CNN feature,作为输出。
1.1 original-GAN
- 传统的GAN网络的损失函数如下: