精炼器网络的另一个关键要求是,它应该学习建模真实图像特征,而不引入任何人工因素。当我们训练一个强鉴别器网络时,精炼器网络往往会过度强调某些图像特征,以欺骗当前的鉴别网络,导致漂移和产生伪像。一个关键的观察是,从精细图像采样的任何局部补丁应该具有与真实图像补丁相似的统计。因此,我们可以定义一个区分所有局部图像补丁的区分网络,而不是定义全局鉴别网络(图3)。该划分不仅限制了接收场,并且因此限制了鉴别器网络的容量,而且还为每个图像提供了许多样本来学习鉴别器网络。还通过对每个图像具有多个“真实感损失”值来改进精炼器网络。 图3.局部对抗性损失的图示。鉴别器网络输出一个w×h的概率图。对抗性损失函数是局部补丁之间的交叉熵损失之和。 使用生成器历史来改进鉴别器 生成器可以使用来自新分布或目标(实际数据)分布的样本,欺骗鉴别器。从一个全新的分布中生成,只有鉴别器才能识别出全新的分布。生成器可以欺骗鉴别器的更有用的方法是通过从目标分布生成。 鉴于这两种演进方式,最简单的方法通常是产生一种全新的输出,这是我们在将当前生成器和鉴别器相互对准时观察到的输出。该非生产性顺序的简化图示于图4的左侧。生成器和鉴别器分布分别以黄色和蓝色显示。 通过引入存储来自前几代(图4的右侧)的生成器样本的历史,鉴别器不太可能忘记已经学习的空间的一部分。更强大的鉴别器有助于生成器更快地向目标分布。该图是一个简化,忽略了分布是复杂的,经常断开的区域。然而,在实践中,简单的随机替换缓冲器从先前的生成器分布捕获足够的分集,以通过加强鉴别器来防止重复。我们的想法是,在整个训练过程中的任何时间,由精炼器网络生成的任何精细图像真的是鉴别器的“假”图像。我们发现,通过构建D的小批次,从历史缓冲区中抽取一半样本,另一半从当前生成器的输出(如图5所示),我们可以改进训练。 图4.使用图像历史以改善鉴别器的直觉的图示。 图5.具有D历史的迷你批次的图示。每个迷你批次都包含来自生成器当前迭代的图像,以及来自先前假图像的缓冲区。 训练进展如何? 我们首先训练精炼器网络只有自正规化损失,并在精炼器网络开始生成模糊的输入合成图像后引入对抗性损失。图6显示了在训练的各个步骤中的精炼器网络的输出。一开始,它生成了一个模糊的图像,随着训练的进行,它变得越来越真实。图7将不同训练迭代时的鉴别器和生成器损耗可视化。注意,鉴别器的损耗在开始时很低,这意味着它可以很容易地说明真实和精简之间的差异。缓慢地,鉴别器损耗增加,并且生成器损耗随训练进度而减小,生成更多的真实图像。 图6.随着训练进度的精炼器网络的输出。从模糊的图像开始,网络学习模拟真实图像中存在的细节。 图7.生成器和鉴别器的损耗随着训练的进行。 自正规L1损耗是否有限制? 当合成和真实图像在分布中具有显着的偏移时,像素方向的L1差异可能是限制性的。在这种情况下,我们可以用替代特征变换替换身份映射,在自己的特征空间放置一个自定义符。 这些可以是手动调整的功能,或者学习的功能,如VGGnet的中间层。例如,对于彩色图像细化,RGB通道的平均值可以产生逼真的彩色图像,如图8所示。 图8.特征空间中的自正规化损失示例。 标签是否由生成器改变? (责任编辑:本港台直播) |