从GAN到WGAN再到CycleGAN:25种生成对抗网络变体进化史
生成对抗网络(GAN)自2014年诞生以来,已经发展出了数十种变体,每一种都在前人的基础上解决了特定问题。本文将梳理25种重要的GAN模型,带你了解这个领域的演进脉络。
奠基之作
GAN (2014年7月)
论文:Generative Adversarial Networks
GAN由Ian Goodfellow提出,开创性地引入了生成器(Generator)和判别器(Discriminator)相互博弈的训练框架。生成器试图创造逼真的假数据,判别器则努力区分真假——这种对抗训练机制至今仍是所有变体的核心思想。
cGAN (2014年11月)
论文:Conditional Generative Adversarial Nets
条件GAN在原始GAN的基础上增加了条件信息(如类别标签),使得生成过程变得可控。从此,我们可以指定“生成一张狗的图像”而不是随机生成。
结构改进
DCGAN (2015年11月)
论文:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
DCGAN首次将卷积神经网络引入GAN架构,提出了稳定的设计准则:使用批归一化、去掉全连接层、使用步长卷积替代池化层。这一工作让GAN生成的图像质量有了质的飞跃。
LAPGAN (2015年7月)
论文:Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks
拉普拉斯金字塔GAN采用级联的方式从低分辨率到高分辨率逐级生成图像,每层专注于修复上一层的细节。这种“由粗到细”的思路启发了后来的ProgressiveGAN。
SGAN (2016年12月)
论文:Stacked Generative Adversarial Networks
堆叠GAN使用多个生成器-判别器对,每个层级负责不同尺度的特征。与LAPGAN不同,SGAN的层级之间不是简单的残差关系,而是各自生成完整的特征图。
训练稳定性革命
WGAN (2017年1月)
WGAN用Wasserstein距离替代了传统GAN的JS散度,从根本上解决了训练不稳定和模式崩溃问题。判别器(此时称为Critic)不再输出真假概率,而是输出一个实数分数。
WGAN-GP (2017年3月)
论文:Improved Training of Wasserstein GANs
WGAN-GP引入了梯度惩罚(Gradient Penalty)来替代权重裁剪,保留了WGAN的理论优势同时训练更加稳定。这也是目前最广泛使用的WGAN实现。
条件生成进阶
ACGAN (2016年8月)
论文:Conditional Image Synthesis With Auxiliary Classifier GANs
辅助分类器GAN不仅让判别器判断真假,还要求它预测生成的类别。这种方法能生成更清晰的类别特定图像,但可能牺牲类别多样性。
InfoGAN (2016年3月)
论文:InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets
InfoGAN通过最大化潜变量与生成数据之间的互信息,让模型自动学习可解释的特征表示。例如,在数字生成任务中,它会自动学会用某个维度控制数字的倾斜角度。
图像生成与编辑
GAWWN (2016年10月)
论文:Learning What and Where to Draw
GAWWN允许用户指定物体的位置和姿态(通过关键点或边界框),然后生成符合空间约束的图像。这是“控制生成位置”的早期尝试。
iGAN (2021年9月)
论文:IGAN: Inferent and Generative Adversarial Networks
iGAN结合了推理与生成,能够在给定的观测条件下进行后验推断,适用于图像补全、超分辨率等逆问题。
图像到图像翻译
Pix2Pix (2016年11月)
论文:Image-to-Image Translation with Conditional Adversarial Networks
Pix2Pix使用成对数据进行训练,可以将边缘图转换成真实图像、将卫星图转换成地图、将白天上色为夜景。它的生成器采用U-Net结构,判别器则使用PatchGAN。
Pix2PixHD (2017年11月)
论文:High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
Pix2PixHD能够生成2048×1024分辨率的高清图像。它采用了多尺度生成器和判别器,并支持通过实例级别的地图进行语义编辑。
PatchGAN (2018年7月)
论文:Patch-Based Image Inpainting with Generative Adversarial Networks
PatchGAN的判别器不再判断整张图像的真假,而是对每个N×N的图像块进行判断。这种设计迫使生成器关注局部纹理的真实性,特别适用于图像修复任务。
CycleGAN (2017年3月)
论文:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
CycleGAN最大的突破是不需要成对训练数据。通过引入循环一致性损失(将生成的图像再转换回来应与原图一致),它可以实现风格迁移、季节变换等任务。
StarGAN (2017年11月)
论文:StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
StarGAN用一个模型完成多个域之间的转换。它通过域标签来控制要转换的目标风格,只需要一个生成器就能实现互相转换,大大提高了效率。
文本到图像生成
StackGAN (2016年12月)
论文:StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks
StackGAN分两阶段生成:第一阶段根据文本描述生成低分辨率图像和大致形状,第二阶段修正细节并生成高分辨率图像。这使得文本到图像的生成质量大幅提升。
StackGAN++ (2017年12月)
论文:StackGAN++: Realistic Image Synthesis with Stacked Generative Adversarial Networks
StackGAN++将两阶段扩展为多阶段,并引入了端到端的联合训练。它还加入了颜色一致性正则化,生成的图像更加逼真。
图像恢复与增强
SRGAN (2016年9月)
论文:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
超分辨率GAN首次将GAN应用于图像超分辨率任务,能够将低分辨率图像恢复出逼真的纹理细节。它引入了感知损失(Perceptual Loss),使用预训练的VGG网络来评估生成图像的语义质量。
DeblurGAN (2019年8月)
论文:DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better
DeblurGAN专门用于图像去模糊,采用多尺度判别器和特征金字塔网络,能够在保持高效率的同时生成清晰图像。
FSGAN (2019年8月)
论文:FSGAN: Subject Agnostic Face Swapping and Reenactment
FSGAN用于人脸交换和动作重演,不需要针对特定人脸进行训练。它能够处理不同姿态、光照和表情,并保持身份一致性。
音频生成
WaveGAN (2022年8月)
论文:WaveGAN: Frequency-aware GAN for High-Fidelity Few-shot Image Generation
虽然论文标题涉及图像,但WaveGAN在音频生成领域有重要应用。它通过一维卷积处理原始音频波形,能够生成逼真的语音和音乐片段。
SpecGAN (2018年2月)
论文:Adversarial Audio Synthesis
SpecGAN先生成音频的频谱图(spectrogram),再通过逆变换恢复为波形。这种方法比直接生成波形更容易训练,生成的音质也更好。
艺术与创意
ArtGAN (2017年2月)
论文:ArtGAN: Artwork Synthesis with Conditional Categorical GANs
ArtGAN专用于艺术画作生成,在判别器中加入了类别分类任务(如流派、艺术家),使得生成的作品更具风格一致性。
CAN (2017年6月)
创意对抗网络的目标不是模仿现有风格,而是生成“偏离风格规范但又不至于完全杂乱”的新颖作品。CAN试图在“可识别”与“新颖”之间找到平衡。
SketchRNN (2017年4月)
论文:A Neural Representation of Sketch Drawings
虽然名字带RNN,但SketchRNN使用了VAE与GAN结合的思想,专门处理矢量化的手绘草图。它能够根据用户的部分草稿补全完整绘画。
TextureGAN (2017年6月)
论文:TextureGAN: Controlling Deep Image Synthesis with Texture Patches
TextureGAN允许用户提供一小块纹理示例,然后生成具有相同纹理风格的大图像。这在材质生成、图案设计中有重要应用。
注意力机制与渐进式生成
SAGAN (2018年5月)
论文:Self-Attention Generative Adversarial Networks
自注意力GAN将自注意力模块引入生成器和判别器,让模型能够捕捉图像中远距离像素之间的依赖关系。这使得生成图像中的物体(如鸟的翅膀和身体)在全局上更加协调。
ProgressiveGAN (2017年10月)
论文:Progressive Growing of GANs for Improved Quality, Stability, and Variation
渐进式GAN从4×4的极低分辨率开始训练,然后逐步添加更高分辨率的层。这种渐进增长的方式让训练极其稳定,能够生成1024×1024的高质量人脸图像,StyleGAN系列也继承了这个思想。
特别提及
DeepDream (2015年7月)
博客:Inceptionism: Going Deeper into Neural Networks
严格来说,DeepDream不是GAN,而是一种基于梯度上升的图像增强技术。但它对后来的生成模型影响深远,其迷幻的视觉风格让公众第一次直观感受到深度神经网络“看到”的世界。
各GAN模型优缺点对比
| 模型 | 优点 | 缺点 |
|---|---|---|
| GAN | 开创性框架,原理简单 | 训练不稳定,易模式崩溃,无评估指标 |
| cGAN | 生成可控,可条件化 | 需要带标签数据 |
| DCGAN | 训练相对稳定,图像质量高 | 仍存在不收敛问题 |
| LAPGAN | 逐级生成质量高 | 级联结构训练复杂 |
| WGAN | 训练稳定,损失函数指示收敛 | 权重裁剪可能导致梯度消失或爆炸 |
| WGAN-GP | 训练非常稳定,梯度惩罚高效 | 计算量略大于原始WGAN |
| ACGAN | 生成类别清晰,利用类别信息 | 可能牺牲类别多样性 |
| InfoGAN | 可解释的隐变量,无监督学习 | 互信息估计需要技巧 |
| Pix2Pix | 图像翻译效果好 | 需要成对训练数据 |
| CycleGAN | 无需成对数据,应用广泛 | 循环一致性损失可能限制多样性 |
| StarGAN | 多域统一模型,参数量少 | 域数增多时训练困难 |
| StackGAN | 文本生成图像效果好 | 两阶段分离训练 |
| StackGAN++ | 端到端训练,多阶段联合 | 模型复杂度高 |
| SRGAN | 超分辨率纹理真实 | 可能产生伪影 |
| PatchGAN | 关注局部纹理,参数少 | 全局结构一致性弱 |
| SAGAN | 捕捉长距离依赖,全局协调 | 注意力模块计算量大 |
| ProgressiveGAN | 高分辨率稳定训练 | 渐进增长需要精心设计 |
| CAN | 创造新颖作品,超越模仿 | 艺术性评估主观 |
总结
GAN的发展史是一部不断解决前人问题、不断扩展应用边界的进化史。从最初的训练不稳定,到WGAN的理论突破;从随机生成到条件控制;从低分辨率到ProgressiveGAN的高清生成——每一次改进都让生成模型离“真实”更近一步。