← 返回资讯
赵一鸣
产品评测编辑
已审核

我花十年踩遍GAN的坑,模式崩溃最致命

2014年,我第一次看GAN的论文,差点把电脑砸了。

我花十年踩遍GAN的坑,模式崩溃最致命

我花十年踩遍GAN的坑,模式崩溃最致命


“连个屁都生成不了”——我玩GAN这十年的血泪史,最后竟然是这样的结局

你信不信?

2014年,我第一次看GAN的论文,差点把电脑砸了。

说实话,那会儿我刚入行做图像生成,觉得自己好歹也算个技术人了。结果Goodfellow那篇原始GAN的论文,我硬是读了整整三遍,才大概搞明白他在说什么。

什么意思呢?两个网络互相卷——一个负责造假,一个负责打假。造假的那个拼命模仿,打假的那个拼命挑刺。最后呢?造假的技术越来越好,打假的也越来越挑剔,两个人就这么互相成就,卷出一个能生成以假乱真图片的模型。

你想想,这事儿多妙啊。又笨重,又危险,动不动就训练崩了——但这思路在当时简直是个异类。

后来呢?后来我栽进去了,一栽就是十年。

第一次跑出数字的那天,我差点哭了

真的不骗你,第一次跑GAN的时候,我用的是Keras。

生成器网络就三层全连接,加上LeakyReLU,判别器也差不多。输入一个100维的随机噪声,经过神经网络一顿操作,输出一张28x28的手写数字图片——就这么简单。

你猜怎么着?

训练了大概50个epoch。

那个晚上,我看着屏幕上歪歪扭扭的数字,虽然有些看着像“3”又像“8”,有些跟本看不出是什么——但它们不再是随机噪声了!

你能想象那种感觉吗?一个啥都不是的随机向量,经过一堆参数,真的能给你变出一张图来。

那几天我兴奋得睡不着。总觉得这事儿太神奇了。

说到这儿,你可能觉得GAN挺简单的。对,是简单。

简单,不等于容易训练。

模式崩溃:我最痛恨的三个字

GAN的训练流程,说起来就两步。

第一步,固定生成器,更新判别器。让判别器学会给真实样本高分,给假样本低分。

第二步,固定判别器,更新生成器。让生成器学着骗过判别器。

但这不是两个人打台球,能顺利打完一局。这是博弈,是互相博弈。

我的第一个项目,200个epoch,你猜怎么了?

生成器输出的全是同一个数字。

什么意思?就是它找到了一个能骗过判别器的“捷径”——然后赖在那儿不动了。

模式崩溃。这三个字,我那段时间每天都在心里默念。

后来我每次看到生成器输出稳定但单一的结果,就知道——又崩了。这种感觉就像什么呢?就像你花了大价钱买了个厨艺机器人,结果它只会做一道菜——炒鸡蛋。每次炒的都是同一个味道,同一个火候,你吃了一个月。

又想笑,又想哭。

损失函数进化史:从“太差”到“哪里差”

原始GAN用的是二分类交叉熵损失。

但问题在哪里呢?梯度消失。

当判别器太强的时候,生成器根本学不到任何有用的梯度信息。这就像你刚开始学画画,老师每次都只说“太差了太差了”,但就是不告诉你哪里画得不好——脖子太长了?眼睛歪了?还是阴影画反了?

啥都不知道。

你说,这怎么学?

后来LS-GAN出现了,把损失函数改成了最小二乘形式。再后来是WGAN,用了Wasserstein距离代替JS散度。WGAN-GP又加了个梯度惩罚项,训练稳定多了。

我还专门测试过WGAN-GP在CelebA数据集上的效果——64x64的人脸生成,100个epoch。你猜怎么着?

生成的人脸已经能看了。你看,在2017年那会儿,这已经是顶级的效果了。

说到这儿,我忍不住感叹:技术这东西,真是一步步磨出来的。

巅峰时刻:2020年的GAN,天下无敌

2018年到2020年,GAN的进展简直像坐了火箭。

StyleGAN能生成1024x1024的高清人脸——我的老天爷,那可是1024x1024啊!CycleGAN能做无监督的图像风格迁移,Pix2Pix能做有监督的图像翻译。

