GAN | 论文精读 Generative Adversarial Nets

提出一个GAN

(Generative Adversarial Nets)

1 方法

(1)生成模型G(Generative),是用来得到分布的,在统计学眼里,整个世界是通过采样不同的分布得到的,生成东西的话,目前就是要抓住一个数据的分布,

(2)辨别模型D(D) ,他是来辨别你的样本究竟是从真实世界来的呢,还是来自于生成模型G

想象一场假币制造比赛,有两名参赛者:造币专家(生成器)和验币专家(判别器)。

  1. 造币专家(生成器):这位专家的任务是制造伪造的硬币,希望这些伪造硬币尽量像真正的硬币一样。生成器开始时可能只是随机制造硬币,但通过不断练习,它学会了如何制造更加逼真的伪造硬币。

  2. 验币专家(判别器):验币专家的任务是检查硬币,确定它们是真正的还是伪造的。判别器开始时可能很容易识别伪造硬币,但随着时间的推移,它变得越来越擅长区分真伪。

比赛的规则如下:

  • 造币专家(生成器)制造了一些伪造硬币,并将它们交给验币专家(判别器)。

  • 验币专家(判别器)尝试检查硬币,然后告诉造币专家哪些硬币是伪造的,哪些是真的。

  • 造币专家(生成器)收到反馈后,尝试改进伪造硬币的制造方法,以使它们更难被验币专家(判别器)识别。

  • 验币专家(判别器)也在不断提高自己的检测技能,以侦测越来越逼真的伪造硬币。

这个过程不断重复,生成器和判别器互相竞争,生成器努力制造更逼真的伪造硬币,判别器努力提高自己的验币技能。随着时间的推移,生成器越来越擅长制造逼真的伪造硬币,而判别器越来越擅长检测它们。最终,生成器制造的伪造硬币变得如此逼真,以至于判别器几乎无法区分真伪。

2 可视化举例

以一维度数据做可视化

紫色线条是判别器D,绿色线条是生成器G,黑色线条是真实分布

图(a)初始状态 此时可以观察到 真实分布(黑色)和生成器(绿色)的分布差别较大,判别器(紫色)

图(b)更新判别器(紫色) 此时可以观察到 判别器(紫色)可以分辨的比较好了,黑色线附近为1 ,绿色线附近为0

图(c)更新生成器(绿色) 此时可以观察到 生成器(绿色)像真实数据分布靠近,为了使得判别器不分别出来

图(d)不断反复,可以看到 绿色生成器要尽量靠近黑色生成数据,当足够接近的时候,会发现判别器输出就是0.5了,此时就无法分辨了

3 算法流程

最简单的应用是G和D是MLP

如图所示

(1)从噪声中采样m个样本得到z,从真实数据中采样m个样本得到x

(2)先更新判别器,增强判别器

D(x) 表示把真实分布采样得到的数据放到辨别器里,假如辨别器是完美的,那么D(x)是1 log(D(x))是0,如果不完美,则 log(D(x))为负数

G(z)表示把噪音分布采样得到的噪音放到生成器里,会生成伪真实x,再放入D判别器,假如辨别器是完美的,那么D(x)是0 整体log(1-D(G(x)))是0 ,如果不完美的话,也会输出负数

所以要最大化如下函数,使得接近0

使得判别器函数输出尽可能正确,尽可能完美区分

(3)再更新生成器,使得生成器尽可能糊弄判别器

使得后面一项尽可能小

这样就会导致生成器尽可能糊弄判别器

k是一个超参数,要保证我们的G和D每次进步差不多,这样才能保证我们自己的一个有效性

外面的这个for loop就是说我们要迭代N次

怎么判断收敛是一个比较难的点,因而有些时候不是很有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值