梯度下降法

目录

介绍

梯度下降法是一种迭代优化算法,它通过调整变量向量 \( \mathbf{x} = \begin{pmatrix} x_1 \\ x_2 \\ \dots \\ x_n \end{pmatrix} \) 来找到可微函数 \( f(\mathbf{x}) \) 的局部最小值。算法从变量向量 \( \mathbf{x} \) 的初始猜测 \( \mathbf{x}_0 \) 开始,通过利用函数的梯度朝着最小值方向进行调整,步长由学习率 \( r \) 控制。该过程持续进行,直到 \( \mathbf{x} \) 的值变化足够小、梯度的大小接近于零或满足其他停止准则为止。

梯度下降法的更新公式

梯度下降法的核心思想是通过迭代调整变量来找到函数的最小值。这种调整由以下更新公式指导: \[ \mathbf{x}_{k+1} = \mathbf{x}_k - r \nabla f(\mathbf{x}_k) \] 其中,\( \mathbf{x} \) 是变量向量,\( r \) 是学习率,且 \( r \gt 0 \),而 \( \nabla f(\mathbf{x}_k) \) 是函数 \( f \) 在 \( \mathbf{x} = \mathbf{x}_k \) 处的梯度: \[ \nabla f(\mathbf{x}) = \begin{pmatrix} \dfrac{\partial f}{\partial x_1} \\ \dfrac{\partial f}{\partial x_2} \\ \dots \\ \dfrac{\partial f}{\partial x_n}\\ \end{pmatrix} \]
该更新公式来源于梯度 \( \nabla f(\mathbf{x}) \) 指向函数 \( f \) 最陡增大的方向的概念。为了最小化 \( f \),我们在梯度的相反方向移动。学习率 \( r \) 决定了我们在这个方向上前进步伐的大小。

梯度下降法的详细描述

1. 初始化:
- 从变量向量 \( \mathbf{x} \) 的初始猜测值开始。设初始值为 \( \mathbf{x}_0 \)。
- 选择学习率 \( r \),它控制向最小值方向迈进的步伐大小。
2. 计算梯度:
- 对于函数 \( f(\mathbf{x}) \),计算梯度 \( \nabla f(\mathbf{x}) \)。
- 在当前 \( \mathbf{x} = \mathbf{x}_k \) 的值处评估梯度。将第 \( k \) 次迭代时的梯度记为 \( \nabla f(\mathbf{x}_k) \)。
3. 更新规则:
- 使用更新公式调整 \( \mathbf{x} \) 的值: \[ \mathbf{x}_{k+1} = \mathbf{x}_k - r \nabla f(\mathbf{x}_k) \] - 其中,\( \mathbf{x}_{k+1} \) 是一次迭代后的 \( \mathbf{x} \) 更新值。
4. 迭代:
- 重复计算梯度并更新 \( \mathbf{x} \) 的值,直到满足停止准则。停止准则可以是:
- 最大迭代次数。 - 迭代之间 \( \mathbf{x} \) 的值变化小于预定阈值。
- 梯度的大小 \( \|\nabla f(\mathbf{x}_k)\| \) 小于预定阈值。
5. 收敛:
- 一旦满足停止准则,\( \mathbf{x} \) 的值应接近于函数 \( f(\mathbf{x}) \) 的最小值。
可以使用一个计算器来 可视化梯度下降法 算法,以深入理解该算法。
另一个 梯度下降法计算器 也可以用来研究算法的收敛性。