1
收录:CVPR2021
地址:https://genforce.github.io/sefa/
文章目录
摘要
- 以前方法需要明确属性和手动注释,限制了应用
- 这项工作以无监督的方式揭示潜在的变异因素
- 提出了一种直接分解预训练权重的封闭形式分解潜在语义发现算法
1. 介绍
- 由于潜在空间的高维性以及图像语义的巨大多样性,在潜在空间中寻找有效的方向是极具挑战性的。
- 现有监督方法:采样然后需要属性预测器或简单统计信息,现有无监督方法:也需要模型训练或采样
- 提出SeFa:语义分解Semantic Factorization的简称,只需使用生成器的预训练权重即可从潜在空间中识别通用语义
- 我们使用图1中发现的语义演示了一些有趣的操作结果。例如,我们可以旋转图像中的对象,而不知道其基础三维模型或姿势标签。
1.1 相关工作
- GAN
- 潜在语义解释
2. 方法
2.1 前期工作
GANs的生成机制:绝大多数的G(·)可表示为,A,b分别表示第一个转换步骤G1(·)中使用的权重和偏差。
G
1
(
z
)
≜
y
=
A
z
+
b
G_{1}(\mathbf{z}) \triangleq \mathbf{y}=\mathbf{A} \mathbf{z}+\mathbf{b}
G1(z)≜y=Az+b
GAN潜在空间中的操纵模型:n是语义方向,α是操作强度
edit
(
G
(
z
)
)
=
G
(
z
′
)
=
G
(
z
+
α
n
)
\operatorname{edit}(G(\mathbf{z}))=G\left(\mathbf{z}^{\prime}\right)=G(\mathbf{z}+\alpha \mathbf{n})
edit(G(z))=G(z′)=G(z+αn)
2.2 无监督语义分解
我们的目标是从GANs的潜在空间揭示解释因素(即公式(2)中的方向)。上面两个式子可以写成:
y
′
≜
G
1
(
z
′
)
=
G
1
(
z
+
α
n
)
=
A
z
+
b
+
α
A
n
=
y
+
α
A
n
\begin{aligned} \mathbf{y}^{\prime} \triangleq G_{1}\left(\mathbf{z}^{\prime}\right) &=G_{1}(\mathbf{z}+\alpha \mathbf{n}) =\mathbf{A z}+\mathbf{b}+\alpha \mathbf{A} \mathbf{n}=\mathbf{y}+\alpha \mathbf{A} \mathbf{n} \end{aligned}
y′≜G1(z′)=G1(z+αn)=Az+b+αAn=y+αAn
我们从式(3)中观察到,操纵过程与实例无关。给定任意代码z和某个潜在方向n,在第一步之后,通过在投影代码上添加术语αAn,始终可以实现编辑。从这个角度来看,权重参数应该包含图像变化的基本知识。因此,我们的目标是通过分解A来发现重要的潜在方向。
n
∗
=
arg
max
{
n
∈
R
d
:
n
T
n
=
1
}
∥
A
n
∥
2
2
\mathbf{n}^{*}=\underset{\left\{\mathbf{n} \in \mathbb{R}^{d}: \mathbf{n}^{T} \mathbf{n}=1\right\}}{\arg \max }\|\mathbf{A n}\|_{2}^{2}
n∗={n∈Rd:nTn=1}argmax∥An∥22
我们提出了一种无监督的方法,它独立于数据采样和模型训练,通过解决以下优化问题来进行语义分解:
这个问题的目的是在A的投影后找到可能导致较大变化的方向。直观地说,如果某个方向n0投影到一个零范数向量,An0=0,则等式(3)中的编辑操作变为y0=y,这将保持输出合成不变。
在寻找k个最重要方向{n1,n2,···,nk}的情况下,我们将等式(4)展开为:
N
∗
=
arg
max
{
N
∈
R
d
×
k
:
n
i
T
n
i
=
1
∀
i
=
1
,
⋯
,
k
}
∑
i
=
1
k
∥
A
n
i
∥
2
2
,
\mathbf{N}^{*}=\underset{\left\{\mathbf{N} \in \mathbb{R}^{d \times k}: \mathbf{n}_{i}^{T} \mathbf{n}_{i}=1 \forall i=1, \cdots, k\right\}}{\arg \max } \sum_{i=1}^{k}\left\|\mathbf{A n}_{i}\right\|_{2}^{2},
N∗={N∈Rd×k:niTni=1∀i=1,⋯,k}argmaxi=1∑k∥Ani∥22,
式中,n=[n1,n2,··,nk]对应于顶部的K符号。为了解决这个问题,我们将拉格朗日乘子{λi}ki=1引入等式(5)中,如下所示:
N
∗
=
arg
max
N
∈
R
d
×
k
∑
i
=
1
k
∥
A
n
i
∥
2
2
−
∑
i
=
1
k
λ
i
(
n
i
T
n
i
−
1
)
=
arg
max
N
∈
R
d
×
k
∑
i
=
1
k
(
n
i
T
A
T
A
n
i
−
λ
i
n
i
T
n
i
+
λ
i
)
\begin{aligned} \mathbf{N}^{*} &=\underset{\mathbf{N} \in \mathbb{R}^{d \times k}}{\arg \max } \sum_{i=1}^{k}\left\|\mathbf{A} \mathbf{n}_{i}\right\|_{2}^{2}-\sum_{i=1}^{k} \lambda_{i}\left(\mathbf{n}_{i}^{T} \mathbf{n}_{i}-1\right) \\ &=\underset{\mathbf{N} \in \mathbb{R}^{d \times k}}{\arg \max } \sum_{i=1}^{k}\left(\mathbf{n}_{i}^{T} \mathbf{A}^{T} \mathbf{A} \mathbf{n}_{i}-\lambda_{i} \mathbf{n}_{i}^{T} \mathbf{n}_{i}+\lambda_{i}\right) \end{aligned}
N∗=N∈Rd×kargmaxi=1∑k∥Ani∥22−i=1∑kλi(niTni−1)=N∈Rd×kargmaxi=1∑k(niTATAni−λiniTni+λi)
通过对每一个的偏导数,我们得到:
2
A
T
A
n
i
−
2
λ
i
n
i
=
0
2 \mathbf{A}^{T} \mathbf{A} \mathbf{n}_{i}-2 \lambda_{i} \mathbf{n}_{i}=0
2ATAni−2λini=0
公式(7)的所有可能解应为矩阵的特征向量。为了获得最大目标值并使
{
n
i
}
i
=
1
k
\left\{\mathbf{n}_{i}\right\}_{i=1}^{k}
{ni}i=1k彼此不同,我们选择列作为与最大特征值相关的数据的特征向量。
方法可以算出很多个特征值和对应的特征向量,特征向量就是我们要的 direction,也就是属性变化方向,按特征值大小排序后一个个试,找到姿态,性别,年龄等变化最大的向量,然后做实验
2.3 GAN的模型实现
本文算法应用于PGGAN , StyleGAN , and BigGAN.
3. 实验
3.1 不同模型和数据集的结果
数据集:FF-HQ、动画人脸、LSUN、街景和ImageNet
通过调整可解释方向进行交互式编辑:我们开发了一个界面来促进人机交互,如图4所示
StyleGAN上的结果
我们分别在底层、中间层和顶层解释目标模型。图2显示了在这些模型中发现的多功能语义方向。我们明显地发现,它们被组织成一个层次结构,这与之前工作的观察结果一致[17,27]。以汽车为例,底层倾向于控制旋转,中间层决定形状,而顶层对应于颜色。我们进一步进行用户研究,以了解SeFa发现的变异因素如何与人类感知相一致。在这里,向10位注释者提问。如表1所示,SeFa确实可以找到人类可以理解的概念,即使是从GAN模型中的某些特定层。
关于BigGAN的结果。我们还解释了在ImageNet[6]上进行条件训练的大规模BigGAN[4]模型。BigGAN使用类别驱动的嵌入向量扩展潜在代码,以实现条件合成。这里,我们只关注语义的潜在代码部分发现。图3提供了一些示例。我们可以看出,我们的算法发现的语义可以应用于处理不同类别的图像。这验证了SeFa的泛化能力。
3.2 与监督方法比较(InterFaceGAN)
定性结果。
图5通过使用识别的语义可视化了一些操作结果。从编辑姿势、性别、眼镜和表情(微笑)的角度来看,SeFa实现了与InterFaceGAN相似的性能,表明其有效性。更重要的是,InterFaceGAN需要对大量数据进行采样,并对属性预测值进行预训练。相比之下,SeFa完全独立于数据采样和模型训练,这更高效、更具普遍性。
重新评分分析
为了进行定量分析,我们在CelebA数据集[19]上使用ResNet50结构[11]训练一个属性预测器,如下[24]。有了这个预测器,我们可以进行重新评分分析,以定量评估所识别的方向是否能够正确地表示相应的属性。特别是,我们随机抽取2K图像,并沿着某个发现的方向进行操作。
- SeFa可以充分控制某些属性,如姿势和性别,类似于InterFaceGAN。
- 当改变一种语义时,InterFaceGAN对其他属性表现出更强的鲁棒性,得益于其监督训练方式。例如,年龄和眼镜对应于SeFa识别的相同潜在方向。正如[24]所指出的,这是因为训练数据有些偏颇(即老年人更可能戴眼镜)。相比之下,在某种程度上,让标签作为监督可以帮助学习更准确的方向。
- SeFa未能发现与眼镜对应的方向。原因是眼镜的存在不是很大的变化,因此不符合等式(4)中的优化目标。
多样性比较
监督方法高度依赖于可用的属性预测器。相比之下,我们的方法更具通用性,可以在潜在空间中发现更多不同的语义。如图6(a)所示,我们成功地识别了与头发颜色、发型和亮度相对应的方向。这超过了InterFaceGAN,因为这些属性的预测值在实践中不容易获得。此外,监督方法通常受到训练目标的限制。例如,建议InterFaceGAN处理二进制属性[24]。相比之下,我们的方法可以识别更复杂的属性,如图6(b)所示的不同发型。
3.3 与无监督基线的比较
我们将我们的方法与一些无监督的方法进行比较,包括基于抽样的方法[10]和基于学习的方法[5]。主要区别在于SeFa是一个封闭形式的解决方案,它独立于任何类型的数据采样或模型训练。
与基于抽样的基线进行比较。GANSpace[10]建议对采样数据的集合执行PCA,以在潜在空间中找到主方向。在这一部分中,我们在FF-HQ数据集上训练的StyleGAN模型上比较SeFa和GANSpace[17]。图7显示了一些定性比较结果,其中SeFa的发现语义导致更精确的控制。例如,在更改面部姿势时,SeFa可以更好地保留身份和肤色。我们还将这两种方法与FID[12]、重新评分分析和用户研究进行定量比较。在这里,用户会被问到哪种方法可以更充分地更改特定属性。结果显示在选项卡中。3.SeFa和GANSpace显示接近FID分数,因为这主要由生成器本身以及等式(2)中的操纵模型决定,这两种方法共享。但SeFa在属性重新评分和用户研究方面优于GANSpace。
与基于学习的基线进行比较。InfoGAN[5]提出通过引入正则化器来显式学习因子表示,以最大化输出图像和输入潜在代码之间的互信息。我们将我们的方法与Info-PGGAN模型[21]进行比较,后者使用信息正则化器[5]训练原生PGGAN[16]。图8显示了比较结果。我们可以看出,SeFa通过对预先训练的权重进行闭式分解来识别的语义比从Info PGGAN学习的语义更准确。以姿势操纵为例,使用Info PGGAN进行编辑时,头发颜色会发生变化。相比之下,SeFa实现了更精确的控制。3.
3.4 真实图像编辑
在这一部分中,我们验证了SeFa揭示的潜在语义适用于真实图像编辑。由于生成器缺乏将真实图像作为输入的推理能力,因此我们将GAN反演[9,29]方法引入到我们的算法中。更具体地说,给定要编辑的目标图像,我们首先将其投影回潜在空间,然后使用SeFa找到的变化因子来调制反转代码。图9显示了一些示例,其中SeFa表现令人满意。例如,我们设法从输入图像中移除眼镜,并改变面部姿势。这表明SeFa能够发现潜在空间的方向,这对于真实图像编辑是通用的。
4. 总结
在这项工作中,我们提出了一个封闭形式的解决方案来分解由GANs学习的潜在语义。大量的实验证明了我们的算法在以无监督的方式从不同类型的GAN模型中识别通用语义方面的巨大威力。
改进:
- 就是这个工作是一个累活,我估计 100 个向量也找不到几个好用的
- 因为假设的原因,文章的性能是很受 FC 局限的,如果 FC 没训好,那这个工作就很受影响