【问题标题】:What is the difference between Gradient Descent and Newton's Gradient Descent?梯度下降和牛顿梯度下降有什么区别?
【发布时间】:2012-08-17 12:01:29
【问题描述】:

我了解梯度下降的作用。基本上,它试图通过缓慢地沿着曲线向下移动来向局部最优解移动。我想了解计划梯度下降和牛顿法之间的实际区别是什么?

从 Wikipedia 中,我读到了这句话“牛顿法使用曲率信息采取更直接的路线”。这直观上是什么意思?

【问题讨论】:

标签: machine-learning data-mining mathematical-optimization gradient-descent newtons-method


【解决方案1】:

在@Cheng 的回答的基础上,认识到因为牛顿法找到了函数的根,我们将牛顿法应用于f'() 以找到f() 的最优值是有帮助的。因此,本例中牛顿法的更新规则为:

new_guess = old_guess - f'(old_guess)/f''(old_guess),其中f''()是要优化的函数的曲率。

相比之下,梯度下降的更新规则是:

new_guess = old_guess - f'(old_guess)*alpha,其中alpha 表示步长。

由此可以大致看出牛顿法是如何利用函数的曲率f''()来增大或减小其更新大小的。

【讨论】:

    【解决方案2】:

    如果单纯比较梯度下降法和牛顿法,这两种方法的目的是不一样的。

    梯度下降用于找到(近似)局部最大值或最小值(x 使 min f(x) 或 max f(x))。而牛顿的方法是找到(近似)函数的根,即 x 使 f(x) = 0

    从这个意义上说,它们用于解决不同的问题。但是,牛顿法也可以在优化的上下文中使用(GD 正在解决的领域)。因为找到最大值或最小值可以通过找到 f'(x) = 0 来接近,这正是牛顿方法的用途。

    总之,在优化中可以使用两种方法:1)GD 和 2)find x so f'(x)=0 而牛顿法只是解决第二个问题的一种方法。

    【讨论】:

      【解决方案3】:

      Edit 2017:原始链接已失效 - 但回来的机器仍然得到它:) https://web.archive.org/web/20151122203025/http://www.cs.colostate.edu/~anderson/cs545/Lectures/week6day2/week6day2.pdf

      这个power point主要思想简单解释http://www.cs.colostate.edu/~anderson/cs545/Lectures/week6day2/week6day2.pdf

      希望对你有帮助:)

      【讨论】:

      • 链接失效
      【解决方案4】:

      简单地说,梯度下降你只需朝着你认为的零点迈出一小步,然后重新计算;牛顿法,一路走好。

      【讨论】:

      • 对于非二次函数来说,“一直”是真的吗?
      • 是的,对于非二次函数,您只是用一条线近似一阶导数。这有点摇摆不定,但我认为这对直觉来说很好。
      • 好的,我同意。一直到“你认为零在哪里”无疑是正确的。
      • 如果您说的主要区别是“小步”与“一路”,您能否详细说明“小步”的大小是如何确定的?
      • @MrPurple 它的定义不是很好,足够小以至于渐变不会发生太大变化(因此您不会保持曲折),但足够大以使您取得进步。很多研究都围绕着如何自适应地优化这一点。出于直觉,请按照 x 值的 0.1% 的数量级进行思考。
      【解决方案5】:

      在局部最小值(或最大值)x,目标函数f 的导数消失:f'(x) = 0(假设f 足够平滑)。

      梯度下降试图通过使用来自f 的一阶导数的信息来找到这样的最小值x:它只是遵循从当前点开始的最陡下降。这就像在 f 的图形上滚动一个球,直到它停止(同时忽略惯性)。

      牛顿的方法试图通过用线性函数g 逼近f' 来找到满足f'(x) = 0 的点x,然后显式求解该函数的根(这称为牛顿求根方法)。 g 的根不一定是f' 的根,但在许多情况下它是一个很好的猜测(Wikipedia article on Newton's method for root finding 有更多关于收敛标准的信息)。在逼近f' 的同时,牛顿方法利用了f''f 的曲率)。这意味着它对f的平滑度有更高的要求,但这也意味着(通过使用更多信息)它往往收敛得更快。

      【讨论】:

      • 我总是看到提到选择“最陡的下降”。那是什么意思?这是f'(x)中最负数吗?
      • @Chowza:如果您的域是多维的,例如如果f 将二维点映射到实数,那么f 在任何一点的梯度都不是标量而是向量。原因是f此时的“陡峭”取决于你看的方向。就像站在山顶上:如果你向北看,山可能会急剧下降,但对另一个两侧可能不那么陡峭。因此,选择最陡下降意味着选择导致目标函数发生最大变化的方向。
      猜你喜欢
      • 2014-04-30
      • 1970-01-01
      • 2016-07-21
      • 2020-05-04
      • 1970-01-01
      • 2016-06-13
      • 2021-01-21
      • 1970-01-01
      • 2019-09-21
      相关资源
      最近更新 更多