Generative Adversarial Text to Image Synthesis

ICML 2016 

  

  摘要:本文将文本和图像练习起来,根据文本生成图像,结合 CNN 和 GAN 来有效的进行无监督学习。

  Attribute Representation: 是一个非常具有意思的方向。由图像到文本,可以看做是一个识别问题;从文本到图像,则不是那么简单。

  因为需要解决这两个小问题:

  1. learning a text feature representation that captures the important visual deatails ; 

  2. use  these features to synthesize a compelling image that a human might mistake for real. 

  幸运的是,深度学习对这两个问题都有了较好的解决方案,即:自然语言表示image synthesis

  但是,仍然存在的一个问题是:the distribution of images conditioned on a text description is highly multimodal,in the sense that there are very many plausible configurations of pixels that correctly illustrate the description.

  

  


  Background

  1. GANs.

    此处略,参考相关博客。

  2. Deep symmetric structured joint embedding.

  为了得到一个视觉上可以判别的文本表示(text description),我们采用了一个 CVPR 2016 的一篇文章,利用 CNN 和 recurrent text encoder 根据一张 Image 学一个对应的函数。这个 text classifier 是通过以下的 structure loss 进行训练:

    

  其中,$\{ v_n, t_n, y_n \}$ 是训练数据集合, $\delta$ 是 0-1 loss,$v_n$ 是image,$t_n$ 是 text description,$y_n$ 是class label。

  分类器 $f_t$, $f_v$ 参数化如下:

  其中,一个是 image encoder,一个是 text encoder。当一张图像有了其类别信息的时候,文本的编码应该有更高的兼容性得分,反之亦然。(The intuition here is that a text encoding should have a higher compatibility score with image of the corresponding class and vice-versa。)


  Method :

  我们的方法是为了基于text feature,训练一个深度卷积产生式对抗网络 (DC-GAN)。

  1. Network architecture .

  基本概念:产生器 G ;判别器 D ;

  以上,就是本文提出的整个网络框架。

  首先看产生器 G,将文本信息经过预处理得到其特征表达,然后将其和 noise vector 组合在一起,输入到接下来的反卷积网络中,最终生成一幅图像;

  再看判别器,将图像进行卷积操作后,我们将本文信息在 depth 方向上组合原本图像卷积得到的feature 上,然后得到一个二元值。

  

  2. Matching-aware discriminator (GAN-CLS) :

  最直接的方法进行 conditional GAN 的训练是将 pairs (text, image) 看做是一个联合的观察(Joint Observations),然后训练判别器来判断这个 pair 是 real or false。这种条件是 naive 的,当处于 the discriminator 没有明显的 notion 是否 real training images match the text embedding context。

  在 naive GAN,the discriminator 观察到两种输入:real image 和 匹配的 text;以及 synthetic images 和 随意的 text。所以,必须显示的将两种 errors 分开:

  unrealistic images (for any text), and realistic images of the wrong class that mismatch the conditioning information。

  基于这可能会增加了学习 dynamics 的复杂性,我们修改了 GAN 训练来分开这些 error source。

  除了在训练阶段,提供 real / fake inputs 给 discriminator 之外,我们增添了第三种输入,即:real images with mismatched text,which the discriminator must learn to score as fake。通过学习 image / text 的 matching,还要学习 image realism (图像的真实性),判别器可以提供额外的信息给产生器(the discriminator can provide an additional signal to the generator)。

  

  算法 1 总结了训练的过程。

  

  3. Learning with manifold interpolation (GAN-INT)  流型插值

  Deep network have been shown to learn representations in which interpolations between embedding pairs tend to be near the data manifold.

  深度学习发现当接近数据流型的数据对之间进行插值 来学习表示。

  受到这个发现的启发:我们可以产生一个 large amount of additional text embeddings by simply interpolating between embeddings of training set captions

  关键是,这些插值的 text embeddings 不需要对应上任何真实的 human-written text,所以,不需要额外的 labeling cost。

  这个就可以看做是:在产生器的目标中增加一个额外的项:

  由于插值的 embeddings 是伪造的,判别器并没有对应的 image and text pairs 来进行训练。但是,D 学习到了是否当前 image 和 text 相匹配。

  

  4. Inverting the generator for style transfer.

  如果 text encoding 可捕获图像的 content,比如:flower shape 和 colors,然后 为了保证一个真实的图像,the noise sample Z 应该可以捕获 style factors,如:背景颜色和姿态。有了一个 trained GAN,我们可能希望转换一个图像的类型,根据特定的文本描述的内容。为了达到这个目的,我们可以训练一个 CNN 来翻转 G 以使得从样本进行回归 到 Z。我们利用一个简单的 squared loss 来训练 style encoder:

  其中,S 是 style encoder network。有了训练的产生器 和 类型编码,style transfer 根据样本 t 从一张 query image x 执行下列步骤:

  其中, x 是结果图像, s 是预测的 style。

 


  Experiments .

  

  

  

  

  

  

  

  

  

  

  

  

  

