【研究生工作周报】(stylegan)

StyleGAN提出的背景

ProGAN:
NVIDIA在2017年提出的ProGAN解决了生成高分辨率图像(如1024×1024)的问题。ProGAN的关键创新之处在于渐进式训练——从训练分辨率非常低的图像(如4×4)的生成器和判别器开始,每次都增加一个更高的分辨率层。

缺陷:与多数GAN一样,ProGAN控制生成图像的特定特征的能力非常有限。这些属性相互纠缠,即使略微调整输入,会同时影响生成图像的多个属性。所以如何将ProGAN改为条件生成模型,或者增强其微调单个属性的能力,是一个可以研究的方向。

解决方法:StyleGAN是NVIDIA继ProGAN之后提出的新的生成网络,其主要通过分别修改每一层级的输入,在不影响其他层级的情况下,来控制该层级所表示的视觉特征。这些特征可以是粗的特征(如姿势、脸型等),也可以是一些细节特征(如瞳色、发色等)



前言


一、ProGAN框架

ProGAN首先通过学习即使在低分辨率图像中也可以显示的基本特征,来创建图像的基本部分,并且随着分辨率的提高和时间的推移,学习越来越多的细节。低分辨率图像的训练不仅简单、快速,而且有助于更高级别的训练,因此,整体的训练也就更快。
在这里插入图片描述

Generator 在训练过程中网络的结构是在动态变化的。那种依次连接不同分辨率空间的网络模型叫做 StackGAN,但是 StackGAN 不适合用来做超清图片生成,因为会特别慢。
在这里插入图片描述
2x,0.5x利用最近邻卷积和平均池化分别对图片分辨率加倍和折半。
对真实样本也做了类似(b)的平滑过渡,训练过程中某个batch真实样本可以表示为
X = X 16 p × ( 1 − α ) + X 32 p × α X = X_{16p} \times(1-\alpha) + X_{32p} \times \alpha X=X16p×(1α)+X32p×α

由于 ProGAN 是逐级直接生成图片,我们没有对其增添控制,我们也就无法获知它在每一级上学到的特征是什么,这就导致了它控制所生成图像的特定特征的能力非常有限,在此基础上进行改进提出StyleGAN:映射网络 f f f能让我们控制住输出的图片是长什么样的,也就是在生成图片过程中每一级的特征,要能够特定决定生成图片某些方面的表象,并且相互间的影响尽可能小。

二、StyleGAN框架

StyleGAN 用风格(style)来影响人脸的姿态、身份特征等,用噪声 ( noise ) 来影响头发丝、皱纹、肤色等细节部分。stylegan的生成器主要由两部分组成:Mapping network, Synthesis network。
在这里插入图片描述

1. Mapping network

作用分析:对隐藏空间(latent space)进行解耦

为了更好的对数据进行分类或生成,需要对数据的特征进行表示,但是数据有很多特征,这些特征之间相互关联,耦合性较高,导致模型很难弄清楚它们之间的关联,使得学习效率低下,因此需要寻找到这些表面特征之下隐藏的深层次的关系,将这些关系进行解耦,得到的隐藏特征,即latent code。由 latent code组成的空间就是 latent space。

添加 Mapping Network 的目标是将输入向量 z z z 编码转为中间向量 w w w,并且中间向量 w w w 后续会传给生成网络得到 18 个控制向量,使得该控制向量的不同元素能够控制不同的视觉特征。

2.为何要加 Mapping Network 呢?因为如果不加这个 Mapping Network 的话,后续得到的 18个控制向量之间会存在特征纠缠的现象——比如说我们想调节 8 ∗ 8 8*8 88 分辨率上的控制向量(假设它能控制人脸生成的角度),但是 32 ∗ 32 32 * 32 3232分辨率上的控制内容(譬如肤色)也被改变了,这个就叫做特征纠缠。所以 Mapping Network 的作用就是为输入向量的特征解耦提供可行性。

