Files
2026-05-16 17:16:51 +08:00

15 KiB
Raw Permalink Blame History

title, draft, tags
title draft tags
1-能量模型 false
EBM
能量模型
生成模型
深度学习

能量模型Energy-Based Model, EBM

1. EBM 的基本定义

1.1 能量函数的定义

定义 1.1(能量函数)x \in \mathcal{X} \subseteq \mathbb{R}^D 为观测数据,一个参数化的能量函数定义为:


E_\theta: \mathcal{X} \to \mathbb{R}, \quad x \mapsto E_\theta(x)

其中 \theta \in \Theta 为可学习参数。能量函数 E_\theta(x) 的值可以是任意实数,其物理意义来源于统计物理学——低能量对应高概率状态。

1.2 吉布斯分布

定义 1.2(吉布斯分布) 基于能量函数EBM 定义概率分布为:


p_\theta(x) = \frac{\exp(-E_\theta(x))}{Z(\theta)}

其中:

  • \exp(-E_\theta(x)) 称为玻尔兹曼因子Boltzmann factor
  • Z(\theta) 是配分函数Partition Function定义为

Z(\theta) = \int \exp\left(-E_\theta(x)\right) dx

定理 1.1(归一化性) 由上述定义,p_\theta(x) 满足归一化条件:


\int p_\theta(x) \, dx = \frac{1}{Z(\theta)} \int \exp(-E_\theta(x)) \, dx = 1

1.3 EBM 表示任意概率分布的能力

定理 1.2(通用逼近性) 给定任意目标概率分布 $p^(x)$,如果能量函数 E_\theta(x) 足够灵活(如神经网络万能逼近能力),则存在一组参数 \theta^* 使得 p_\theta(x) 任意逼近 $p^(x)$。

证明思路:考虑能量函数 $E_\theta(x) = -\log p^*(x) + C$,其中 C 为归一化常数。则:


p_\theta(x) = \frac{\exp(-E_\theta(x))}{Z(\theta)} = \frac{p^*(x)}{\int p^*(x) dx} = p^*(x)

在实际应用中,我们使用参数化函数 E_\theta(x) 通过学习来拟合目标分布。常见的能量函数形式包括:

  • 神经网络:E_\theta(x) = f_\theta(x)
  • RBM 的能量函数:E_\theta(x, h) = -b^\top x - c^\top h - h^\top W x

2. 对数似然梯度推导

2.1 配分函数梯度的计算

引理 2.1 配分函数 Z(\theta) 对参数 \theta 的梯度为:


\nabla_\theta Z(\theta) = \int \nabla_\theta \exp(-E_\theta(x)) \, dx = \int (-\nabla_\theta E_\theta(x)) \exp(-E_\theta(x)) \, dx

引理 2.2 对数配分函数 \log Z(\theta) 的梯度为:


\nabla_\theta \log Z(\theta) = \frac{\nabla_\theta Z(\theta)}{Z(\theta)} = \int (-\nabla_\theta E_\theta(x)) \frac{\exp(-E_\theta(x))}{Z(\theta)} \, dx = \mathbb{E}_{p_\theta(x)}[-\nabla_\theta E_\theta(x)]

2.2 对数似然梯度

给定观测数据 $\mathcal{D} = {x^{(i)}}_{i=1}^N$,对数似然为:


\mathcal{L}(\theta) = \frac{1}{N} \sum_{i=1}^N \log p_\theta(x^{(i)})

定理 2.1(对数似然梯度) 对数似然 L(\theta) = \log p_\theta(x) 对参数 \theta 的梯度为:


\nabla_\theta \log p_\theta(x) = -\nabla_\theta E_\theta(x) - \mathbb{E}_{p_\theta(x)}[\nabla_\theta E_\theta(x)]

证明


\begin{aligned}
\nabla_\theta \log p_\theta(x) &= \nabla_\theta \left[ -E_\theta(x) - \log Z(\theta) \right] \\
&= -\nabla_\theta E_\theta(x) - \nabla_\theta \log Z(\theta) \\
&= -\nabla_\theta E_\theta(x) - \mathbb{E}_{p_\theta(x)}[-\nabla_\theta E_\theta(x)] \\
&= -\nabla_\theta E_\theta(x) + \mathbb{E}_{p_\theta(x)}[\nabla_\theta E_\theta(x)]
\end{aligned}

注意:一些文献中使用正号约定不同,此处按 p_\theta(x) \propto \exp(-E_\theta(x)) 定义。

2.3 正相与负相的物理意义

将梯度公式写为期望形式:


