一文彻底搞懂深度学习 - 梯度下降(Gradient Descent)

文摘   科技   2024-10-29 23:21   湖北  

梯度下降(Gradient Descent)是深度学习中一种至关重要的优化算法,其核心目的是寻找最佳模型参数或权重,从而最小化损失函数。该算法通过迭代的方式,不断调整参数值,沿着损失函数负梯度方向(即函数值下降最快的方向)进行搜索,直至收敛至一个局部最小值。这一过程中,每次迭代都会根据当前参数位置的梯度信息,以及预设的学习率,来更新参数值,从而逐步逼近最优解。

Gradient Descent

一、梯度下降

梯度下降(Gradient Descent)是什么?梯度下降是一种用于寻找函数局部最小值的优化算法。

它通过迭代的方式,不断调整模型参数,以最小化一个预先定义的损失函数(或称为代价函数)。

梯度下降的工作原理是什么?基于函数梯度(或导数)的迭代优化算法,旨在找到函数的局部最小值。

梯度下降利用函数关于其参数的梯度(即一阶导数)来指导参数的更新方向。梯度是一个向量,指向函数值增长最快的方向。为了找到函数的最小值,我们应该沿着梯度的反方向(即函数值下降最快的方向)更新参数。

  • 梯度梯度是一个向量,其方向指向函数值增长最快的方向

  • 偏导数:对于多元函数,梯度是一个包含所有参数偏导数的向量。

  • 梯度的反方向:在梯度下降中,我们关注的是梯度的反方向,因为这是函数值下降最快的方向

二、BGD & SGD & MBGD

梯度下降的算法有哪些?批量梯度下降(BGD)稳定但计算量大,随机梯度下降(SGD)计算快但收敛不稳定,小批量梯度下降(Mini-batch GD)则结合了二者的优点,通过选择适当的批量大小来平衡计算量和收敛稳定性
批量梯度下降(Batch Gradient Descent, BGD)是什么?在每次迭代中,批量梯度下降使用整个数据集来计算损失函数的梯度,并根据这个梯度来更新模型的所有参数。
(1)BGD优点:易于实现,全局收敛性较好,适用于凸优化问题。
  • 由于使用了整个数据集,BGD的梯度估计更加准确,因此通常能够更稳定地收敛到(局部)最小值。

  • 在凸优化问题中,BGD能够保证收敛到全局最小值(如果学习率设置得当)。

(2)BGD缺点:计算量大,需要处理整个数据集,对于大数据集来说可能非常耗时。

  • 计算量大,特别是在处理大规模数据集时,每次迭代都需要遍历整个数据集,导致训练过程非常缓慢。

  • 需要将整个数据集加载到内存中,这在数据集非常大时可能不可行。

随机梯度下降(Stochastic Gradient Descent, SGD)是什么?在每次迭代中,SGD随机选择一个样本来计算梯度,并据此更新模型参数。
(1)SGD优点:计算量小,每次迭代只需要处理一个样本,训练速度快。
  • 计算量小,每次迭代只需要处理一个样本,因此训练速度非常快。
  • 适用于在线学习或数据流场景,可以实时更新模型。

(2)SGD缺点:梯度估计的噪声较大,可能导致收敛过程不稳定,可能陷入局部最小值或鞍点。

  • 由于梯度估计基于单个样本,因此梯度估计的噪声较大,导致更新方向波动大,可能使收敛过程不稳定。

  • 可能需要更多的迭代次数才能达到收敛。

  • 在某些情况下,SGD可能无法收敛到全局最小值,而是停留在局部最小值或鞍点。

小批量梯度下降(Mini-batch Gradient Descent, MBGD)是什么?在每次迭代中,MBGD使用一小批(batch)样本来计算梯度,并据此更新模型参数。
(1)MBGD优点:计算量小,每次迭代只需要处理一个样本,训练速度快。
  • 相对于BGD,MBGD减少了每次迭代的计算量,提高了训练速度。

  • 相对于SGD,MBGD的梯度估计更加稳定,减少了更新方向的波动,有助于更稳定地收敛。

  • 可以通过调整batch size来平衡计算量和梯度估计的稳定性。

(2)MBGD缺点:梯度估计的噪声较大,可能导致收敛过程不稳定,可能陷入局部最小值或鞍点。

  • 需要选择一个合适的batch size,这可能需要一些实验和调参。

  • 仍然需要一定的内存来存储batch中的样本。

限时五折优惠,快快抢购吧!

架构师带你玩转AI
分享人工智能,让所有人玩转AI
 最新文章