一、Energy-Based Model(EBM)基本思想#
1. 生成模型目标#
生成模型希望建模数据分布:
P(x)
它需要满足:
P(x)≥0,∫P(x)dx=1
2. 能量模型定义#
EBM 不是直接定义概率,而是定义一个能量函数:
Eθ(x)
再由能量诱导出概率分布:
pθ(x)=Z(θ)1e−Eθ(x)
其中:
Z(θ)=∫e−Eθ(x)dx
这个量叫做 配分函数(partition function)。
模型学习的目标:让真实数据对应较低能量,让非真实数据对应较高能量。
二、Hopfield Network#
Hopfield 网络是一个确定性的能量模型。
1. 网络结构#
- 全连接
- 对称权重:wij=wji
- 神经元状态:yi∈{+1,−1}
局部场定义为:
zi=j∑wijyj+bi
更新规则:
- 如果 yizi<0,就翻转 yi
2. 能量函数#
Hopfield 网络的能量函数为:
E(y)=−i<j∑wijyiyj−i∑biyi
性质:
- 每次 neuron flip 都会使能量下降
- 能量有下界
- 系统最终收敛到某个局部最小值
3. Hopfield 学习规则(Hebbian Learning)#
为了让某个 pattern y(p) 成为稳定点,可以使用 Hebbian 规则:
wij=Np1p=1∑Npyi(p)yj(p),i=j
矩阵形式常简写为:
W≈Edata[yyT]
这里本质上是在把数据中的相关结构刻进权重矩阵。
三、从 Hopfield 到概率模型(Boltzmann Machine)#
Hopfield 是确定性系统,但我们希望模型能够按概率生成样本,于是引入热力学里的 Boltzmann 分布。
1. Boltzmann 分布#
令系统状态为 y,定义:
P(y)=Z1e−E(y)
其中:
Z=y∑e−E(y)
能量越低的状态,概率越大。
2. Gibbs Sampling#
对于二值单元,若采用 0/1 编码,常见的条件分布形式为:
P(yi=1∣y−i)=σ(j∑wijyj+bi)
其中 y−i 表示除第 i 个变量外的所有变量。
于是可以反复执行:
最终得到近似来自 P(y) 的样本,这就是 Gibbs sampling。
四、带隐藏变量的 Boltzmann Machine#
在更一般的 Boltzmann Machine 中,状态由 visible 和 hidden 两部分组成:
y=(v,h)
联合分布为:
P(v,h)=Z1e−E(v,h)
其中:
Z=v,h∑e−E(v,h)
我们真正关心的是 visible 的边缘分布:
P(v)=h∑P(v,h)
给定训练集 P,最大似然目标为:
L(W)=∣P∣1v∈P∑logP(v)
其梯度可以写成:
∇WL=∣P∣1v∈P∑∇WlogP(v)=∣P∣1v∈P∑(∇Wlogh∑e−E(v,h)−∇WlogZ)=Ev∼data[Eh∼P(h∣v)[−∇WE(v,h)]]−E(v,h)∼Pmodel[−∇WE(v,h)]
如果能量函数对参数 W 的导数满足:
−∇WE(v,h)=yyT,y=(v,h),
那么就得到熟悉的形式:
∇WL=Ev∼data,h∼P(h∣v)[yyT]−E(v,h)∼Pmodel[yyT]
解释:
| 项 | 含义 |
|---|
| Ev∼data,h∼P(h∣v)[yyT] | positive phase:把 visible 固定为真实数据,再对 hidden 后验取期望 |
| E(v,h)∼Pmodel[yyT] | negative phase:对模型自身生成的联合分布取期望 |
五、Restricted Boltzmann Machine(RBM)#
RBM 对 Boltzmann Machine 的结构做了限制:
- visible 和 hidden 之间有连接
- visible 内部没有连接
- hidden 内部没有连接
这种限制带来两个直接好处:
- 条件分布可以分解
- Gibbs sampling 更高效
一个常见的 RBM 能量函数写成:
E(v,h)=−bTv−cTh−vTWh
其中 v 是 visible,h 是 hidden,b,c 是偏置项。
由于图结构是二部图,条件分布可以分解为:
P(hj=1∣v)=σ(W:,jTv+cj)
P(vi=1∣h)=σ(Wi,:h+bi)
因此,RBM 的权重梯度为:
∇WL=Ev∼data,h∼P(h∣v)[vhT]−E(v,h)∼Pmodel[vhT]
对应的偏置梯度为:
∇bL=Ev∼data[v]−Ev∼Pmodel[v]
∇cL=Ev∼data,h∼P(h∣v)[h]−E(v,h)∼Pmodel[h]
Contrastive Divergence(CD-k)#
实际训练时,负相通常用 Contrastive Divergence 近似。
步骤:
- 输入真实数据 v0
- 采样 h0∼P(h∣v0)
- 采样 v1∼P(v∣h0)
- 继续交替采样,直到得到 vk,hk
- 用下面的近似更新:
ΔW∝v0h0T−vkhkT
通常 k=1∼3 就已经能工作得不错,这就是常说的 CD-1 / CD-k。
六、General Energy-Based Model 训练公式#
更一般地,设模型为:
pθ(x)=Z(θ)1e−Eθ(x)
其中:
Z(θ)=∫e−Eθ(x)dx
单个样本的对数似然为:
logpθ(x)=−Eθ(x)−logZ(θ)
对整个数据集取平均,得到目标函数:
L(θ)=Ex∼data[logpθ(x)]
其梯度为:
∇θL=−Ex∼data[∇θEθ(x)]+Ex∼pθ[∇θEθ(x)]
等价地,也可以写成:
∇θL=Ex∼data[−∇θEθ(x)]−Ex∼pθ[−∇θEθ(x)]
这就是所有 EBM 的统一训练公式。
七、Sampling 方法(用于负相)#
EBM 的主要难点在于配分函数:
Z(θ)=∫e−Eθ(x)dx
通常不可直接计算,因此负相
Ex∼pθ[f(x)]
往往要靠采样近似。
1. 从 MCMC 开始#
我们的目标不是直接算出 pθ(x) 的归一化常数,而是构造一个马尔可夫链
x(0)→x(1)→x(2)→⋯
使得这个链的平稳分布正好是目标分布:
π(x)=pθ(x)∝e−Eθ(x)
当链跑得足够久以后,后面的样本就近似来自 π(x),于是可以用样本平均估计负相:
Ex∼pθ[f(x)]≈T1t=1∑Tf(x(t))
这就是 MCMC(Markov Chain Monte Carlo) 的基本思想。
2. Metropolis-Hastings(MH)#
MH 的做法是:给定当前状态 x,先从 proposal distribution 里提出一个候选样本:
x′∼q(x′∣x)
然后以某个接受概率决定是否跳到 x′:
α(x,x′)=min(1,π(x)q(x′∣x)π(x′)q(x∣x′))
由于 EBM 里
π(x)∝e−Eθ(x),
所以配分函数 Z(θ) 会自动约掉,接受率变成:
α(x,x′)=min(1,e−Eθ(x)q(x′∣x)e−Eθ(x′)q(x∣x′))
如果 proposal 是对称的,即
q(x′∣x)=q(x∣x′),
那么就进一步简化为:
α(x,x′)=min(1,e−Eθ(x′)+Eθ(x))
直觉上:
- 如果新状态能量更低,通常更容易被接受
- 如果新状态能量更高,也不是绝对拒绝,而是以一定概率接受
这样链既倾向低能量区域,又不会太容易卡在局部区域里。
3. Gibbs Sampling#
Gibbs sampling 适用于每个变量的条件分布都容易采样的情形。
设
x=(x1,x2,…,xd),
那么 Gibbs 的一步就是依次从条件分布采样:
xi(t+1)∼pθ(xi∣x1(t+1),…,xi−1(t+1),xi+1(t),…,xd(t))
也就是说,每次固定其他变量,只重采样一个坐标。
对 Boltzmann Machine / RBM 来说,这特别合适,因为条件分布往往正好能写出来。比如 RBM 中:
P(hj=1∣v)=σ(W:,jTv+cj)
P(vi=1∣h)=σ(Wi,:h+bi)
于是可以交替执行:
v→h→v→h→⋯
从而得到近似来自模型分布的样本。
从更抽象的角度看,Gibbs sampling 可以看成 MH 的一个特例:proposal 正好取目标条件分布,因此接受率恒为 1。
4. 常见方法对比#
| 方法 | 适用场景 |
|---|
| Gibbs sampling | 条件分布容易写出的离散模型,如 RBM |
| Metropolis-Hastings | 一般 EBM,条件分布不一定容易直接采样 |
| Langevin dynamics | 连续深度 EBM,利用能量梯度采样 |
| HMC | 高维连续变量 |
| Importance sampling | 估计期望或积分 |
相关采样技巧还包括:
- Inverse CDF
- Box-Muller(Gaussian)
- Importance Sampling
- Annealing(退火)
八、EBM 的应用#
1. Pattern Memory(Hopfield)#
2. Generative Model(Boltzmann / RBM)#
3. Deep Boltzmann Machine#
- 早期 deep generative model
- Deep Belief Network 等相关结构
4. Modern EBM#
现代 EBM 常见形式是直接用神经网络表示能量函数:
Eθ(x)=fθ(x)
其中 fθ 常常由 CNN、Transformer 等网络实现。
应用包括:
- 图像生成(score-based model / diffusion 可从能量视角理解)
- 对比学习(InfoNCE 可以看成条件 EBM)
- 强化学习(某些视角下 energy 与 value / Q function 相关)
- NLP(logit 与 energy 存在对应关系)
Softmax 分类器也可以写成条件 EBM:
P(y∣x)=∑y′e−E(x,y′)e−E(x,y)
因此可以把分类模型理解为:
分类模型 = 条件 EBM