--- title: 1-能量模型 draft: false tags: - 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.1(CD-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.1(CD 梯度偏差)** 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=1$ 时,CD-1 是最常用的选择,计算效率与估计精度的折中 - CD 梯度估计的方差通常小于精确 MCMC 估计 ### 3.4 持续对比散度(Persistent CD, PCD) **算法 3.2(PCD-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_{ 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 \infty$ 时,Langevin 动力学的极限分布为吉布斯分布 $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$ 步不采样) - 可与 MALA(Metropolis-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.3(Score Function)** 数据分布的 score 定义为: $$ \nabla_x \log p(x) $$ **定理 7.1(Score 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*.