1. 概述
能量基模型(EBM)和扩散模型(Diffusion Models)是当前生成式人工智能的两大主流范式。虽然两者在某些情况下可以统一(如Energy Matching框架),但在理论基础、训练策略、采样效率和应用场景上存在显著差异。
本文从多个维度进行深入对比分析。
2. 理论基础对比
2.1 概率建模方式
| 维度 | 能量基模型 (EBM) | 扩散模型 (Diffusion) |
|---|
| 概率表示 | p(x)=Zexp(−E(x)) | p(x)=∫p(x0:T)dx1:T−1 |
| 配分函数 | Z=∫e−E(x)dx (难计算) | 不存在 (归一化自动满足) |
| 潜在变量 | 可选 | 必需 (噪声通道 xt) |
| 分布类型 | 未归一化密度 | 归一化密度 |
2.2 数学形式化
能量基模型:
概率密度pθ(x)=配分函数Z(θ)exp(−Eθ(x))未归一化能量
其中 Eθ:Rd→R 是神经网络参数化的能量函数。
扩散模型:
前向过程q(x1:T∣x0)=t=1∏Tq(xt∣xt−1)
反向过程pθ(x0:T)=p(xT)t=1∏Tpθ(xt−1∣xt)
前向过程逐渐向数据添加噪声,反向过程学习去噪。
┌─────────────────────────────────────────────────────────────────────┐
│ EBM vs Diffusion 概率流对比 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ EBM: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 能量景观 E(x) │ │
│ │ │ │
│ │ 低能量 ←──────────────→ 高能量 │ │
│ │ ↑ ↓ │ │
│ │ 数据 噪声 │ │
│ │ 分布 分布 │ │
│ │ │ │
│ │ 采样: 从高斯出发,Langevin下降到低能量区域 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Diffusion: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ x₀ (数据) ──→ x₁ ──→ x₂ ──→ ... ──→ xₜ ──→ ... ──→ x_T (噪声) │
│ │ ↑ ↑ ↑ ↑ │ │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ q(·|x₀) q(·|x₁) q(·|x₂) q(·|x_{T-1}) │ │
│ │ │ │
│ │ 采样: 逆时间SDE,从噪声x_T开始,逐步去噪到x₀ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
3. 训练策略对比
3.1 训练目标
| 维度 | 能量基模型 | 扩散模型 |
|---|
| 训练目标 | 最小化能量差距 | 最小化去噪损失 |
| 损失函数 | NCE/Score Matching | MSE/ELBO |
| 梯度计算 | 需要配分函数梯度 | 无需 |
| 训练稳定性 | 中等 (MCMC训练) | 高 |
EBM训练目标:
LEBM=Ex∼pdata[−loge−E(x)+∑je−E(xj′)e−E(x)]
Diffusion训练目标:
LDM=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2]
3.2 训练流程对比
# EBM训练伪代码
def train_ebm(model, data_loader):
for x in data_loader:
# 正样本: 真实数据
pos_energy = model.energy(x)
# 负样本: 模型生成或噪声
neg_samples = sample_negative(model, n=len(x))
neg_energy = model.energy(neg_samples)
# NCE损失
loss = -torch.log(pos_energy / (pos_energy + neg_energy))
loss.backward()
# Diffusion训练伪代码
def train_diffusion(model, data_loader):
for x in data_loader:
# 采样时间步和噪声
t = torch.randint(0, T, (len(x),))
epsilon = torch.randn_like(x)
# 加噪
x_t = alpha_bar[t] * x + (1 - alpha_bar[t]) * epsilon
# 预测噪声
epsilon_pred = model(x_t, t)
# MSE损失
loss = F.mse_loss(epsilon_pred, epsilon)
loss.backward()
4. 采样技术对比
4.1 采样方法
| 维度 | 能量基模型 | 扩散模型 |
|---|
| 基础采样 | MCMC (Langevin, HMC) | 逆时间SDE/ODE |
| 采样步数 | 通常500-1000+ | 50-1000 |
| 采样质量 | 收敛依赖 | 确定性好 |
| 并行采样 | 困难 | 容易 (DDIM) |
| 早停能力 | 无 | 有 (蒸馏) |
4.2 采样效率
┌─────────────────────────────────────────────────────────────────────┐
│ 采样效率对比 (CIFAR-10) │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ NFE (Number of Function Evaluations) vs FID │
│ │
│ 60 ┤ │
│ │ ┌── │
│ 50 ┤ ┌──┐ ┌── │
│ │ ┌──┐ ┌──┐┌──┐┌── │
│ 40 ┤ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌── │
│ │ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ 30 ┤ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ │ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ 20 ┤ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ │ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ 10 ┤ ┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ │┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ 0 ┼───────────────────────────────────────────────────── │
│ 10 20 30 40 50 100 200 500 1000 │
│ NFE │
│ │
│ ─●─ Diffusion (DDIM) ─◆─ EBM (Langevin) │
│ │
└─────────────────────────────────────────────────────────────────────┘
4.3 加速采样技术
| 技术 | EBM | Diffusion |
|---|
| 蒸馏 | 困难 | 常见 (自编码器蒸馏) |
| 并行采样 | 受限 | 成熟 (一致性模型) |
| 缓存 | 不可行 | 可行 |
| 早停 | 不可行 | 可行 |
5. 条件化能力对比
5.1 条件生成
| 维度 | 能量基模型 | 扩散模型 |
|---|
| 无条件生成 | 自然 (从能量函数采样) | 自然 |
| 条件生成 | 自然 (修改能量函数) | 需要引导 |
| 引导方法 | 能量项相加 | Classifier Guidance |
| 多条件 | 简单相加 | 需多引导 |
EBM条件化:
# EBM条件生成: 直接在能量函数中添加条件项
def conditional_energy(x, condition):
return base_energy(x) + lambda * (h(condition) - x)**2
Diffusion条件化:
# Diffusion条件生成: 使用条件引导
def conditional_score(x_t, t, condition):
# Classifier-free guidance
score_uncond = model(x_t, t)
score_cond = model(x_t, t, condition)
return score_uncond + gamma * (score_cond - score_uncond)
5.2 引导效果对比
| 任务 | EBM优势 | Diffusion优势 |
|---|
| 类别条件 | 简单相加 | CFG效果好 |
| 文本条件 | 需额外设计 | CLIP引导成熟 |
| 图像编辑 | 局部修改自然 | 精确控制 |
| 逆问题 | 原生支持 | 需专门求解器 |
6. 表达能力和质量对比
6.1 理论表达能力
| 维度 | 能量基模型 | 扩散模型 |
|---|
| 表达任意分布 | 理论上可 (能量函数通用) | 可 (足够深网络) |
| 归一化保证 | 无 (需估计) | 有 |
| 模式覆盖 | 好 (能量函数自然多峰) | 好 |
| 模式崩溃 | 不存在 | 可能 (GAN风格) |
6.2 实证结果对比
| 数据集 | 方法 | FID ↓ | IS ↑ | Precision ↑ |
|---|
| CIFAR-10 | DDPM | 3.9 | 9.4 | 0.67 |
| NCSN | 3.7 | 9.6 | 0.67 |
| JEM | 15.2 | 7.8 | 0.52 |
| EqM | 2.8 | 10.5 | 0.69 |
| ImageNet 64 | ADM | 7.2 | 32.1 | 0.74 |
| EqM | 6.1 | 35.2 | 0.76 |
| ImageNet 256 | DiT-XL | 2.3 | 215.4 | 0.82 |
| EBM (最新) | ~4.5 | ~180 | ~0.75 |
7. 优劣势总结
7.1 能量基模型优势
| 优势 | 说明 |
|---|
| 自然条件化 | 能量函数可直接相加修改 |
| 逆问题求解 | 原生支持,无需专门方法 |
| 可解释性 | 能量值可直接解释样本”可能性” |
| 分布估计 | 显式密度估计 |
| 异常检测 | 自然适合 (低能量=正常) |
| 统一框架 | 与Flow Matching等统一 |
7.2 扩散模型优势
| 优势 | 说明 |
|---|
| 稳定训练 | 无需MCMC,训练稳定 |
| 采样质量 | 高质量、确定性采样 |
| 规模化好 | 容易扩展到大模型 |
| 多步一致性 | 逆过程设计保证质量 |
| 工业成熟 | DiT等架构广泛采用 |
| CLIP集成 | 与视觉-语言模型集成成熟 |
7.3 各自劣势
| 劣势 | EBM | Diffusion |
|---|
| 配分函数 | 难以计算 | 无 |
| 采样效率 | 慢 | 中等 |
| 训练复杂度 | 较高 | 低 |
| 规模化 | 困难 | 容易 |
| 工业支持 | 较少 | 成熟 |
8. 应用场景选择指南
┌─────────────────────────────────────────────────────────────────────┐
│ 模型选择决策树 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 开始 │
│ │ │
│ ▼ │
│ 需要生成能力? │
│ ╱ ╲ │
│ 是 否 → 选择其他方法 │
│ ╱ ╲ │
│ 优先考虑质量? │ │
│ ╱ ╲ │ │
│ 是 否 │ │
│ ╱ ╲ │ │
│ Diffusion 需要条件化灵活性? │ │
│ 或EqM ╱ ╲ │ │
│ 是 否 │ │
│ ╱ ╲ │ │
│ EBM 需要逆问题求解? │ │
│ 或 ╱ ╲ │ │
│ EnergyMatching 是 否 │ │
│ ╱ │
│ EBM │
│ │
└─────────────────────────────────────────────────────────────────────┘
8.1 推荐选择
| 场景 | 推荐 | 理由 |
|---|
| 高分辨率图像生成 | Diffusion (DiT) | 规模化好,质量高 |
| 文本到图像 | Diffusion + CLIP | 成熟生态 |
| 逆问题求解 | EBM | 原生支持 |
| 异常检测 | EBM | 能量值自然 |
| 可控编辑 | EBM/Energy Matching | 条件化灵活 |
| 安全关键应用 | EBM (JEM-ADV) | 鲁棒性+生成 |
| 多模态生成 | Energy Matching | 统一框架 |
9. 融合趋势:Energy Matching
9.1 统一框架
Energy Matching展示了两种方法的融合潜力:
┌─────────────────────────────────────────────────────────────────────┐
│ Energy Matching 统一框架 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Flow Matching ←────────────→ EBM │
│ │
│ │ │ │
│ │ Energy Matching │ │
│ │ 统一 │ │
│ │ │ │
│ ▼ ▼ │
│ 快速采样 灵活条件化 │
│ │ │ │
│ │ ┌─────────┴─────────┐ │
│ │ │ │ │
│ │ ▼ ▼ │
│ │ EqM (Energy Matching的高分辨率版本) │
│ │ │ │
│ │ ▼ │
│ │ 高质量 + 灵活条件化 + 逆问题支持 │
│ │ │ │
│ │ ▼ │
│ │ ┌─────────────────────────────────────┐ │
│ │ │ 超越单独使用任一方法 │ │
│ │ └─────────────────────────────────────┘ │
│ │ │
└─────────────────────────────────────────────────────────────────────┘
9.2 未来发展方向
| 方向 | 说明 |
|---|
| 更好的采样 | 结合双方优势的新采样器 |
| 大规模应用 | 扩展到LLM、蛋白质生成 |
| 统一评估 | 两种方法的公平基准 |
| 混合架构 | EBM+Diffusion融合模型 |
10. 相关专题
参考文献