深度学习《BiGAN》

在这里插入图片描述

BiGAN的算法思想:这里把将编码器和解码器分开,不再一起训练,但是额外加一个判别器,将编码器和解码器的输入和输出(Z和X)同时作为判别器的输入,然后让判别器区分输入数据是来自编码器还是解码器,但是encoder和decoder会尽量不让D做出正确的判别,如果有朝一日,判别器D无法分别输入的数据到底是来自哪个,就说明编码器的输入图片和解码器生成的图片很接近,编码器输出的z和解码器输入的z很接近,就成功了呢。

简单的原理就是将编码器看成一个P(x,z)分布,将解码器看成Q(x,z)分布,通过判别器,让他们的差异越来越小。

理想情况下,我们希望最后encoder和decoder达到这样的效果。
在这里插入图片描述

X输入到encoder,得到的code Z输入到decoder,就还原出X。
Z输入到decoder,得到的X输入到encoder,就能还原出Z。
也就是形成了一个AE。

算法如下:
在这里插入图片描述

P(Z)就是一个既定的输入,可以是正态分布。
判别器D希望能正确地分清楚输入数据的来源,那么encoder和decoder的目标就反着来,对着干,我就是不让你D分清楚。encoder目标让判别器D把来自自己的数据判别为是decoder的,decoder目标让判别器D把来自自己的数据判别为是encoder的。

说到这里,BiGAN的意思就是用GAN的判别器去训练出一个可以对接的encoder和decoder。除此之外,完了后呢,decoder就能拿来使用了,因为decoder就是GAN的generator。

感觉和VAEGAN有着异曲同工之妙啊,虽然设计上不同,D的目标上也是不同,但是都是借助AE和D来形成一个latent code的分布这样一来我们就可以既得到了AE,又得到了GAN。

那么BiGAN的结构是否是好像也可以改成训练两个自编码器?
因为我们期望最佳最理想的情况下,encoder和decoder二者是可以拼接起来的。
在这里插入图片描述

实际上还是有区别的,BiGAN在实际情况不可能最优,只能近似最优,而且这两个出来的图的特性不一样,自编码器出来还是跟输入的图一样,输入和输出可能没啥大差别哈,但是BiGAN计算出来的可能不是同一张图,但是还是原来图的内容,比如输入是一只鸟,输出可能是另一只鸟,鸟还是鸟,不会变别的,这个可能就是GAN的特性吧,BiGAN更具有创造特性。这种创造性可能是来自于评判标准的不一致。BiGAN没有重建损失,只是判别是来自哪个分布,这样的话要求就降低了,当然这是我猜的。。。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值