在网上刷到一张几乎骗不出真人的头像时,很多人会好奇:背后到底有什么“隐形手”在操作?答案常常指向生成对抗网络(GAN),它把两套神经网络当成棋手,互相逼迫,最终把噪声变成逼真的图像。

生成器(Generator)接受一个随机向量z∈ℝⁿ,通过一系列反卷积层“绘制”出一幅图片;判别器(Discriminator)则像警探,输入真实图片或生成器的产物,输出一个介于0到1之间的概率,表明这张图是真实的还是伪造的。两者的参数分别记为θG和θD,在训练时相互更新。
‑log D(x)的交叉熵损失。‑log (1‑D(G(z))),这一步让判别器学会辨别伪造。‑log D(G(z)),也就是让判别器误判。Goodfellow等人在2014年的论文里把这套流程描述为“零和游戏”,两方的目标正好相反。实际训练中,常见的技巧包括使用批归一化(BatchNorm)防止梯度消失、加入噪声平滑判别器标签、或改用Wasserstein距离来缓解模式崩溃(Mode Collapse)。以CelebA人脸数据集为例,经过约200万次迭代后,生成器能够在几秒钟内输出一张细节丰富、光影自然的肖像。
除了基本的对抗损失,实践中还有两大“加速器”。一是梯度惩罚(Gradient Penalty),它约束判别器的梯度范数,保持训练过程的平滑;二是谱归一化(Spectral Normalization),直接限制判别器权重的谱范数,防止梯度爆炸。正是这些细节,让从最初的手写数字到如今的3D模型,GAN的生成能力跨越了数个数量级。
如果把GAN比作一场“画家 vs 鉴赏家”的较量,真正的惊喜往往出现在两者不经意的配合里——生成器学会了怎样在噪声中捕捉纹理,判别器则发现了哪些细节是人眼最敏感的。只要继续调教,这场对弈永远不会真正结束。
参与讨论
这玩意儿真能生成真人头像?
GAN训练起来是不是特别费显卡?
之前试过训练GAN,loss一直震荡就是收敛不了🤯
感觉生成器和判别器就像在玩猫鼠游戏
200万次迭代…这得跑多久啊
Wasserstein距离比原始版本稳定多了
人脸生成这块确实厉害,差点被骗过去
为啥我的生成器老产生模糊图片啊
这个比喻挺形象的,画家和鉴赏家的较量👍
看不懂但觉得很厉害
模式崩溃问题现在解决了吗?
求问CelebA数据集在哪里下载?
生成器是怎么从随机数变成图片的?好奇
那张人脸是怎么学会光影的,想看中间层特征图
原来头像造假是这么玩的,有点意思
这对抗过程像猫鼠游戏,挺生动的
这比喻还挺贴切
这俩网络互相较劲的过程挺像打乒乓球的
这个比喻还挺形象的
调参的时候得崩溃吧,这对抗太难平衡了
太真实了,经常调半天没效果