梯度下降和爬山算法的行为差异

7

我正在努力理解这两种算法之间的区别,以及它们在解决问题时的差异。我已经查看了这些算法和它们的内部结构,很想听听那些已经有经验的人的意见。特别是,我想知道它们在同一问题上的行为如何不同。

谢谢。

2个回答

14

区别

两者的主要区别在于它们到达局部极值(或最大值)的方向

  • Hill Climbing中,我们仅移动向量空间一个元素,然后计算函数的值并替换它,如果值提高了。我们不断改变向量的一个元素,直到不能朝着使位置改进的方向移动为止。在3D空间中,移动可以被视为沿x、y或z轴中的任一轴向移动。
  • Gradient Descent中,我们朝当前点的负梯度方向采取步骤,以达到最小值(最大值的情况下为正)。例如,在3D空间中,方向不必轴向

2
如果函数是连续可微的,我们是否应该期望得到不同的结果?或者说爬山算法更适用于参数为离散值的搜索空间? - Tarik

3
除了radbrawler的回答外,它们在寻找局部极小值/极大值时使用的贪婪方法很相似。我认为梯度下降法是离散山峰爬升技术的连续版本。

不,梯度上升/下降不能被视为离散爬山的连续模拟。期望最大化算法可以使用Baum-Welch算法来处理隐马尔可夫模型。爬山算法将收敛到最近的局部最大值,而梯度上升则不一定会这样做。 - Dylan Solms

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接