受限玻尔兹曼机(RBM)的原理与训练过程
字数 2021 2025-10-29 11:32:03

受限玻尔兹曼机(RBM)的原理与训练过程

题目描述
受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)是一种基于能量模型的生成式神经网络,由可见层和隐藏层构成,层内无连接,层间全连接。核心问题包括:

  1. 能量函数:如何定义可见单元和隐藏单元的联合能量?
  2. 概率分布:如何通过能量函数推导可见层和隐藏层的条件概率?
  3. 训练目标:如何通过对比散度(Contrastive Divergence, CD)算法最大化训练数据的似然函数?

解题过程

1. RBM的基本结构

  • 可见层(Visible Layer):由 \(v = (v_1, v_2, ..., v_m)\) 表示,对应输入数据(如二值化像素)。
  • 隐藏层(Hidden Layer):由 \(h = (h_1, h_2, ..., h_n)\) 表示,用于提取特征。
  • 权重与偏置:可见层与隐藏层之间的权重矩阵 \(W \in \mathbb{R}^{m \times n}\),可见层偏置 \(b \in \mathbb{R}^m\),隐藏层偏置 \(c \in \mathbb{R}^n\)

2. 能量函数与概率分布

  • 能量函数定义

\[ E(v, h) = -b^T v - c^T h - v^T W h \]

能量越低,对应配置 \((v, h)\) 的概率越高。

  • 联合概率分布

\[ P(v, h) = \frac{1}{Z} e^{-E(v, h)}, \quad Z = \sum_{v, h} e^{-E(v, h)} \]

其中 \(Z\) 是归一化常数(配分函数)。

  • 条件概率(层内无连接,条件概率可分解):
    • 给定可见层时,隐藏单元条件独立:

\[ P(h_j=1 \mid v) = \sigma(c_j + \sum_i v_i W_{ij}) \]

  • 给定隐藏层时,可见单元条件独立:

\[ P(v_i=1 \mid h) = \sigma(b_i + \sum_j h_j W_{ij}) \]

其中 \(\sigma(x) = 1/(1+e^{-x})\) 是Sigmoid函数。

3. 训练目标与梯度推导

  • 目标函数:最大化训练数据的对数似然 \(\mathcal{L}(\theta) = \sum_{v \in \text{data}} \log P(v)\)
  • 梯度计算

