参考:https://www.cnblogs.com/wanghui-garcia/p/13163007.html
目录
Manipulation in the Latent Space
摘要
- 前人工作假设隐空间满足分布表示,但观察到矢量计算现象。
- 本文提出InterFaceGAN,通过解释GAN的潜在语义来人脸编辑。具体来说,本文探究了人脸生成过程中,不同的语义是如何编码到GAN的隐空间的。
- 本文发现well-trained生成模型的latent code实际在线性变化后,学习了一种解耦表征;
- 本文研究了各种语义间的解耦,并设法用子空间投影解耦一些纠缠语义,从而实现更精确的面部属性控制。
- 大量实验证明,学习自发地合成人脸可以得到解耦且可控的人脸属性表征。
方法
生成器g: Z → X,其中Z是d维向量,通常采样自高斯分布N(0, Id)。X表示图片空间,每张图片有确切的语义信息,例如性别、年龄等。假设有语义分数方程(semantic scoring function): X → S,其中S是m维向量,表示m个语义。因此可以通过s =
(g(z)),建立隐藏空间到语义空间的联系。
Single Semantic
前人工作发现:当对latent codes z1和z2进行线性插值时,对应合成结果外观会有连续变化,这个结果暗示图片中的语义也能逐渐变化。根据property 1,z1和z2的线性插值形成了一个在Z中的方向,其进一步定义了一个超平名。因此,本文进一步假设,对任意二元语义(如:男性和女性),存在一个超平面作为分离边界。当latent code在超平面的同一边运动时,语义保持一致,如果越过边界,则会转换到相反的方向。
给定一个单位法向量为n的超平面,定义z到该超平面的距离为:
其中,d(., .)不是严格定义的距离,因为它可以为负。当z靠近边界,并且朝着超平面移动并越过时,距离和语义分数都会有相应变化。只有在距离改变数值符号时,语义属性会反转。因此,本文希望语义分数和距离之间的关系可以线性表示为:
其中是某种语义的分数方程,λ > 0是一个标量,用于测量语义变化相对于距离变化的快慢。根据Property 2,从N(0, Id)中随机采样,非常可能落在离给定超平面足够近得地方。因此,相应得语义可以通过由n定义得线性子空间建模。
其中,d=512,,这说明采样得到得latent codes都集中在离边界5.0单位长度的地方。
Multiple Semantic.
当任务有m个不同语义,我们有:
其中,Λ = diag(λ1, . . . , λm)是一个对角矩阵,N = [n1, . . ., nm]表示分离边界。因为随机样本z的分布是N(0, Id),因此,可以计算语义分数s的均值和协方差:
因此有s~N(0, Σs),这是一个多元正态分布。当且仅当Σs是一个对角矩阵时,才是解纠缠的,这需要{n1, ..., nm}相互之间正交才行。
Manipulation in the Latent Space
Single Attribute Manipulation. 根据式(2),我们可以修改,因为这可以
。
Conditional Manipulation. 当有超过一个属性时,编辑其中的一个属性可能会影响其他的属性,因为这些属性可能互相耦合在一起。给定两个带有法向量n1和n2的超平面,可以得到投影方向,相当于找到和n2无关的n1部分,这样就不会改变属性n2。如果有多个属性限制,则需要减去到所有限制属性方向构成的投影。
实验
Latent Space Separation
本框架基于一个假设:对于任何二元属性,在latent space中存在一个超平面,使得超平面一侧的样本具有相同的属性。
对五种属性训练了5个独立的线性支持向量机。然后在验证集(在属性得分上有高置信度的6K个样本)和整个集合(480K随机样本)上进行评估。
同时,本文将样本按照到边界的距离进行排序: