GAN学习笔记

李宏毅老师讲解的Generative Adversarial Network

Review: Auto-encoder -> VAE ->GAN

Auto-encoder
auto-encoder的学习结果中的decoder可以拿出来,喂一个code可以生成一个image
VAE
VAE更进一步引入了噪声,学习目标仍然是希望input 和output尽可能的接近,但不能单纯最小化两者之间的差异,因为这样学出来的结果肯定是噪声的权重为0,因此对优化目标reconstruction error做了一些改进
problem of VAE
VAE存在的问题是:VAE并不是真的尝试去生成real图像;如左下和右下的图像和input图像其实都只差了一个像素点,但从人的角度看显然左下是realistic的图像而右下则是fake的图像,但在VAE的视角中两者与input图像间的差距是一样的

GAN概述

the evolution of generation
GAN中Generator与VAE中decoder的架构和做的事情是一样的,只是训练时的训练方法不一样

训练过程:

  1. How to learn Discriminator: 先随机初始化一个Generator,通过Generator生成一组假的images标为0,从data base选出一组real images标为1,把这两组都喂给Discriminator让它学习如何鉴别fake image和real image
  2. How to learn Generator: 更新Generatorv1的参数获得Generatorv2,要使Generatorv2生成的fake image 能骗过Discriminatorv1(即让Discriminatorv1的输出尽可能接近1);注意此时Discriminatorv1是fixed的
    GAN-Generator

课程中提及的"GAN-二次元人物头像合成"的pratice的链接
Source of images: GAN学习指南:从原理入门到制作生成Demo
DCGAN: https://github.com/carpedm20/DCGAN-tensorflow

The basic idea of GAN
极大似然估计
  • 数据集其实本身对应一个真实数据分布 P d a t a ( x ) P_{data}(x ) Pdata(x),但是我们没法形式化的写出来,不妨假设真实分布可表示为 P G ( x ; θ ) P_G(x;\theta) PG(x;θ) θ \theta θ是我们控制数据分布表示的变量;因此学习的目标是找到一个 θ \theta θ使两个两个分布尽可能的接近,但因为真实数据分布 P d a t a ( x ) P_{data}(x ) Pdata(x)未知,所以通过计算“从数据集中抽取一组sample { x 1 , x 2 , . . . x m x^1,x^2,...x^m x1,x2,...xm}(可以看作是从真实数据分布 P d a t a ( x ) P_{data}(x ) Pdata(x)中采样获得的样本),似然就是从 P G ( x
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值