配分函数是概率分布的归一化因子,在最大似然估计中难以直接计算,需通过 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 算法流程:
- 对每个样本 $v$:
- 初始化 $v^0 = v$
- 进行 $k$ 次采样:
- $h^l \sim p(h|v^l)$
- $v^{l+1} \sim p(v|h^l)$
- 累加梯度
- 梯度除以 $N$
张芷铭的个人博客
Comments