动态增长生成对抗网络:逐层构建的新方法
生成对抗网络(GANs)能够生成非常逼真的合成图像。在训练过程中,生成器负责生成图像,判别器则尝试区分真实图像和合成图像。两者之间的"军备竞赛"可以产生非常逼真的生成器。
生成高分辨率、清晰且多样化的图像需要大型网络。然而,如果网络太大,对抗训练可能无法收敛到良好的生成器。研究人员通过从小型生成器和相应的小型判别器开始,逐渐向两者添加更多神经网络层来解决这个问题,确保生成器在复杂性增长时保持基准性能水平。
过去,这种方法都是确定性的:按照固定时间表添加固定数量、固定大小和预定类型的层。在某机构人工智能促进协会(AAAI)年会上发表的论文中,我们探索了一种更有机的GAN增长方式,根据训练期间的性能动态计算添加层的大小、数量和类型。
打破对称性
我们方法的一个显著特点是它不受对称架构的约束。以前的渐进增长GAN中,生成器和判别器同步增长,最终具有相同数量的层。而我们的方法分别优化生成器和判别器的层数,两个网络可以具有显著不同的架构。
我们的动态增长过程允许在适度判别器的指导下更快地增长生成器;判别器随后跟进提供更强的评判,帮助生成器成熟。这与最近关于神经网络训练动态的研究一致,显示"记忆"阶段之后是"巩固"阶段。
我们的方法在训练现有GAN和添加新层之间交替进行。在每个增长阶段,我们的算法可以选择添加到生成器、添加到判别器,或者两者都添加。
如果添加到生成器顶部的层比下面的层大,则必须在判别器底部添加相同大小的层,因为生成器的输出必须与判别器的输入具有相同的大小。这样的添加提高了生成器生成图像的分辨率。
卷积神经网络的应用
像大多数处理图像的人工智能应用一样,我们的图像判别器使用卷积神经网络。在典型的计算机视觉应用中,卷积神经网络以固定大小的块(例如3x3像素方块)逐步遍历输入图像,并将相同的图像滤波器组应用于每个块。网络的下一层将类似的滤波器组应用于第一层的每个输出,依此类推。
图像生成器以相反的方式执行相同的操作,从高级规范开始并输出图像。但卷积的原理是相同的。
在我们的方法中,当算法向GAN中的生成器或判别器添加层时,它必须确定层的大小以及卷积的规模——滤波器的大小以及它们应该重叠多少。
此外,层及其滤波器的最佳大小不仅取决于该层的输入和输出,还取决于所有后续层的输入和输出。对要添加的层及其所有后续层的层和滤波器大小的所有可能性进行详细计算在计算上是不可行的。因此,我们的算法考虑搜索历史中记录的k个最佳模型,并计算所有可能添加到这些模型的下一层。
这种随机采样不能保证收敛到层和滤波器大小的全局最优解。但像大多数深度学习优化一样,它会导致足够好的局部最优解。而且它使可增长GAN比预先固定架构参数具有更大的灵活性。