Deep Generative Model2--GAN(Generative Adversarial Network)-cont

Conditional Generation with GAN

Text-to-Image
假设现在我们的目标是通过文字生成图片,如果使用传统的监督学习,我们把文字作为input,对应的图片作为output来训练NN,逻辑上似乎可行。但是效果却未必理想,原因在于,对与文字描述与图片,往往一段文字描述会对应多张图片,比如我们输入’行驶的火车’, 可能对应,正面驶来的火车,侧面驶来的火车等等,因此NN最后学到的结果会导致说,当我们扔一个‘行驶的火车’进去,模型输出很有可能是训练集中各种火车的average,图片上来看极有可能是非常模糊或者存在noise的。
接下来我们来思考如何用GAN来解决这个问题。首先和最原始的GAN不同,这里GAN的图片生成应该是基于condition的,也就是文字描述。无论是G还是D,input都应该应该包含文字描述©,下图来自李宏毅老师的课件。
在这里插入图片描述
如上图所示,对于G,我们的input是c和z的pair,对于D,我们需要的input是G生成的x以及c的pair。对于D而言,当且仅当产生的x质量极高(可以以假乱真)同时x与c匹配时,才会认定为posiitve example,其他任意的情况都应该被判定为negative examples。
具体的算法可归结为下图:
在这里插入图片描述
相较于基本的GAN,这里需要生成的数据种类会更复杂。首先我们当然需要真实的(c,x)pair,然后,我们需要让G来生成x_prime, 然后组成(c,x_prime) pair, 除此之外,我们还需要随机从真实database中再抽取x_hat,但是与我们的c并不匹配,也就是(c,x_hat)。我们需要D做到的是只有(c,x)被认为是positive example,剩下两组均为negative examples。然后需要G做到的就是不断优化参数让(c,z)pair在D下的得分越来越高,被认定为真实数据对。其余的逻辑与GAN基本一致,这里就不再重复了。

除了从文本转化为图片,conditional GAN还可以用来Image-to-image以及speech enhancement等等。

参考:李宏毅机器学习课程https://www.bilibili.com/video/BV1JE411g7XF?p=76

猜你喜欢

转载自blog.csdn.net/weixin_44607838/article/details/109263299