Machine learning GAN的随机噪声

Machine learning GAN的随机噪声,machine-learning,random,deep-learning,noise,generative-adversarial-network,Machine Learning,Random,Deep Learning,Noise,Generative Adversarial Network,我是刚来的。我正在学习对GAN进行建模以生成图像,但是我并不真正理解给发生器的随机噪声到底是什么。它是从0到1的随机数,它的大小应该是多少。每次发电机运行时,随机噪声是否也应保持恒定 任何帮助都将不胜感激。随机噪声是一种特征向量,对于每个图像都是唯一的 考虑128</P>的噪声矢量 现在只需关注vector的第一个条目 让我们考虑头上的头发长度 从训练图像中,模型了解到,对于秃头,值为0,对于长头发,值为1,通过选择0到1之间的随机数决定头发的数量。 因此,该模型可以生成不同头发长度的人 这样,

我是刚来的。我正在学习对GAN进行建模以生成图像,但是我并不真正理解给发生器的随机噪声到底是什么。它是从0到1的随机数,它的大小应该是多少。每次发电机运行时,随机噪声是否也应保持恒定


任何帮助都将不胜感激。

随机噪声是一种特征向量,对于每个图像都是唯一的

考虑128</P>的噪声矢量 现在只需关注vector的第一个条目 让我们考虑头上的头发长度

从训练图像中,模型了解到,对于秃头,值为0,对于长头发,值为1,通过选择0到1之间的随机数决定头发的数量。 因此,该模型可以生成不同头发长度的人

这样,随机噪声中的所有128个条目将决定人脸的一个因素

这就是为什么每次选择随机噪声都会产生新的人物形象

如果您使用相同的随机噪声,那么模型将生成相同的图像


我希望您了解GAN的工作原理。

随机噪声矢量分布代表潜在空间。这对GANs来说并不重要,但对自动编码器来说更重要。通常,噪声是由正态分布产生的,但一些研究人员报告说,使用球形分布可以改善训练结果(对不起,我手头没有参考资料)。噪声的范围取决于输入层。如果您使用的是图像,则可能会对0和1之间或-1和1之间的输入进行规格化,因此您将为噪声向量使用相应的分布范围。典型的噪声矢量可能如下生成:

noise = tf.random.normal([BATCH_SIZE, noise_dim])

其中,BATCH_SIZE是训练批的大小(16、32、64、128…),noise_dim是噪声向量的大小,这取决于您的特征空间(我通常使用1024个用于中等分辨率图像)。

我对GAN也不熟悉,但最近正在研究GAN以生成信号

随机噪声是发电机的输入。一开始,它毫无意义,通过训练,你试图找到对他们的意义。关于尺寸,我仍然不确定我的结论是否正确,所以如果我错了,我希望其他人纠正我的结论。我们应该为我们的问题寻找合适的规模。
如果潜在空间非常小,模型将达到无法再产生更好质量的点(瓶颈),如果潜在空间太大,模型将需要很长时间才能产生好的结果,甚至可能无法收敛。通常情况下,一个从其他人用于相同问题的潜在空间大小开始

github上有一个jupyter笔记本电脑(完全公开,它是我的github)。 (提供解决方案)

噪声或更确切地说是潜在随机变量可以按照您喜欢的方式生成,例如:

# Generate latent random variable to feed to the generator, by drawing from a uniform distribution 
z = np.random.uniform(-1., 1., size=[batch_size, noise_dim])
然而,考虑一下生成器输入层中的激活函数是有意义的,并注意它的敏感范围

生成器将此输入作为种子,从潜在变量解码到源数据集域。显然,相同的随机变量会产生完全相同的样本


因此,您应该在训练时不断绘制新样本,而不要保持噪声恒定。

随机向量实际上不是随机的,通常我们从某些特定分布(高斯分布、均匀分布等)对向量进行采样。生成器获取采样向量,然后通过最小化采样向量概率分布的Jensen-Shannon散度和所有训练数据的分布,尝试将其映射到训练数据的分布。
我们提供给发生器的采样向量的大小是一个超参数。

那么我们给发生器的第一个随机噪声是否基于我们给鉴别器的图像数据集?您提到“从训练图像模型中了解到,对于秃头,值为0,对于长发,值为1”,训练图像是我们给鉴别器的输入?如果我错了,请纠正我。是的,从训练图像中你是对的。这些值将被训练。我非常怀疑噪声向量的输入是否具体归因于生成样本中的特定病理学(头发长度)。相反,它类似于DNA,信息肯定存储在DNA中,但不容易定位在何处。证明我错了。很明显,要找到它并不容易。我只是举一个例子,如果第一个节点是头发长度,那么。。。。。。。。。