\[ \frac{\partial \log P(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\) 的期望(计算困难)。

4. 对比散度(CD)算法

  • 核心思想:用吉布斯采样(Gibbs Sampling)近似模型期望,但仅运行 \(k\) 步(通常 \(k=1\))以减少计算量。
  • 步骤
    1. 正向传播:输入训练样本 \(v^{(0)}\),计算 \(P(h \mid v^{(0)})\) 并采样得到 \(h^{(0)}\)
    2. 反向重构:根据 \(h^{(0)}\) 计算 \(P(v \mid h^{(0)})\) 并采样得到 \(v^{(1)}\)
    3. 再次正向传播:根据 \(v^{(1)}\) 计算 \(P(h \mid v^{(1)})\) 得到 \(h^{(1)}\)
    4. 权重更新

\[ \Delta W_{ij} = \eta \left( v_i^{(0)} h_j^{(0)} - v_i^{(1)} h_j^{(1)} \right) \]

 偏置更新类似:  

\[ \Delta b_i = \eta (v_i^{(0)} - v_i^{(1)}), \quad \Delta c_j = \eta (h_j^{(0)} - h_j^{(1)}) \]

5. 算法特性与扩展

  • 高效性:CD-\(k\) 通过少量采样逼近梯度,避免直接计算配分函数 \(Z\)
  • 应用:RBM是深度信念网络(DBN)的基础组件,可用于特征学习、协同过滤等。
  • 变体:连续值数据可使用高斯伯努利RBM(可见层为高斯分布)。

总结:RBM通过能量模型定义概率分布,利用条件独立性简化计算,并通过CD算法高效训练,是生成模型的重要基础。

受限玻尔兹曼机(RBM)的原理与训练过程 题目描述 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)是一种基于能量模型的生成式神经网络,由可见层和隐藏层构成,层内无连接,层间全连接。核心问题包括: 能量函数 :如何定义可见单元和隐藏单元的联合能量? 概率分布 :如何通过能量函数推导可见层和隐藏层的条件概率? 训练目标 :如何通过对比散度(Contrastive Divergence, CD)算法最大化训练数据的似然函数? 解题过程 1. RBM的基本结构 可见层 (Visible Layer):由 \( v = (v_ 1, v_ 2, ..., v_ m) \) 表示,对应输入数据(如二值化像素)。 隐藏层 (Hidden Layer):由 \( h = (h_ 1, h_ 2, ..., h_ n) \) 表示,用于提取特征。 权重与偏置 :可见层与隐藏层之间的权重矩阵 \( W \in \mathbb{R}^{m \times n} \),可见层偏置 \( b \in \mathbb{R}^m \),隐藏层偏置 \( c \in \mathbb{R}^n \)。 2. 能量函数与概率分布 能量函数定义 : \[ E(v, h) = -b^T v - c^T h - v^T W h \] 能量越低,对应配置 \((v, h)\) 的概率越高。 联合概率分布 : \[ P(v, h) = \frac{1}{Z} e^{-E(v, h)}, \quad Z = \sum_ {v, h} e^{-E(v, h)} \] 其中 \( Z \) 是归一化常数(配分函数)。 条件概率 (层内无连接,条件概率可分解): 给定可见层时,隐藏单元条件独立: \[ P(h_ j=1 \mid v) = \sigma(c_ j + \sum_ i v_ i W_ {ij}) \] 给定隐藏层时,可见单元条件独立: \[ P(v_ i=1 \mid h) = \sigma(b_ i + \sum_ j h_ j W_ {ij}) \] 其中 \(\sigma(x) = 1/(1+e^{-x})\) 是Sigmoid函数。 3. 训练目标与梯度推导 目标函数 :最大化训练数据的对数似然 \( \mathcal{L}(\theta) = \sum_ {v \in \text{data}} \log P(v) \)。 梯度计算 : \[ \frac{\partial \log P(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\) 的期望(计算困难)。 4. 对比散度(CD)算法 核心思想 :用吉布斯采样(Gibbs Sampling)近似模型期望,但仅运行 \( k \) 步(通常 \( k=1 \))以减少计算量。 步骤 : 正向传播 :输入训练样本 \( v^{(0)} \),计算 \( P(h \mid v^{(0)}) \) 并采样得到 \( h^{(0)} \)。 反向重构 :根据 \( h^{(0)} \) 计算 \( P(v \mid h^{(0)}) \) 并采样得到 \( v^{(1)} \)。 再次正向传播 :根据 \( v^{(1)} \) 计算 \( P(h \mid v^{(1)}) \) 得到 \( h^{(1)} \)。 权重更新 : \[ \Delta W_ {ij} = \eta \left( v_ i^{(0)} h_ j^{(0)} - v_ i^{(1)} h_ j^{(1)} \right) \] 偏置更新类似: \[ \Delta b_ i = \eta (v_ i^{(0)} - v_ i^{(1)}), \quad \Delta c_ j = \eta (h_ j^{(0)} - h_ j^{(1)}) \] 5. 算法特性与扩展 高效性 :CD-\( k \) 通过少量采样逼近梯度,避免直接计算配分函数 \( Z \)。 应用 :RBM是深度信念网络(DBN)的基础组件,可用于特征学习、协同过滤等。 变体 :连续值数据可使用高斯伯努利RBM(可见层为高斯分布)。 总结 :RBM通过能量模型定义概率分布,利用条件独立性简化计算,并通过CD算法高效训练,是生成模型的重要基础。