☰
扩散模型发展史:从物理热力学到Stable Diffusion的生成式AI进化
2026/9/30 0:04:45 网站建设 项目流程

扩散模型(Diffusion Models)这几年几乎成了生成式AI的顶流。翻论文的时候你会看到成百上千篇工作都在往“加噪-去噪”这个框架上靠;用Stable Diffusion、Midjourney、DALL·E这些产品的时候,背后真正干活的其实也是一套扩散模型。但很多人对它的印象是“突然火起来的”,好像2022年一夜之间文生图就刷屏了。实际上这套思想在物理、统计和图像领域里已经潜伏了十几年,是一步一步从冷门玩具长成工业标准的。

这篇文章不做空泛梳理,只做一件事:把扩散模型的发展史从头到尾捋一遍——它从哪里来,核心直觉是什么,几篇里程碑论文分别在什么时候做了什么,为什么最终成为今天的生成模型主流。我尽量把时间线、原理和实际观察揉在一起,让刚接触的人也能顺着脉络走下来,也让已经使用扩散模型的人能更清楚自己手里工具的能力边界。

1. 扩散模型从哪里来:物理直觉与早期生成模型

1.1 热力学扩散:把墨水滴进清水

扩散模型这个名字本身就来自物理。想象一滴墨水滴进一杯清水,墨水的粒子会逐渐散开,最后整杯水都变成均匀的淡色。这个过程是不可逆的,如果没有外力介入,你不可能看到墨水粒子自动聚拢回一滴。物理上把它叫作熵增,即系统总是从有序走向无序。

扩散模型的“前向过程”就是在模仿这件事:给一张清晰图片逐步加高斯噪声,加得越来越多,十几步、几百步之后,图片完全变成一片纯噪声。这个过程是逐帧可拆解的,每一步只做微小扰动,计算上非常自然。

更关键的是,这个加噪过程并不是随随便便定的。它被设计成一条“马尔可夫链”,意思是每一步只依赖上一步的状态,就像翻扑克牌时只知道自己上一张牌,不需要记住之前所有牌。这种链式结构让数学推导变得干净,也让训练时能用非常简单的损失函数去拟合每一步的逆过程。

1.2 早期生成模型为什么总是磕磕绊绊

在扩散模型站稳脚跟之前,生成模型的主力是GAN(生成对抗网络)和VAE(变分自编码器),再往前还有玻尔兹曼机和自回归模型。

GAN的思路是让生成器跟判别器打对抗赛:生成器负责造假图,判别器负责分辨真假,两人互相卷,最后生成器能造出真假难辨的图。这个框架效果好,但训练极其不稳定,很容易出现模式坍缩——生成器只学了几种图,翻来覆去就那几样。

VAE的思路则完全不同,它先把真实图片压缩到一个低维潜空间,再从这个潜空间采样去重建图片。VAE训练稳定,但生成的图片往往模糊,因为它的损失函数倾向于平均化处理各种可能,不敢把细节画明显。

扩散模型绕开了这两个难点。它不直接让模型一步生成图片,而是把生成拆成上千个极其微小的去噪步骤,每一小步只负责“把图弄干净一点点”。这样每一步的预测都足够简单,从纯噪声到清晰图片的路径也被拉得很长,模型有充足的空间学出一条稳定路径。

所以回头看,扩散模型不是凭空出现的魔法,而是前人在GAN和VAE上踩够了坑之后,换了一条更笨但更稳的路。

2. 从“毁掉信息”到“重建信息”:扩散模型的核心思路

2.1 前向过程:一个可控的“毁图”流程

扩散模型的前向过程是一只天平上的砝码,必须设计得恰到好处。假设你有一张干净图片x0,在第t步,模型得到的是x_t。前向过程通常写成:

x_t = sqrt(alpha_t) * x0 + sqrt(1 - alpha_t) * eps

