什么是梯度下降?

什么是梯度下降?

梯度下降是一种优化算法,通常用于训练机器学习模型和神经网络。它最大限度减少预测结果和实际结果之间的误差以训练机器学习模型。

训练数据帮助这些模型随着时间的推移进行学习,梯度下降中的成本函数专门作为一个标尺,在每次参数更新迭代时衡量其准确性。在该函数接近或等于零之前,模型继续调整其参数以产生尽可能小的误差。在优化机器学习模型以提高准确性后,它们就可以作为人工智能 (AI) 和计算机科学应用场景中的强大工具。

小球在轨道上滚动的三维设计

最新的 AI 新闻 + 洞察分析

在每周的 Think 时事通讯中,发现专家精选的有关 AI、云等的洞察分析和新闻。 

梯度下降的工作方式

在我们深入研究梯度下降之前,回顾一下线性回归中的一些概念可能会有所帮助。您可能还记得以下直线斜率公式,即 y = mx + b,其中 m 表示斜率,b 是 y 轴上的截距。

您可能还记得如何在统计学中绘制散点图并找到最佳拟合直线,这需要使用均方误差公式计算实际输出和预测输出 (y-hat) 之间的误差。梯度下降算法的行为类似,但它基于凸函数。

起点只是我们评估性能的一个任意点。从这个起点,我们将找到导数(或斜率),然后可以使用切线观察斜率的陡度。将根据斜率更新参数 - 即权重和偏差。起点处的斜率将会更陡,但随着生成新的参数,陡度应逐渐减小,直至到达曲线上的最低点(称为收敛点)。

与在线性回归中查找最佳拟合直线类似,梯度下降的目标是最小化成本函数,即预测 y 与实际 y 之间的误差。为此,它需要使用两个数据点 - 方向和学习率。这些因素决定了将来迭代的偏导数计算,以使其逐渐达到局部或全局最小值(即收敛点)。

  • 学习率(也称为步长或 α)是达到最小值所需的步长。这通常是一个很小的值,并根据成本函数行为进行评估和更新。较高的学习率导致更大的步长,但存在超过最小值的风险。相反,较低的学习率具有较小的步长。虽然它具有更高精度的优点,但迭代次数影响整体效率,因为这需要更多时间和计算才能达到最小值。
  • 成本(或损失)函数测量当前位置的实际 y 与预测 y 之间的差异或误差。这会向机器学习模型提供反馈,使模型调整参数以最大限度减少误差并找到局部或全局最小值,从而提高模型的效率。模型不断迭代,沿着最陡的下降方向(或负梯度)移动,直到成本函数接近或等于零。此时,模型将停止学习。此外,虽然成本函数和损失函数被认为是同义词,但两者之间存在细微差别。值得注意的是,损失函数指的是一个训练样本的误差,而成本函数计算整个训练集的平均误差。

梯度下降类型

具有三种类型的梯度下降学习算法:批量梯度下降、随机梯度下降和小批量梯度下降。

批量梯度下降

批量梯度下降对训练集中的每个点的误差求和,仅在评估所有训练样本后才更新模型。这个过程称为训练周期。

虽然这种批处理提高了计算效率,但对于大型训练数据集来说,它可能仍然需要很长的处理时间,因为它仍然需要将所有数据存储到内存中。批量梯度下降通常还会产生稳定的误差梯度和收敛,但有时该收敛点并不是最理想的,找到的是局部最小值,而不是全局最小值。

随机梯度下降

随机梯度下降 (SGD) 为数据集中的每个样本运行一个训练周期,并每次更新一个训练样本的参数。由于您仅需保留一个训练样本,因此,更容易将其存储在内存中。虽然这些频繁的更新可以提供更多细节和更高速度,但与批量梯度下降相比,它可能会导致计算效率下降。它的频繁更新可能会导致嘈杂的梯度,但这也可能有助于避开局部最小值并找到全局最小值。

小批量梯度下降

小批量梯度下降结合了批量梯度下降和随机梯度下降概念。它将训练数据集拆分为小批量,并对每个批次执行更新。这种方法兼顾了批量梯度下降的计算效率和随机梯度下降的速度。

专家荟萃 | 播客

解码 AI:每周新闻摘要

加入我们的世界级专家团队,包括工程师、研究人员、产品负责人等,他们将穿透 AI 的喧嚣,为您带来最新的 AI 新闻和见解。

梯度下降的挑战

虽然梯度下降是解决优化问题的最常见方法,但它确实面临一系列挑战。其中包括:

局部最小值和鞍点

对于凸优化问题,梯度下降可以很容易找到全局最小值,但随着非凸优化问题的出现,梯度下降可能很难找到全局最小值,即模型可以获得最佳结果的位置。

回想一下,在成本函数的斜率等于或接近零时,模型将停止学习。一些超出全局最小值的场景也可能会产生该斜率,即局部最小值和鞍点。局部最小值模拟全局最小值的形状,其中成本函数的斜率在当前点的两侧增加。然而,对于鞍点,负梯度仅存在于点的一侧,在一侧达到局部最大值,在另一侧达到局部最小值。它的名字灵感来自于马鞍。

嘈杂的梯度可以帮助梯度避开局部最小值和鞍点。

梯度消失和梯度爆炸

在更深的神经网络中,特别是递归神经网络,在使用梯度下降和反向传播训练模型时,我们还可能会遇到另外两个问题。

  • 梯度消失:在梯度太小时,将会发生这种情况。当我们在反向传播期间向后移动时,梯度继续变小,从而导致网络中的较早层比后面层的学习速度更慢。在发生这种情况时,将会更新权重参数,直到它们变得微不足道(即,变为 0),从而导致算法不再学习。
  • 梯度爆炸:在梯度太大时,将会发生这种情况,从而创建不稳定的模型。这种情况下,模型权重会变得过大,最终表示为 NaN。该问题的一种解决方案是利用降维技术,这可能有助于最大限度降低模型中的复杂性。
相关解决方案
IBM watsonx.ai

使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。

了解 watsonx.ai
人工智能 (AI) 解决方案

借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。

深入了解 AI 解决方案
AI 咨询与服务

通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。

深入了解人工智能服务
采取后续步骤

一站式访问跨越 AI 开发生命周期的功能。利用用户友好型界面、工作流并访问行业标准 API 和 SDK,生成功能强大的 AI 解决方案。

深入了解 watsonx.ai 预约实时演示