3.为何 Mapping Network 能够学习到特征解耦呢?如果仅使用输入向量来控制视觉特征,能力是非常有限的,因此它必须遵循训练数据的概率密度。例如,如果黑头发 的人的图像在数据集中更常见,那么更多的输入值将会被映射到该特征上。因此,该模型无法将部分输入(向量中的元素)映射到特征上,这就会造成特征纠缠。然而,通过使用另一个神经网络,该模型可以生成一个不必遵循训练数据分布的向量,并且可以减少特征之间的相关性。

2. AdaIN

stylegan的第二个idea是将特征解缠后的中间向量W′变换为样式控制向量,从而参与影响生成器的生成过程。
在这里插入图片描述

生成器由于从 4 ∗ 4 → 8 ∗ 8 → . . . . . . . → 1024 ∗ 1024 4*4 \rightarrow 8*8 \rightarrow .......\rightarrow1024*1024 4488.......10241024的过程中,每个阶段都会受两个控制向量 A A A 施加的影响,(一次上采样之后,一次卷积之后),都采用 AdaIN(自适应实例归一化)。因此,中间向量W′总共被变换成 18 个控制向量 A A A 传给生成器。

其中 AdaIN 的具体实现过程如上右图所示:将W′通过一个可学习的仿射变换 A A A 扩变为放缩因子 y s y_s ys与偏差因子 y b y_b yb,这两个因子会与标准化之后的卷积输出做一个加权求和,抹去了对图片局部信息的可见性,就完成了一次 W ′ W′ W 影响原始输出 x i x_i xi 的过程。而这种影响方式能够实现样式控制,主要是因为它让变换后的 W ′ W′ W 影响图片的全局信息,而保留生成人脸的关键信息由上采样层和卷积层来决定,因此 W ′ W′ W 只能够影响到图片的样式信息。

  • 采用常量张量作为生成器输入的原因分析
    可以降低由于初始输入取值不当而生成出 一些不正常的照片的概率,另一个好处是它有助于减少特征纠缠, 对于网络在只使用𝑊 ′ 不依赖于纠缠输入向量的情况下更容易学习。

3. 添加随机噪声

人们的脸上有许多小的特征,可以看作是随机的(雀斑,皱纹,发际线)、为了使图像更逼真多样,将这些小特征插入 GAN 图像的常用方法是在输入向量中添加随机噪声 (即 通过在每次卷积后添加噪声 )。为了控制噪声仅影响图片样式上细微的变化, StyleGAN 采用类似于 AdaIN 机制的方式添加噪声(噪声输入是由不相关的高斯噪声组成的单通道数据,它们被馈送到生成网络的每一层)。 即在 AdaIN 模块之前向每个通道添加一个缩放过的噪声,并稍微改变其操作的分辨率级别特征的视觉表达方式。 加入噪声后的生成人脸往往更 加逼真与多样 。

style影响的是整体(改变姿势、身份等),noise影响无关紧要的随机变化(头发、胡须等)。

4. 混合正则化

目的:进一步鼓励styles的局部,减小不同层之间样式的相关性

方法:对给定比例的训练样本(随机选取)使用样式混合的方式生成图像。在训练过程中,使用两个随机隐码z(latent code)而不是一个,生成图像时,在合成网络中随机选择一个点(某层),从一个隐码切换到另一个隐码(称之为样式混合)。具体来说,通过映射网络运行两个潜码z1、z2,并让对应的w1、w2控制样式,使w1在交点前应用,w2在交点后应用。

这种正则化技术防止网络假设相邻样式是相关的,随机切换确保网络不会学习和依赖于级别之间的相关性。

三、量化隐空间(latent space)耦合度的方法

  • 感知路径长度(Perceptual path length)
  • 线性可分性(linear separability)

感知路径长度

为什么这种量化纠缠的方法是可行的?

对隐空间向量进行插值会在图像中产生非线性变化。比如,在所有端点中缺失的特征可能会出现在线性插值路径的中间。这表明隐空间是耦合的,变化因子没有被恰当的分开。所以通过测量当在两个隐空间之间进行插值时图像的剧烈变化程度,可以反映隐空间的纠缠程度(特征分离程度)。
感知路径长度计算,使用10000个样本计算