其中eps是从标准正态分布里采样的噪声,alpha_t是一个随时间动态变化的系数,从接近1慢慢降到接近0。也就是说,早期步骤保留的原始信息多,后期步骤几乎全是噪声。

这个公式的妙处在于,它不需要一个模型去参与前向过程,只需要按公式直接采样就能生成任意一个时刻的“加噪版本”,训练时也不用一步步慢慢跑,可以直接从函数跳到噪声较重的中间状态,极大提升训练效率。

2.2 反向过程:学一个“时间倒流”网络

真正的目标是反向过程。给定一个纯噪声x_T,我们想让它一步步变回清晰图片x0。如果已知每一步加噪的完整分布,反向过程理论上可以精确推出来,但这个分布复杂到没人能算得动,所以只能用神经网络去逼近。

核心的训练目标是多少?用噪声预测损失:

L = E[ || eps - eps_theta(x_t, t) ||^2 ]

这里的含义很直观:模型输入一个被污染过的图像x_t和时间步t,去预测当初被加进去的噪声eps。预测准了,反向过程就可以不断把图像往“减去噪声”的方向推。

这听起来像是让模型搞一个去噪任务。没错,扩散模型最底层的训练实际上就是一个“按时间条件变化的去噪器”,只不过这个去噪器被反复迭代使用上千次,才从纯噪声中长出图像结构。很多人第一次看代码时觉得简单,但真正理解这上千步迭代的累积效应后,才明白它为什么能产生细节极其丰富的输出。

2.3 从DDPM到Score SDE:两条线索的汇合

2020年前后,扩散模型其实有两条独立的发展线索。

一条是DDPM脉络。它直接基于物理直觉,把扩散过程写成马尔可夫链,使用变分下界推导训练损失。Denoising Diffusion Probabilistic Models(DDPM)这篇文章就是这条线的集大成者。

另一条是Score匹配脉络。斯坦福的Yang Song等人从“估算分数”(即对数概率密度的梯度)出发,提出用带噪声的条件分数网络去逼近数据分布,并用朗之万动力学采样生成图像。这条线听起来跟热力学扩散没什么关系,但最后推导出来的损失函数和DDPM殊途同归。

两边的研究人员后来共同推进了统一视角:把所有扩散过程看作连续时间的随机微分方程,也就是著名的Score SDE框架。在这个统一框架下,DDPM和NCSN不过是同一个连续过程的不同离散化方式。这种视角让数学更优雅,也让后续加速采样、编辑潜变量、控制生成方向成为可能。

3. 发展史上的三个关键节点

3.1 2015年:第一次把“非平衡热力学”变成模型

很多教程会把DDPM当成扩散模型的起点,但严格来说,第一颗种子来自2015年的一篇冷门论文:Sohl-Dickstein等人发表的Deep Unsupervised Learning using Nonequilibrium Thermodynamics。这篇论文把物理中的非平衡热力学过程直接搬进神经网络训练,已经明确提出了“用可逆链逐步毁掉数据分布,再学习反向链恢复数据”的整体思想。

不过当年的实验效果很弱,只在小规模数据上有初步结果。原因也很直接:2015年的网络结构、计算资源和训练技巧都撑不起上千步的迭代生成,加上当时GAN风头正劲,几乎没有人关注这条路线。这个阶段就像一颗被埋在杂志堆里的种子,理论框架已经成型,但现实条件不允许它发芽。

3.2 2020年:DDPM让图像质量追上GAN

直到2020年,Ho等人发表了DDPM论文,扩散模型才终于进入主流视野。DDPM最大的贡献,不是说提出了一个从没想过的新思想,而是把工程细节打磨到位,用实验证明扩散模型在图像生成质量上能和当时的GAN掰手腕。

这篇文章用了U-Net作为噪声预测网络,去掉了很多花哨的归一化层,引入时间步嵌入和简单的位置编码,并系统对比了不同噪声调度对生成质量的影响。最终在CIFAR-10、CelebA等数据集上的FID分数追上甚至超过了当时的GAN,同时训练过程不需要对抗技巧,不用调判别器和生成器的平衡,稳定性好很多。

