底层拆解:加噪与去噪的马尔可夫游戏
这技术的核心就是一个不断加噪、再去噪的过程。想象你有一张照片,你每隔一秒钟就往上撒一把随机噪点,直到它完全变成花屏——这就是正向扩散。数学上这是个马尔可夫链,每一步只依赖上一步的状态,用一堆条件高斯分布串起来。反向呢?你得学会从花屏里一点点猜出上一个稍微清晰点的版本,这就是逆向过程。训练的目标就是让一个神经网络(通常是U-Net)学会这个“猜”的动作——实际上它预测的是每一步添加的噪声,而不是直接预测清晰图。损失函数简化到令人发指:就是均方误差,让预测噪声和真实噪声尽量接近。这可比GAN的对抗训练稳定得多。
数据不会撒谎:扩散模型的统治力
光说优雅没用,得看硬指标。在CelebA 64×64上,StyleGAN2的FID能刷到2.7,但那是靠海量调参和运气,换个数据集立马给你脸色看。DDPM的FID是3.17,稍高那么一丢丢,但mode coverage完胜——GAN容易模式崩溃,只会生成那几种脸,扩散模型几乎把训练分布的每个角落都摸到了。这才是真正的多样性。
落地避坑指南:三个血泪教训

一开始我照搬论文的线性调度,结果在自定义数据集上生成的图像模糊得像隔了层磨砂玻璃。排查好久才发现是高噪声步数区域对低分辨率图破坏过猛。换成余弦调度(cosine schedule),瞬间清晰。记住:对于非自然图像(比如医学、遥感),最好先可视化不同噪声步的破坏效果,别盲目用默认配置。 坑二:采样加速后细节丢失
为了上线,把采样步数砍到20步,生成速度是快了,但纹理细节全糊了,边缘锯齿严重。解决方案不是简单增加步数,而是换用更聪明的采样器。我用LMSD(linear multi-step)在20步下就能达到DDIM 100步的质量,FID几乎没掉。再配合classifier-free guidance强度微调,性价比最高。 坑三:高分辨率下的内存爆炸
1024×1024的图在像素空间直接训扩散模型?24GB显存的RTX 3090连batch size=2都扛不住。Stable Diffusion的潜空间扩散(latent diffusion)是关键——先用VAE把图压缩到1/8,在低维潜变量上做扩散,显存需求从24GB直降到8GB。这个架构割裂感很强,推理时要先编码再解码,但换来的是消费级显卡也能跑。现在大多数规模化应用都走这条路,千万别在像素空间死磕。
现在扩散模型已经从图像卷到了视频、3D、分子设计,势头比当年的GAN还猛。但别被忽悠瘸了——计算成本还是高,实时视频生成依然吃力。下一个突破点可能在模型压缩和专用硬件上。这领域日新月异,说不定你读到这篇文章的时候,又有逆天的方法出来了。