梯度下降法

数据挖掘 梯度下降
2022-03-06 01:05:44

如果我们假设这是梯度下降法的公式:

xn+1=xnλdf(x)dx, n=0,1,2,3,...

由于没有精确的值我们减去而不是导数,这是否意味着我们减去导数的值并将其用于控制x的下一个位置的方向?为什么我们减去导数而不是任何其他取决于x的值?

1个回答

假设我想的最小值。然后我有3个选择:f(x)xm

  1. 最小值是一定精度内xm
  2. 最小值在的右侧(并适当地更新我的初始猜测)xm
  3. 最小值在的左侧(并适当地更新我的初始猜测)xm

所以:

  1. 如果接近(在所需精度内)最小值,则此时的导数将(大约)为零(基本分析)。xm
  2. 如果最小值在的右侧(比如说),那么将具有负斜率(导数的负值指向最小值的方向)。xmxmf(xm)
  3. 如果最小值在的左侧(比如说),那么将具有正斜率(导数的负值指向最小值的方向)。xmxmf(xm)

到目前为止,导数似乎是用来更新我最初的猜测的好选择。如果还考虑幅度,我们有:

  1. 如果接近(在所需精度内)最小值,则此时的导数将(大约)为零。xm
  2. 如果最小值在的右侧或左侧(可以说),则将具有非零幅度,随着离最小值最远,该幅度变得更大。xmxmf(xm)xm

所以也可以使用微分大小。

到目前为止,我们已经观察并推断出:或者:是一个很好的方案更新我的猜测。xmxm=Δxf(xm)xm=xmλf(xm)

λ(学习率)是满足两件事的必要参数:

  1. 如果具有不同的物理尺寸,则它会适当地缩放导数以匹配的尺寸。xf(x)x
  2. 它允许调整学习率,以免超过所需的最小值或太慢,以防导数有一些临界点。

参考:

  1. 梯度下降
  2. 为什么梯度符号不足以找到最陡峭的上升