LAPGAN1的目标是提升GAN生成图像的分辨率。在LAPGAN中,每一张图片由多次生成。前一次生成的输出为后一次的输入,并且分辨率逐层提升。在生成过程中每一步都是独立的一个GAN系统,并且分离训练。
高斯金字塔与拉普拉斯金字塔
定义 d ( x ) d(x) d(x)为下采样操作, u ( x ) u(x) u(x)为上采样操作。对于图片 I I I,张图片 I k I_k Ik的尺寸为 J k × J k J_k\times J_k Jk×Jk。
高斯金字塔
对于高斯金字塔 G ( I ) = [ I 0 , I 1 , … , I K ] \mathcal{G}(I)=\left[I_{0}, I_{1}, \ldots, I_{K}\right] G(I)=[I0,I1,…,IK], I = I 0 , I k + 1 = d ( I k ) I = I_0,I_{k+1}=d(I_k) I=I0,Ik+1=d(Ik), J k + 1 = 2 J k J_{k+1} = 2J_{k} Jk+1=2Jk
拉普拉斯金字塔
对于拉普拉斯金字塔 h k = L k ( I ) = G k ( I ) − u ( G k + 1 ( I ) ) = I k − u ( I k + 1 ) h_k = \mathcal{L}_{k}(I)=\mathcal{G}_{k}(I)-u\left(\mathcal{G}_{k+1}(I)\right)=I_{k}-u\left(I_{k+1}\right) hk=Lk(I)=Gk(I)−u(Gk+1(I))=Ik−u(Ik+1)。其中 h k h_k hk为高分辨率图像下采样时损失的信息,可表示为 I k = u ( I k + 1 ) + h k I_{k}=u\left(I_{k+1}\right)+h_{k} Ik=u(Ik+1)+hk。
模型结构
与原始GAN不同,LAPGAN由数个GAN系统组成。其中大部分GAN生成的目标不是完整的图片,而是残差
h
k
h_k
hk。在金字塔中每一层的图片
I
~
k
\tilde{I}_{k}
I~k由下一层的图片上采样再加上由生成器生成的残差
h
k
h_k
hk组成。
生成器
对于在底层的生成器,如图中 G 3 G_3 G3,输入为噪声 z 3 z_3 z3,输出为 4 × 4 4\times 4 4×4的图片。
除最底层外,生成器
G
G
G的输入为下层的输出
h
k
+
1
h_{k+1}
hk+1加上噪声
z
k
z_k
zk,输出为
h
k
h_k
hk,即
h
~
k
=
G
k
(
z
k
,
u
(
I
k
+
1
)
)
\tilde{h}_{k}=G_{k}\left(z_{k}, u\left(I_{k+1}\right)\right)
h~k=Gk(zk,u(Ik+1))
整个生成过程可表示为
I
~
k
=
u
(
I
~
k
+
1
)
+
h
~
k
=
u
(
I
~
k
+
1
)
+
G
k
(
z
k
,
u
(
I
~
k
+
1
)
)
\tilde{I}_{k}=u\left(\tilde{I}_{k+1}\right)+\tilde{h}_{k}=u\left(\tilde{I}_{k+1}\right)+G_{k}\left(z_{k}, u\left(\tilde{I}_{k+1}\right)\right)
I~k=u(I~k+1)+h~k=u(I~k+1)+Gk(zk,u(I~k+1))
鉴别器
对于底层的鉴别器,如图中 D 3 D_3 D3,功能与原始GAN中的鉴别器相同,输出图片,输出二分的鉴别结果。
除底层外,鉴别器 D D D的输入为下层的 h k + 1 h_{k+1} hk+1与当层的残差 h k h_k hk,同样输出二分的鉴别结构。
结合CGAN
LAPGAN实际上可以进行无监督学习,但在有标签的数据集中,为了使结果更优秀,能够将每一组GAN替换为CGAN,即在生成器 G G G与鉴别器 D D D的输入中额外增加一项标签 l l l。
训练过程
全系统如图中所示自左向右进行训练,以 I 0 I_0 I0部分为例:
- 对 I 0 I_0 I0进行下采样得 I 1 I_1 I1
- 对 I 1 I_1 I1进行上采样至 I 0 I_0 I0尺寸,得 l 0 l_0 l0
- 由 G 0 ( z 0 , l 0 ) G_0(z_0, l_0) G0(z0,l0)得 h ~ 0 \tilde{h}_{0} h~0
- 由 I 0 − l 0 I_0 - l_0 I0−l0得 h 0 h_0 h0
- 通过 D 0 ( h 0 , l 0 ) D_0(h_0,l_0) D0(h0,l0)分别得到结果,并进行训练
- 进行下一层训练
对于除底层外的GAN系统,损失函数为
min
G
max
D
E
h
,
l
∼
p
Data
(
h
,
1
)
[
log
D
(
h
,
l
)
]
+
E
z
∼
p
Noise
(
z
)
,
l
∼
p
l
(
l
)
[
log
(
1
−
D
(
G
(
z
,
l
)
,
l
)
)
]
\min _{G} \max _{D} \mathbb{E}_{h, l \sim p_{\text {Data }}(\mathbf{h}, \mathbf{1})}[\log D(h, l)]+\mathbb{E}_{z \sim p_{\text {Noise }}(\mathbf{z}), l \sim p_{l}(\mathbf{l})}[\log (1-D(G(z, l), l))]
GminDmaxEh,l∼pData (h,1)[logD(h,l)]+Ez∼pNoise (z),l∼pl(l)[log(1−D(G(z,l),l))]
而对于底层则与原始GAN损失函数相同。
E. Denton, S. Chintala, R. Fergus, et al. Deep generative image models
using a laplacian pyramid of adversarial networks. In Advances in Neural Information Processing Systems (NeurIPS), pages 1486–1494, 2015. ↩︎