【李弘毅mlds18GAN】2,Conditional Generation by GAN

我么这次想要解决得问题是,输入一段文字,之后生成其对应得图片。比如输入文字“a dog is running”之后输出的是一只飞奔的小狗。如果是使用传统的监督学习来解决这个问题的话,其实是可以解决的,但是训练集中有的火车是正面,有的是在侧面,这样的话如果使用监督学习的话,要做均值处理的话是搞不定的,因为均值的结果是模糊的,一般会是错的。如果产生正面的火车是好的结果,如果产生侧面的火车是好的结果,但是同时产生正面和侧面的话,就是不好的结果。一般产生的结果会是比较模糊的,因为会是多个图片的平均

由于传统的监督学习的方法是有所缺陷的,所以我们使用GAN的方法来解决,输入时噪声z和条件c,之后输出时一张图片。传统的D只是可以判断出这个图片是否时一张清晰真实的图片,但是这里要求不仅仅时清晰和真实,还要和输入的信息match住,这里显然时无法进行的,所以我们要更新D.

更新以后的D,如果图片是清晰的,并且和条件可以match住的话,就给予一个较高的分数,如果图片不是清晰的话,就给予一个较低的分数,如果清晰的图片但是和信息match不住的话,也会给予一个较低的分数。(正确的情况有一种,但是错误的情况有两种)。

cGAN的演算法如下:先是在数据库中抽样出一些真实的图片和信息的配对,之后再在噪声集中抽样出一组噪声,获得生成的图片,之后再在数据库中抽样出一组信息,更新参数,就是清晰的图片同时和信息match住就是正确的(D会很高),获得不清晰的图片或者是获得清晰图片但是不能和信息match住就是错误的(D的分数会很低)

之后我们更新G,先是在噪声中采样,之后在信息这边采样,之后更新,使之生成图片的越大越好越大越好

 

 

一般来说我们都是输入一段信息c和噪声z,之后输出的是一个分数,这样做的好处就是简洁,但是这样容易引发混淆,就是我们不知道是因为我们输出的图片不够真实还是因为图片和信息match不好才引发的分数很低。

所以我们一般引入下面的部分进行,就是引入两个神经网络,一个神经网络用来判断生成图片是否是清晰的一个神经网络用来判断信息和生成图片是否是match的。

这样就逐个击破,不会引发混淆。

这是实验的结果,就是输入红头发,绿眼睛,输出的头像也是如此。

 

 

从文献中我们看到一种stackGAN,其实也是cGAN的变体。就是两个cGAN一起使用,先是一段c和一段噪声生成一个清晰度很低的图片,之后再将信息和清晰度很低的图片丢进另一个cGAN,生成清晰度更大的图片。

阅读文献,我们还可以发现另一种思想,就是输入的c不再是文字而也是一个图片。输入一个图片,之后使用cGAN来输出一个与他十分类似的图片。

如果使用普通神经网络的话,因为是图片均值的缘故,生成的图片都会有点模糊。

使用GAN的话,会清晰很多,但是可能会生成一些奇怪的东西,这时候我们需要GAN和close一同应用,保证我们是正确的。

还有一种patch GAN,就是将一张图片分割,分别使用GAN,每一个小区域先GAN

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值