GAN笔记
两个核心
Generator

作用:通过CNN等神经网络从Normal Distribution中拿出很多低维向量生成遵循一个复杂的分布的很多高维向量(实际应用中多用于图片的生成,目标是要骗过Discriminator的辨别,骗它这张假的生成的图片是真实的图片)
Discriminator

作用:辨别从Generator那边产生的图片,努力辨别图片真假与否
输入是一张图片,输出是一个标量,越大意味着图片越真实,越小意味着图片越假
例如:

所以,GAN就是Generator和Discriminator的博弈,最后训练出可以产生以假乱真的Generator
优化函数的目标函数
GAN(生成式对抗神经网络)要如何不断优化Generator和Discriminator呢?使得Generator生成图片的能力越来越强,Discriminator辨别的能力也越来越强
Generator这边
前人已经探索出来,求出具体的分布函数是不大可能的,太复杂,太难计算,发现从真实数据集和生成数据集中采样(Sampling)后,对比他们的差异(用交叉熵,KL散度,JS散度等等),就可以达到非常不错的效果,故:
Div指的是求从两个数据集采样得到的数据的分布的散度。
从公式中,我们也可以看出,Generator要努力让生成的数据和真实数据之间的差异越小越好。
Discriminator这边
直接看公式:
Objective Funciton for D
回到刚刚Discriminator的目标,它致力于把一张真实的图片打分打得越高越好,而虚假的图片(Generator产生的)则尽可能地分数低一些。
所以公式上面从真实数据集
这个Objective Function其实就是交叉熵方程乘一个负号(negative cross entropy)
而我们要最大化
is related to JS divergence
Discriminator and Generator
现在我们回看Generator的公式
我们要求解G,需要知道
