预备知识
受限玻尔兹曼机(Restricted Boltzmann Machine)是一种基于能量的概率图模型,由可见层(Visible Layer)和隐层(Hidden Layer)组成,层内无连接,层间全连接。
其核心是通过无监督学习学习数据的潜在特征分布。
1. 神经网络基础
1.1 神经元模型
人工神经元是神经网络的基本计算单元。给定输入向量 x∈Rn,其输出为:
a=ϕ(w⊤x+b) 其中 w∈Rn 为权重向量,b∈R 为偏置项,ϕ(⋅) 为激活函数。在概率生成模型中,常用 Sigmoid 激活函数:
σ(z)=1+e−z1
1.2 基于能量的模型
与前馈网络不同,能量基模型(Energy-Based Models, EBMs)通过一个标量能量函数 E(x;θ) 定义数据的概率分布:
P(x;θ)=Z(θ)exp(−E(x;θ)) 其中配分函数(partition function):
Z(θ)=x∑exp(−E(x;θ)) 确保概率归一化。低能量状态对应高概率。
2. 玻尔兹曼机结构
可见层(v):输入数据的显式表示(如像素值)。
隐藏层(h):提取的潜在特征。
权重矩阵(w):连接可见层与隐层的权重。
偏置:可见层偏置(b)和隐层偏置(c)。
玻尔兹曼机(BM)的拓扑结构是全连接的,而受限玻尔兹曼机通过去掉了可见层和隐藏层内部的链接,
让Gibbs采样的过程更加高效。
由于 RBM 的受限结构,隐变量在给定可见变量时相互独立,其条件概率为:
P(hj=1∣v)=σ(i∑wijvi+cj) 同理,
P(vi=1∣h)=σ(j∑wijhj+bi)
3. 能量函数与概率分布
3.1 能量函数
RBM 的能量函数定义为:
E(v,h)=−vTWh−bTv−cTh 其中,v,h 分别是可见层和隐层的状态,W 是连接的权重,b,c 是一次项系数。
联合概率分布通过玻尔兹曼分布给出:
P(v,h)=Ze−E(v,h) 其中 Z 为配分函数(归一化因子)。可见层的边缘分布为:
P(v)=h∑P(v,h) 通过最大化似然函数学习参数 W,b,c 。目标函数为负对数似然:
L=−v∑logP(v) 采用对比散度(CD)算法近似梯度,更新规则为:
ΔWij=ϵ(⟨vihj⟩data−⟨vihj⟩recon) 其中 ϵ 为学习率,⟨⋅⟩data 和 ⟨⋅⟩recon 分别为数据分布和重构分布的期望。
3.2 梯度的推导
能量模型的概率可以写成:
p(x;θ)=Z1p~(x;θ) 其梯度为:
∇θlogp(x;θ)=∇θlogp~(x;θ)−∇θlogZ 配分函数的梯度难以直接计算
∇θlogZ=Z∇θZ=Z∇θ∑xp~(x)=x∑Z∇θp~(x) 对于保证所有的 x 都有 p(x)>0 的模型,我们可以用 exp(logp~(x)) 代替 p~(x)。
Z∑x∇θexp(logp~(x))=Z∑xexp(logp~(x))∇θlogp~(x)=Z∑xp~(x)∇θlogp~(x)=x∑p(x)∇θlogp~(x)=Ex∼p(x)∇θlogp~(x) 综上,
∇θlogp(x;θ)=∇θlogp^(x;θ)−Ex∼p(x;θ)∇θlogp^(x;θ) 第二项中 p(x;θ) 实际上是模型预测的 x 的分布,而训练中的第一项是服从实际的数据的分布的。即上式可以写成
∇θlogp(x;θ)=Ex∼pdata∇θlogp^(x;θ)−Ex∼pmodel∇θlogp^(x;θ) 这里我们考虑玻尔兹曼机的能量函数,容易求得
∇Wlogp^(x;W)=vhT 只要分别得到 pdata, pmodel 分布下的 v 和 h 的值即可计算梯度。即为:
ΔWij=ϵ(⟨vihj⟩data−⟨vihj⟩recon)