本文来源公众号“程序员学长”,仅用于学术分享,侵权删,干货满满。
原文链接:快速学习一个算法,GAN
GAN 如何工作?
GAN 由两个部分组成:生成器(Generator)和判别器(Discriminator)。这两个部分通过一种对抗的过程来相互改进和优化。
生成器(Generator)
生成器的任务是接收一个随机噪声向量,并将其转换为看起来尽可能真实的数据。它通常使用一个深度神经网络来实现,从随机噪声中生成类似于训练数据的样本。
生成器的目标是生成的样本能够骗过判别器,使判别器认为生成的数据是真实的。
判别器(Discriminator)
判别器是一个二分类模型,它的任务是区分真实数据和生成器生成的假数据。
判别器接收一个数据样本,并输出一个概率值,表示该样本是真实数据的概率。
判别器的目标是尽可能准确地将真实数据与生成数据区分开来。
对抗过程
GAN 的训练过程可以被看作是生成器和判别器之间的博弈。具体来说,生成器试图生成逼真的数据以欺骗判别器,而判别器则试图更好地识别生成的假数据。
这个过程可以描述为一个最小最大化的优化问题。
鉴别器 D 想要最大化目标函数,使得 D(x) 接近于 1,D(G(z)) 接近于 0。这意味着鉴别器应该将训练集中的所有图像识别为真实 (1),将所有生成的图像识别为假 (0)。
生成器 (G) 想要最小化目标函数,使得 D(G(z)) 为 1。这意味着生成器试图生成被鉴别器网络分类为 1 的图像。
训练步骤
-
初始化生成器和判别器的参数
-
判别器训练
-
从真实数据集中采样一个 mini-batch 的真实数据。
-
从生成器的噪声分布中采样一个 mini-batch 的噪声,并生成假数据。
-
更新判别器的参数,使其能够更好地区分真实数据和生成数据。
<
-