机器学习中的梯度下降

2025年6月17日 | 阅读时长11分钟

梯度下降是机器学习中最常用的优化算法之一,通过最小化实际结果与预期结果之间的误差来训练机器学习模型。此外,梯度下降也用于训练神经网络。

在数学术语中,优化算法是指最小化/最大化由 x 参数化的目标函数 f(x) 的任务。同样,在机器学习中,优化是最小化由模型参数参数化的成本函数的任务。梯度下降的主要目标是使用参数更新的迭代来最小化凸函数。一旦这些机器学习模型得到优化,它们就可以作为人工智能和各种计算机科学应用的强大工具。

在本机器学习梯度下降教程中,我们将详细了解梯度下降、成本函数作为机器学习中晴雨表的作用、梯度下降的类型、学习率等。

什么是梯度下降或最速下降?

梯度下降最初由“奥古斯丁-路易·柯西”在18世纪中叶发现。梯度下降被定义为机器学习中最常用的迭代优化算法之一,用于训练机器学习和深度学习模型。它有助于找到函数的局部最小值。

使用梯度下降定义函数的局部最小值或局部最大值的最佳方法如下:

  • 如果我们朝着当前点的负梯度方向移动或远离梯度方向移动,它将给出该函数的局部最小值
  • 每当我们朝着当前点的正梯度方向移动或朝着梯度方向移动时,我们将得到该函数的局部最大值
Gradient Descent in Machine Learning

整个过程被称为梯度上升,也称为最速下降。使用梯度下降算法的主要目标是使用迭代来最小化成本函数。为实现这一目标,它迭代执行两个步骤:

  • 计算函数的一阶导数以计算该函数的梯度或斜率。
  • 远离梯度方向移动,这意味着斜率从当前点增加了 alpha 倍,其中 Alpha 被定义为学习率。它是优化过程中的一个调整参数,有助于决定步长。

什么是成本函数?

成本函数被定义为当前位置的实际值与预期值之间差异或误差的度量,并以单个实数的形式呈现。它通过向模型提供反馈来帮助提高机器学习效率,从而最小化误差并找到局部或全局最小值。此外,它会沿着负梯度方向不断迭代,直到成本函数接近零。在这个最速下降点,模型将停止进一步学习。尽管成本函数和损失函数被认为是同义词,但它们之间存在细微差别。损失函数和成本函数之间的细微差别在于机器学习模型训练中的误差,因为损失函数指的是一个训练样本的误差,而成本函数计算整个训练集的平均误差。

在用初始参数进行假设后计算成本函数,并使用梯度下降算法通过已知数据修改这些参数以减少成本函数。

假设

参数

成本函数

目标

梯度下降如何工作?

在开始梯度下降的工作原理之前,我们应该了解一些基本概念来找出线性回归中线的斜率。简单线性回归方程为:

其中“m”表示线的斜率,“c”表示y轴上的截距。

Gradient Descent in Machine Learning

起始点(如上图所示)用于评估性能,因为它仅被视为任意点。在此起始点,我们将求出第一个导数或斜率,然后使用切线计算该斜率的陡峭程度。此外,此斜率将通知参数(权重和偏差)的更新。

起始点或任意点的斜率变得更陡峭,但每当生成新参数时,陡峭程度会逐渐减小,并在最低点接近最低点,这被称为收敛点。

梯度下降的主要目标是最小化成本函数或预期值与实际值之间的误差。为了最小化成本函数,需要两个数据点:

  • 方向和学习率

这两个因素用于确定未来迭代的偏导数计算,并使其达到收敛点、局部最小值或全局最小值。让我们简要讨论学习率因素;

学习率

它被定义为达到最小值或最低点所采取的步长。这通常是一个小值,根据成本函数的行为进行评估和更新。如果学习率很高,会导致步长较大,但也存在超过最小值的风险。同时,低学习率表示步长较小,这会影响整体效率,但具有更高精度的优势。

Gradient Descent in Machine Learning

梯度下降的类型

根据各种训练模型中的误差,梯度下降学习算法可分为批量梯度下降、随机梯度下降和迷你批量梯度下降。让我们了解这些不同类型的梯度下降:

1. 批量梯度下降