我印象非常深刻的一点是,DDPM论文附录里那张噪声调度曲线图。就是这些看起来平平无奇的曲线,决定了模型生成质量的上下限。很多复现者一开始不重视,结果要么生成糊成一片,要么样本千篇一律,被坑得不轻。

3.3 2021年:加速采样、引导生成与控制内容

DDPM证明了“能生成”,但它的生成速度太慢了。生成一张图需要上千步前向传播,每一步都要跑一次完整U-Net,同等硬件条件下比GAN慢几十到上百倍。这成了扩散模型落地的大阻碍。

2021年的几篇工作解决了这个问题的前半段。DDIM(Denoising Diffusion Implicit Models)提出了一种几乎确定性的采样过程,用更少的步数生成质量不错的图片,还带着很强的可复现性,相当于让“用噪声倒退到原图”变成一条可以恢复的唯一路径。

同一年,Classifier Guidance与Classifier-Free Guidance相继被提出。前者用一个分类器去引导生成过程,让模型偏向生成某个类别;后者的想法是同时训练条件和无条件去噪,推理时把两边差值放大,做到完全不需要外部分类器也能精准控制生成内容。Classifier-Free Guidance后来几乎成了所有工业级扩散模型控制生成方向的标准做法,Stable Diffusion的prompt强度调节,底层用的就是它的变体。

4. 潜在扩散模型:扩散模型真正走进大众的关键一跳

4.1 为什么非要在潜空间做扩散

DDPM虽然效果好,但实践上有个致命问题:计算成本太高。一张512×512的图片,像素点有几十万个,U-Net要在这么高的分辨率上反复前向传播上千步,普通显卡跑一次要几分钟甚至几十分钟。这不适合做成产品。

2022年,Rombach等人提出了高分辨率图像合成的新思路,也就是潜在扩散模型(Latent Diffusion Models)。它的原名很长,论文题目是High-Resolution Image Synthesis with Latent Diffusion Models,也是后来Stable Diffusion的基础结构。

核心想法并不复杂:别在原始像素空间做扩散,而是先训练一个自编码器,把512×512的图片压缩到64×64甚至更小的潜空间编码,再在这个小得多的潜空间里做扩散过程和去噪过程。由于潜空间维度比原始像素空间小太多,每一步计算压力大幅下降,训练成本和推理成本都直线降低。

4.2 Stable Diffusion的架构拆解

Stable Diffusion是潜在扩散模型最知名的实现,基础架构可以拆成三个部分。

第一部分是变分自编码器,负责把图像编码到潜空间,也负责把潜空间解码回图像。它相当于一个压缩与解压缩工具,图片的信息在这里被压缩成紧凑的潜在表示,而扩散模型只在这个压缩后的空间里工作。

第二部分是扩散模型本体,它接收带噪声的潜变量和时间步,输出预测噪声。只不过这个模型不是单纯生成任意图像,而是通过交叉注意力层接收外部条件的输入,比如一句文本描述。

第三部分是文本编码器,负责把自然语言转换成模型能理解的向量表示。OpenAI的CLIP文本编码器就被直接用在了Stable Diffusion里,让人可以通过一句话控制画面内容。这个“交叉注意力”机制让扩散模型从单纯“学分布”的工具,变成了可以响应语言指令的创作引擎。

4.3 从研究工具变成创作工具

潜在扩散模型真正引爆公共舆论,靠的不只是算法改进,还在于它可以跑在消费级显卡上。普通人不需要去租集群,只要用自己的显卡加载一套开源权重,就能输入一句话生成图像。这在当时是革命性的体验。

之后的图像编辑、修复、超分、视频生成等衍生工作,几乎全都在潜在扩散模型这个底座上搭建。它让“扩散模型”这个概念从研究论文里走出来,进入设计师、插画师和普通用户的日常工具链。从这里开始,扩散模型不再是一个需要理解吉布斯分布和随机微分方程才能使用的黑盒,而是一个可以对话的创作伙伴。

