许多概率模型(通常是无向图模型)由一个未归一化的概率分布定义,我们必须通过除以配分函数来归一化,以获得一个有效的概率分布。
对数似然梯度
通过最大似然学习无向模型特别困难的原因在于配分函数依赖于参数。对数似然相对于参数的梯度具有一项对应于配分函数的梯度,即机器学习中非常著名的正相(positive phase)和负相(negative phase)的分解。对于大多数感兴趣的无向模型而言,负相是困难的。没有潜变量或潜变量之间很少相互作用的模型通常会有一个易于计算的正相。蒙特卡罗方法为学习无向模型提供了直观的框架,我们能够在其中考虑正相和负相。
随机最大似然和对比散度
当使用随机梯度下降进行学习时,意味着马尔可夫链必须在每次梯度步骤中磨合。内循环中磨合马尔可夫链的计算代价过高,导致这个过程在实际中是不可行的,但是这个过程是其他更加实际的近似算法的基础。我们可以将最大化似然的MCMC方法视为在两种力之间平衡,一种力拉高数据出现时的模型分布,一种拉低模型采样出现时的模型分布。
简单的MCMC算法的计算成本主要来自每一步的随机初始化磨合马尔可夫链。一个自然的解决方法是初始化马尔可夫链为一个非常接近模型分布的分布,从而大大减少磨合步骤。
伪似然
蒙特卡罗近似配分函数及其梯度需要直接处理配分函数。有些其他方法通过训练不需要计算配分函数的模型来绕开这个问题。这些方法大多数都基于以下观察:无向概率模型中很容易计算概率的比率。这是因为配分函数同时出现在比率的分子和分母中,互相抵消。伪似然正是基于条件概率可以采用这种基于比率的形式,因此可以在没有配分函数的情况下进行计算。
我们可以使用广义伪似然估计(generalized pseudolikelihood estimator)来权衡计算复杂度和最大似然表现的偏差。
得分匹配和比率匹配
得分匹配提供了另一种训练模型的一致性方法,其策略是,最小化模型对数密度和数据对数密度关于输入的导数之间的平方差期望。
得分匹配不能应用于隐藏单元之间具有复杂相互作用的模型估计,例如稀疏编码模型或深度玻尔兹曼机。虽然得分匹配可以用于预训练较大模型的第一个隐藏层,但是它没有被用于预训练较大模型的较深层网络。这可能是因为这些模型的隐藏层通常包含一些离散变量。
虽然得分匹配没有明确显示具有负相信息,但是它可以被视为使用特定类型马尔可夫链的对比散度的变种。在这种情况下,马尔可夫链并没有采用Gibbs采样,而是采用一种由梯度引导局部更新的不同方法。当局部更新的大小接近于零时,得分匹配等价于具有这种马尔可夫链的对比散度。
一种更成功地将得分匹配的基本想法扩展到离散数据的方法是比率匹配。比率匹配特别适用于二值数据。与伪似然估计一样,我们可以认为比率匹配减小了所有只有一个变量不同于训练样本的状态的概率。由于比率匹配特别适用于二值数据,这意味着在与数据的汉明距离为1内的所有状态上,比率匹配都是有效的。
比率匹配还可以作为处理高维稀疏数据(例如词计数向量)的基础。这类稀疏数据对基于MCMC的方法提出了挑战,因为以密集格式表示数据是非常消耗计算资源的,而只有在模型学会表示数据分布的稀疏性之后,MCMC采样才会产生稀疏值。
去噪得分匹配
去噪得分匹配非常有用,因为在实践中,通常我们不能获取真实的数据分布,而只能得到其样本确定的经验分布。给定足够容量,任何一致估计都会使模型成为一组以训练点为中心的Dirac分布。
噪声对比估计
具有难求解的配分函数的大多数模型估计都没有估计配分函数。噪声对比估计采取了一种不同的策略。具体地说,我们引入第二个分布, 噪声分布。能够非常成功地应用于随机变量较少的问题,但即使随机变量有很多可以取的值时,它也很有效。
噪声对比估计是基于良好生成模型应该能够区分数据和噪声的想法。一个密切相关的想法是,良好的生成模型能够生成分类器无法将其与数据区分的样本。这个想法诞生了生成式对抗网络。
估计配分函数
估计配分函数很重要,当我们希望计算数据的归一化似然时,我们会需要它。在评估模型,监控训练性能,和比较模型时,这通常是很重要的。