\nabla_\theta \log p_\theta(x) = \underbrace{-\nabla_\theta E_\theta(x)}_{\text{正相positive phase}} + \underbrace{\mathbb{E}_{p_\theta(x)}[\nabla_\theta E_\theta(x)]}_{\text{负相negative phase}}

正相Positive Phase:对于观测数据 $x$,正相项 -\nabla_\theta E_\theta(x) 增大观测数据的概率。具体而言:

  • 如果 \nabla_\theta E_\theta(x) 为负,则正相项为正,驱使能量降低
  • 正相降低"真实数据"的能量,提高其概率

负相Negative Phase:从模型分布 p_\theta(x) 中采样的期望 $\mathbb{E}{p\theta(x)}[\nabla_\theta E_\theta(x)]$

  • 代表模型当前认为"可能"的数据
  • 负相增大这些样本的能量,压制模型分布中过高概率的区域
  • 防止模型过度集中于某一模式mode collapse

物理图景:能量模型的学习过程可以类比为热力学系统:

  • 正相:将真实数据拉向低能量状态(吸引)
  • 负相:将模型样本推离低能量状态(排斥)
  • 平衡:达到稳态时,负相恰好平衡正相

3. 对比散度Contrastive Divergence, CD

3.1 精确梯度的不可计算性

问题 3.1 精确计算负相期望 \mathbb{E}_{p_\theta(x)}[\nabla_\theta E_\theta(x)] 是 intractable 的,因为:

  1. 需要从 p_\theta(x) 中精确采样,但 Z(\theta) 通常不可计算
  2. 即使知道 $Z(\theta)$,精确采样也需要 Markov Chain Monte Carlo (MCMC) 的极限分布

3.2 CD-k 算法

算法 3.1CD-k 算法)

输入:数据样本 $x$,参数 $\theta$,步数 k

  1. 初始化\tilde{x}^{(0)} \leftarrow x
  2. MCMC 步骤:对于 $t = 0, 1, \ldots, k-1$
    • 离散 EBM如 RBM:使用 Gibbs 采样
    • 连续高维 EBM:使用 Langevin 动力学采样(见第 6 节)
  3. 返回\tilde{x}^{(k)} 作为负相样本的近似

CD 梯度估计


\nabla_\theta \log p_\theta(x) \approx -\nabla_\theta E_\theta(x) + \nabla_\theta E_\theta(\tilde{x}^{(k)})

3.3 CD 梯度偏差分析

定理 3.1CD 梯度偏差) CD-k 提供的梯度估计是有偏的,偏差来源为:


\mathbb{E}_{p_\theta(x, \tilde{x}^{(k)})}[\nabla_\theta E_\theta(x)] - \mathbb{E}_{p_\theta(x)}[\nabla_\theta E_\theta(x)] = \text{bias}_k

其中联合分布 p_\theta(x, \tilde{x}^{(k)}) 来自从 x 开始的 k 步 MCMC 链。

性质 3.1

  • k \to \infty 时,$\tilde{x}^{(k)} \sim p_\theta(x)$,偏差趋于零
  • k=1CD-1 是最常用的选择,计算效率与估计精度的折中
  • CD 梯度估计的方差通常小于精确 MCMC 估计

3.4 持续对比散度Persistent CD, PCD

算法 3.2PCD-k 算法)

PCD 与 CD 的关键区别在于维护"持久链"persistent chains

  1. 维护 C 条独立的 MCMC 链 \mathcal{C}_1, \ldots, \mathcal{C}_C
  2. 每轮训练后,更新所有持久链的状态
  3. 负相样本从更新后的链中取样

优点

  • 避免每轮从数据点重新初始化链
  • 链在轮次间"持久",更快收敛到平稳分布
  • 适合在线学习设置

收敛条件PCD 需要步长足够小,以确保链能够跟踪缓慢变化的能量 landscape。


4. 伪似然Pseudolikelihood

4.1 伪似然的定义

定义 4.1(伪似然) 伪似然是一种基于条件概率的替代目标函数:


\mathcal{L}_{\text{PL}}(\theta) = \sum_{i=1}^N \log p_\theta(x_i \mid x_{-i})

其中 x_i 表示第 i 个变量,x_{-i} 表示除 x_i 外的所有变量。

对于二元变量或离散的 EBM


\log p_\theta(x_i \mid x_{-i}) = \log \frac{\exp(-E_\theta(x))}{\sum_{x_i'} \exp(-E_\theta(x_i', x_{-i}))}

4.2 与对数似然的关系

定理 4.1 伪似然是对数似然的一阶近似,在某些条件下渐近等价。

证明思路:利用分解,


