Adversarial Feature Learning

对抗特征学习
摘要:
对抗生成网络框架学习从简单的隐藏分布映射到任意复杂的数据分布的生成模型的能力已被实验证明,令人信服的结果表明这些生成器的隐藏空间捕捉到数据分布中的语义变化。直觉上而言,被训练用于预测给定数据的这些语义隐藏表示的模型可能可以作为辅助的语义相关问题的有用的特征表示。但是,在对抗生成网络的现有的类型中,它们都没有办法学习其相反的映射——将数据映射回隐藏空间。我们提出了双向的对抗生成网络(BiGANs)作为学习这种相反的映射的方法,并且表明由此产生的学习的特征表达,比起现在的无监督和自监督特征学习的方法,对于辅助监督分类任务很有帮助。

全文地址:
https://arxiv.org/abs/1605.09782

这篇文章提出了一种新的GAN的结果,双向的GAN结构,其结构图如下,除了GAN本身有的Discriminator和Generator部分,结果中加入了一个Encoder部分,用于将GAN要生成的数据空间中的数据,逆映射回隐藏code空间;而discriminator的输入变成了一个二元组形式,由数据,以及其对应的隐藏code组成(更确切的说,对于Generator生成的数据,这个二元组是生成的数据和用以生成数据的噪声数据;对于真实数据而言,这个二元组是数据本身和数据经过Encoder逆映射得到的其对应的隐藏code),用以判别真假。本文意图使用这样的双向GAN结构,来学习获得一个既能模拟生成数据,又能将数据逆映射回用以生成该数据的编码的结构。这样以来,获得的GAN中,Encoder可以作为一个特征提取的工具,用于分类器,而这样的特征提取的学习,是一个无监督的学习过程。

《Adversarial Feature Learning》

网络结构下loss的设计如下:

《Adversarial Feature Learning》

但是按照GAN的提出者Goodfellow关于训练GAN的建议:将真假样本标签翻转过来,这样训练的时候对于Generator能提供更大的梯度,所以上述的loss在训练的时候,改成如下翻转标签的形式:

《Adversarial Feature Learning》

这个部分的修改,只是一个训练GAN的trick之一,具体的训练GAN的trick可以参考下ICCV2017的talk中的内容,其ppt和具体内容见网页https://github.com/soumith/talks/blob/master/2017-ICCV_Venice/How_To_Train_a_GAN.pdfhttps://github.com/soumith/ganhacks也可以参考Goodfellow的文章Improved Techniques for Training GANs(https://arxiv.org/abs/1606.03498

论文实验中的baseline:
Discriminator:一般有人采用的是discriminator提取出来的用以分辨真假样本之前的特征,将此特征用于分类,这样就不需要多余的结构来进行特征提取,但是作者指出这个方法的缺陷在于,按照GAN的理论,在Disrciminator和Generator都达到最优化的情况下,Discriminator对于给定的样本进行真假分辨的结果是随机的,分辨为真假样本的概率为等概率50%(这块其实一直不明白,为什么Discriminator和Generator都最优化的情况下,Discriminator表现如此差,Generator表现如此好)。
Latent regressor:这个方法也是训练一个反向的Encoder,来最小化重构误差L(z,E(G(z))),这样的问题是,这个Encoder没有获取过真实的x数据,只是获取到了由z生成的数据,这样重构会偏向于对于生成器生成的数据友好,而对真实数据不一定友好的情况。

最终实验表明,在简单的MNIST数据集上,该方法并没有什么优势,甚至不如一些baseline的表现,但是在实际场景中的复杂的数据集上,比如ImageNet LSVRC和PASCAL VOC 2007上表现明显好于baseline。

《Adversarial Feature Learning》

《Adversarial Feature Learning》

《Adversarial Feature Learning》

    原文作者:马小李23
    原文地址: https://www.jianshu.com/p/f0fb0bcf4ec0#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