什么是 梯度下降?
梯度下降(Gradient Descent)是一种一阶迭代优化算法,通过沿着梯度的负方向(即最陡下降方向)重复移动来寻找函数的最小值。它是训练机器学习模型、最小化损失函数的基础优化技术,常见变体包括随机梯度下降(SGD)、小批量梯度下降(Mini-batch)以及 Adam、RMSprop、AdaGrad 等自适应优化器。
快速了解
| 全称 | Gradient Descent Optimization Algorithm |
|---|---|
| 创建时间 | 1847 年由 Augustin-Louis Cauchy 提出 |
| 规范文档 | 官方规范 |
工作原理
梯度下降通过计算损失函数相对于模型参数的梯度(偏导数),并沿梯度的反方向更新参数来工作。该算法有多种变体:批量梯度下降使用整个数据集计算梯度,随机梯度下降(SGD)每次迭代使用单个样本,小批量梯度下降使用小批量数据。学习率超参数控制每次更新的步长。Adam、RMSprop 和 AdaGrad 等高级优化器通过自适应调整学习率来改善收敛性。主要挑战包括陷入局部最小值、鞍点问题以及选择合适的学习率。动量法、学习率调度和梯度裁剪等技术有助于解决这些问题。
主要特点
- 通过沿梯度反方向移动来迭代更新参数
- 学习率控制步长大小,对收敛性有显著影响
- 在非凸函数中可能收敛到局部最小值而非全局最小值
- 变体包括批量、随机(SGD)和小批量方法
- Adam 等高级优化器结合动量与自适应学习率
- 需要可微分的损失函数以计算梯度
常见用途
- 通过反向传播训练神经网络
- 线性回归参数优化
- 用于分类任务的逻辑回归
- 支持向量机优化
- 大规模深度学习模型训练
示例
Loading code...常见问题
什么是学习率,为什么它很重要?
学习率是控制每次参数更新步长的超参数。学习率过高会导致算法越过最小值并发散,而学习率过低会导致收敛缓慢。找到合适的学习率对于有效训练至关重要。
批量、随机和小批量梯度下降有什么区别?
批量梯度下降每次迭代使用整个数据集计算梯度(准确但慢)。随机梯度下降(SGD)每次迭代使用单个样本(快但有噪声)。小批量梯度下降使用小批量数据,在速度和准确性之间取得平衡,是实践中最常用的方法。
什么是局部最小值,它们如何影响梯度下降?
局部最小值是损失函数低于周围点但不是绝对最低(全局最小值)的点。梯度下降可能会陷入局部最小值,特别是在非凸函数中。动量法、随机重启和高级优化器等技术有助于逃离局部最小值。
什么是 Adam 优化器,为什么它很受欢迎?
Adam(自适应矩估计)结合了两种其他优化器的优点:动量和 RMSprop。它根据梯度的一阶和二阶矩估计为每个参数调整学习率。Adam 之所以受欢迎,是因为它在许多问题上都能很好地工作,且只需最少的超参数调优。
梯度下降与反向传播有什么关系?
反向传播是通过从输出层到输入层应用微积分链式法则来计算神经网络中梯度的算法。然后梯度下降使用这些计算出的梯度来更新网络权重。它们共同构成了神经网络训练的基础。