美文网首页
那些年用GAN和VAE做的Zero-Shot learning

那些年用GAN和VAE做的Zero-Shot learning

作者: 阮恒 | 来源:发表于2019-05-17 18:15 被阅读0次

    一、《Feature Generating Network for Zero-Shot learning》

    这篇论文由Yongqin Xian 发表于CVPR2018。
    在看这篇文章之前,我们首先来梳理一下Zero-Shot Learning (ZSL) 的任务。所以,什么是ZSL呢?这种任务要求我们基于可见的一些物体,训练网络对物体属性的感知,从而对没有见过的物体进行分类。通俗点讲,就是我们给网络看了小脑斧、小马的图片,告诉他小脑斧身上有花纹,但是腿短,小马身上没花纹,但是腿长,小斑马身上有花纹而且腿长,有一天,我们给网络一张小斑马的图片,问他这是什么。即使他从没有见过斑马的图片,我们依然希望他通过之前的知识,能够对图片进行正确的分类。


    什么是Zero-Shot Learning?

    从数学角度来讲,设可见的图像集合为S = {(x^s,y^s,c(y^s))}, 其中 x 是图像,y 是图像所属的类别, c(y^s) 是该类别的一些类别属性,比如attributes、description等等。不可见的图像集合为U = {(y^u,c(y^u))},仅有图像类别和类别属性。所以普通细粒度分类的任务就是学习一个分类器f_{zsl}: X->Y^u,预测从未见过的图像类别。

    但是这样的分类面临一个问题,(DV在讨论实验室项目时也提到过小样本学习面临同样的困境),就是在实际情况中,我们并不知道待分类的图像之前见没见过。所以就出现了一个更符合实际的任务,Generalized ZSL(GZSL),他的分类器是f_{zsl}: X->Y^u \cup Y^s,即预测集中含有见过和没见过的图像类别。

    了解了什么是ZSL和GZSL之后,就可以正式开始解读这篇论文啦。
    作者使用三种conditional GAN来循序渐进的生成embedding feature。

    论文模型

    1. f-GAN

    这是一种条件GAN(对条件GAN的介绍),对生成器和判别器都额外增加附加信息c(y),这里的附加信息是类别attributes或者description。
    给定训练数据(来自可见数据集S),作者计划训练一个generator G: Z \times C -> X,其中Z是高斯噪声,C是class embedding,生成的是image feature \tilde{x}~ \in X

    所以整个GAN的损失函数就如下所示:

    f-GAN
    即训练时,生成器输入的是高斯噪声和某些可见类别的class embedding,输出的是该类别的image feature 。判别器输入的是类别的class embedding 和真实的image feature 以及生成的image feature 。

    2. f-WGAN

    作者又采用另一种GAN网络,Wasserstein GAN(对Wasserstein GAN的介绍

    WGAN

    3. f-CLSWGAN

    作者认为单纯使用WGAN还不足以使generator生成的features能够训练出一个好的分类器,所以作者提出加上一个分类loss。

    二、《f-VAEGAN-D2: A Feature Generating Framework for Any-Shot learning》

    这是Yongqin发表在CVPR2019的文章。
    这篇文章的思路是将GAN和VAE结合,GAN的generator和VAE的decoder用同样的参数。这样,GAN的generator的输入就有了VAE的约束。作者大概就是这个意思吧。这篇文章代码没有看。


    f-VAEGAN-D2

    三、《Generalized Zero- and Few-Shot Learning via Aligned Variational Autoencoders》

    这篇文章单纯使用VAE来做Zero- and Few-Shot Learning,发表于CVPR2019。作者用了两个结构相同的VAE。


    CADA-VAE

    这个作者的思想不同于Yongqin的想法,后者是将class embedding (attributes) 当做辅助信息输入Decoder、Generator和Discriminator;前者是利用两个VAE,一个对image进行encode, 另一个对class embedding进行decode。

    为了保证image和class embedding被投影到的空间一致,除了两个VAE各自的传统loss:

    屏幕快照 2019-05-31 下午4.32.05.png

    作者还将两个encoder的输出互换到decoder的输入端,生成Cross-Alignment loss。通俗地讲,这个loss的作用就是让image潜在空间z里面的向量,通过class embedding的decoder以后,也能还原成相应类别的class embedding。

    CA:Cross-Alignment loss

    还有一个Distribution Alignment loss, 是为了令两个VAE的潜在空间的均值方差服从同样的分布设置的:

    DA:Distribution Alignment loss

    相关文章

      网友评论

          本文标题:那些年用GAN和VAE做的Zero-Shot learning

          本文链接:https://www.haomeiwen.com/subject/slmoaqtx.html