何时使用梯度下降与蒙特卡洛作为数值优化技术

机器算法验证 蒙特卡洛 梯度下降
2022-03-22 12:54:15

当一组方程无法解析求解时,我们可以使用梯度下降算法。但似乎也有蒙特卡罗模拟的方法可以用来解决没有解析解的问题。

如何判断何时使用梯度下降以及何时使用蒙特卡洛?还是我只是将“模拟”一词与“优化”混淆了?

非常感谢你!

4个回答

这些技术做不同的事情。

梯度下降是一种优化技术,因此在任何需要最大化的统计方法(MLE、MAP)中都很常见。

蒙特卡罗模拟是通过从分布中采样并评估样本上的某些函数来计算积分。因此,它通常与需要计算期望值的技术一起使用(贝叶斯推理、贝叶斯假设检验)。

这些都是庞大的算法家族,所以很难给你一个准确的答案,但是......

当您想要找到最大值(或最小值)时,梯度上升(或下降)很有用。例如,您可能正在寻找概率分布的模式,或最小化某些损失函数的参数组合。找到这些极值所需的“路径”可以告诉你一些关于函数的整体形状,但它不是故意的;事实上,它工作得越好,除了极值之外,你对所有事情的了解就越少。

蒙特卡洛方法以蒙特卡洛赌场命名,因为它们与赌场一样依赖于随机化。它可以以许多不同的方式使用,但其中大部分都集中在近似分布上。例如,马尔可夫链蒙特卡罗算法找到了从复杂概率分布中有效采样的方法。其他蒙特卡罗模拟可能会生成可能结果的分布。

这个答案部分错误。您确实可以将蒙特卡洛方法与梯度下降相结合。您可以使用 Monte Carlo 方法来估计损失函数的梯度,然后梯度下降使用该梯度来更新参数。一种流行的估计梯度的蒙特卡罗方法是分数梯度估计器,它可以用于例如强化学习。请参阅Shakir Mohamed 等人的Monte Carlo Gradient Estimation in Machine Learning (2019)。了解更多信息。

正如其他人所解释的,梯度下降/上升执行优化,即找到函数的最大值或最小值。Monte Carlo 是一种随机模拟方法,即通过重复随机抽样逼近一个累积分布函数。这也称为“蒙特卡洛积分”,因为连续分布的 cdf 实际上是一个积分。

梯度下降和蒙特卡洛之间的共同点是它们在不存在封闭形式解决方案的问题中都特别有用。只要解析解可行,您就可以使用简单的微分来找到任何凸函数的最大值或最小值。当这样的解决方案不存在时,就需要使用梯度下降等迭代方法。与蒙特卡洛模拟相同;您基本上可以使用普通积分来分析计算任何 cdf,但不能保证这种封闭形式的解决方案总是可行的。通过蒙特卡洛模拟,这个问题再次变得可以解决。

您可以使用梯度下降进行模拟,使用蒙特卡洛进行优化吗?简单回答是不。蒙特卡洛需要一个随机元素(分布)来采样,梯度下降无法处理随机信息问题。但是,您可以将模拟与优化相结合,以生成更强大的随机优化算法,这些算法能够解决简单梯度下降无法解决的非常复杂的问题。这方面的一个例子是模拟退火蒙特卡罗。