训练数据帮助这些模型随着时间的推移进行学习,梯度下降中的成本函数专门作为一个标尺,在每次参数更新迭代时衡量其准确性。在该函数接近或等于零之前,模型继续调整其参数以产生尽可能小的误差。在优化机器学习模型以提高准确性后,它们就可以作为人工智能 (AI) 和计算机科学应用场景中的强大工具。
在我们深入研究梯度下降之前,回顾一下线性回归中的一些概念可能会有所帮助。您可能还记得以下直线斜率公式,即 y = mx + b,其中 m 表示斜率,b 是 y 轴上的截距。
您可能还记得如何在统计学中绘制散点图并找到最佳拟合直线,这需要使用均方误差公式计算实际输出和预测输出 (y-hat) 之间的误差。梯度下降算法的行为类似,但它基于凸函数。
起点只是我们评估性能的一个任意点。从这个起点,我们将找到导数(或斜率),然后可以使用切线观察斜率的陡度。将根据斜率更新参数 - 即权重和偏差。起点处的斜率将会更陡,但随着生成新的参数,陡度应逐渐减小,直至到达曲线上的最低点(称为收敛点)。
与在线性回归中查找最佳拟合直线类似,梯度下降的目标是最小化成本函数,即预测 y 与实际 y 之间的误差。为此,它需要使用两个数据点 - 方向和学习率。这些因素决定了将来迭代的偏导数计算,以使其逐渐达到局部或全局最小值(即收敛点)。
具有三种类型的梯度下降学习算法:批量梯度下降、随机梯度下降和小批量梯度下降。
批量梯度下降对训练集中的每个点的误差求和,仅在评估所有训练样本后才更新模型。这个过程称为训练周期。
虽然这种批处理提高了计算效率,但对于大型训练数据集来说,它可能仍然需要很长的处理时间,因为它仍然需要将所有数据存储到内存中。批量梯度下降通常还会产生稳定的误差梯度和收敛,但有时该收敛点并不是最理想的,找到的是局部最小值,而不是全局最小值。
随机梯度下降 (SGD) 为数据集中的每个样本运行一个训练周期,并每次更新一个训练样本的参数。由于您仅需保留一个训练样本,因此,更容易将其存储在内存中。虽然这些频繁的更新可以提供更多细节和更高速度,但与批量梯度下降相比,它可能会导致计算效率下降。它的频繁更新可能会导致嘈杂的梯度,但这也可能有助于避开局部最小值并找到全局最小值。
小批量梯度下降结合了批量梯度下降和随机梯度下降概念。它将训练数据集拆分为小批量,并对每个批次执行更新。这种方法兼顾了批量梯度下降的计算效率和随机梯度下降的速度。
虽然梯度下降是解决优化问题的最常见方法,但它确实面临一系列挑战。其中包括:
对于凸优化问题,梯度下降可以很容易找到全局最小值,但随着非凸优化问题的出现,梯度下降可能很难找到全局最小值,即模型可以获得最佳结果的位置。
回想一下,在成本函数的斜率等于或接近零时,模型将停止学习。一些超出全局最小值的场景也可能会产生该斜率,即局部最小值和鞍点。局部最小值模拟全局最小值的形状,其中成本函数的斜率在当前点的两侧增加。然而,对于鞍点,负梯度仅存在于点的一侧,在一侧达到局部最大值,在另一侧达到局部最小值。它的名字灵感来自于马鞍。
嘈杂的梯度可以帮助梯度避开局部最小值和鞍点。
在更深的神经网络中,特别是递归神经网络,在使用梯度下降和反向传播训练模型时,我们还可能会遇到另外两个问题。
IBM Granite 是我们开放式、性能优异、值得信赖的 AI 模型系列,专门为企业量身定制,并经过优化,可以帮助您扩展 AI 应用程序。深入了解语言、代码、时间序列和护栏选项。
我们对 2,000 家组织进行了调查,旨在了解他们的 AI 计划,以发现哪些方法有效、哪些方法无效,以及如何才能取得领先。
深入探讨监督学习方法,如支持向量机和概率分类器。
学习基本概念并通过亲手实验、课程、指导项目、试用等方式培养您的技能。
了解如何为您的用例选择最合适的 AI 基础模型。