本感想是百度飞桨论文复现营的作业 XD
复现营链接:https://aistudio.baidu.com/aistudio/education/group/info/1340
选择的论文是Large scale GAN training for high fidelity natural image synthesis
这篇论文主要介绍一种在生成ImageNet任务上表现超级出色的网络:BigGAN
增加batchsize和通道数
在实验中,作者将batch size提升到了原有的8倍(2048),同时将隐藏层的变量数量(通道数)扩充到原有模型的4倍,得到很好的训练效果,并且训练的速度也得到了很大的提升。
在上表中,1到4行表明按8 的倍数增加批大小可以将当前最佳的 IS 提高 46%,作者推测这可能是一位内每批次能够覆盖更多的结果,为生成和判别器提供了更好的梯度。
然而,在增加通道宽度以及batch size的同时,模型也出现了不稳定的现象。因此在实验中作者在崩溃刚好发生时立刻停止训练,并使用检查点来报告结果。
然后作者增加了每层50%的通道数,这带来了进一步21%的IS提升。作者认为这是由于模型相对于数据集复杂度的容量的提升。但是将深度翻倍并不能带来相同的优化效果,反而会降低性能。
截断技巧
生成器的输入一般是随机的噪声,本文中对这一噪声采用了截断技术,对正态分布的随机数采用了截断,实验表明这样的结果最好。
直观解释是如果网络的随机噪声输入的随机数变动范围过大,那么生成样本在标准模板上的变动就越大,从而样本多样性就越强,但由于难度也随之增大,所以生成图像的真实性可能会降低。
具体的方法就是通过正态分布N(0,1)来取随机数,如果随机数大于一定的范围就舍弃不要重新采样,以样本的多样性来换取生成图像的真实性。
下图中,从左到右分别是截断阈值=2, 1.5, 1, 0.5, 0.04,右边是较差条件下生成的饱和度伪影。
增强生成器的稳定性
G:通过对权重、梯度和损失的监测,发现每个权重矩阵的前三个奇异值是比较有用的,因此通过检测谱范数可以监控模型训练的崩溃。
因此通过调整G每个权重的奇异值来试图解决崩溃问题。
虽然调整G可以改善稳定性,但无法一直保持,因此又去考虑D
D:同样考察权重矩阵的谱,作者发现整个训练过程中D的谱范数存在着噪声和不稳定。作者假设D的不稳定是由于对抗训练优化带来的,而采取的措施是通过梯度惩罚来强制平滑。这样可以实现训练的稳定性,但是会导致性能上的严重降低。稳定性和性能两者是一个权衡的关系,最终作者选择人为来把握停止训练的时机从而得到较为良好的性能。
实验部分暂时先不说了XD