119、基于 GAN 的超分:SRGAN 到 ESRGAN 的对抗训练演进
119、基于 GAN 的超分:SRGAN 到 ESRGAN 的对抗训练演进一、一个让我熬夜三天的 bug去年做项目,用 SRGAN 训练一个 4 倍超分模型,跑了两天两夜,loss 曲线漂亮得像教科书——生成器 loss 稳步下降,判别器 loss 在 0.5 附近震荡。我心想稳了,结果一测试,输出图像全是高频噪声,纹理像被泼了硫酸。仔细看,生成器 loss 虽然低,但感知损失那一项几乎没起作用,模型学会了用噪声欺骗判别器。这个坑让我意识到:GAN 超分不是简单地把 GAN 套在超分任务上,对抗训练的演进史,本质上就是一场“如何让生成器学会真实纹理而不是伪影”的战争。二、SRGAN:开山之作的得与失2017 年 SRGAN 出来的时候,整个超分圈都沸腾了——终于有人用 GAN 做超分了。它的核心思路很直接:用 VGG 特征空间的感知损失替代像素级 MSE,再配上一个判别器让生成器学会“看起来真实”。代码里最关键的感知损失实现,很多人会写成这样:# 别这样写!直接拿预训练VGG的relu5_4层vgg=models.vgg19