论文:Progressive Growing of GANs for Improved Quality, Stability, and Variation
关键字:GAN,图像生成
简介
论文主要针对GAN训练不稳定以及训练速度慢提出一种训练方法:训练过程中图像分辨率逐渐升高,同时网络层逐渐增加。
对于高分辨率图像,可能生成器所生成的图片与原始图片差距很大,很容易区分,那么在优化时,梯度很可能指向一个随机的方向,就会带来麻烦。在训练过程中逐渐提高分辨率可以防止这一问题。可以理解为:最初分辨率较低时网络可以找到一个大致的梯度方向,随着分辨率的提高再逐渐细化。
训练过程
训练时逐渐增加层的数目,如下图所示
增长的细节如下图所示,其中
α
\alpha
α由0~1线性增长,使得网络能够平稳过渡
其他细节
- 网络结构如下图所示;
- 为了保证学习率对不同特征都是合适的,对各个特征进行缩放;
- 为了防止G与D因模式崩溃而逐步增长,作者提出在G的每个卷积层后对每个像素的feature进行归一化;
- 网络训练时使用Adam优化策略, α = 0.001 , β 1 = 0 , β 2 = 0.99 , ϵ = 1 0 − 8 \alpha = 0.001, \beta_1 = 0, \beta_2 = 0.99, \epsilon = 10^{-8} α=0.001,β1=0,β2=0.99,ϵ=10−8;
- 训练时随着图像分辨率的上升,minibatch size逐渐减小;
- 在每个minibatch上轮流优化G和D,也即设置 n c r i t i c = 1 n_{critic} = 1 ncritic=1;
- loss函数使用Wassertein loss,在D的loss中增加一项,以防止其输出值过大
L ′ = L + ϵ d r i f t E x ∈ P r [ D ( x ) 2 ] L' = L + \epsilon_{drift}E_{x \in P_r} [D(x)^2] L′=L+ϵdriftEx∈Pr[D(x)2]