GAN · 对抗网络篇
GAN 是深度学习史上最富戏剧性的架构——两个神经网络你追我赶、互相较量,最后学会了造以假乱真的假货。人脸生成、图像风格迁移、DeepFake、AI 换脸……2014 到 2020 年那波"AI 生成图"的浪潮,几乎全是 GAN 的功劳。
想象一个假币贩子想印出以假乱真的百元大钞。
第一次,他技术粗糙,钞票纸张都不对——验钞员一秒识破,退回;
他回去改进纸张——第二次能骗过验钞机,但荧光条不对——又被识破;
他继续琢磨——荧光条加上了,可水印位置歪了——又被识破……
验钞员每次抓假越来越严,贩子每次造假越来越精,两人互相逼迫、水涨船高。到最后——假币贩子印出的钞票,连验钞员都分辨不出真假。
GAN 的训练过程,跟这一模一样。
GAN 的两个演员:G 与 D
GAN(Generative Adversarial Network)由两个神经网络组成:
生成器 G(Generator)——它拿一小段随机噪声当"灵感",努力生成一张看起来像真数据的东西。就像那位假币贩子,从空白纸开始造假钞。
判别器 D(Discriminator)——它看到一张图(可能真、可能假),要判断"这是真的(来自真实数据)还是 G 造的"。就像验钞员。
两者的目标彻底相反:G 要骗过 D,D 要抓住 G。这种"你死我活"的博弈就是 GAN 名字里"Adversarial(对抗)"的含义。
你可以把 GAN 想成一个怪异的教学场景:学生(G)不断交作业,老师(D)不断打分。
刚开始学生水平差,老师随便一看就知道是抄的;
学生根据老师的反馈改进,作业越来越像模像样;
老师为了跟上学生进步,也越来越挑剔,看得更精细;
最后学生的作业已经和真作品无法分辨——同时老师也变成了一位极其挑剔的鉴赏家。
有意思的是,训练结束后,我们通常只留下学生 G(生成器),扔掉老师 D——因为我们要的是"会造假"的能力,而不是"会打假"。
训练一次到底发生了什么
- Step 1从真实数据集里取一批"真图",让 D 学会说"这些是真的"。
- Step 2G 从随机噪声生成一批"假图",让 D 学会说"这些是假的"。
- Step 3冻结 D,用 D 的评价去反过来指导 G:G 调整参数,让 D 越来越无法把它的假图识破。
- Step 4回到 Step 1,G 和 D 交替更新,一步步共同进化。
零和博弈:为什么这个循环能收敛
数学上,GAN 是一个"极小极大博弈"(minimax game)——G 想让"D 判断假图的失误率"越大越好,D 想让这个失误率越小越好。理论上,当两者都收敛到均衡点时,G 生成的分布 = 真实数据分布——也就是造出来的假图,从概率意义上和真图完全无法区分。
但训练 GAN 从来不轻松——G 和 D 力量失衡就完蛋:G 太弱,D 一眼看穿,G 无从改进;D 太弱,G 造啥垃圾都能骗过,永远不进步。工程上要靠各种技巧(学习率、批大小、正则化、渐进增长……)小心地维持这场博弈的平衡。
GAN 的名场面:从 64×64 到 4K 高清脸
| 年份 | 模型 | 标志性成果 |
|---|---|---|
| 2014 | 原始 GAN | Ian Goodfellow 提出概念,生成 64×64 的模糊人脸。 |
| 2015 | DCGAN | 把卷积引入 G 和 D,第一次生成清晰可辨的人脸和卧室。 |
| 2017 | CycleGAN | 无需配对样本就能做"马 ↔ 斑马"、"照片 ↔ 油画"风格迁移。 |
| 2018 | Pix2Pix | 草图变照片、黑白变彩色——图像转换的通用框架。 |
| 2018-2019 | ProGAN / StyleGAN | NVIDIA 生成 1024×1024 高清假人脸,thispersondoesnotexist.com 就是它。 |
| 2020~ | StyleGAN3 / BigGAN | 4K 分辨率、可控风格、以假乱真的动物 / 场景生成。 |
GAN 干过的那些事
假脸生成——thispersondoesnotexist.com 上每一张脸都是 StyleGAN 编出来的,现实中不存在这个人。
DeepFake 换脸——把电影明星的脸换到另一个人身上,这项技术引发过大量伦理讨论。
老照片修复 / 上色——把黑白祖辈照片上色、模糊照片修高清、破损照片补全。
风格迁移——把你的自拍变成梵高油画、水墨画、动漫风格。
超分辨率——把 480p 视频放大到 4K,靠 GAN "脑补"细节。
时装 / 商品设计——生成从未见过的服装、鞋子、家具样式,让设计师参考。
GAN 训练像两位书法大师互相较劲:一位专门临摹古人字帖(G),另一位专门鉴定"真古人 vs 仿的"(D)。两人越练越厉害,最后临摹的一方几乎可以以假乱真——但真正到了那一天,"临摹者"和"鉴定者"的水平已经不分伯仲。这就是 GAN 收敛的样子。
GAN 的困境与 Diffusion 的接棒
GAN 虽然效果炸裂,但训练极其不稳定、容易"模式崩溃"(只会生成几张固定图像)、可控性差。2020 年之后,扩散模型(Diffusion)横空出世——它训练更稳、生成质量更高、可控性更强,逐渐取代 GAN 成为图像生成的主流。Midjourney、Stable Diffusion、DALL-E、Sora,用的都是 Diffusion,不是 GAN。
但 GAN 并没有退场——在实时生成(速度快)、图像超分、风格迁移等场景,它依然是首选。而且它开创的"对抗训练"思想已经渗透到很多其他领域,比如对抗样本、鲁棒性训练、隐私保护。
为什么 GAN 训练如此难驯服
GAN 的训练是深度学习圈公认的"最难调"之一,因为它违反了梯度下降最喜欢的那种"目标稳定"假设——你在优化 G 时,D 也在动;你在优化 D 时,G 也在动。整个过程像两个人在同一根跷跷板上找平衡,稍不小心就崩:G 太强,D 每次都被骗过去,梯度信号消失;D 太强,G 无论怎么改都被识破,梯度全变负数,直接崩溃到只输出几张固定的假图(这就是臭名昭著的"模式崩溃")。
为此,工程师们发明了一堆花式技巧——WGAN 换了距离度量避免梯度消失、Spectral Norm 限制 D 的能力不让它太强、渐进增长先训小分辨率再加层、Two Timescale 让 G 和 D 学习率不同——每一样都是从血泪教训里总结出来的。你去顶级会议翻 2017-2020 年的 GAN 论文,能看到工程师们对着这台"喜怒无常的机器"绞尽脑汁的样子。
条件 GAN:让"造假"听话
原始 GAN 只能"随机"生成——你不能指定"给我一张笑脸的猫",它只会随机抽签。条件 GAN(cGAN)解决了这一点:把额外的信息(比如类别标签、文本描述、素描草图)也喂给 G 和 D,让 G 学会"按条件造假"、D 学会"按条件判断"。
这一个小改动打开了 GAN 的应用大门——Pix2Pix把它用在图像转换(草图 → 照片),StackGAN 用它做文本生图,StyleGAN 用它把风格向量作为条件精细控制生成人脸的年龄、性别、发型。今天你在网上看到的绝大多数 GAN 应用,本质上都是某种条件 GAN。
StyleGAN:可控性的巅峰
2018 年 NVIDIA 提出的 StyleGAN 是 GAN 时代最闪亮的一颗明珠——它把"生成"这件事拆成了"粗粒度到细粒度"的多个层次:早期层控制脸型、姿势这种大结构,中期层控制五官、发型,后期层控制皮肤纹理、光影。你可以像调音台一样,一层一层拨动这些"风格向量"——瞬间改变发型而保持五官不变、瞬间改变年龄而保持身份识别、瞬间改变光照而保持表情——这是原始 GAN 完全做不到的可控性。
StyleGAN 2 和 StyleGAN 3 进一步解决了闪烁、抖动、"贴纸感"等问题,让生成的假人脸能在动态镜头里也保持真实感。thispersondoesnotexist.com 那些让人分不清真假的头像,全部都出自 StyleGAN 系列。它的架构和思想直接影响了后来的 Diffusion 模型——比如 Stable Diffusion 里也保留着"控制风格"的机制。
GAN 与伦理:一把双刃剑
GAN 造出的"以假乱真"的能力,从诞生第一天起就带着伦理阴影。DeepFake 换脸让人无中生有地"出现"在色情视频、假新闻里,损害了大量普通人的名誉。假身份证 / 假证件照让金融风控头疼不已。虚假历史照片让考古和历史研究面临真假难辨的挑战。
各国政府、平台、研究机构陆续给出反制方案:图像水印、GAN 检测器(反过来训练网络识别 AI 生成图)、法律层面的"深度伪造禁令"。但这场"造假 vs 打假"的对抗游戏,未来几十年都不会有终点——毕竟 GAN 的思想本身就是"造假 vs 打假"。理解 GAN,不光是理解技术,更是理解今天信息时代"眼见不再为实"的根本原因。
GAN 的思想为什么留了下来
虽然 Diffusion 已经在图像生成主战场上取代了 GAN,但 GAN 的核心思想——用一个网络当"评委"来指导另一个网络学习——已经渗透进整个深度学习圈,远远超出了"生成图片"这个原始场景。
对抗训练(Adversarial Training)被用来增强模型的鲁棒性——用一个网络专门找"能骗过模型的对抗样本",用另一个网络学着抵御,双方拉扯让模型更抗攻击。Actor-Critic 强化学习框架里,Actor(做决策)和 Critic(评价)也是一种类似 GAN 的博弈。差分隐私里,用一个网络专门生成"最像真数据的匿名数据"、另一个网络专门试着识别,两者对抗保护隐私。GAN 提出的这套"两个网络较量"的范式,可能是深度学习史上影响最深远的一个 idea——它教会我们,AI 不一定要有明确的目标函数,有时"内部竞争"本身就能催生智能。
GAN = 生成器 G + 判别器 D 的对抗游戏。这个"造假 vs 打假"的循环,教会了神经网络造出以假乱真的图像。它开启了 AI 生成艺术的第一次高潮,也为后来的 Diffusion 铺好了路。今天当你看到"AI 生成的美女不存在于世上"、"老照片一键上色"、"实时换脸滤镜",多半都还有 GAN 的血脉在流动。