0%

论文阅读-disentanglement-GAN-Control-Explicitly Controllable GANs

动机

  • 目前大多数编辑生成图像的方法都是通过利用标准GAN训练后隐式获得的潜在空间解纠缠特性来实现部分控制,不能显式地设置某些属性地值;
  • 最近提出的方法可以显式地控制人脸属性,其利用可变形地3D人脸模型来使得GAN具有细粒度控制能力,但不能扩展到人脸领域外。

贡献

  • 使用对比学习得到一个解纠缠的GAN,保证其生成高质量且可控的图像;

  • 解纠缠的GAN被用来训练编码器将人类可解释的输入映射到合适的隐向量,从而允许显式控制。

本文的方法

如上图,本文的方法包含两个阶段:

  • 利用对比学习解纠缠:训练具有显式解纠缠特性的GAN,由此将潜在空间划分为子空间,每个子空间编码不同的图像属性;
  • 可解释的显式控制:对于每个属性,一个编码器被训练来映射控制参数值到潜在的子空间,由此可以显式地控制每个属性。

利用对比学习解纠缠

本文方法基于StyleGAN2,将隐空间 \mathcal{Z} \mathcal{W} 均划分为 N+1 个子空间, N 为控制的属性数量,除了最后一个子空间代表不可控的属性,每个子空间认为跟一种属性相关,由此得到 \mathbf{z}=(\mathbf{z}^1\mathbf{z}^2…\mathbf{z}^{N+1}) \mathbf{w}=(\mathbf{w}^1\mathbf{w}^2…\mathbf{w}^{N+1}) \mathbf{w} 即为生成器的输入。

定义 \mathcal{I}_i=G(\mathbf{z}_i) 表示从隐向量 \mathbf{z}_i 生成的图像, B=\{\mathbf{z}_i\}_{i=1}^{N_B} 表示batch_size N_B 的隐向量,则因式分解的对比损失定义为:

L_{c}=\sum_{i \neq j,\ \mathbf{z}_{i}, \mathbf{z}_{j} \in B} \sum_{k=1}^{N} l_{k}\left(\mathbf{z}_{i}, \mathbf{z}_{j}\right)

其中 l_k 是属性 k 的对比损失,定义每个属性的对比损失为:

l_{k}\left(\mathbf{z}_{i}, \mathbf{z}_{j}\right)=\left\{\begin{array}{ll} \frac{1}{C_{k}^{+}} \max \left(d_{k}\left(\mathcal{I}_{i}, \mathcal{I}_{j}\right)-\tau_{k}^{+}, 0\right), & \mathbf{z}_{i}^{k}=\mathbf{z}_{j}^{k} \\ \frac{1}{C_{k}^{-}} \max \left(\tau_{k}^{-}-d_{k}\left(\mathcal{I}_{i}, \mathcal{I}_{j}\right), 0\right), & \text { otherwise } \end{array}\right.

其中, \mathbf{z}_i^k 表示 \mathbf{z}_i 的第 k 个子向量, d_k 是属性 k 的距离函数, \tau_{k}^{\pm} 是与相同和不同子向量相关的各属性阈值, C_{k}^{\pm} 是常数,根据相同和不同的损失分量的数量对损失进行归一化,即:

C_{k}^{+}=\sum_{i, j} 1\left\{\mathbf{z}_{i}^{k}=\mathbf{z}_{j}^{k}\right\} \text { and } C_{k}^{-}=\sum_{i, j} 1\left\{\mathbf{z}_{i}^{k} \neq \mathbf{z}_{j}^{k}\right\}

实验中,对于每个训练批,作者设置共享一个子向量的隐向量对,即对于一个属性 k ,会创建一对隐向量 \mathbf{z}_i \mathbf{z}_j ,其中 \mathbf{z}_i^k= \mathbf{z}_j^k \mathbf{z}_i^r\ne \mathbf{z}_j^r, \text{for r} \in \{1,…,N+1\},r\ne k 。例如假设生成图像中的 \mathcal{I}_0 \mathcal{I}_1 共享相同的 \mathbf{z}^{ID} ,则 l_{ID} 会惩罚 \mathcal{I}_0 \mathcal{I}_1 ID不相同和 \mathcal{I}_0 \mathcal{I}_1 ID与其它图像的11ID相同,而其它属性的损失会惩罚 \mathcal{I}_0 和所有其它图像的相似。

为了能够控制生成图像的特定属性,假设可微函数 M_K:\mathcal{I}\rightarrow \mathbb{R}^{D_k} 将图像映射到一个 D_k 维的特征,并假设属性值相似的投影图像之间的距离很近,而属性值不同的投影图像之间的距离很远,这些要求被大多数用于分类或回归损失训练的神经网络所满足。将两幅图像 \mathcal{I}_i \mathcal{I}_j 之间的第 k 个属性的距离定义为它们在相应嵌入空间中的距离:

d_{k}(\mathcal{I}_{i}, \mathcal{I}_{j})=dist(M_k(\mathcal{I}_{i}),M_k(\mathcal{I}_{j}))

其中 dist(·,·) 是距离函数,如 L_1,L_2,​ cosine distance.

可解释的显式控制

训练一个编码器 E_k:y^k\rightarrow \mathbf{w}^k 来显式控制特定的属性,其中 y^k 是人类可解释的输入。对于一个训练好的解纠缠GAN,训练 N 个编码器,每个编码器对应一种属性。这样在推理时,可以随意组合 \mathbf{w}_k ,并决定其由 E_k 显式控制,或者是由 \mathbf{z}_k 采样。

训练编码器时,随机采样 \{\mathbf{z}_i\}_{i=1}^{N_s} ,由此得到 \{\mathbf{w}_i\}_{i=1}^{N_s} ,并由 y_i^k=M_k(G(\mathbf{z}_i)) 得到预测的属性值,由此得到一组对应的关系 \{\{\mathbf{w}_i^k,y_i^k\}_{i=1}^{N_s}\}_{k=1}^N ,由此可以训练编码器。

部分实验结果