当最大后验估计可用时,基于 MCMC 的方法是否合适?

机器算法验证 贝叶斯 马尔可夫链蒙特卡罗 后部
2022-03-25 17:02:56

我注意到在许多实际应用中,基于 MCMC 的方法用于估计参数,即使后验是分析的(例如,因为先验是共轭的)。对我来说,使用 MAP 估计器而不是基于 MCMC 的估计器更有意义。谁能指出为什么 MCMC 在存在分析后验的情况下仍然是一种合适的方法?

4个回答

在这种情况下无需使用 MCMC:马尔可夫链蒙特卡罗 (MCMC) 是一种用于从分布中生成值的方法。它产生一个自相关值的马尔可夫链,其平稳分布等于目标分布。即使在目标分布具有分析形式的情况下,此方法仍然可以为您提供所需的内容。但是,有一些更简单且计算量较小的方法可以在这种情况下工作,在这种情况下,您正在处理具有良好分析形式的后验。

在后验分布具有可用分析形式的情况下,可以通过使用标准微积分技术从该分布进行优化来获得参数估计(例如,MAP)。如果目标分布足够简单,您可能会得到参数估计器的封闭形式解决方案,但即使不是,您通常也可以使用简单的迭代技术(例如,Newton-Raphson、梯度下降等)来找到优化任何给定输入数据的参数估计。如果您有目标分布的分位数函数的解析形式,并且需要从分布中生成值,则可以通过逆变换采样来实现,它的计算量比 MCMC 低,并且允许您生成 IID 值而不是具有复杂自相关模式的值。

鉴于此,如果您是从头开始编程,那么在目标分布具有可用分析形式的情况下,您似乎没有任何理由使用 MCMC。您可能会这样做的唯一原因是,如果您已经编写了一个通用的 MCMC 算法,可以用最少的努力来实现,并且您认为使用解析形式的效率超过了进行所需数学运算的努力。在某些实际情况下,您将处理通常难以解决的问题,其中 MCMC 算法已经建立并且可以用最少的努力实现(例如,如果您在RStan)。在这些情况下,运行您现有的 MCMC 方法可能是最简单的方法,而不是推导出问题的分析解决方案,尽管后者当然可以用来检查您的工作。

我不清楚你所说的分析后验以及为什么这种分析性应该阻止人们使用 MCMC。即使对于以封闭形式提供的后验分布,包括其归一化常数,这是我在此设置中理解分析的方式,贝叶斯估计也没有理由以封闭形式提供,因为解决了最小化问题强烈依赖于损失函数。π(θ)

minδΘL(θ,δ)π~(θ)f(x|θ)dθ
π~()π()

当归一化常数不可用时,

π~(θ)dθ
寻找后验均值或中位数甚至众数 [不需要知道常数],通常会继续通过 MCMC 算法。例如,如果给定联合密度,当 copula 的启发并且确实如此),但是 Phi (x,y(0,1)
fθ(x,y)=1+θ[(1+x)(1+y)3]+θ2(1x)(1y))[1θ(1x)(1y)]3θ(1,1)
Φ1(X)Y=yΦ(.)是 Normal cdf,不提供封闭形式。然而,这是一个重要的问题

还要注意,最大后验估计量不是贝叶斯设置中最自然的估计量,因为它不对应于损失函数,并且密度的封闭形式表示,即使是一个常数,也不能找到 MAP一定很容易。或者使用相关的MAP。

当我读到它时,这个问题是在问两个有些正交的问题。一个是应该使用 MAP-estimators 而不是后验均值,另一个是如果后验具有分析形式,是否应该使用 MCMC。

关于后验均值的 MAP 估计,从理论的角度来看,后验均值通常是首选,正如@Xian 在他的回答中指出的那样。MAP 估计器的真正优势在于,尤其是在后验不是封闭形式的更典型情况下,它们的计算速度比后验均值的估计快得多(即几个数量级)。如果后验近似对称(在许多大样本问题中通常是这种情况),则 MAP 估计应该非常接近后验均值。所以 MAP 的吸引力实际上在于它可以是后验均值的一个非常便宜的近似值。

请注意,知道归一化常数并不能帮助我们找到后验模式,因此从技术上讲,对于后验有一个封闭形式的解决方案并不能帮助我们找到 MAP 估计,除了我们将后验识别为特定分布的情况之外我们知道这是模式。

关于第二个问题,如果一个人的后验分布是封闭的,一般来说没有理由使用 MCMC 算法。从理论上讲,如果您对后验分布有一个封闭形式的解决方案,但对于某些函数的均值没有封闭形式,并且不能直接从这个封闭形式分布中抽取,那么可能会转向 MCMC 算法。但我不知道这种情况的任何情况。

我认为 MCMC 方法不一定是不合适的,即使存在封闭形式的解决方案。显然,存在分析解决方案时很好:它们通常很快,您可以避免担心收敛(等)。

另一方面,一致性也很重要。从技术转换到技术会使您的演示变得复杂:充其量是无关紧要的细节,可能会使观众混淆或分散您对实质性结果的注意力,而在最坏的情况下,它可能看起来像是试图使结果产生偏见。如果我有几个模型,其中只有少数接受封闭形式的解决方案,我会强烈考虑通过同一个 MCMC 管道运行它们,即使它不是绝对必要的。

我怀疑这一点,加上惯性(“我们有这个有效的脚本”)占您所看到的大部分内容。