玻尔兹曼机(Boltzmann Machine)的能量模型与训练过程
题目描述
玻尔兹曼机(BM)是一种基于能量的随机神经网络,由可见单元和隐藏单元构成,所有单元均为二值变量(0或1)。其核心思想是通过能量函数定义联合概率分布,并利用梯度下降优化模型参数(权重和偏置),使模型能够学习输入数据的概率分布。本题要求理解BM的能量模型、概率计算方式,以及基于对比散度(Contrastive Divergence, CD)的近似训练过程。
1. 能量函数与概率分布
BM的能量函数定义为:
\[E(\mathbf{v}, \mathbf{h}) = -\sum_{i} b_i v_i - \sum_{j} c_j h_j - \sum_{i,j} v_i w_{ij} h_j - \sum_{i
其中:
- \(\mathbf{v}\) 为可见单元向量,\(\mathbf{h}\) 为隐藏单元向量;
- \(b_i, c_j\) 是可见单元和隐藏单元的偏置;
- \(w_{ij}\) 是可见单元 \(v_i\) 与隐藏单元 \(h_j\) 之间的权重;
- 最后两项为可见单元之间、隐藏单元之间的权重(全连接结构)。
联合概率分布由能量函数通过玻尔兹曼分布给出:
\[P(\mathbf{v}, \mathbf{h}) = \frac{1}{Z} e^{-E(\mathbf{v}, \mathbf{h})}, \quad Z = \sum_{\mathbf{v}, \mathbf{h}} e^{-E(\mathbf{v}, \mathbf{h})} \]
其中 \(Z\) 是配分函数(归一化常数)。
2. 条件概率与采样
由于BM的全连接结构,直接计算配分函数 \(Z\) 不可行(计算指数级复杂)。但条件概率可简化计算,因为给定其他单元时,单个单元的条件概率仅依赖于其邻居:
- 隐藏单元 \(h_j\) 在给定可见单元时的条件概率:
\[P(h_j=1 \mid \mathbf{v}) = \sigma\left(c_j + \sum_{i} w_{ij} v_i\right) \]
- 可见单元 \(v_i\) 在给定隐藏单元时的条件概率:
\[P(v_i=1 \mid \mathbf{h}) = \sigma\left(b_i + \sum_{j} w_{ij} h_j\right) \]
其中 \(\sigma(x) = 1/(1+e^{-x})\) 是sigmoid函数。这些条件概率可用于吉布斯采样(Gibbs Sampling)。
3. 训练目标与梯度计算
训练目标是最大化训练数据的对数似然函数:
\[\mathcal{L}(\theta) = \sum_{\mathbf{v} \in \text{data}} \log P(\mathbf{v}) = \sum_{\mathbf{v} \in \text{data}} \log \sum_{\mathbf{h}} P(\mathbf{v}, \mathbf{h}) \]
对权重 \(w_{ij}\) 求梯度可得:
\[\frac{\partial \log P(\mathbf{v})}{\partial w_{ij}} = \langle v_i h_j \rangle_{\text{data}} - \langle v_i h_j \rangle_{\text{model}} \]
其中:
- \(\langle \cdot \rangle_{\text{data}}\) 是数据分布下 \(v_i h_j\) 的期望(正相);
- \(\langle \cdot \rangle_{\text{model}}\) 是模型分布下 \(v_i h_j\) 的期望(负相)。
正相计算简单:对每个训练样本 \(\mathbf{v}\),用条件概率 \(P(\mathbf{h} \mid \mathbf{v})\) 计算 \(\langle v_i h_j \rangle\);
负相需从模型 \(P(\mathbf{v}, \mathbf{h})\) 采样,但直接采样因 \(Z\) 难以计算而不可行。
4. 对比散度(CD-k)近似训练
CD-k 通过以下步骤近似负相采样:
- 输入训练样本 \(\mathbf{v}^{(0)}\),利用 \(P(\mathbf{h} \mid \mathbf{v}^{(0)})\) 采样得到 \(\mathbf{h}^{(0)}\);
- 执行 \(k\) 步吉布斯采样(通常 \(k=1\)):
- 由 \(\mathbf{h}^{(t)}\) 通过 \(P(\mathbf{v} \mid \mathbf{h}^{(t)})\) 采样得 \(\mathbf{v}^{(t+1)}\);
- 由 \(\mathbf{v}^{(t+1)}\) 通过 \(P(\mathbf{h} \mid \mathbf{v}^{(t+1)})\) 采样得 \(\mathbf{h}^{(t+1)}\);
- 用 \(\mathbf{v}^{(k)}\) 和 \(\mathbf{h}^{(k)}\) 计算负相期望 \(\langle v_i h_j \rangle_{\text{model}} \approx v_i^{(k)} h_j^{(k)}\)。
权重更新规则为:
\[\Delta w_{ij} = \eta \left( \langle v_i h_j \rangle_{\text{data}} - v_i^{(k)} h_j^{(k)} \right) \]
偏置更新类似(例如 \(\Delta b_i = \eta (\langle v_i \rangle_{\text{data}} - v_i^{(k)})\))。
5. 关键点总结
- BM通过能量函数建模概率分布,训练需处理配分函数难题;
- 条件概率的局部性使吉布斯采样可行;
- CD-k 用有限步采样近似负相,避免直接计算 \(Z\),是受限玻尔兹曼机(RBM)的典型训练方法(BM的特例,无层内连接)。
通过以上步骤,BM能够学习数据分布并用于生成或特征提取。