批量梯度下降(BGD)用于查找训练集中每个点的误差,并在评估所有训练样本后更新模型。此过程称为训练周期。简单来说,它是一种贪婪方法,我们必须在每次更新时对所有样本求和。

批量梯度下降的优点

  • 与其他梯度下降相比,它产生的噪声更少。
  • 它产生稳定的梯度下降收敛。
  • 由于所有资源都用于所有训练样本,因此计算效率很高。

2. 随机梯度下降

随机梯度下降(SGD)是一种梯度下降类型,它每次迭代运行一个训练样本。换句话说,它处理数据集中每个样本的训练周期,并一次更新每个训练样本的参数。由于它一次只需要一个训练样本,因此更容易存储在分配的内存中。然而,与批量梯度系统相比,它显示出一些计算效率损失,因为它显示频繁更新需要更多的细节和速度。此外,由于频繁更新,它也被视为嘈杂的梯度。然而,有时它有助于找到全局最小值并逃脱局部最小值。

随机梯度下降的优点

在随机梯度下降(SGD)中,每次样本都会发生学习,并且它比其他梯度下降具有一些优势。

  • 它更容易分配到所需的内存中。
  • 它比批量梯度下降计算速度相对较快。
  • 对于大型数据集更有效。

3. 迷你批量梯度下降

迷你批量梯度下降是批量梯度下降和随机梯度下降的结合。它将训练数据集分成小批量,然后分别对这些批量执行更新。将训练数据集分成较小的批量可以平衡批量梯度下降的计算效率和随机梯度下降的速度。因此,我们可以实现一种特殊类型的梯度下降,具有更高的计算效率和更小的噪声梯度下降。

迷你批量梯度下降的优点

  • 它更容易适应分配的内存。
  • 它计算效率很高。
  • 它产生稳定的梯度下降收敛。

梯度下降的挑战

尽管我们知道梯度下降是优化问题最流行的方法之一,但它仍然存在一些挑战。有以下几个挑战:

1. 局部最小值和鞍点

对于凸问题,梯度下降可以轻松找到全局最小值,而对于非凸问题,有时很难找到全局最小值,这是机器学习模型实现最佳结果的地方。

Gradient Descent in Machine Learning

当成本函数的斜率为零或接近零时,该模型停止进一步学习。除了全局最小值之外,还会出现一些可以显示此斜率的场景,即鞍点和局部最小值。局部最小值生成与全局最小值相似的形状,其中成本函数的斜率在当前点的两侧增加。

相比之下,对于鞍点,负梯度仅出现在点的一侧,在一侧达到局部最大值,在另一侧达到局部最小值。鞍点的名称取自马鞍。

局部最小值之所以得名,是因为在局部区域中,该点的损失函数值是最小的。相比之下,全局最小值之所以得名,是因为在该点,损失函数的值在整个损失函数域中是全局最小的。

2. 梯度消失和梯度爆炸

在深度神经网络中,如果模型使用梯度下降和反向传播进行训练,除了局部最小值和鞍点之外,还会出现两个问题。

梯度消失

当梯度小于预期时,就会发生梯度消失。在反向传播期间,此梯度变得更小,导致网络早期层的学习率低于后期层。一旦发生这种情况,权重参数将更新,直到它们变得微不足道。

梯度爆炸

梯度爆炸与梯度消失相反,因为它发生在梯度过大并创建稳定模型时。此外,在这种情况下,模型权重增加,并且它们将表示为NaN。这个问题可以通过降维技术解决,这有助于最小化模型中的复杂性。


机器学习中梯度下降的MCQ

1. 批评者认为学习机中梯度下降算法的主要目标是什么?

  1. 为了获得成本最高的输出,即最大化成本函数
  2. 而且它大多也旨在降低成本函数的值。
  3. 为了实现高效学习,必须优化学习率
  4. 以减小梯度的大小

答案: B) 完成成本函数的优化

解释: 梯度下降的主要目的是逐步更新模型的参数,从而使成本函数(反映开发模型的预测与实际值之间的差异)的值最小化。


2. 他们问在成本函数上下文中哪个给定语句是正确的?

  1. 它决定了所采用模型的准确性。
  2. 它估计单个训练样本的误差总和。
  3. 它评估整个数据集的实际值与预测值或预期值之间的偏差。
  4. 它总是对应于问题实际3D景观的真实全局最小值。

