Metropolis Hastings 和模拟退火之间有什么关系?

机器算法验证 贝叶斯 模拟 马尔可夫链蒙特卡罗 大都会黑斯廷斯 模拟退火
2022-04-16 09:15:45

背景和问题

模拟退火的维基百科页面中,他们声明

模拟可以通过求解密度函数[2][3]的动力学方程或使用随机抽样方法来执行。[1][4] 该方法是对 Metropolis-Hastings 算法的改编

我也在一些论文中读过这个,但似乎没有人在两者之间建立联系。

Metropolis-Hastings 伪代码供参考

这是使用提案中采样的 Metropolis-Hastings 伪代码我真的看不出这与模拟退火有什么关系。π(x)p(xxt)

  1. 选择起点x0
  2. 直到收敛:
    1. 采样一个候选 xq(xxt)
    2. 以概率接受,否则设置其中 A(x,xt) xt+1=xxt+1=xt
      A(x,xt)=min(π(x)π(xt)q(xtx)q(xxt))

MH 是一种从分布中采样的方法,它与用于找到函数的全局最优值的方法有何相同之处?

2个回答

模拟退火是一种用于优化的元启发式算法,即找到函数的最小值/最大值。Metropolis-Hastings 是一种用于探索函数(寻找可能的值/样本)的算法。

两种算法都是随机的,会随机生成新的移动点。它们的不同之处在于它们的接受/拒绝标准。两种算法都以一定的概率移动到一个新的随机点,该概率基于搜索空间中当前和新提议点的差异(或比率)。

的比率移动到一个新点,并添加一些用于不对称分布的额外内容)。如果这个比率大于 1(新点的可能性高于当前点),那么它将立即移动到这个新点。否则,如果新点的可能性较低,则算法将以一定的概率移动到该点 - 基于比率。在这种情况下,算法将生成一个介于 0 和 1 之间的随机值,如果该比率小于该值,则它将拒绝新点,否则它将接受新点。min(newold,1)

模拟退火有一个附加参数(温度),它按一定量缩放差异。当温度非常高时,差异不会对决策产生任何有意义的影响(它将评估为大于 1 的值),因此算法将始终接受任何新点,这意味着它将随机移动。当温度非常低时,对于较差的点,标准将评估为 ~0,因此算法将确定性地移动,只接受更好的解决方案。exp(newoldT)

MCMC 算法与模拟退火 (SA) 密切相关,因为两者都使用 Metropolis 接受标准来随机探索表面。我们提供了允许使用 SA 的 MCMC 例程的参数,尽管这不是该功能的主要焦点。

来源:文西姆