Metropolis-Hastings 算法的函数最小化

机器算法验证 自习 优化 蒙特卡洛 大都会黑斯廷斯
2022-04-03 08:50:05

当通过通用 Metropolis-Hastings 算法最小化函数时,该函数被视为某种分布的非归一化密度。

(1) 由于密度函数必须是非负的,我想知道 Metropolis-Hastings 算法可以最小化的函数是否有一些限制?

(2) 最小化以下函数:

f(x)=10sin(0.3x)sin(1.3x2)+0.001x4+0.2x+80.

在应用 Metropolis-Hastings 算法之前,如何将其转换为其他函数?

谢谢并恭祝安康!


编辑:

谢谢!我同意模拟退火可能会更好地处理这种情况,但这是一项需要使用 Metropolitan-Hastings 算法的任务。所以恐怕我别无选择。

3个回答

您宁愿寻找模拟退火,以原始物理方式制定时更容易理解

  • x是系统的状态
  • f(x)是系统的能量;能量被定义为增加一个常数,所以它是负数或正数都没有问题——唯一的限制是越低越好
  • T是系统的温度,是以能量单位表示的温度kT

MH算法,公式为

  1. x=x+random change
  2. 如果{expf(x)f(x)kT>R(0;1)}x=x
  3. 转到 1

重新创建与放置在温度中的系统相同的特定状态(的值)占用,如 Metropolis 在他的开创性工作中所示。xT

物理系统倾向于自发地进入最低能量状态并停留在那里,所以在最初的放松之后x通常应在最小值附近振荡。这些振荡的幅度取决于温度,因此模拟退火减少了T在运行期间减少它们并使最小值的定位更准确。最初需要高温来防止系统着陆并在某个局部最小值停留很长时间。

编辑:如果你被告知你应该只使用 Metropolis-Hastings,这很可能意味着你应该这样做,只有在恒温的情况下(不断降低的温度是模拟退火添加到 MH 的唯一因素)。然后你需要做一些实验来找出一个好的温度,这样就会有很好的准确性,不会卡在局部最小值。

如果您想找到函数的全局最小值,模拟退火将是要查看的算法,在这种情况下,无需将函数视为任何类型的非归一化密度,也无需转换函数。

是的,模拟退火也是 Metropolis Hasting 采样的一个实例。只需将非归一化密度函数设置为ef(x)/T并使用对称提议分布(这也使 Metropolis Hasting 抽样成为 Metropolis 抽样)。

所以,接受概率是min(1,ef(x)/Tef(x)/T)=min(1,e(f(x)f(x))/T). 是的!模拟退火!