生成器 (GAN) 如何从随机数向量创建类似于数据空间的样本?

机器算法验证 机器学习 神经网络
2022-03-21 14:55:28

GAN 的对抗性损失函数和训练算法对我来说或多或少是直观的,但我觉得我并不完全了解生成器的领域。具体来说,原始论文中的以下行(Generative Adversarial Nets, Goodfellow et al. 2014)

为了学习生成器在数据,我们定义了输入噪声变量的先验,然后将到数据空间的映射表示为,其中是由多层感知器表示的可微函数带参数pgxpz(z)G(z;θg)Gθg

这是训练算法的第一步:

  • 来自噪声先验个噪声样本m[z(1),...,z(m)]pg(z)

我不确定我对概率分布和随机抽样的理解是否足以理解这部分。有人可以解释发生了什么吗?似乎每个人都跳过了 GAN 算法的一开始(给定随机向量 Z,做一些事情),只谈论对抗性损失。

生成器是从一开始分配的概率分布中采样,还是只是在每次迭代时生成的随机数向量上W

2个回答

我不确定我对概率分布和随机抽样的理解是否足以理解这部分。有人可以解释发生了什么吗?

用非数学的话来说:生成器是一个网络,因此需要某种输入来生成图像,我们将此输入称为,因此生成的图像可以看作是,或者更明确地GzG(z)G(z,θG)

生成器是从一开始分配的概率分布中采样,还是只是在每次迭代时生成的随机数向量上W

用数学的话来说,是从先验概率分布中提取的,然后用于以另一个概率分布为条件,以便从中提取的样本与真实图像相似。 所以,回答你的问题:是的,是的。是的,因为概率分布是从一开始就选择的,并且永远不会改变,是的,因为每次我们向生成器提供输入时,我们都会从该分布中采样一个新向量,即我们提供一个随机生成的数字向量。zpzpG

现在,人们如何选择先验分布概率 一个常见且明智的选择是从以零为中心的单位方差高斯分布中提取一旦网络经过训练,这将提供一些很好的属性:pz
z

  1. 单位方差意味着随机向量中的每个元素最终可能代表生成图像中与其他特征不相关的特征(例如,可能是“脸有眼镜”,可能是“头发的长度”)z2z5
  2. 零中心高斯意味着很容易抽取样本,甚至在两个值之间进行插值,并看到图像的渐进变化。事实上,因为密度在中心周围而不是分散的,所以我们可以在潜在空间中选择任何点,并确保生成的图像是有意义的,而不是一堆乱七八糟的像素。换句话说,在网络没有经过足够训练以产生有意义的东西的先验中没有“漏洞”。

希望这可以帮助 ;)

斯坦福大学关于生成模型的精彩讲座中的以下想法对我理解 GAN 中的样本生成非常有帮助:

深度神经网络 (DNN) 非常适合学习从输入 X 到输出 Y 的映射,但具有确定性,因此无法生成新样本。为了克服这个问题,我们从简单的概率分布中采样随机噪声,并使用 DNN 来学习从简单噪声分布到复杂(训练)数据分布的转换。