\log p_\theta(x) = \sum_{i=1}^D \log p_\theta(x_i \mid x_{<i})

而伪似然使用"逆向"条件:


\mathcal{L}_{\text{PL}}(\theta) = \sum_{i=1}^D \log p_\theta(x_i \mid x_{-i})

对于满足马尔可夫性质的模型(如 RBM当条件分布 p_\theta(x_i \mid x_{-i})p_\theta(x_i \mid x_{<i}) 足够接近时,两者等价。

定理 4.2(伪似然梯度) 伪似然的梯度可以写为:


\nabla_\theta \log p_\theta(x_i \mid x_{-i}) = -\nabla_\theta E_\theta(x) + \mathbb{E}_{p_\theta(x_i' \mid x_{-i})}[\nabla_\theta E_\theta(x_i', x_{-i})]

这与对数似然梯度形式相似,但期望仅在 x_i 上计算,降低了计算复杂度。

4.3 在图像建模中的应用

应用 4.1EBM for Image Generation 近年来EBM 在图像生成中重新受到关注:

  • 模型架构:使用 CNN 或 Transformer 作为能量函数 E_\theta(x)
  • 训练目标:伪似然或 CD
  • 采样Langevin 动力学(见第 6 节)
  • 优点:无需显式归一化常数
  • 代表工作EBMs for image generation (Du & Mordatch, 2019)

5. 噪声对比估计Noise Contrastive Estimation, NCE

5.1 NCE 的核心思想

核心思想:将估计非归一化分布 p_\theta(x) \propto \exp(-E_\theta(x)) 的问题转化为二分类问题:

  • 正类:来自真实数据分布 p_{\text{data}}(x)
  • 负类:来自噪声分布 $q(x)$(如均匀分布、高斯噪声)

5.2 目标函数推导

定义 5.1(二分类问题) 考虑一个二分类器 $D_\theta(x)$,目标是区分数据 $y=1$(真)和噪声 $y=0$(假)。

引理 5.1 后验概率满足:


P(y=1 \mid x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + \alpha q(x)}

其中 \alpha 是噪声与数据的比例。

定理 5.1NCE 目标函数) 定义逻辑损失:


\mathcal{L}_{\text{NCE}}(\theta) = \mathbb{E}_{x \sim p_{\text{data}}}[\log D_\theta(x)] + \mathbb{E}_{x \sim q}[\log(1 - D_\theta(x))]

其中判别器具有 logit 形式。设非归一化能量密度 $u_\theta(x) = \exp(-E_\theta(x))$,则:


D_\theta(x) = \sigma\left( \log\frac{u_\theta(x)}{\alpha\, q(x)} \right)

核心优势NCE 无需计算配分函数 $Z(\theta)$,直接通过噪声对比估计归一化常数。

在最优条件下,可以证明:


D_\theta^*(x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + \alpha q(x)}

5.3 与 EBM 的联系

定理 5.2N \to \infty 且噪声比例 \alpha 固定时NCE 估计器满足:


p_\theta(x) \propto \exp(-E_\theta(x))

证明:在最优判别器条件下,


\frac{D_\theta^*(x)}{1 - D_\theta^*(x)} = \frac{p_{\text{data}}(x)}{\alpha q(x)} = \frac{u_\theta(x)}{\alpha q(x)}

其中 $u_\theta(x) = \exp(-E_\theta(x))$。从而 $p_\theta(x) \propto u_\theta(x) = \exp(-E_\theta(x))$。


6. Langevin 动力学采样

6.1 Langevin 动力学的定义

定义 6.1Langevin 动力学) 对于连续变量 $x \in \mathbb{R}^D$Langevin 动力学定义为离散时间迭代:


x_{t+1} = x_t - \epsilon \nabla_x E_\theta(x_t) + \sqrt{2\epsilon} \, z_t

其中:

  • \epsilon > 0 为步长learning rate / step size
  • z_t \sim \mathcal{N}(0, I) 为标准高斯噪声
  • \sqrt{2\epsilon} \, z_t 是扩散项diffusion term

6.2 与 MCMC 的关系

定理 6.1(平稳分布) 当步长 \epsilon \to 0 且迭代次数 T \to \inftyLangevin 动力学的极限分布为吉布斯分布 $p_\theta(x) \propto \exp(-E_\theta(x))$。

证明(概要)

  1. Fokker-Planck 方程描述概率密度的演化
  2. 稳态条件 $\nabla_x \cdot J = 0$J 为概率流)
  3. 唯一解为 p_\theta(x) \propto \exp(-E_\theta(x))

与传统 MCMC 的比较

