背景
- GAN中有很多语义属性,等待我们去发掘和解释。direction, 映射...
动机
- 过去为了识别图像属性与latent code中维度的关系,常采用有监督的方法(比如分类器)需要对属性有标准的定义,但是有一些属性不能清晰地被定义(打标签),比如发型、肤质、朝向、形状...
- 需要对目标属性进行明确的定义和手动的注释,限制了我们的工作。
研究目标
- 使用无监督的方法得到latent code中的这些变化向量,从而该表生成图像。
- 可以学习一个更通用的概念,应用于各类GAN。
- 深入研究GAN的内部生成机制,检验图像的变化和内部表征之间的关系。
方法
我们尝试,能不能通过生成器的训练权重从latent space中识别具有语义的direction?
在gan中, z 会通过一个映射网络输出到y,然后再进入合成网络。

我们把第一次投影记为G1(·) ,第一次投影的输出记为y。A是生成器第一层神经网络的参数。
G1(z)=y=Az+b
过去的工作启示了我们,我们假设,latent code沿方向n移动后,生成图像会发生人类可理解的变化,所以列出公式:
y′=G1(z′)=G1(z+αn)=Az+b+αAn=y+αAn
可以看到,改变的信息都在αAn中,即 Δy=αAn。
若αAn=0,那么生成的图像不会有任何改变,所以希望αAn越大越好,这样生成的图像才有可能有变化。
所以有:
n∗=n∈Rd:nTn=1argmax ∣∣An∣∣22
那么对于多个direction(k个语义下):
N∗=N∈Rd×k:niTni=1∀i=1,...,kargmax i=1∑k∣∣Ani∣∣22
通过拉格朗日乘子法,加入KTT条件:
N∗=N∈Rd×kargmax i=1∑k∣∣Ani∣∣22−i=1∑kλi(niTni−1)
=N∈Rd×kargmax i=1∑k(nitATAni−λiniTni+λi)
对ni求偏导:
2ATAni−2λini=0
得到了特征值与特征向量的形式:
ATAni=λini
对矩阵进行特征分解,得到特征值组成的对角矩阵 Λ 和特征向量组成的正交矩阵 Q:
ATA=QΛQT
显然,我们学到的特征向量 ni之间都是正交的,因此推导可得:
ΔyiTΔyj=niTATAnj=niT(λjnj)=0
经过FC之后得到的映射也是正交的。
实验
将前面算出来的多个特征值及对应的特征向量取出来,把对各类属性影响最大的向量试出来,作为该属性的direction。
- Generalization to Other: StyleGAN, StyleGAN2, BigGAN
泛化能力

- Compare with Sampling-based unsupervised baseline

- Compare with Learning-based unsupervised baseline

- Comparison with supervised approach
解耦合性评估

多元性比较

真实图片编辑效果

结论
- 使用了一种无监督的方法,对GAN所学习到的潜在语义进行了分解,显示了强大的修改图片,对GAN的内部生成机制有了新的理解,
个人认为的缺点
- 对于direction n 和属性之间的对映,仍然是需要手动的方式试,麻烦。
- 研究仅局限在第一次映射,即用FC网络映射 z 到 y,FC的权重质量会很影响效果。