15 KiB
title, draft, tags
| title | draft | tags | ||||
|---|---|---|---|---|---|---|
| 1-能量模型 | false |
|
能量模型(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 的,因为:
- 需要从
p_\theta(x)中精确采样,但Z(\theta)通常不可计算 - 即使知道 $Z(\theta)$,精确采样也需要 Markov Chain Monte Carlo (MCMC) 的极限分布
3.2 CD-k 算法
算法 3.1(CD-k 算法)
输入:数据样本 $x$,参数 $\theta$,步数 k
- 初始化:
\tilde{x}^{(0)} \leftarrow x - MCMC 步骤:对于 $t = 0, 1, \ldots, k-1$:
- 离散 EBM(如 RBM):使用 Gibbs 采样
- 连续高维 EBM:使用 Langevin 动力学采样(见第 6 节)
- 返回:
\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):
- 维护
C条独立的 MCMC 链\mathcal{C}_1, \ldots, \mathcal{C}_C - 每轮训练后,更新所有持久链的状态
- 负相样本从更新后的链中取样
优点:
- 避免每轮从数据点重新初始化链
- 链在轮次间"持久",更快收敛到平稳分布
- 适合在线学习设置
收敛条件: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.1(EBM 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.1(NCE 目标函数) 定义逻辑损失:
\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.2 当 N \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.1(Langevin 动力学) 对于连续变量 $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 \infty 时,Langevin 动力学的极限分布为吉布斯分布 $p_\theta(x) \propto \exp(-E_\theta(x))$。
证明(概要):
- Fokker-Planck 方程描述概率密度的演化
- 稳态条件 $\nabla_x \cdot J = 0$(
J为概率流) - 唯一解为
p_\theta(x) \propto \exp(-E_\theta(x))
与传统 MCMC 的比较:
| 方面 | Metropolis-Hastings | Langevin 动力学 |
|---|---|---|
| 接受率 | 需要计算接受率 | 隐含接受(步长足够小) |
| proposal | 对称 proposal | 使用梯度信息 |
| 效率 | 低维高效 | 高维更高效 |
6.3 步长选择与收敛性
定理 6.2(收敛条件) 为保证收敛,需要满足:
- 步长条件:$\epsilon < \epsilon_{\max}$,其中
\epsilon_{\max}与能量函数的 Lipschitz 常数相关 - 混合时间:$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) |
参考文献
- LeCun, Y., et al. (2006). A tutorial on energy-based learning. Predicting Structured Data.
- Hinton, G. E. (2002). Training products of experts by minimizing contrastive divergence. Neural Computation.
- Du, Y., & Mordatch, I. (2019). Implicit generation and modeling with energy based models. NeurIPS.
- Gutmann, M., & Hyvärinen, A. (2010). Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. AISTATS.
- Welling, M., & Teh, Y. W. (2011). Bayesian learning via stochastic gradient Langevin dynamics. ICML.
- Song, Y., et al. (2021). Score-based generative modeling through stochastic differential equations. ICLR.