方面 Metropolis-Hastings Langevin 动力学
接受率 需要计算接受率 隐含接受(步长足够小)
proposal 对称 proposal 使用梯度信息
效率 低维高效 高维更高效

6.3 步长选择与收敛性

定理 6.2(收敛条件) 为保证收敛,需要满足:

  1. 步长条件$\epsilon < \epsilon_{\max}$,其中 \epsilon_{\max} 与能量函数的 Lipschitz 常数相关
  2. 混合时间$T_{\text{mix}} = O(D \log(1/\delta))$,其中 D 为维度,\delta 为目标精度

实践建议

  • 步长 \epsilon 通常选择 10^{-4}10^{-2} 之间
  • 需要 burn-in 阶段(前 T_0 步不采样)
  • 可与 MALAMetropolis-Adjusted Langevin Algorithm结合以保证精确接受率

7. 与扩散模型的联系

7.1 扩散过程概述

定义 7.1(前向扩散过程) 给定数据 $x_0 \sim p_{\text{data}}$,定义前向扩散过程 ${x_t}_{t=0}^T$


q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t I)

其中 \beta_t \in (0, 1) 为噪声调度。

定义 7.2(反向过程) 反向过程 \{p_\theta(x_{t-1} \mid x_t)\}_{t=1}^T 是学习的:


p_\theta(x_{t-1} \mid x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 I)

7.2 能量函数在 score matching 中的作用

定义 7.3Score Function 数据分布的 score 定义为:


\nabla_x \log p(x)

定理 7.1Score Matching 与 EBM Score matching 目标函数为 Fisher 散度,即对齐数据真实得分与模型得分:


\mathcal{L}_{\text{SM}}(\theta) = \mathbb{E}_{p_{\text{data}}(x)} \left[ \Big\| \nabla_x \log p_{\text{data}}(x) - \nabla_x \log p_\theta(x) \Big\|_2^2 \right]

:原文 \|\nabla_x \log p_\theta(x)\|^2 仅是模型得分平方项,是 Fisher 散度的简化形式(忽略常数项),非原始 Score Matching 损失定义。

与 EBM 的联系:

  • 能量模型的梯度对应 score function\nabla_x \log p_\theta(x) = -\nabla_x E_\theta(x)
  • 学习能量函数等价于学习 score function

引理 7.1 能量函数 E_\theta(x) 与 score function 的关系:


\nabla_x E_\theta(x) = -\nabla_x \log p_\theta(x)

7.3 能量视角下的去噪扩散

定理 7.2(能量视角) 扩散模型的反向过程可以理解为能量引导的采样:


p_\theta(x_{t-1} \mid x_t) \propto \exp\left( -\frac{\|x_{t-1} - \mu_\theta(x_t, t)\|^2}{2\sigma_t^2} \right)

其中 \mu_\theta(x_t, t) 可以视为由能量函数导出的条件均值。

物理图景

  • 前向过程:逐渐向数据添加噪声(熵增)
  • 反向过程:学习能量 landscape逐渐去除噪声
  • EBM 提供统一的理论框架连接两部分

附录:常用公式汇总

公式 表达式
吉布斯分布 p_\theta(x) = \exp(-E_\theta(x)) / Z(\theta)
配分函数 Z(\theta) = \int \exp(-E_\theta(x)) dx
对数似然梯度 \nabla_\theta \log p_\theta(x) = -\nabla_\theta E_\theta(x) - \mathbb{E}_{p_\theta}[\nabla_\theta E_\theta(x)]
CD-k 梯度 \approx -\nabla_\theta E_\theta(x) + \nabla_\theta E_\theta(\tilde{x}^{(k)})
伪似然 \mathcal{L}_{\text{PL}} = \sum_i \log p_\theta(x_i \mid x_{-i})
Langevin 动力学 x_{t+1} = x_t - \epsilon \nabla_x E_\theta(x_t) + \sqrt{2\epsilon} z_t
Score function \nabla_x \log p(x) = -\nabla_x E(x)

参考文献

  1. LeCun, Y., et al. (2006). A tutorial on energy-based learning. Predicting Structured Data.
  2. Hinton, G. E. (2002). Training products of experts by minimizing contrastive divergence. Neural Computation.
  3. Du, Y., & Mordatch, I. (2019). Implicit generation and modeling with energy based models. NeurIPS.
  4. Gutmann, M., & Hyvärinen, A. (2010). Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. AISTATS.
  5. Welling, M., & Teh, Y. W. (2011). Bayesian learning via stochastic gradient Langevin dynamics. ICML.
  6. Song, Y., et al. (2021). Score-based generative modeling through stochastic differential equations. ICLR.