Closed-Form Factorization of Latent Semantics in GANs

639 阅读2分钟

背景

  • GAN中有很多语义属性,等待我们去发掘和解释。direction, 映射...

动机

  • 过去为了识别图像属性与latent code中维度的关系,常采用有监督的方法(比如分类器)需要对属性有标准的定义,但是有一些属性不能清晰地被定义(打标签),比如发型、肤质、朝向、形状...
  • 需要对目标属性进行明确的定义和手动的注释,限制了我们的工作。

研究目标

  • 使用无监督的方法得到latent code中的这些变化向量,从而该表生成图像。
  • 可以学习一个更通用的概念,应用于各类GAN。
  • 深入研究GAN的内部生成机制,检验图像的变化和内部表征之间的关系。

方法

我们尝试,能不能通过生成器的训练权重从latent space中识别具有语义的direction?
在gan中, zz 会通过一个映射网络输出到y,然后再进入合成网络。
1.png

我们把第一次投影记为G1(·) ,第一次投影的输出记为y。A是生成器第一层神经网络的参数。

G1(z)=y=Az+bG_1(z) = y = Az + b

过去的工作启示了我们,我们假设,latent code沿方向n移动后,生成图像会发生人类可理解的变化,所以列出公式:

y=G1(z)=G1(z+αn)=Az+b+αAn=y+αAny' = G_1(z') = G_1(z + αn) = Az + b + αAn = y + αAn

可以看到,改变的信息都在αAn中,即 Δy=αAnΔy = αAn
若αAn=0,那么生成的图像不会有任何改变,所以希望αAn越大越好,这样生成的图像才有可能有变化。
所以有:

n=arg maxnRd:nTn=1 An22n^* = {\underset {n ∈ R^d: n^Tn=1}{\operatorname {arg\,max} }}\ ||An||^2_2

那么对于多个direction(k个语义下):

N=arg maxNRd×k:niTni=1i=1,...,k i=1kAni22N^* = {\underset {N ∈ R^{d×k}: n_i^Tn_i=1 \forall i=1,...,k}{\operatorname {arg\,max} }}\ \sum_{i=1}^k||An_i||^2_2

通过拉格朗日乘子法,加入KTT条件:

N=arg maxNRd×k i=1kAni22i=1kλi(niTni1)N^* = {\underset {N ∈ R^{d×k}}{\operatorname {arg\,max} }}\ \sum_{i=1}^k||An_i||^2_2 - \sum_{i=1}^k λ_i(n_i^T n_i − 1)
=arg maxNRd×k i=1k(nitATAniλiniTni+λi)= {\underset {N ∈ R^{d×k}}{\operatorname {arg\,max} }}\ \sum_{i=1}^k(n_i^tA^TAn_i - λ_in_i^Tn_i+λ_i)

nin_i求偏导:

2ATAni2λini=02A^TAn_i - 2 λ_in_i = 0

得到了特征值与特征向量的形式:

ATAni=λiniA^TAn_i = λ_in_i

对矩阵进行特征分解,得到特征值组成的对角矩阵 Λ\Lambda 和特征向量组成的正交矩阵 QQ

ATA=QΛQTA^TA = Q\Lambda Q^T

显然,我们学到的特征向量 nin_i之间都是正交的,因此推导可得:

ΔyiTΔyj=niTATAnj=niT(λjnj)=0Δy_i^TΔy_j = n_i^TA^TAn_j = n_i^T(λ_jn_j) = 0

经过FC之后得到的映射也是正交的。

实验

将前面算出来的多个特征值及对应的特征向量取出来,把对各类属性影响最大的向量试出来,作为该属性的direction。

  • Generalization to Other: StyleGAN, StyleGAN2, BigGAN
    泛化能力

1.png

  • Compare with Sampling-based unsupervised baseline 1.png
  • Compare with Learning-based unsupervised baseline

1.png

  • Comparison with supervised approach 解耦合性评估

1.png

多元性比较

1.png

真实图片编辑效果

1.png

结论

  • 使用了一种无监督的方法,对GAN所学习到的潜在语义进行了分解,显示了强大的修改图片,对GAN的内部生成机制有了新的理解,

个人认为的缺点

  • 对于direction nn 和属性之间的对映,仍然是需要手动的方式试,麻烦。
  • 研究仅局限在第一次映射,即用FC网络映射 zzyy,FC的权重质量会很影响效果。