Progan: PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION

主要贡献

  • GAN 高清图像生成难的问题

方法

  • 提出新的 GAN 训练方法: 逐渐增加生成器和鉴别器–从低分辨率开始, 逐渐添加新层,以随着训练的进行网络对越来越细的细节进行建模.

模型

GAN 相比于 VAEs 等图像生成技术, 生成的图像更好. 但是GAN 的弱点在于训练难, 同时生成的图像只是训练集的子集, 缺乏多样性.

ProGAN 核心即在于: PROGRESSIVE. 对于生成器和判别器先处理低分辨率图像, 再逐渐提升分辨率. 循序渐进, 从 4 * 4 分辨率逐渐到 1024 * 1024 分辨率. 这样使网络的训练更加稳定, 即能有效且稳定地训练出一个高质量的高分辨率生成器模型.


如上图所示, 先生成 4 * 4 图像, 再生成 8 * 8 图像, 以此类推. 这样做的好处在于:

  • 训练更稳定(别想一口气吃成胖子( ̄︶ ̄)))
  • 降低训练时间, 因为低分率的模型收敛快, 逐步增加分辨率, 整体的训练时间减少


ProGAN progressive 训练过程如下图片来源:



论文在celeba-hq 数据集下网络结构设计如上, 网络设计很对称, 每次增加三层即可.

在完成现有分辨率训练时,添加新层以扩大分辨率时, 先前层中的参数仍可训练. 同时为了防止突然增加新的网络层而使先前存在的底层受到冲击,顶层被线性“faded in”. 由参数 $\alpha$控制,并在训练过过程中逐渐从0到增加1.

上图为生成 16 * 16 transition 到 32 * 32 image示意图.

  • 对于 16 * 16 的feature maps, 先通过 nearest neighbor filtering 提升分辨率, 然后类似于残差块, 左分支不作变换, 右分支作卷积
  • toRGB 即使用 1 * 1 卷积变为三通道. 然后根据权重对应像素相加
  • 随着训练, $\alpha$ 逐渐增大, 即新的 layer faded in, 旧的逐渐 faded out


通常, GAN 生成图像为训练样本的子集. 为了提升多样性, 作者没有使用BN, 作者在靠近判别器末尾引入”minibatch standard deviation” 层, 该层没有可训练的参数. 它计算 batch 中要素图像素的标准差, 并将其作为额外通道附加

ref

progan