对抗生成网络
原理
由一个生成器和一个判别器组成的网络。
- 生成器(generator):试图生成和真实的原始输入相似的数据
- 判别器(discriminator):试图判别原始数据和真实数据的差异
生成器和判别器之间是相爱相杀的关系,生成器要欺骗判别器,而判别器要尽量发现生成器输出的假数据。
在生成器和判别器博弈多轮之后,生成器就会被“锻炼”成一个具有生成器拟真数据能力的神经网络。
这个思路就特别像华为的红蓝军互相博弈,也是周伯通的左右互搏,进而获取进化的能力。
极小极大博弈
GAN 的核心是极小极大博弈的判别函数:
- max D 表示判别器要将损失函数最大化
- min G 表示生成器要将损失函数最小化
- logD(x) 表示真实训练样本被认可
- log(1-D(G(z))) 表示生成器的输出不被判别器认可
其中当模型达到最优状态时,G 的优化目标等价于一个 JS 散度。
最优状态表示为:
JS散度表示为