Global versus Localized Generative Adversarial Nets
作者首先给出了传统
G
A
N
GAN
GAN网络的表述:首先由噪声分布
P
z
P_z
Pz采样得到流型
M
=
G
(
z
)
∣
z
P
z
M={G(z)|z ~P_z}
M=G(z)∣z Pz,所谓的Global指的就是
z
z
z为一个
R
N
R^N
RN空间的全局坐标,而
G
(
z
)
G(z)
G(z),即生成的样本则是
R
D
R^D
RD空间的点。
这种全局坐标的缺点在于,给定一个
X
=
G
(
z
)
X=G(z)
X=G(z),无法简便的得到相应的
z
z
z,更糟糕的是如果在
X
X
X周围的切空间
T
x
T_x
Tx如果不是一个由
N
N
N个线性无关的向量组成的
N
N
N维空间(这里不是很懂为什么
X
X
X的附近是一个
N
N
N维切空间,按说
X
X
X是位于
R
D
R^D
RD空间的)那么就会发生locally collapsed,意思是在
X
X
X附近无论
z
z
z在什么方向上变化都无法产生连续变化的
G
(
z
)
G(z)
G(z)了。
作者为此提出了LGAN,在
X
X
X周围产生了局部坐标图
G
(
x
,
z
)
G(x,z)
G(x,z),作者认为应该有
G
(
x
,
0
)
=
x
G(x,0)=x
G(x,0)=x。
当在
X
X
X的周围改变
z
j
z_j
zj(z的一个分量)而固定其他分量时,生成的
G
(
x
,
z
)
G(x,z)
G(x,z)就会在流型上生成一个曲线。由此定义了切向量
T
x
j
=
d
G
(
x
,
z
)
d
z
j
∣
z
=
0
T_x^j=\frac{dG(x,z)}{dz^j}|z=0
Txj=dzjdG(x,z)∣z=0这是一个
D
D
D维的向量,即
D
D
D维向量
G
(
x
,
z
)
G(x,z)
G(x,z)对
z
z
z的其中一个维度(方向)上求导数。
T
x
T_x
Tx是一个
N
∗
D
N*D
N∗D的雅可比矩阵。
为了防止之前所说的locally collapse,需要对
T
x
T_x
Tx加入正交约束,即
<
T
x
i
,
T
x
j
>
=
δ
i
j
<T^i_x,T^j_x>=\delta_{ij}
<Txi,Txj>=δij当
i
!
=
j
i!=j
i!=j时为0,当
j
=
i
j=i
j=i时为1.
因此
G
(
x
,
z
)
G(x,z)
G(x,z)需要满足上面两条约束。即
G
(
x
,
0
)
=
x
G(x,0)=x
G(x,0)=x以及
J
x
T
J
x
=
I
N
J_x^{T}J_x=I_N
JxTJx=IN,其中
J
J
J为上面提到的雅克比矩阵。
因此引入了新的损失函数:
ω
G
(
x
)
=
μ
∣
∣
G
(
x
,
0
)
−
x
∣
∣
2
+
η
∣
∣
J
x
T
J
x
−
I
N
∣
∣
2
\omega_{G}(x)=\mu||G(x,0)-x||^2+\eta||J_x^{T}J_x-I_N||^2
ωG(x)=μ∣∣G(x,0)−x∣∣2+η∣∣JxTJx−IN∣∣2
这个损失函数被添加在generator训练中,即
m
i
n
G
−
l
o
g
D
(
G
(
x
,
z
)
)
+
ω
G
(
x
)
min_G -logD(G(x,z))+\omega _G(x)
minG−logD(G(x,z))+ωG(x)
网络结构
generator的结构:
输入图片,经过卷积层映射为32x1x1特征图,与相同维度的噪声z相加,然后进行反卷积生成
G
(
x
,
z
)
G(x,z)
G(x,z),D网络的结构与传统GAN网络相同。
作者在celeb-A数据集上进行了实验。在这个数据集上作者使用了32维的局部坐标(即
z
z
z是N=32的向量),图中的每一行是改变32维中的1维然后保持其他维度不变得到的,即在某个方向上进行移动。