430 lines
15 KiB
Markdown
430 lines
15 KiB
Markdown
---
|
||
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_{<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))$。
|
||
|
||
**证明(概要)**:
|
||
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*. |