论文笔记之:Generative Adversarial Text to Image Synthesis的更多相关文章

  1. 论文阅读 | TextBugger: Generating Adversarial Text Against Real-world Applications

    NDSS https://arxiv.org/abs/1812.05271 摘要中的创新点确实是对抗攻击中值得考虑的点: 1. effective 2. evasive    recognized b ...

  2. (转)Deep Learning Research Review Week 1: Generative Adversarial Nets

    Adit Deshpande CS Undergrad at UCLA ('19) Blog About Resume Deep Learning Research Review Week 1: Ge ...

  3. Generative Adversarial Nets[CycleGAN]

    本文来自<Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks>,时间线为2017 ...

  4. Generative Adversarial Nets[pix2pix]

    本文来自<Image-to-Image Translation with Conditional Adversarial Networks>,是Phillip Isola与朱俊彦等人的作品 ...

  5. StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记

    StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks  本文将利 ...

  6. Face Aging with Conditional Generative Adversarial Network 论文笔记

    Face Aging with Conditional Generative Adversarial Network 论文笔记 2017.02.28  Motivation: 本文是要根据最新的条件产 ...

  7. AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记

    AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记 这 ...

  8. 论文笔记之:SeqGAN: Sequence generative adversarial nets with policy gradient

    SeqGAN: Sequence generative adversarial nets with policy gradient  AAAI-2017 Introduction :  产生序列模拟数 ...

  9. 《Generative Adversarial Networks for Hyperspectral Image Classification 》论文笔记

    论文题目:<Generative Adversarial Networks for Hyperspectral Image Classification> 论文作者:Lin Zhu, Yu ...

随机推荐

  1. CSSOM之getComputedStyle,currentStyle,getPropertyValue,getAttribute

    js关于CSSOM编程的样式相关几个常用的方法 webkit:getComputedStyle,getPropertyValue IE:currentStyle,getAttribute 前言 jqu ...

  2. centos6.5安装sublime text 2

    今天在看ueillemmx的博客的时候,看到一神级编辑器,随即安装试了试,我了个去,果然好用,自动补全,自动对齐,样样精通啊! 下面是根据ueillemmx的步骤在CentOS上安装Sublime的过 ...

  3. 0030 Linux 网络操作命令

    1. 主机是否可达 ping IP 2. 服务是否在运行 telnet IP port 3. 网络配置 ifconfig ip route arp 4. 网络访问 curl wget 5. 网络追踪 ...

  4. SSH框架的配置

    ^_^阅读本文前请先浏览 : http://www.cnblogs.com/LiJinfu/p/5842890.html 步骤 : 一.编写web.xml配置文件 该文件路径在项目文件下的WebCon ...

  5. python内置函数 3

    int( [x[, radix]])转换为字符串或数字为纯整数.如果参数是一个字符串,它必须包含一个可能有符号的十进制数作为一个 Python 整 数,可能嵌入空格.以 radix 参数给出的基数为基 ...

  6. css-九宫格自适应的实现

    高度自适应使用padding 或 padding-bottom + 百分比来实现: 宽度自适应使用width + 百分比来实现. 下面是实现九宫格自适应的代码: <!DOCTYPE html&g ...

  7. vuex是啥

    vuex是一个状态管理工具. vuex store与一个简单的全局变量的区别是: 1.vuex stores 是响应式的,当组件改变state时,它能响应并高效地更新state. 2.state不能被 ...

  8. C#窗体 WinForm 文件操作

    文件及文件夹操作 C/S:WinForm可以操作客户端文件 Client ServerB/S:浏览器服务 Brower Server 命名空间:using system .IO; 1. File类:文 ...

  9. JDE Client开发端 左侧边栏设置

  10. bzoj 2878: [Noi2012]迷失游乐园

    #include<iostream> #include<cstring> #include<cstdio> #define M 100005 #define ld ...