梯度下降法

作者:追风剑情 发布于:2026-3-10 14:51 分类:Algorithms

梯度下降法是一种找最小值的方法。如图:

1111.png

最速梯度下降法

最快梯度下降法公式:

$$ \theta_j := \theta_j - \eta \displaystyle\sum_{i=1}^{n} \left( f_\theta(\boldsymbol{x}^{(i)}) - y^{(i)} \right) x_j^{(i)} $$

缺点:从上面的曲线图可以看出,找到的最小值可能是局部最优解。要解决这个问题,可以采用随机梯度下降法。

随机梯度下降法

随机梯度下降法公式:

$$ \theta_j := \theta_j - \eta \left( f_\theta(\boldsymbol{x}^{(k)}) - y^{(k)} \right) x_j^{(k)} $$

  最快梯度下降法使用了所有训练数据的误差,而在随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。这个表达式中的k就是随机选中的数据索引。可以看到 $\displaystyle\sum_{i=1}^{n}$ 变没了。

  最速下降法更新 1 次参数的时间,随机梯度下降法可以更新 n 次。此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部最优解。

  上面是随机选择 1 个训练数据的做法,此外还有随机选择 m 个训练数据来更新参数的做法。

小批量梯度下降法

设随机选择 m 个训练数据的索引的集合为 K,那么我们这样来更新参数。

$$ \theta_j := \theta_j - \eta \displaystyle\sum_{k \in K} \left( f_\theta(\boldsymbol{x}^{(k)}) - y^{(k)} \right) x_j^{(k)} $$

标签: Algorithms

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号