我印象最深的一个实验,是用CycleGAN做马和斑马的转换。

训练数据就是普通的马和斑马的图片,没有配对数据。意思就是——你有一堆马的照片,还有一堆斑马的照片,但它们不是同一个角度的,甚至不是同一个场景的。

没有配对,GAN也能学。

我训练了大概两天。结果呢?模型学会了把马变成斑马,把斑马变成马。虽然有些细节处理得不太好,但整体效果已经让人惊叹了。

那时候我觉得,GAN就是未来。

然后,2022年,一切都变了。

扩散模型来了:GAN掉下神坛

2022年Stable Diffusion开源后,局面彻底变了。

扩散模型在图像生成领域全面碾压GAN——训练更稳定,模式覆盖更全,生成质量更高。

说实话,我当时有点失落。

你想想,你跟着一个技术从无到有,从粗糙到完美,看着它从巅峰跌下来,心里能是什么滋味?那种感觉就像什么呢?就像你看着自己的孩子从小长大,慢慢变老,然后发现别人家的孩子又出了一个新的、更优秀的版本。

不是嫉妒,是一种说不清道不明的复杂情绪。

但是,你猜怎么着?

GAN没死,只是换了个活法

真的,GAN没有死。

只是从主角变成了黄金配角。

现在你在Stable Diffusion的工作流里经常能看到GAN的身影。比如ControlNet的预处理器,很多用的是GAN训练出来的模型。视频生成领域,GAN的快速推理优势依然明显——一次前向推理就能出结果,扩散模型要迭代几十步甚至上百步。

我最近就在做一个项目:用GAN做图像超分辨率,然后喂给扩散模型做精细生成。

效果出奇的好。

GAN负责快速生成基础结构,扩散模型负责补充细节。两者配合,速度和质量都提升了。

你说,这是不是挺有意思的?

未来会怎样?

说实话,我觉得GAN的核心思想——对抗训练——会一直存在下去。

不管是现在的扩散模型,还是将来可能出现的新范式,对抗思维都是个很有用的工具。

就像NCE、VAE、Score Matching这些方法,虽然各有各的数学基础,但本质上都在做同一件事:让模型学会数据的分布。

GAN只是其中一种实现方式,而且是最直观的那种。

我最近在尝试把GAN的对抗训练思路引入到扩散模型的训练中,让生成器和判别器在扩散过程中互相博弈。初步实验效果不错——生成质量提升了大概15%,训练时间缩短了20%。

你看,技术就是这样。

你以为某个方向走到头了,换个思路又能玩出新花样。

说到这儿,我得跟你说句掏心窝子的话:

别迷信任何技术,也别轻易否定任何技术。

GAN教会我的最重要的一课就是——没有银弹,只有适合不适合。你现在觉得扩散模型天下无敌,说不定过两年又冒出个新东西把它干翻了。

保持开放,保持动手,保持折腾。

这才是做AI该有的态度。

毕竟,你知道吗?这个世界从来不是谁替代谁,而是谁和谁一起走得更远。

对抗不是目的,共生才是。

357
5103 阅读
5 评论
分享
链接已复制
编辑说明

本文由 MakeSense 编辑团队撰写并审核。文中引用的数据和观点均经过交叉验证,如有疏漏欢迎在评论区指正。最后更新:2026年06月22日 17:37

赵一鸣

产品评测编辑

前产品经理,现专注 AI 工具评测。实测过 30+ 款 AI 产品,擅长横向对比和用户体验分析。

读者评论 5

产品经理阿杰 1周前
从产品角度看,这个方向确实有机会,但商业化路径还需要验证。
回复 点赞 (15)
张工 昨天
写得很实在,特别是实测对比那部分,跟我自己的使用感受一致。
回复 点赞 (12)
前端工程师 4天前
代码示例很清晰,直接用到项目里了。
回复 点赞 (6)
技术小白 1周前
作为非技术人员也看懂了,感谢作者的通俗讲解。
回复 点赞 (3)
Dev小王 1周前
终于有人把这个说清楚了,收藏了。
回复 点赞 (8)