生成对抗网络(GAN)
原创约 622 字大约 3 分钟
生成对抗网络(GAN)
- 生成对抗网络(GAN,Generative Adversarial Network)是由Ian Goodfellow在2014年提出的一种DL模型。 GAN提出的初衷为解决使用无标签图像训练模型生成新的相似图像的问题。 它包含两个部分:生成器和判别器,它们通过对抗过程相互竞争进行无监督训练。
组成
生成器(Generator,G)
- 生成器可以是任意架构的神经网络,输入为随机噪声,输出为生成样本。其目标是使生成的样本尽可能接近真实样本分布直至能够欺骗判别器。
判别器(Discriminator,D)
- 判别器同样可以是任意架构的神经网络,输入为真实样本或生成器生成的样本,输出为一个概率值,表示输入样本是真实样本的概率。判别器的目标是尽可能准确地判别输入样本是真实样本还是生成样本。
训练过程
- 随机初始化生成器和判别器。
- 从真实数据集中选择一批数据训练判别器;
- 从生成器生成一批数据训练判别器。
- 计算loss(通常为交叉熵),反向传播更新判别器参数。
- 通过判别器对生成数据的输出概率值计算(这里GT值设为1)交叉熵相反数,更新生成器,回到步骤2。
- 判别器需要准确对输入图片进行分类,所以需要最小化交叉熵损失。而生成器需要 以假乱真,所以需要最大化这个值。
总结
GAN本质是一个min-max game,生成器和判别器相互对抗的非合作博弈。对于对抗双方,只要对方不发生改变,自己就是最优解的状态。
作者证明了这个博弈过程的纳什均衡会拉近两个分布的距离。同时作者还证明了当目标函数是关于(为生成器分布)的凸函数时,博弈可以收敛到纳什均衡解。
所以GAN最大的优点是有理论保证的拉近两个分布距离。基于此其不仅可以应用在生成领域,还可以用于一些判别模型。例如公平性、迁移性和因果性等。