将两个隐空间之间的插值路径细分为小段,感知总长度定义为每段感知差异的总和。感知路径长度的定义是这个和在无限细的细分下的极限,实际上用一个小的细分 ϵ = 1 0 − 4 \epsilon=10^{-4} ϵ=104 来近似它。隐空间Z中所有可能端点(在路径中的位置)的平均感知路径长度,计算如下
在这里插入图片描述

在这里插入图片描述
t服从(0,1)均匀分布,slerp表示球面插值操作,这是在归一化的输入隐空间中最合适的插值方式。

G是生成器,d计算得到生成图像之间的感知距离。因为d是二次的,所以除以 ϵ 2 \epsilon^{2} ϵ2 来消除对细分粒度的依赖。

d的具体计算方式:使用基于感知的成对图像距离,测量连续图像之间的差异(两个VGG16 embeddings之间的差异,利用VGG16提取出图像的特征,在特征层面上计算距离)
计算隐空间W的感知路径长度与z的唯一不同是采用lerp线性插值,因为w向量没有进行归一化
在这里插入图片描述

线性可分性(linear separability)

为什么这种量化纠缠的方法是可行的

如果一个隐空间是充分解耦的,应该能够找到与每个变化因子对应的方向向量。我们提出了另一种度量方法来量化这种效果,测量通过线性超平面将隐空间点分割成两个不同的集合的程度,使每个集合对应于图像的特定的二元属性(比如男、女)。

计算方法:

①训练40个辅助分类器,分别对40个二元属性进行区分(每个分类器区分一个属性,比如区分女性男性)。分类器与StyleGAN判别器结构相同,使用CelebA-HQ数据集训练得到(保留原始CelebA的40个属性,150000个训练样本),学习率 1 0 − 3 10^{-3} 103,batchsize大小8,Adam优化器。
②使用生成器生成200,000个图像,并使用辅助分类器进行分类,根据分类器的置信度对样本进行排序,去掉置信度最低的一半,得到100,000个已知类别的隐空间向量(latent code)
③对于每个属性,拟合一个线性SVM来预测标签-基于传统的隐空间点或基于样式的隐空间点w-并且根据这个超平面对这些隐空间点(512维,10000个点)进行分类。
④用条件熵 H ( Y ∣ X ) H(Y |X) H(YX) 度量超平面将点划分为正确类别的能力,X是SVM预测的类别,Y是预先训练好的辅助分类器确定的类(作为真实类别);因此,根据SVM确定样本在超平面的哪一边,条件熵告诉我们需要多少额外的信息来确定样本的真实类别。直觉上,如果隐空间中的变化因子是耦合的(非线性的),那么用超平面来分离样本点将会更加困难(需要更多的额外信息),产生高的条件熵。较低的值表示易于分离(可分性好),因此解耦程度更大

可分性计算公式 在这里插入图片描述
,其中i列举了40个属性。取幂是为了将值从对数域变换为线性域,便于进行比较

四、总结

1) 借鉴风格迁移,提出基于样式的生成器(style-based generator)。

  • 实现了无监督地分离高级属性(人脸姿势、身份)和随机变化(例如雀斑,头发)
  • 实现对生成图像中特定尺度的属性的控制。
  • 生成器从一个可学习的常量输入开始,隐码在每个卷积层调整图像的“样式”,从而直接控制不同尺度下图像特征的强度。

2) 实现了对隐空间(latent space)较好的解耦。

  • 生成器将输入的隐码z嵌入一个中间的隐空间。因为输入的隐空间Z必须服从训练数据的概率密度,这在一定程度上导致了不可避免的纠缠,而嵌入的中间的隐空间W不受这个限制,因此可以被解耦。

3) 提出了两个新的量化隐空间解耦程度的方法

  • 感知路径长度和线性可分性。与传统的生成器体系结构相比,新的生成器允许更线性、更解耦地表示不同的变化因素。
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值