网络结构:
两部分:Mapping network & Synthesis network
Mapping network
作用:将z转换为w,实现对z的特征解耦。
-
为什么要z -> w?
z为符合高斯分布或均匀分布的随机变量,变量彼此之间有较大的耦合关系,这可能会导致基于z生成的图片中,不同特征之间有一定的联系,而这些联系不一定是正确的。所以,我们希望对z进行解耦,以便改变图片不同的特征。
所以通过Mapping network,该模型可以生成一个不必遵循训练数据分布地向量w,减少了特征之间的相关性,完成解耦
Synthesis network
作用:
用于生成图像
- 样式模块
将特征解缠后的中间向量W′变换为样式控制向量,从而参与影响生成器的生成过程。
结构:4X4 >> 1024X1024,由 9 个生成阶段组成,而每个阶段都会受两个控制向量(A)对其施加影响,其中一个控制向量在 Upsample之后对其影响一次,另外一个控制向量在 Convolution 之后对其影响一次,影响的方式都采用AdaIN(自适应实例归一化)。因此,中间向量W′总共被变换成 18 个控制向量(A)传给生成器。
AdaIN: 的具体实现过程如上右图所示:将W′通过一个可学习的仿射变换(实际上是一个全连接层)扩变为放缩因子ys,i与偏差因子yb,i,这两个因子会与标准化之后的卷积输出做一个加权求和,就完成了一次W′影响原始输出xi的过程。
而这种影响方式能够实现样式控制,主要是因为它让W′(即变换后的)影响图片的全局信息(注意标准化抹去了对图片局部信息的可见性),而保留生成人脸的关键信息由上采样层和卷积层来决定,因此W′只能够影响到图片的样式信息。
删除传统输入
synthesis network的输入为4x4x512的常量值。
好处:避免初始输入不当导致生成效果差、有助于减少特征耦合。-
加入噪声
人们的脸上有许多小的特征,可以看作是随机的,例如:雀斑、发髻线的准确位置、皱纹、使图像更逼真的特征以及各种增加输出的变化。 将这些小特征插入 GAN 图像的常用方法是 在输入向量中添加随机噪声 (即 通过在每次卷积后添加噪声 )。为了控制噪声仅影响图片样式上细微的变化, StyleGAN 采用类似于 AdaIN 机制的方式添加噪声(噪声输入是由不相关的高斯噪声组成的单通道数据,它们被馈送到生成网络的每一层)。 即在 AdaIN 模块之前向每个通道添加一个缩放过的噪声,并稍微改变其操作的分辨率级别特征的视觉表达方式。 加入噪声后的生成人脸往往更加逼真与多样 。
风格影响的是整体(改变姿势、身份等),噪音影响无关紧要的随机变化(头发、胡须等)。
- 混合正则化
方法:对给定比例的训练样本(随机选取)使用样式混合的方式生成图像。在训练过程中,使用两个随机隐码z(latent code)而不是一个,生成图像时,在合成网络中随机选择一个点(某层),从一个隐码切换到另一个隐码(称之为样式混合)。具体来说,通过映射网络运行两个潜码z1、z2,并让对应的w1、w2控制样式,使w1在交点前应用,w2在交点后应用。
这种正则化技术防止网络假设相邻样式是相关的,随机切换确保网络不会学习和依赖于级别之间的相关性。