16.3 从图模型中采样
图模型同样简化了从模型中采样的过程。
有向图模型的一个优点是,可以通过一个简单高效的过程从模型所表示的联合分布中产生样本,这个过程被称为原始采样(ancestral sampling)。
原始采样的基本思想是将图中的变量xi使用拓扑排序,使得对于所有i和j,如果xi是xj的一个父亲结点,则j大于i。然后可以按此顺序对变量进行采样。换句话说,我们可以首先采x1∼P(x1),然后采,以此类推,直到最后我们从中采样。只要不难从每个条件分布中采样,那么从整个模型中采样也是容易的。拓扑排序操作保证我们可以按照式(16.1)中条件分布的顺序依次采样。如果没有拓扑排序,我们可能会在其父节点可用之前试图对该变量进行抽样。
有些图可能存在多个拓扑排序。原始采样可以使用这些拓扑排序中的任何一个。
原始采样通常非常快(假设从每个条件分布中采样都是很容易的),并且非常简便。
原始采样的一个缺点是其仅适用于有向图模型。另一个缺点是它并不是每次采样都是条件采样操作。当我们希望从有向图模型中变量的子集中采样时,给定一些其他变量,我们经常要求所有给定的条件变量在顺序图中比要采样的变量的顺序要早。在这种情况下,我们可以从模型分布指定的局部条件概率分布中采样。否则,我们需要采样的条件分布是给定观测变量的后验分布。这些后验分布在模型中通常没有明确指定和参数化。推断这些后验分布的代价可能是很高的。在这种情况下的模型中,原始采样不再有效。
不幸的是,原始采样仅适用于有向模型。我们可以通过将无向模型转换为有向模型来实现从无向模型中采样,但是这通常需要解决棘手的推断问题(要确定新有向图的根节点上的边缘分布),或者需要引入许多边,从而会使得到的有向模型变得难以处理。从无向模型采样,而不首先将其转换为有向模型的做法似乎需要解决循环依赖的问题。每个变量与每个其他变量相互作用,因此对于采样过程没有明确的起点。不幸的是,从无向模型中抽取样本是一个成本很高的多次迭代的过程。理论上最简单的方法是Gibbs采样(Gibbs Sampling)。假设我们在一个n维向量的随机变量x上有一个图模型。我们迭代地访问每个变量xi,在给定其他变量的条件下从p(xi|x−i)中抽样。由于图模型的分离性质,抽取xi时我们可以等价地仅对xi的邻居条件化。不幸的是,在我们遍历图模型一次并采样所有n个变量之后,我们仍然无法得到一个来自p(x)的客观样本。相反,我们必须重复该过程并使用它们邻居的更新值对所有n个变量重新采样。在多次重复之后,该过程渐近地收敛到正确的目标分布。我们很难确定样本何时达到所期望分布的足够精确的近似。无向模型的采样技术是一个高级的研究方向,第17章将对此进行更详细的讨论。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论