兔子博客

AttnGAN——Text-to-Image Convertor 文字到图像转换器

AttnGAN是GAN的一种变体,要知道AttnGAN是什么,首先我们要知道什么是GAN!

Gan(生成式对抗网络)

生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。
在该模型中,有两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出
举个简单的例子:

在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。
而D的目标就是尽量把G生成的图片和真实的图片分别开来。
这样,G和D构成了一个动态的“博弈过程”。
最后博弈的结果是什么?在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。
这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。


定义GAN的目标函数为V(G,D),在博弈过程中,G希望减少V的值让自己生成的分布无法识别,而D希望增大V的值让自己可以高效的判别出数据的真假类别,则V(G,D)的表达式为


既然GAN已经有所了解了,那么AttnGAN又是什么呢?

AttnGAN(注意生成对抗网络)

上文已经说到,他是GAN的一种变体,他可以根据写下的文字生成图像,在以往的常规做法是将整个句子编码为condition向量,与随机采样的高斯噪音$z$进行拼接,经过卷积神经网络(GAN,变分自编码等)来上采样生成图像。而仅通过编码整个句子去生成图像会忽略掉一些细粒度的信息,而这些细粒度的信息是由单词层面来决定的(例如颜色、形状等)。
所以AttnGAN就是解决他的好办法,在生成过程中引入对单词的注意力机制,这种注意力机制需要把相关的单词与对应的图像区域匹配起来。

其中的模型有两个部分组成:

Attentional Generative Network

该部分使用了注意力机制来生成图像中的子区域,并且在生成每个子区域时还考虑了文本中与该子区域最相关的词。

DAMSM

该部分用来计算生成的图像与文本的匹配程度。用来训练生成器。

Pipeline

引用资料:
【1】https://segmentfault.com/a/1190000021743424?utm_medium=referral&utm_source=tuicool
【2】https://www.cnblogs.com/zzycv/p/11704771.html
【3】https://github.com/taoxugit/AttnGAN
【4】https://openaccess.thecvf.com/content_cvpr_2018/papers/Xu_AttnGAN_Fine-Grained_Text_CVPR_2018_paper.pdf
【5】https://blog.csdn.net/zlrai5895/article/details/81366834
【6】https://blog.csdn.net/appearance_/article/details/79185644

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »