Metropolis & Rejection & Inverse Transform 采样方法的使用

机器算法验证 采样 马尔可夫链蒙特卡罗 大都会黑斯廷斯 拒绝抽样
2022-04-04 14:32:51

我知道逆变换方法并不总是从分布中采样的好选择,因为它是一种依赖于分布函数形状的分析方法。例如,逆一维高斯分布是不可能计算的,但是,采样给出了很好的结果。我可以说,对我来说,这种方法就是我所需要的。但是,MCMC 方法Metropolis-HastingsRejection)能否比逆变换表现更好?MCMC 方法是否比 IT 更好,因为它们涵盖了更多罕见事件或者,还有其他优势吗?一些例子可能会有所帮助!谢谢!

2个回答

说逆向方法是不可能计算的,这并不完全正确。逆高斯 CDF有非常好的数值近似据我所知,很多方法都使用它来生成高斯随机变量。当然还有很多其他的,可能更简单的生成高斯的方法。

关于拒绝抽样,这是一个好坏参半的问题。如果是高斯 pdf,那么在拒绝采样中,您需要找到一个主导 f(x) 的 PDF g ( f,对于某些的一种解释是在接受样本之前您需要做出的预期拒绝次数,因此越小越好。这个问题会使拒绝抽样变得非常痛苦,因为有时很大。这里的规则是,如果你找不到使 ,则需要查看其他方法,例如逆变换方法。f(x)g(x) f(x)f(x)Mg(x)M>0MMMgM

例如,指数分布适用于正态分布(实际上是单面正态,之后您可以掷硬币来决定符号)。在这种情况下,您可以计算出,这很好,因为使用逆 cdf 方法很容易生成指数,并且您平均只需要丢弃大约 2 个样本. 拒绝采样与 MCMC 相结合的好处是,当以一种巧妙的方式使用时,您可以模拟稀有事件,而无需实际等待宇宙的生命周期来等待事件发生。M=2π/e=1.32

模拟方法之间的比较仅与效率有关,因为它们都产生应该来自相同目标分布的输出。因此,您不能期望一种模拟方法(如 MCMC)产生比另一种更多的罕见事件,因为这些罕见事件应该以正确(和罕见)的速率发生。

逆 cdf 变换方法,即当时返回,从分布。在数学上是正确的。计算F(U)UU(0,1)FF1要求太高了。如果您选择的软件包含此反演的代码,则无需进一步寻找,除非您担心反演的精度(但随后需要找到另一种具有更高数值精度的方法!)。如果逆 cdf 没有编码并且需要大量的编码投资,那么寻找像马尔可夫链蒙特卡罗方法这样的通用方法会更有效,这种方法存在不能保证模拟完全来自目标的缺点。这些是渐近方法,因为只有在马尔可夫步数增长到无穷大时,模拟的分布才会收敛到目标分布(除非在有限步数后可以验证收敛的特殊情况)。但这些也是通用的需要较少编码和计划的方法,因此与编码人员自己的时间相比,计算机时间相当便宜,因此更有效的方法。