StyleGAN(Karras et al., 2019)在 FFHQ 人脸数据集上达到了当时最逼真的生成效果。更重要的是它引入了一套精心设计的隐空间结构,使生成过程的不同属性(姿态、肤色、发型、纹理)可以在不同层级上独立控制。这套设计在后来的图像编辑和反演工作中被反复使用。
从 Z 到 W:Mapping Network
传统 GAN 将随机噪声 直接输入生成器第一层。StyleGAN 在中间插入一个 Mapping Network,将 映射到一个中间隐空间 。
Mapping Network 结构
Mapping Network 是 8 层全连接网络。输入 来自标准高斯分布 ,输出 的分布通过 MLP 学习变换后不再是标准高斯。变换使 空间中不同维度之间的相关性被削弱。
为什么 Mapping Network 产生解耦
空间服从各向同性的高斯分布,其所有维度具有相同的方差。如果直接用 控制生成,噪声向量中任何一个方向的变化都会同等程度地影响所有生成属性——网络无法对不同属性”分配”不同的敏感度。
Mapping Network 将各向同性的 映射到非各向同性的 : 空间中不同方向携带不同方差,网络可以自行决定哪些方向对应哪些语义属性(姿态、肤色、性别等)。这种”自动分配”就是解耦(disentanglement)的核心机制。
Synthesis Network:层级化生成
Synthesis Network 从 的特征图开始,通过 8 个分辨率级别()逐级上采样生成最终图像。每级分辨率包含两个 卷积和一个 上采样。
与传统 GAN 不同,Synthesis Network 的每一层都接收经 AdaIN 调整后的风格信息。
AdaIN:风格注入
AdaIN(Adaptive Instance Normalization)将来自 空间的风格向量注入到当前层的特征图中:
其中 是第 层特征图的某个通道, 和 在单样本的空间维度和通道上计算(Instance Normalization)。 和 由 经过一个小的全连接层生成。
AdaIN 只改变当前层的风格统计量(均值和方差),不破坏空间结构。不同层级的 AdaIN 控制不同尺度的特征:浅层控制姿态和粗略形状,中层控制面部特征,深层控制颜色和纹理等细节。
:::tip TODO
在此处插入 StyleGAN 架构示意图(Mapping Network + Synthesis Network + AdaIN 注入点)
:::
Style Mixing
训练时将同一 batch 中的两张图 分别映射到 ,在合成网络中跨越层级混合:前 层用 ,后 层用 。损失仅计算混合图像的真伪。
Style Mixing 有两个作用。正则化角度:防止网络让相邻层对 的响应高度相关,强制各层风格控制独立。效果角度:跨层混合使生成器学会将不同层级的属性分离。
Truncation Trick
训练完成后, 空间中大多数样本落在某一中心区域附近,离中心较远的样本对应罕见或极端特征。Truncation Trick 在推理时将 向均值 拉近:
保留全部分散度(多样性最大,可能有伪影); 是常见折中(质量高、多样性略有下降); 所有结果退化为均值图像。Truncation Trick 为图像质量与多样性之间提供了可调杠杆。
StyleGAN2 / 3 的主要改进方向
- StyleGAN2:去掉 AdaIN 中的 Instance Normalization,改用权重解调(weight demodulation),消除了水滴伪影。
- StyleGAN3:引入等变约束,使生成图像在平移和旋转时特征也相应平滑变化,提升了对精细纹理的生成连贯性。