面对配分函数 - 伪似然篇
配分函数在统计物理和概率论中扮演着至关重要的角色,它描述了系统在不同状态下的概率分布。然而,直接处理配分函数往往面临计算上的挑战。为了绕开这一难题,伪似然方法应运而生。伪似然是一种基于条件概率比率的统计推断方法,它能够在不直接计算配分函数的情况下,对参数进行有效的估计。这种方法特别适用于那些配分函数难以直接求解或计算成本高昂的模型,如某些复杂的无向概率模型。
序言
配分函数在统计物理和概率论中扮演着至关重要的角色,它描述了系统在不同状态下的概率分布。然而,直接处理配分函数往往面临计算上的挑战。为了绕开这一难题,伪似然方法应运而生。伪似然是一种基于条件概率比率的统计推断方法,它能够在不直接计算配分函数的情况下,对参数进行有效的估计。这种方法特别适用于那些配分函数难以直接求解或计算成本高昂的模型,如某些复杂的无向概率模型。
伪似然
-
伪似然方法的核心思想是:利用条件概率的比率形式,通过训练不需要计算配分函数的模型来绕开配分函数的直接处理。在无向概率模型中,由于配分函数同时出现在比率的分子和分母中,因此可以相互抵消,从而简化了计算过程。这使得伪似然方法在处理具有复杂依赖关系的数据时,能够展现出其独特的优势。
-
蒙特卡罗近似配分函数及其梯度需要直接处理配分函数。有些其他方法通过训练不需要计算配分函数的模型来绕开这个问题。这些方法大多数都基于以下观察:无向概率模型中很容易计算概率的比率。这是因为配分函数同时出现在比率的分子和分母中,互相抵消:
p ( x ) p ( y ) = 1 Z p ~ ( x ) 1 Z p ~ ( y ) = p ~ ( x ) p ~ ( y ) \displaystyle\frac{p(\textbf{x})}{p(\textbf{y})}=\frac{\frac{1}{Z}\tilde{p}(\textbf{x})}{\frac{1}{Z}\tilde{p}(\textbf{y})}=\frac{\tilde{p}(\textbf{x})}{\tilde{p}(\textbf{y})} p(y)p(x)=Z1p~(y)Z1p~(x)=p~(y)p~(x) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1 -
伪似然正是基于条件概率可以采用这种基于比率的形式,因此可以在没有配分函数的情况下进行计算。假设我们将 x \textbf{x} x 分为 a \textbf{a} a, b \textbf{b} b 和 c \textbf{c} c,其中 a \textbf{a} a 包含我们想要的条件分布的变量, b \textbf{b} b 包含我们想要条件化的变量, c \textbf{c} c 包含除此之外的变量:
p ( a ∣ b ) = p ( a , b ) p ( b ) = p ( a , b ) ∑ a , c p ( a , b , c ) = p ~ ( a , b ) ∑ a , c p ~ ( a , b , c ) p(\textbf{a}\mid\textbf{b})=\displaystyle\frac{p(\textbf{a},\textbf{b})}{p(\textbf{b})}=\frac{p(\textbf{a},\textbf{b})}{\sum_{\textbf{a},\textbf{c}}p(\textbf{a},\textbf{b},\textbf{c})}=\frac{\tilde{p}(\textbf{a},\textbf{b})}{\sum_{\textbf{a},\textbf{c}}\tilde{p}(\textbf{a},\textbf{b},\textbf{c})} p(a∣b)=p(b)p(a,b)=∑a,cp(a,b,c)p(a,b)=∑a,cp~(a,b,c)p~(a,b) — 公式2 \quad\textbf{---\footnotesize{公式2}} —公式2 -
以上计算需要边缘化 a \textbf{a} a,假设 a \textbf{a} a 和 c \textbf{c} c 包含的变量并不多,那么这将是非常高效的操作。在极端情况下, a \textbf{a} a 可以是单个变量, c \textbf{c} c 可以为空,那么该计算仅需要估计与单个随机变量值一样多的 p ~ \tilde{p} p~。
-
不幸的是,为了计算对数似然,我们需要边缘化很多变量。
- 如果总共有 n n n 个变量,那么我们必须边缘化 n − 1 n − 1 n−1 个变量。
- 根据概率的链式法则,
log p ( x ) = log p ( x 1 ) + log p ( x 2 ∣ x 1 ) + ⋯ + log p ( x n ∣ x 1 : n − 1 ) \log p(\textbf{x})=\log p(x_1)+\log p(x_2\mid x_1)+\cdots+\log p(x_n\mid \textbf{x}_{1:n−1}) logp(x)=logp(x1)+logp(x2∣x1)+⋯+logp(xn∣x1:n−1) — 公式3 \quad\textbf{---\footnotesize{公式3}} —公式3
-
在这种情况下,我们已经使 a \textbf{a} a 尽可能小,但是 c \textbf{c} c 可以大到 x 2 : n \textbf{x}_{2:n} x2:n。
- 如果我们简单地将 c \textbf{c} c 移到 b \textbf{b} b 中以减少计算代价,那么会发生什么呢?
- 这便产生了伪似然 ( pseudolikelihood \text{pseudolikelihood} pseudolikelihood) ( Besag, 1975 \text{Besag, 1975} Besag, 1975) 目标函数,给定所有其他特征 x − i x_{−i} x−i,预测特征 x i x_i xi 的值:
∑ i = 1 n log p ( x i ∣ x − i ) \sum\limits_{i=1}^n \log p(x_i\mid \boldsymbol{x}_{-i}) i=1∑nlogp(xi∣x−i) — 公式4 \quad\textbf{---\footnotesize{公式4}} —公式4
-
如果每个随机变量有 k k k 个不同的值,那么计算 p ~ \tilde{p} p~ 需要 k × n k × n k×n 次估计,而计算配分函数需要 k n k^n kn 次估计。
-
这看起来似乎是一个没有道理的策略,但可以证明最大化伪似然的估计是渐近一致的 ( Mase, 1995 \text{Mase, 1995} Mase, 1995)。当然,在数据集不接近大采样极限的情况下,伪可能性可能表现出与最大似然估计不同的结果。
-
可以用广义伪似然估计 ( generalized pseudolikelihood estimator \text{generalized pseudolikelihood estimator} generalized pseudolikelihood estimator) 以计算复杂度的增加换取最大似然偏离的下降 ( Huang and Ogata, 2002 \text{Huang and Ogata, 2002} Huang and Ogata, 2002)。
- 广义伪似然估计使用 m m m个不同的集合 S ( i ) , i = 1 , ⋯ , m \mathbb{S}^{(i)},i=1,\cdots,m S(i),i=1,⋯,m 作为变量的指标出现在条件棒的左侧。
- 在 m = 1 m = 1 m=1和 S ( i ) , i = 1 , ⋯ , n \mathbb{S}^{(i)},i=1,\cdots,n S(i),i=1,⋯,n 的极端情况下广义伪似然估计会变为对数似然。
- 在 m = n m = n m=n 和 S ( i ) = { i } \mathbb{S}^{(i)}=\{i\} S(i)={i} 的极端情况下,广义伪似然会变为伪随机。
- 广义伪似然估计目标函数如下所示:
∑ i = 1 m log p ( x S ( i ) ∣ x − S ( i ) ) \sum\limits_{i=1}^m\log p(\textbf{x}_{\mathbb{S}^{(i)}}\mid \textbf{x}_{-\mathbb{S}^{(i)}}) i=1∑mlogp(xS(i)∣x−S(i)) — 公式5 \quad\textbf{---\footnotesize{公式5}} —公式5
-
基于伪似然的方法的性能在很大程度上取决于模型是如何使用的。
- 对于完全联合分布 p ( x ) p(\textbf{x}) p(x) 模型的任务(例如密度估计和采样), 伪似然通常效果不好。
- 对于在训练期间只需要使用条件分布的任务而言,它的效果比最大似然更好,例如填充少量的缺失值。
- 如果数据具有规则结构,使得 S \mathbb{S} S 索引集可以被设计为表现最重要的相关性质,同时略去相关性可忽略的变量,那么广义伪似然策略将会非常有效。
- 例如,在自然图像中,空间中相隔很远的像素也具有弱相关性,因此广义伪似然可以应用于每个 S \mathbb{S} S 集是小的空间定位窗口的情况。
-
伪似然估计的一个弱点是它不能与仅在 p ~ ( x ) \tilde{p}(\textbf{x}) p~(x) 上提供下界的其他近似一起使用。
- 这是因为 p ~ \tilde{p} p~ 出现在了分母中。
- 分母的下界仅提供了整个表达式的上界,然而我们并不关心最大化上界。
- 这使得难以将伪似然方法应用于诸如深度玻尔兹曼机的深度模型,因为变分方法是近似边缘化互相作用的多层隐藏变量的主要方法之一。
- 尽管如此,伪似然仍然可以用在深度学习中,它可以用于单层模型,或使用不基于下限的近似推断方法的深度模型。
-
伪似然比 SML \text{SML} SML在每个梯度步骤中的计算代价要大得多,这是由于其对所有条件进行显式计算。但是,如果每个样本只计算一个随机选择的条件,那么广义伪似然和类似标准仍然可以很好地运行,从而使计算代价降低到和 SML \text{SML} SML差不多的程度 ( Goodfellow et al., 2013d \text{Goodfellow et al., 2013d} Goodfellow et al., 2013d)。
-
虽然伪似然估计没有显式地最小化 log Z \log Z logZ,但是它可以被认为具有类似于负相的东西。每个条件分布的分母会使得学习算法降低,所有仅具有一个变量不同于训练样本的状态的概率。
-
了解伪似然的渐近效率理论分析,请参看 Marlin and de Freitas (2011) \text{Marlin and de Freitas (2011)} Marlin and de Freitas (2011)。
总结
伪似然作为配分函数处理中的一种有效方法,通过利用条件概率的比率形式,成功绕开了配分函数的直接计算难题。这种方法不仅降低了计算成本,还提高了统计推断的效率和准确性。在深度学习、图像处理等现代技术领域中,伪似然方法已经得到了广泛的应用,并展现出了其强大的潜力。未来,随着技术的不断发展,伪似然方法有望在更多领域发挥其独特的优势,为统计物理和概率论的研究提供更加准确和可靠的手段。
往期内容回顾

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)