- 生成器的任务是生成看起来像真实数据的新数据。
- 它通常是一个深度神经网络,输入是一个随机噪声向量(通常是从高斯分布中抽取的),输出是一个数据点(例如图像)。
- 生成器的目标是欺骗判别器,使其认为生成器产生的数据是真实的。
判别器(Discriminator):
- 判别器的任务是区分输入数据是来自真实数据集还是生成器生成的假数据。
- 它也是一个神经网络,接收真实数据或生成数据作为输入,并输出一个概率值,表示输入数据为真实数据的可能性。
- 判别器通过最大化其能够正确分类真实数据和生成数据的能力来提高性能。
对抗过程:
- 生成器和判别器之间的对抗过程可以被看作是一个最小化最大化问题(minimax game)。
- 生成器试图最小化判别器正确分类的准确性,而判别器试图最大化其准确性。
- 通过这种对抗训练,生成器学习如何生成越来越真实的数据,而判别器学习如何更好地区分真假数据。
GAN的训练:
- 训练GAN通常涉及交替训练生成器和判别器。
- 首先,固定生成器的参数,训练判别器来区分真实数据和生成(假)数据。
- 然后,固定判别器的参数,训练生成器来生成能够欺骗判别器的数据。
- 这个过程重复进行,直到生成器生成的数据足够真实,或者达到预定的训练轮数。
- 判别器训练:
- 首先,从真实数据集中抽取一批真实样本。
- 使用生成器从随机噪声中生成一批假样本。
- 将真实样本和假样本混合在一起,并使用判别器进行分类。
- 根据判别器的分类结果,使用反向传播算法更新判别器的参数,以提高其区分真实和假样本的能力。
- 生成器训练:
- 从随机噪声中生成一批假样本。
- 使用判别器对这些假样本进行分类。
- 根据判别器的分类结果,使用反向传播算法更新