动态生成对抗网络的逐层增长
生成对抗网络能够生成极其逼真的合成图像。在训练过程中,生成器负责生成图像,判别器则尝试区分真实图像与合成图像。两者之间的"军备竞赛"可以产生非常逼真的生成器。
高分辨率、清晰且多样化的图像生成需要大型网络。然而,如果网络过大,对抗训练可能无法收敛到良好的生成器。研究人员通过从小的生成器和相应的小判别器开始,逐渐向两者添加更多神经网络层来解决这个问题,确保生成器在复杂度增长时保持基准性能水平。
过去,这种方法一直是确定性的:按照固定计划添加固定数量、固定大小和预定类型的层。在某机构人工智能促进协会年会上发表的论文中,我们探索了一种更有机的GAN增长方式,基于训练期间的性能动态计算新增层的大小、数量和类型。
性能比较
上图比较了我们方法生成的图像与早期渐进增长GAN生成的图像。我们还使用标准指标评估模型的输出:切片瓦瑟斯坦距离和弗雷谢起始距离。这两个指标都测量两个概率分布之间的差异——在这种情况下是真实图像和合成图像视觉特征的分布。更好的分布匹配意味着更高的样本保真度和更大的多样性。
我们将模型与几个其他GAN进行了比较,包括其他渐进增长GAN,在几个不同的数据集上发现,除一个例外,我们的模型在两个指标上都有更低的距离分数。唯一的例外是基于部分的GAN,它使用根本不同的方法,分别合成图像片段然后将它们拼接在一起。但原则上,该方法可以与我们的方法结合使用。
打破对称性
我们方法的一个显著特点是它不受对称架构的约束。以前的渐进增长GAN中,生成器和判别器同步增长,最终具有相同数量的层。在我们的方法中,生成器和判别器中的层数分别优化,两个网络可以具有显著不同的架构。
我们方法的动态增长过程允许更快的生成器增长,由适度的判别器指导;判别器稍后跟上以提供更强的评判,帮助生成器成熟。这与最近关于神经网络训练动态的研究一致,表明"记忆"阶段之后是"巩固"阶段。
我们的方法在训练现有GAN和添加新层之间交替进行。在每个增长阶段,我们的算法可以选择添加到生成器、添加到判别器,或两者都添加。如果添加到生成器顶部的层比下面的层大,则必须在判别器底部添加相同大小的层,因为生成器的输出必须与判别器的输入大小相同。这样的添加增加了生成器产生图像的分辨率。
增长协议
在可增长GAN中交替进行增长阶段和训练阶段的协议。生成器和判别器可能不对称增长,导致不同大小的模型。某些增长阶段通过向生成器堆栈顶部和判别器堆栈底部添加新的更大网络层来增加图像分辨率。
当向任一网络添加具有随机初始化权重的新层时,现有层的权重会被继承。然而,未来的训练可能会调整这些继承的权重。
像大多数处理图像的人工智能应用一样,我们的图像判别器使用卷积神经网络。在典型的计算机视觉应用中,卷积神经网络以固定大小的块(比如三像素乘三像素的正方形)逐步遍历输入图像,并将相同的图像滤波器库应用于每个块。网络的下一层将类似的滤波器库应用于第一层的每个输出,依此类推。网络的输出是一个以某种方式表征输入图像的向量——比如识别物体。
图像生成器以相反的方式做同样的事情,从高级规范开始并输出图像。但卷积的原理是相同的。
在我们的方法中,当我们的算法向GAN中的生成器或判别器添加层时,它必须确定层的大小以及卷积的尺度——滤波器的大小和它们应该重叠多少。
此外,层及其滤波器的最佳大小不仅取决于该层的输入和输出,还取决于所有后续层的输入和输出。为要添加的层及其所有后续层枚举所有层和滤波器大小的可能性在计算上是不可行的。因此,我们的算法考虑搜索历史中记录的k个最佳模型,并计算所有可能添加到这些模型的下一层。
这种随机采样不能保证收敛到层和滤波器大小的全局最优。但像大多数深度学习优化一样,它会导致足够好的局部最优。并且它给可增长GAN比预先固定架构参数更多的灵活性。