答案: C) 它分别估计实际值和预测值,然后通过统计数据描绘整个样本的比较。

解释: 成本函数决定整个集合中的全局误差,这表明模型的性能并添加单个训练样本的误差。


3. 梯度下降最有效地用于大数据是什么?

  1. 批量梯度下降
  2. 随机梯度下降
  3. 迷你批量梯度下降
  4. 以上都不是

答案: C) 迷你批量梯度下降

解释: 迷你批量梯度下降是一种介于批量类型和随机类型之间的方法。这是因为它一次处理小批量数据,同时处理大型数据集,由于噪声,其计算量小于随机梯度下降。


4. 在梯度下降技术中,将学习率设置高于最佳水平会有什么后果?

  1. 模型的解将接近一个非常小的值。
  2. 它可能远高于最小值甚至完全错过最小值。
  3. 误差所采用的方差程度会更高;因此,模型收敛需要更长时间。
  4. 另一方面,模型将停止学习。

答案: B) 它可能会超过最小值并无法达到最小值。

解释: 当学习率设置得很高时,AI算法可能会采取更大的步长,并且可能会绕过或超过最小值,甚至可能会发散。


5. 什么是随机梯度下降(SGD)?

  1. “I”的值包括每个参数更新的整个数据集。
  2. 它在每个训练样本后调整参数。
  3. 它在计算上比批量梯度下降更稳定。
  4. 它比迷你批量梯度下降收敛所需的时间更少,尤其是在大型数据集上使用时。

答案: B) 它仅在处理或准备好整个训练样本后才更新参数。

解释: 另一方面,随机梯度下降在处理每个或每个训练样本后更新参数;虽然这可能导致更快的更新,但它会给梯度估计过程增加更多噪声。


6. 成本函数和损失函数之间的主要区别可能是什么?

  1. 损失函数计算误差的平均值,它适用于整个集合,而成本函数适用于一个训练样本。
  2. 成本函数和损失函数可以互换。
  3. 成本函数给出整个数据集的误差,而损失函数给出任何一个训练样本的误差。
  4. 成本函数仅用于分类问题。

答案: C) 成本函数对每个训练样本的误差求和,而损失函数仅对一个训练样本求和。

解释: 损失函数量化单个实例的损失,而成本函数确定所有实例的平均损失以评估模型的效率。


7. 以下哪项不是梯度下降算法的典型问题?

  1. 局部最小值
  2. 梯度消失
  3. 过拟合
  4. 梯度爆炸

答案: C) 过拟合

解释: 过拟合与模型在新数据上的表现好坏是与梯度下降问题不同的讨论主题,其中局部最小值、梯度消失和梯度爆炸是阻碍模型发挥最佳性能的主要障碍。


8. 学习率在梯度下降方法中的作用是什么?

  1. 为了调节梯度的方向。
  2. 为了评估每次迭代中参数更新的大小。
  3. 为了避免模型达到最小值
  4. 为了在过程的每次迭代中提高模型的准确性。

答案: B) 为了决定每次迭代中发生的参数更新的大小。

解释: 学习率决定了改变参数的步长。我们知道,学习率小,虽然更新权重需要更长时间,但更新非常准确;而学习率大,可能需要更短的时间,但更新可能非常不准确。


9. 梯度消失问题在何种情况下表现出来?

  1. 当梯度值变得非常大时。
  2. 当学习率过高时。
  3. 当梯度值非常低,因此学习率很慢时。
  4. 一旦模型学习了结果。

答案: C) 当梯度值低导致学习缓慢时。

解释: 梯度消失问题存在于梯度极小且学习缓慢的初始阶段,尤其是在深度神经网络中。


10. 哪种梯度下降变体仅在完整训练数据集通过后每个周期更新一次参数?

  1. 随机梯度下降
  2. 批量梯度下降
  3. 迷你批量梯度下降
  4. 以上都不是

答案: B) 批量梯度下降

解释: 批量梯度下降涉及使用整个数据集计算梯度,然后一次性对参数进行一次更新,无论训练样本的数量如何。


下一主题成人数据集