梯度下降优化


9

我正在尝试了解ML(机器学习)算法中的梯度下降优化。我知道这里有一个成本函数,其目的是使误差最小。在权重被优化以提供最小误差且使用偏导数的情况下,它是在每个步骤中同时改变和还是将其组合(例如,在几次迭代中仅被改变,当不再减小误差时,导数以?该应用程序可以是线性回归模型,逻辑回归模型或增强算法。y^yw1,w2w1w2w1w1w2

Answers:


10

梯度下降在每个步骤都会更新所有参数。您可以在更新规则中看到以下内容:

w(t+1)=w(t)ηf(w(t)).

由于损失函数的梯度是向量值,且维的大小与匹配,因此每次迭代都会更新所有参数。f(w)w

学习率是一个正数,可重新缩放梯度。迈出太大一步会无休止地使您跨过损失表面,而损失功能却没有得到改善。太小的步长可能意味着乏味地缓慢地朝着最佳方向前进。η

尽管您可以使用梯度下降来估计线性回归参数,但这不是一个好主意。

同样,有更好的方法来估计逻辑回归系数。


因此,算法可以根据偏导数到达局部最小值的方向尝试不同的组合,例如增大w1,减小w2,只是为了确认算法不一定总是给出全局最小值?
Pb89 '18 -10-22

偏导数是否也有助于解释必须进行多少增加或减少w1w2或者学习率/收缩是多少,而偏导数仅提供下降的方向?
Pb89 '18 / 10/22

梯度是一个矢量,因此它给出了方向大小。向量可以由正标量任意缩放,并且方向相同,但是重新缩放会改变其大小。
Sycorax说恢复莫妮卡

如果梯度也给出了幅度,那么收缩或学习率的作用是什么?
Pb89 '18 -10-22

f(x)w(t)η

7

当优化确实通过偏导数发生时,它每次都会改变w1和w2,或者是像几次迭代中那样的组合,只有w1发生了变化,而w1并没有进一步减小误差,则导数从w2开始-至达到当地的最低要求?

在每次迭代中,该算法将基于梯度矢量同时更改所有权重。实际上,梯度是一个向量。渐变的长度与模型中权重的数量相同。

另一方面,确实存在一次更改一个参数的情况,这称为坐标体面算法,这是一种无梯度优化算法。实际上,它可能不如基于梯度的算法那样有效。

这是有关无梯度算法的有趣答案

是否可以在不进行反向传播的情况下训练神经网络?


1

梯度下降的目的是最小化成本函数。通过针对您的案例w1和w2调整权重,可以实现这种最小化。通常,可以有n个这样的权重。

梯度下降可通过以下方式完成:

  1. 随机初始化权重。
  2. 用初始化的权重计算成本函数和梯度。
  3. 更新权重:对于某些权重,渐变可能为O,在这种情况下,这些权重在更新后不会显示任何变化。例如:假设渐变为[1,0],则W2将保持不变。
  4. 检查减价函数是否具有更新的权重,如果减量足够可接受,请继续迭代,否则终止。

而更新权重(W1或W2)改变的权重完全由梯度决定。所有权重都会更新(某些权重可能不会随渐变而改变)。


“如果减量是可以接受的,则继续迭代,否则终止”,是否在python(sklearn)或R包(例如)中应用了默认值caret?用户只能在手动创建的梯度下降函数中指定它吗?
Pb89 '18 -10-22

1

渐变体面适用于每次迭代w1w2每次迭代。在每次迭代期间,参数会根据梯度进行更新。它们可能具有不同的偏导数。

在这里检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.