*似推断
精确推断方法通常需要很大的计算开销,通常使用*似推断方法
*似推断方法大致可分为两大类:第一类是采样,通过使用随机化方法完成*似;第二类是使用确定性*似完成*似推断,典型代表为变分推断
MCMC采样
采样法正是基于这个思路。具体来说,假定我们的目标是计算函数 \(f(x)\) 在概率密度函数 \(p(x)\) 下的期望
\(\mathbb{E}_p[f] = \int f(x)p(x)dx\)
则可根据 \(p(x)\) 抽取一组样本 \(\{x_1, x_2, \ldots, x_N\}\),然后计算 \(f(x)\) 在这些样本上的均值
\(\hat{f} = \frac{1}{N} \sum_{i=1}^{N} f(x_i)\)
以此来*似目标期望 \(\mathbb{E}[f]\)。若样本 \(\{x_1, x_2, \ldots, x_N\}\) 独立,基于大数定律,这种通过大量采样的办法就能获得较高的*似精度。
于是问题的关键是如何进行采样。对概率图模型来说,就是如何高效地基于图模型所描述的概率分布来获取样本。
马尔可夫链蒙特卡罗(MCMC)算法解释概率图模型中的一种常用采样方法
为了得到*似精度,我们需要依照分布进行采样,但如果分布非常复杂,较为可接受的方法是先构造出服从 \(p\) 分布的独立同分布随机变量 \(\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_N\),再得到积分式的无偏估计
\(\tilde{p}(f) = \frac{1}{N} \sum_{i=1}^{N} f(\mathbf{x}_i)\)
然而,若概率密度函数 \(p(\mathbf{x})\) 很复杂,则构造服从 \(p\) 分布的独立同分布样本也很困难。
MCMC 方法的关键就在于通过构造“*稳分布为 \(p\) 的马尔可夫链”来产生样本:若马尔可夫链运行时间足够长(即收敛到*稳状态),则此时产出的样本 \(\mathbf{x}\) *似服从于分布 \(p\)。
假定*稳马尔可夫链 \(T\) 的状态转移概率(即从状态 \(\mathbf{x}\) 转移到状态 \(\mathbf{x}'\) 的概率)为 \(T(\mathbf{x}' \mid \mathbf{x})\),\(t\) 时刻状态的分布为 \(p(\mathbf{x}^t)\),则若在某个时刻马尔可夫链满足*稳条件
$ p(\mathbf{x}^t) T(\mathbf{x}^{t-1} \mid \mathbf{x}^t) = p(\mathbf{x}^{t-1}) T(\mathbf{x}^t \mid \mathbf{x}^{t-1})$
则 \(p(\mathbf{x})\) 是该马尔可夫链的*稳分布,且马尔可夫链在满足该条件时已收敛到*稳状态。
于是,MCMC方法先设法构造一条马尔可夫链,使其收敛至*稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链来产生符合后验分布的样本,并基于这些样本来进行估计
实际上*稳状态取决于马尔可夫链的转移状态,因此不同的转移概率会产生不同的MCMC算法
MH算法是MCMC算法的一种代表,其通过拒绝采样来逼**稳分布,算法每次根据上一轮采样结果$ x^{t-1}$ 来采样获得候选状态样本\(x^*\),但这个候选样本会以一定的概率被“拒绝”掉。假定从状态\(x^{t-1}\)到状态$ x^*$ 的转移概率为\(Q(x^* \mid x^{t-1})A(x^* \mid x^{t-1})\),其中\(Q(x^* \mid x^{t-1})\)是用户给定的先验概率,\(A(x^* \mid x^{t-1})\)是\(x^*\)被接受的概率。若\(x^*\) 最终收敛到*稳状态,则*稳状态时有
\(p(x^{t-1})Q(x^* \mid x^{t-1})A(x^* \mid x^{t-1}) = p(x^*)Q(x^{t-1} \mid x^*)A(x^{t-1} \mid x^*)\)
一定程度上有点类似于模拟退火,以一定的概率进行选择进行转移

重要采样
通过引入一个提议分布q(x),通过调整采样权重,减少估计方差(属于随机*似方法)

