架构 encoder_基于auto-encoder的生成对抗网络: VAE-GAN与 BiGAN

该文章摘自李宏毅老师https://www.youtube.com/watch?v=sU5CG8Z0zgw&index=7&list=PLJV_el3uVTsMq6JEFPW35BCiOQTsoqwNw 的教学视频,建议大家观看原视频

如果使用auto-encoder来做生成,普遍存在的问题是会得到非常模糊的结果;如果使用原始GAN,训练就会不太稳定。基于auto-encoder的GAN希望通过GAN来强化auto-encoder,能够使得生成清晰的结果,同时也能生成出不一样的output。这中间的代表就是VAE-GAN和BiGAN

VAE-GAN

VAE-GAN的原理是用GAN来强化VAE,VAE本身就是一个auto-encoder的变形。auto-encider大家都很熟悉了。

d15879c21b82e0d0d5c7a72869874303.png

在原来VAE的基础上加一个discriminator,看看output的image越真实越好。如果只是做VAE,那么图片会很模糊。加上discriminator后迫使output越真实越好。从GAN的角度来看,在train GAN的时候,generator从来没见过真正的image长什么样,如果通过auto-encoder的架构,generator不仅仅要骗过discriminator,它见过真实的图片长什么样,所以VAE GAN学起来会更稳一点。

261c5995368071c81e5998840856d626.png

在VAE-GAN中,各个部件的优化目标如下:

encoder:minimize reconstruction error,同时希望encode的向量z越接近真实越好。

Generator(同时也是decoder): Minimize reconstruction error, 同时 cheat discriminator

Discriminator: 区分真实图片和generator生成的图片。

算法流程

我们再来看看具体的算法流程:

  1. 初始化encoder, generator(decoder), discriminator
  2. 在每次迭代中:
  • 从数据集中sample出M个样本
  • 从encoder中生成M个向量
  • 从Generator中生成M个output
    ,
  • 从一个分布
    中sample出M个向量
  • 从Generator中生成M个output
  • 优化Encoder:更新参数来减小
    ,就是说希望可以把decoder(也就是generator)产生的输出和原始输入越接近越好,同时希望中间的
    与normal distribution越接近越好。
  • 优化Generator: 更新参数来减小
    ,同时让
    越大越好。也就是要骗过discriminator。
  • 优化Discriminator: 更新参数增加
    ,减小

那么VAE-GAN是修改了auto-encoder,另一种BiGAN也是修改了auto encoder, 看看它的原理:

BiGAN

在BiGAN中,Encoder和Decoder分开了,对于Encoder,输入一张图片,得到一个vector, =对于decoder(也就是Generator),从一个normal distribution中随机sample一个vector, 输入Decoder得到图片。然后对于Discriminator, 我们同时投喂图片和其配对的z,让discriminator去判断这是来自于encoder还是decoder。Bi-GAN为什么有效呢,它其实就是在拟合生成原始数据集的分布P和Generator所拟合的分布Q的divergences。虽然Encoder和Decoder没有直接接在一起,但透过Discriminator可以让他们形成理想的auto-encoder

942594c15ec2e7303a2b59548038624f.png

Bi-GAN的算法流程如下:

  1. 初始化encoder, generator(decoder), discriminator
  2. 在每次迭代中:
  • 从数据集中sample出M个样本
  • 从encoder中生成M个向量
  • 从一个prior
    中sample出M个向量
  • 从Generator中生成M个output
    ,
  • 优化Discriminator: 更新参数增加
    ,减小
  • 优化Encoder和Decoder: 更新Encoder和Decoder来减小
    ,增大
    ,也就是Encoder和Decoder联手来骗过Discriminator。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值