5. 扩散模型还在往哪里走:应用、限制与我的观察

5.1 应用边界在快速拓展

严格来说,扩散模型早已不局限于生成图像了。音频领域有AudioLDM、Stable Audio在学音频谱的分布,视频领域有各种Video Diffusion框架在做逐帧联合生成,生物领域有人尝试用扩散模型生成分子构象和蛋白质结构。只要是“从噪声中逐步恢复结构”的任务,框架基本都能迁移。

我这里特别想提的一个方向是逆问题求解,也就是给定一段不完整或受损的数据,用扩散模型去恢复原始数据。比如盲去模糊、去噪、修复老照片、从低分辨率重建高分辨率,这些任务本质上都可以理解成“从被噪声污染的状态反向采样”。扩散模型的前向加噪过程在这里反而变成了一种天然的正则化工具,让恢复结果既符合数据分布又忠实于已知条件。

5.2 绕不开的问题与挑战

扩散模型虽然强,远没有到成熟收工的地步。

采样速度仍是最大痛点。虽然DDIM已经把步数从一千步降到五十步甚至更少,但和GAN的一步生成比起来仍然不够快。工业部署时通常还要配合知识蒸馏、感知压缩、随机采样器优化等手段,才能把单张生成压到一秒以内。为了速度做蒸馏,又会牺牲一定的多样性,算是在夹缝里做权衡。

另一个问题是评估指标跟不上。FID(Fréchet Inception Distance)是目前最常用的指标,但它只能衡量生成分布与真实分布的接近程度,很多情况下会误导人。比如一张图把所有细节都模糊掉,FID可能并不差,但观众一眼就觉得不舒服。后面有人提出用CLIP Score衡量语义一致性,用LPIPS衡量感知相似度,但至今没有一个单指标能完全评价“生成得好不好”。

还有一个很实际的坑是训练过程的超参数敏感度。噪声调度函数、时间步采样分布、损失函数权重这些细节,任何一项设置不当,轻则生成的图偏暗偏灰,重则训练完全不收敛。这些经验在论文里往往只是一个小图展示,只有自己跑一遍才知道背后坑有多深。

5.3 这些年下来,我的几点使用体会

如果你只是想用现成模型生成图像,我会建议先把“采样步数”和“引导强度”两个参数调明白。采样步数是质量和速度的旋钮,引导强度是多样性与一致性的天平。调高引导强度确实会让图更贴近prompt,但细节容易过饱和,画面也会变僵硬;调太低,则经常生成出和prompt完全无关的构图。

如果你打算自己训练一个扩散模型,我建议从小数据实验开始。先跑一个单GPU小时能完成的玩具任务,把前向加噪、U-Net结构、采样器这几个模块连起来,确认每个模块的行为符合预期,再去考虑大数据集和复杂条件控制。几乎所有灾难性的失败,都是因为某个细小环节没调对,等到大规模训练时才彻底暴露。

另外,一定多看老代码,少看Remote封装。DDPM的PyTorch实现只有几百行核心代码,自己动手写一遍,比看十篇教程都有用。很多“老知识”在今天的库里面看不到了,但这些细节恰恰决定了你复现一个模型时是顺利还是卡壳。

我个人这一路上的最大体会是:扩散模型之所以能成功,核心不在于它有多么巧妙的“大新闻”,而在于它把一个看似不可能的任务——从纯噪声恢复到自然图像——拆成了上千个极其简单的小任务,让神经网络在每个小任务上都游刃有余。这种“分而治之”的思路,放之任何生成任务都不过时。以后当你遇到一个看起来无从下手的复杂任务时,不妨也想想:能不能像扩散模型一样,把任务拆到每一步都快到无可出错?这比死记一百篇论文都更值得带走。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询