重要采样是MCMC采样的改进,可以优化采样效率,更为主要的是能处理一些难采样的方差;当q(x)=p(x)时,重要采样退化为普通蒙特卡罗
吉布斯采样
吉布斯采样一定程度上可以看作是MH算法的特例,它也使用马尔可夫链获取样本
其核心目的是:
从高维概率分布\(p(x_1,x_2,\ldots,x_n)\)中采样,尤其是在联合分布难以直接采样,但条件分布\(p(x_i \mid x_{-i})\)容易计算时
只要一些变量在给定相邻变量时是条件独立的,那么这些变量就可以被同时采样。例如简单的RBM一样, RBM 中所有的隐藏单元可以被同时采样,因为在给定所有可见单元的条件下它们相互条件独立。同样地,所有的可见单元也可以被同时采样,因为在给定所有隐藏单元的情况下它们相互条件独立。以这种方式同时更新许多变量的 Gibbs 采样通常被 称为块吉布斯采样
具体来说,假定 \(\mathbf{x} = \{x_1, x_2, \ldots, x_N\}\),目标分布为 \(p(\mathbf{x})\),在初始化 \(\mathbf{x}\) 的取值后,通过循环执行以下步骤来完成采样:
(1) 随机或以某个次序选取某变量 \(x_i\);
(2) 根据 \(\mathbf{x}\) 中除 \(x_i\) 外的变量的现有取值,计算条件概率 \(p(x_i \mid \mathbf{x}_{\bar{i}})\),其中 \(\mathbf{x}_{\bar{i}} = \{x_1, x_2, \ldots, x_{i-1}, x_{i+1}, \ldots, x_N\}\);
(3) 根据 \(p(x_i \mid \mathbf{x}_{\bar{i}})\) 对变量 \(x_i\) 采样,用采样值代替原值。
期望最大化(EM算法)
EM 并不是一个*似推断算法,而是一种能够学到*似后验的迭代算法,可用于含有隐变量的概率模型参数的极大似然估计或者极大后验估计
EM算法由交替迭代,直到收敛的两步运算组成:
-
E 步(求期望):令\(\theta^{(0)}\)表示在这一步开始时的参数值。对任何我们想要训练的(对所有的或者小批量数据均成立)索引为 i 的训练样本 \(v^{(i)}\),令\(q(h^{(i)} \mid v) = p(h^{(i)} \mid v^{(i)}; \theta^{(0)})\)
(该结论是通过变分推断得到的,固定\(\theta\)的情况下,该式能使得\(\mathcal{L}\)最大)通过这个定义,我们认为 \(q\) 在当前参数 \(\theta^{(0)}\) 下定义。如果我们改变 \(\theta\),那么 \(p(h \mid v; \theta)\) 将会相应地变化,但是 \(q(h \mid v)\) 还是不变并且等于 \(p(h \mid v; \theta^{(0)})\)。 -
M 步(求极大):使用选择的优化算法完全地或者部分地关于 \(\theta\) 最大化
这可以被看作通过坐标上升算法来最大化\(\mathcal{L}\)。在第一步中,我们更新分布 \(q\) 来最大化 \(\mathcal{L}\),而在另一步中,我们更新 \(\theta\) 来最大化\(\mathcal{L}\)。
基于潜变量模型的随机梯度上升可以被看作是一个 EM 算法的特例,其中 M 步包括了单次梯度操作。EM 算法的其他变种可以实现多次梯度操作。对一些模型族来说,M 步甚至可以直接推出解析解,不同于其他方法,在给定当前q的情况下直接求出最优解。
尽管 E 步采用的是精确推断,我们仍然可以将 EM 算法视作是某种程度上的*似推断。具体地说,M 步假设一个分布 \(q\)可以被所有的\(\theta\)值分享。当 M 步越来越远离 E 步中的\(\theta^{(0)}\)时,这将会导致\(\mathcal{L}\)和真实的\(\log p(v)\)之间出现差距。幸运的是,在进入下一个循环时,E 步把这种差距又降到了 0。
变分推断
变分推断通过已知简单分布来逼*需推断的复杂分布,并通过限制*似分布的类型,从而得到一种局部最优、但具有确定解的*似后验分布
一般的推断和学习任务主要是由观察到的变量 \(\mathbf{x}\) 来估计隐变量 \(\mathbf{z}\) 和分布参数 \(\Theta\),即求解 \(p(\mathbf{z} \mid \mathbf{x}, \Theta)\) 和 \(\Theta\)。
概率模型的参数估计通常以最大化对数似然函数为手段,可使用EM算法:在E步,根据 \(t\) 时刻的参数 \(\Theta^t\) 对 \(p(\mathbf{z} \mid \mathbf{x}, \Theta^t)\) 进行推断,并计算联合似然函数 \(p(\mathbf{x}, \mathbf{z} \mid \Theta)\);在M步,基于E步的结果进行最大化寻优,即对关于变量 \(\Theta\) 的函数 \(Q(\Theta; \Theta^t)\) 进行最大化从而求取
\(\Theta^{t+1} = \arg \max \limits_{\Theta} Q(\Theta; \Theta^t)= \arg \max \limits_{\Theta} \sum_{\mathbf{z}} p(\mathbf{z} \mid \mathbf{x}, \Theta^t) \ln p(\mathbf{x}, \mathbf{z} \mid \Theta)\)
但在上述过程中,如果\(\mathbf{z}\) 模型较为复杂,那么E步对 \(p(\mathbf{z} \mid \mathbf{x}, \Theta^t)\) 的推断难以进行,此时可借助变分推断。通常假设 \(\mathbf{z}\) 服从分布\(q(\mathbf{z}) = \prod_{i=1}^{M} q_i(\mathbf{z}_i)\)
也就是假设复杂的多变量\(\mathbf{z}\)可以拆解为一系列相互独立的多变量\(\mathbf{z_i}\),且可以令\(q_i\)分布有相对简单或者有很好的结构
基于分解的假设,通过恰当地分割独立变量子集 \(\mathbf{z}_j\) 并选择 \(q_i\) 服从的分布,\(\mathbb{E}_{i \neq j} [\ln p(\mathbf{x}, \mathbf{z})]\) 往往有闭式解,这使得计算所得的最优拆解的分布\(q_j^*\)能高效地对隐变量 \(\mathbf{z}\) 进行推断。事实上,对变量\(\mathbf{z}_j\) 分布 \(q_j^*\) 进行估计时融合了 \(\mathbf{z}_j\) 之外的其他 \(\mathbf{z}_{i \neq j}\) 的信息,这是通过联合似然函数 \(\ln p(\mathbf{x}, \mathbf{z})\) 在 \(\mathbf{z}_j\) 之外的隐变量分布上求期望得到的,因此亦称“*均场”方法

浙公网安备 33010602011771号