张芷铭的个人博客

配分函数是概率分布的归一化因子,在最大似然估计中难以直接计算,需通过 MCMC 等采样方法近似求解。

配分函数定义

对于概率分布:

$$p(x|\theta)=\frac{1}{Z(\theta)}\hat{p}(x|\theta), \quad Z(\theta)=\int\hat{p}(x|\theta)dx$$

其中 $Z(\theta)$ 为配分函数(归一化因子)。

包含配分函数的 MLE

最大似然估计:

$$\hat{\theta}=\mathop{argmax}{\theta}\sum{i=1}^N\log \hat{p}(x|\theta)-N\log Z(\theta)$$

对配分函数求导:

$$\nabla_\theta\log Z(\theta)=\mathbb{E}{p(x|\theta)}[\nabla\theta\log\hat{p}(x|\theta)]$$

由于此期望与未知概率分布相关,无法直接精确求解,需要近似采样。

正相与负相

定义真实分布 $p_{data}$,梯度可表示为:

$$\nabla_\theta l(\theta)=\mathbb{E}{p{data}}[\nabla_\theta\log\hat{p}(x|\theta)]-\mathbb{E}{p(x|\theta)}[\nabla\theta\log\hat{p}(x|\theta)]$$

  • 正相:第一项,从真实分布采样
  • 负相:第二项,从模型分布采样(需 MCMC)

MCMC 采样梯度上升

采样得到幻想粒子 $\hat{x}{1-m} \sim p{model}(x|\theta^t)$:

$$\theta^{t+1}=\theta^t+\eta\left(\sum_{i=1}^m\nabla_\theta \log \hat{p}(x_i|\theta^t)-\sum_{i=1}^m\nabla_\theta\log \hat{p}(\hat{x_i}|\theta^t)\right)$$

幻想粒子区域概率高于实际分布时,最大化参数会降低这些部分的概率。

对比散度 (CD Learning)

问题:采样到达平稳分布的步数未知。

CD-k 方法:初始化采样 $\hat{x}_i = x_i$,缩短混合时间。

定义:

  • $p^0 = p_{data}$(初始分布)
  • $p^\infty = p_{model}$(平稳分布)

CD-k 目标函数:

$$KL(p^0||p^\infty) - KL(p^k||p^\infty)$$

即使 $k=1$ 也通常可行。

RBM 学习

RBM 参数:

  • 可见层 $v$、隐藏层 $h$
  • 权重 $w$、偏置 $\alpha$、$\beta$

能量函数:

$$E(v,h)=-(h^Twv+\alpha^Tv+\beta^Th)$$

梯度推导结果:

$$\frac{\partial}{\partial w_{ij}}\log p(v)=p(h_i=1|v)v_j-\sum_{v}p(v)p(h_i=1|v)v_j$$

第一项直接计算,第二项通过 CD-k 采样近似。

CD-k 算法流程:

  1. 对每个样本 $v$:
    • 初始化 $v^0 = v$
    • 进行 $k$ 次采样:
      • $h^l \sim p(h|v^l)$
      • $v^{l+1} \sim p(v|h^l)$
    • 累加梯度
  2. 梯度除以 $N$

Comments