第十九章 近似推断
许多概率模型很难训练的原因是很难进行推断。在深度学习中,通常我们有一系列可见变量v和一系列潜变量h。推断困难通常是指难以计算p(h|v) 或其期望。而这样的***作在一些诸如最大似然学习的任务中往往是必需的。
深度学习中难以处理的推断问题通常是由于结构化图模型中潜变量的相互作用。这些相互作用产生于一个潜变量与另一个潜变量或者当V-结构的子节点可观察时与更长的激活路径相连。(左) 一个隐藏单元存在连接的半受限玻尔兹曼机(semi-restricted Boltzmann Machine)(Osindero and Hinton, 2008)。由于存在大量潜变量的团,潜变量的直接连接使得后验分布难以处理。(中) 一个深度玻尔兹曼机,被分层从而使得不存在层内连接,由于层之间的连接其后验分布仍然难以处理。(右) 当可见变量可观察时这个有向模型的潜变量之间存在相互作用,因为每两个潜量都是共父。即使拥有上图中的某一种结构,一些概率模型依然能够获得易于处理的关于潜变量的后验分布。如果我们选择条件概率分布来引入相对于图结构描述的额外的独立性这种情况也是可能出现的。举个例子,概率PCA的图结构如右图所示,然而由于其条件分布的特殊性质(带有相互正交基向量的线性高斯条件分布)依然能够进行简单的推断。
把推断视作优化问题
期望最大化
最大后验推断和稀疏编码
变分推断和变分学习
如何分解,之后通过解决优化问题来找出在这些分解限制下最优的概率分布。对离散型潜变量来说,这意味着我们使用传统的优化技巧来优化描述分布q 的有限个变量。对连续型潜变量来说,这意味着我们使用一个被称为变分法的数学分支工具来解决函数空间上的优化问题。然后决定哪一个函数来表示分布q。变分法是‘‘变分学习’’ 或者‘‘变分推断’’ 这些名字的来因,尽管当潜变量是离散时变分法并没有用武之地。当遇到连续型潜变量时,变分法不需要过多地人工选择模型,是一种很有用的工具。我们只需要设定分布q 如何分解,而不需要去猜测一个特定的能够精确近似原后验分布的分布q。
离散型潜变量
变分法
连续型潜变量
学习和推断之间的相互作用
学成近似推断
学成推断的其他形式
这种学成近似推断策略已经被应用到了其他模型中。Salakhutdinov andLarochelle (2010) 证明了在学成推断网络中的单遍传递相比于在深度玻尔兹曼机中的迭代均值场不动点方程能够得到更快的推断。其训练过程是基于运行推断网络的,然后运行一步均值场来改进其估计,并训练推断网络来输出这个更精细的估计以代替其原始估计。
我们已经在第14.8 节中看到,预测性的稀疏分解模型训练一个浅层编码器网络,从而预测输入的稀疏编码。这可以被看作是自编码器和稀疏编码之间的混合。为模型设计概率语义是可能的,其中编码器可以被视为执行学成近似MAP 推断。由于其浅层的编码器,PSD 不能实现我们在均值场推断中看到的单元之间的那种竞争。然而,该问题可以通过训练深度编码器实现学成近似推断来补救,如ISTA 技术(Gregorand LeCun, 2010b)。近来学成近似推断已经成为了变分自编码器形式的生成模型中的主要方法之一(Kingma, 2013; Rezende et al., 2014)。在这种优美的方法中,不需要为推断网络构造显式的目标。反之,推断网络仅仅被用来定义L,然后调整推断网络的参数来增大L。我们将在第20.10.3 节中详细介绍这种模型。