18.7 估计配分函数
尽管本章中的大部分内容都在避免计算与无向图模型相关的难以计算的配分函数Z(θ),但在本节中我们将会讨论几种直接估计配分函数的方法。
估计配分函数可能会很重要,当希望计算数据的归一化似然时,我们会需要它。在评估模型、监控训练性能和比较模型时,这通常是很重要的。
例如,假设我们有两个模型:概率分布为的模型和概率分布为的模型。比较模型的常用方法是评估和比较两个模型分配给独立同分布测试数据集的似然。假设测试集含m个样本{x(1),…,x(m)}。如果,或等价地,如果
那么我们说是一个比更好的模型(或者,至少可以说,它在测试集上是一个更好的模型),这是指它有一个更好的测试对数似然。不幸的是,测试这个条件是否成立需要知道配分函数。式(13.38)看起来需要估计模型分配给每个点的对数概率,因而需要估计配分函数。我们可以通过将式(18.38)重新转化为另一种形式来简化情况,在该形式中我们只需要知道两个模型的配分函数的比率:
因此,我们可以在不知道任一模型的配分函数,而只知道它们比率的情况下,判断模型是否比模型更优。正如我们将很快看到的,在两个模型相似的情况下,我们可以使用重要采样来估计比率。
然而,如果我们想要计算测试数据在或上的真实概率,我们需要计算配分函数的真实值。如果我们知道两个配分函数的比率,,并且知道两者中一个的实际值,比如说Z(θA),那么我们可以计算另一个的值:
一种估计配分函数的简单方法是使用蒙特卡罗方法,例如简单重要采样。以下用连续变量积分来表示该方法,也可以替换积分为求和,很容易将其应用到离散变量的情况。我们使用提议分布,其在配分函数Z0和未归一化分布上易于采样和估计。
在最后一行,我们使用蒙特卡罗估计,使用从p0(x)中抽取的采样计算积分,然后用未归一化的和提议分布p0的比率对每个采样加权。
这种方法使得我们可以估计配分函数之间的比率:
然后该值可以直接比较式(18.39)中的两个模型。
如果分布p0接近p1,那么式(18.44)能够有效地估计配分函数(Minka,2005)。不幸的是,大多数时候p1都很复杂(通常是多峰值的),并且定义在高维空间中。很难找到一个易求解的p0,既能易于评估,又能充分接近p1以保持高质量的近似。如果p0和p1不接近,那么p0的大多数采样将在p1中具有较低的概率,从而在式(18.44)的求和中产生(相对的)可忽略的贡献。
如果求和中只有少数几个具有显著权重的样本,那么将会由于高方差而导致估计的效果很差。这可以通过估计的方差来定量地理解:
当重要性权重存在显著偏差时,上式的值是最大的。
我们现在关注两个解决高维空间复杂分布上估计配分函数的方法:退火重要采样和桥式采样。两者都始于上面介绍的简单重要采样方法,并且都试图通过引入缩小p0和p1之间差距的中间分布,来解决p0远离p1的问题。
18.7.1 退火重要采样
在DKL(p0‖p1)很大的情况下(即p0和p1之间几乎没有重叠),一种称为退火重要采样(annealed importance sampling,AIS)的方法试图通过引入中间分布来缩小这种差距(Jarzynski,1997;Neal,2001)。考虑分布序列,其中,分布序列中的第一个和最后一个分别是p0和p1。
这种方法使我们能够估计定义在高维空间多峰分布(例如训练RBM时定义的分布)上的配分函数。我们从一个已知配分函数的简单模型(例如,权重为零的RBM)开始,估计两个模型配分函数之间的比率。该比率的估计基于许多个相似分布的比率估计,例如在零和学习到的权重之间插值一组权重不同的RBM。
现在我们可以将比率写作
如果对于所有的,分布和足够接近,那么我们能够使用简单的重要采样来估计每个因子,然后使用这些得到的估计。
这些中间分布是从哪里来的呢?正如最先的提议分布p0是一种设计选择,分布序列也是如此。也就是说,它们可以被特别设计为特定的问题领域。中间分布的一个通用和流行选择是使用目标分布p1的加权几何平均,起始分布(其配分函数是已知的)为p0:
为了从这些中间分布中采样,我们定义了一组马尔可夫链转移函数Tηj(x'|x),定义了给定x转移到x'的条件概率分布。转移算子Tηj(x'|x)定义如下,保持pηj(x)不变:
这些转移可以被构造为任何马尔可夫链蒙特卡罗方法(例如,Metropolis-Hastings,Gibbs),包括涉及多次遍历所有随机变量或其他迭代的方法。
然后,AIS采样方法从p0开始生成样本,并使用转移算子从中间分布顺序地生成采样,直到我们得到目标分布p1的采样。
对于采样k,通过连接式(18.49)给出的中间分布之间的重要性权重,我们可以导出目标重要性权重:
为了避免诸如上溢的数值问题,最佳方法可能是通过加法或减法计算log w(k),而不是通过概率乘法和除法计算w(k)。
利用由此定义的采样过程和式(18.52)中给出的重要性权重,配分函数的比率估计如下所示:
为了验证该过程定义的重要采样方案是否有效,我们可以展示(Neal,2001)AIS过程对应着扩展状态空间上的简单重要采样,其中数据点采样自乘积空间。为此,我们将扩展空间上的分布定义为
其中是由Ta定义的转移算子的逆(应用贝叶斯规则):
将以上代入到式(18.55)给出的扩展状态空间上的联合分布中,我们得到
通过上面给定的采样方案,现在我们可以从扩展样本上的联合提议分布q上生成采样,联合分布如下:
式(18.59)给出了扩展空间上的联合分布。将作为扩展状态空间上的提议分布(我们会从中抽样),重要性权重如下:
这些权重和AIS上的权重相同。因此,我们可以将AIS解释为应用于扩展状态上的简单重要采样,其有效性直接来源于重要采样的有效性。
退火重要采样首先由Jarzynski(1997)发现,然后由Neal(2001)再次独立发现。目前它是估计无向概率模型的配分函数的最常用方法。其原因可能与一篇有影响力的论文(Salakhutdinov and Murray,2008)有关,该论文并没有讨论该方法相对于其他方法的优点,而是介绍了将其应用于估计受限玻尔兹曼机和深度信念网络的配分函数。
关于AIS估计性质(例如,方差和效率)的讨论,请参看Neal(2001)。
18.7.2 桥式采样
类似于AIS,桥式采样(Bennett,1976)是另一种处理重要采样缺点的方法。并非将一系列中间分布连接在一起,桥式采样依赖于单个分布p∗(被称为桥),在已知配分函数的分布p0和分布p1(我们试图估计其配分函数Z1)之间插值。
桥式采样估计比率Z1/Z0:和之间重要性权重期望与和之间重要性权重的比率,
如果仔细选择桥式采样p∗,使其与p0和p1都有很大重合的话,那么桥式采样能够允许两个分布(或更正式地,DKL(p0‖p1))之间有较大差距(相对标准重要采样而言)。
可以表明,最优的桥式采样是,其中r=Z1/Z0。这似乎是一个不可行的解决方案,因为它似乎需要我们估计数值Z1/Z0。然而,可以从粗糙的r开始估计,然后使用得到的桥式采样逐步迭代以改进估计(Neal,2005)。也就是说,我们会迭代地重新估计比率,并使用每次迭代更新r的值。
链接重要采样 AIS和桥式采样各有优点。如果DKL(p0‖p1)不太大(由于p0和p1足够接近)的话,那么桥式采样能比AIS更高效地估计配分函数比率。然而,如果对于单个分布p∗而言,两个分布相距太远难以桥接差距,那么AIS至少可以使用许多潜在中间分布来跨越p0和p1之间的差距。Neal(2005)展示链接重要采样方法如何利用桥式采样的优点,桥接AIS中使用的中间分布,并且显著改进了整个配分函数的估计。
在训练期间估计配分函数 虽然AIS已经被认为是用于估计许多无向模型配分函数的标准方法,但是它在计算上代价很高,以致其在训练期间仍然不很实用。研究者探索了一些在训练过程中估计配分函数的替代方法。
使用桥式采样、短链AIS和并行回火的组合,Desjardins et al.(2011)设计了一种在训练过程中追踪RBM配分函数的方法。该策略的基础是,在并行回火方法操作的每个温度下,RBM配分函数的独立估计会一直保持。作者将相邻链(来自并行回火)的配分函数比率的桥式采样估计和跨越时间的AIS估计组合起来,提出一个在每次迭代学习时估计配分函数的(且方差较小的)方法。
本章中描述的工具提供了许多不同的方法,以解决难处理的配分函数问题,但是在训练和使用生成模型时,可能会存在一些其他问题,其中最重要的是我们接下来会遇到的难以推断的问题。
————————————————————
(1) NCE也适用于具有易于处理的、不需要引入额外参数c的配分函数问题。它已经是最令人感兴趣的、估计具有复杂配分函数模型的方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论