梯度下降

Gradient Descent

梯度下降是机器学习深度学习中最常用、最基础的优化算法。其核心思想是,通过沿着损失函数(或目标函数)梯度的反方向,以迭代的方式调整模型参数,从而逐步逼近损失函数的局部最小值(或全局最小值)。

核心思想:下山寻谷

想象你身处一座大山(损失函数曲面)的某个位置,目标是找到山谷(损失函数的最小值)。由于你无法一眼望到整个山谷,最直观的方法就是:

  1. 确定当前位置的坡度 (梯度): 找到当前位置最陡峭的下降方向。
  2. 迈出一步: 沿着这个最陡峭的下降方向走一小步。
  3. 重复: 不断重复上述过程,直到到达山谷底部。

这个“坡度”就是损失函数对模型参数的梯度 (Gradient),它是一个向量,指向函数值增长最快的方向。因此,我们沿着梯度的反方向移动,就能使函数值减小。

数学公式

对于一个损失函数 J(θ),其中 θ 是模型的参数(如权重和偏置),梯度下降的参数更新规则为:

θnew=θoldαJ(θold)

其中:

学习率 (Learning Rate)

学习率 α 是梯度下降中最重要的超参数之一。它的选择直接影响着算法的收敛速度和能否找到最优解。

在实践中,通常会采用学习率调度 (Learning Rate Scheduling) 策略,在训练过程中动态调整学习率,例如逐渐减小学习率。

主要变种

梯度下降有多种变种,主要区别在于每次更新参数时使用的数据量:

1. 批量梯度下降 (Batch Gradient Descent, BGD)

2. 随机梯度下降 (Stochastic Gradient Descent, SGD)

3. 小批量梯度下降 (Mini-Batch Gradient Descent)

4. 自适应学习率优化器

为了进一步提高收敛速度和稳定性,研究者们开发了许多更高级的优化器,它们能够自适应地调整学习率

挑战


机器学习
神经网络