GAN可解释性,利用范数寻找语义向量
论文名:Closed-Form Factorization of Latent Semantics in GANs
摘要
GAN的
l
a
t
e
n
t
s
a
p
c
e
latent\,sapce
latentsapce中存在很多丰富的语义信息,这在之前的很多研究中就已经做了介绍,而以往的很多研究往往是训练很多个属性分类器,并且使用一些机器学习算法,比如SVM找到不同的属性在
l
a
t
e
n
t
s
p
a
c
e
latent\,space
latentspace中的超平面分界面,从而发现语义信息,但是这需要很多对目标属性的提前假设和定义,并且需要花费大量的时间来训练分类器。
本文中提出了一种通过直接分解预训练的
w
e
i
g
h
t
weight
weight的闭试解答算法来做潜在语义的发现。通过这种速度很快的实现,方法不仅仅能堪比监督学习算法可以找到了很多和语义有关联的
l
a
t
e
n
t
s
p
a
c
e
latent\,space
latentspace中的向量并且可以可以找到更多丰富的概念是一些属性分类器所不能够具有的。
原理介绍
对于当前的先进的主流的GAN生成模型来说,对于用于生成图像的随机向量
i
n
p
u
t
input
input,都会进行一次放射变换(
a
f
f
i
n
e
t
r
a
n
s
f
o
r
m
affine\,transform
affinetransform),将用于输入的
l
a
n
e
n
t
s
a
p
c
e
lanent\,sapce
lanentsapce变换到一个中间空间(一般是使用MLP进行变换,让其具有*学习的能力),然后使用变换过向量输入到生成模型,其原理大概是能够让这个新空间的流形更好的符合图像的分布规律,并且拥有更好的
d
i
s
e
n
t
a
n
g
l
e
disentangle
disentangle(即更容易分解出输入的变量和最后生成图像的语义信息的关系),性质。
如在Nvidia提出的StyleGAN中,有八层用于把输入随即向量
对于一个输入
z
z
z定义仿射变换如下:
G
1
(
z
)
=
y
=
A
z
+
b
这里
y
∈
R
m
,
A
∈
R
m
∗
d
,
b
∈
R
m
(1)
G_1(z)=y=Az+b \tag{1}\\ \text{这里}\,y\in R^m,A\in R^{m*d},b\in R^m
G1(z)=y=Az+b这里y∈Rm,A∈Rm∗d,b∈Rm(1)
 如果我们直接对输入随即向量
z
z
z进行操作比方说加上一个单位向量
n
n
n即加上
α
n
\alpha n
αn(其中
n
n
n是一个单位向量,那么):
e
d
i
t
(
G
(
z
)
)
=
G
(
z
′
)
=
G
(
z
+
α
n
)
(2)
edit(G(z))=G(z')=G(z+\alpha n)\tag2
edit(G(z))=G(z′)=G(z+αn)(2)
那么就很容易得到如下的公式:
y
′
=
G
(
z
′
)
=
G
1
(
z
+
α
n
)
=
A
z
+
b
+
α
n
=
y
+
α
A
n
(3)
y'=G(z')=G_1(z+\alpha n)=Az+b+\alpha n=y+\alpha An \tag3
y′=G(z′)=G1(z+αn)=Az+b+αn=y+αAn(3)
从公式3可以看出来对
l
a
t
e
n
t
s
p
a
c
e
latent\, space
latentspace进行操作就是对变换后的空间进行一个加操作
α
A
n
\alpha An
αAn,那么作者假想,如果一个方向有着十分丰富的语义信息,那么其对图像的变化的影响一定是比较大的,又因为整个变换过程中的
l
a
t
e
n
t
v
e
c
t
o
r
latent\,vector
latentvector是可以
i
n
t
e
r
p
l
o
a
t
i
o
n
interploation
interploation(插值)从而能够保证图像过渡相对平滑,对图像变化最大的
n
n
n一定是能够让
∣
∣
A
n
∣
∣
||An||
∣∣An∣∣最大的
n
n
n,那么作者提出了一个最优化的问题,通过解决这个问题就能够在
l
a
t
e
n
t
s
p
a
c
e
latent\,space
latentspace找到对图像影响最大的一个方向单位向量
n
n
n。这个优化问题可以用如下的公式来进行表示:
n
∗
=
a
r
g
m
a
x
∣
∣
A
n
∣
∣
2
2
其
中
n
∈
R
d
,
n
T
n
=
1
(4)
n^*=argmax||An||_2^2\\ 其中n\in R^d,n^Tn=1\tag4
n∗=argmax∣∣An∣∣22其中n∈Rd,nTn=1(4)
为了获取到更为丰富的语义,作者又将这个问题变成如下的优化问题:
N
∗
=
a
r
g
m
a
x
∑
i
=
1
k
∣
∣
A
n
∣
∣
2
2
其
中
N
∈
R
d
∗
k
,
n
i
T
n
=
1
(5)
N^*=argmax\sum_{i=1}^k||An||_2^2\\ 其中N\in R^{d*k},n_i^Tn=1\tag5
N∗=argmaxi=1∑k∣∣An∣∣22其中N∈Rd∗k,niTn=1(5)
为了方便解决(5)这个最优化的式样,对其进行进一步的变形(过程中使用了Lagrange方法)如下:
Cannot read property 'type' of undefined
对每一个
n
i
n_i
ni求偏导数可以得到如下:
2
A
T
A
n
i
−
2
λ
i
n
i
=
0
(7)
2A^TAn_i-2\lambda_in_i=0\tag7
2ATAni−2λini=0(7)
有上述公式7可以看出,所有可能的n_i就是A^TA这个矩阵的特征向量。我们要找到的所有可能的使得其变化最大的
n
i
n_i
ni存在与这个矩阵的所有偏导数中,问题得以解决。
实验
作者在当前比较主流的大型GAN模型上做了实验,如PGGAN,StyleGAN还有BigGAN。
在对StyleGAN中的实验,在不同层的仿射变换的
w
e
i
g
h
t
weight
weight中找到前50个求得的n中,其变化明显和语义丰富的数量如下(其中分子是内容变化丰富的数量,分子是语义丰富的数量):
Dateset | Bottom(0-1) | Middle(2-5) | Top(6-) |
---|---|---|---|
Anime Face | 12/12 | 26/26 | 38/50 |
LSUN Cat | 14/15 | 21/28 | 47/50 |
LSUN Car | 10/10 | 16/22 | 22/34 |
LSUN Church | 15/15 | 18/26 | 48/50 |
Streetscape | 9/9 | 12/18 | 15/36 |
作者之前的InterfaceGAN文章中方法找到的语义向量,和现在的方法找到的语义信息向量的
e
n
t
a
n
g
l
e
entangle
entangle程度如下:
可以看出其效果可以和有监督的方式相当。
在对这种方式进行的复现中,我选用了animeface这个数据集。
这是一张随机采样的图:
当我让其沿着找到的某一个单位向量的方向移动的时候,增大或者减小我发现了图像的这样变化:
怎么样,快去生成你自己的美少女把