Generative Adversarial Network,对抗生成网络
src: 1406.2661
原理
由一个生成器和一个判别器组成的网络。
- 生成器(generator):试图生成和真实的原始输入相似的数据
- 判别器(discriminator):试图判别原始数据和真实数据的差异
生成器和判别器之间是相爱相杀的关系,生成器要欺骗判别器,而判别器要尽量发现生成器输出的假数据。
在生成器和判别器博弈多轮之后,生成器就会被“锻炼”成一个具有生成器拟真数据能力的神经网络。
这个思路就特别像华为的红蓝军互相博弈,也是周伯通的左右互搏,进而获取进化的能力。
极小极大博弈
GAN 的核心是极小极大博弈的判别函数:
- 表示判别器要将损失函数最大化
- 表示生成器要将损失函数最小化
- 表示真实训练样本被认可
- 表示生成器的输出不被判别器认可
最优状态
当 G 固定时,D 存在一个最优解,可表示为:
- 是真实数据在
x
处的概率密度 - 是生成数据在 x 处的概率密度(即由 G(z) 诱导出的分布)。
- 判别器的最优情况,是以上两个概率密度的比值。
将以上最优判别器 带入价值函数,得到生成器优化的目标函数:
上式转换后,得到JS散度表示为:
G 最优的情况时 JS 散度等于 0 :
此时