梯度下降可视化

目录

我们提供了一个互动计算器,用于可视化应用于二维函数 \( f(x,y) \) 的梯度下降算法的收敛过程。
梯度下降算法通过迭代调整 \( x \) 和 \( y \) 的值来找到函数 \( f(x, y) \) 的最小值。从初始值 \( x_0 \) 和 \( y_0 \) 开始,算法利用函数的梯度逐步向最小值移动,步长由学习率 \( r \) 控制。过程会持续进行,直到变量值的变化足够小或达到其他停止条件。 以下是针对函数 \( f(x, y) \) 的梯度下降过程的分步描述,初始值为 \( x_0 \) 和 \( y_0 \),学习率为 \( r \):

梯度下降的描述

1. 初始化:
- 以变量 \( x \) 和 \( y \) 的初始猜测值开始。设这些初始值为 \( x_0 \) 和 \( y_0 \)。
- 选择一个学习率 \( r \),它控制朝向最小值移动的步长。
2. 计算梯度:
- 对函数 \( f(x, y) \) 计算相对于 \( x \) 和 \( y \) 的偏导数: \[ \dfrac{\partial f}{\partial x} \quad \text{和} \quad \dfrac{\partial f}{\partial y} \] - 在当前的 \( x \) 和 \( y \) 值下计算这些偏导数。将这些导数记为 \( \dfrac{\partial f}{\partial x}(x_k, y_k) \) 和 \( \dfrac{\partial f}{\partial y}(x_k, y_k) \),其中 \( k \) 是当前迭代的索引。
3. 更新规则: - 通过朝梯度相反的方向移动来调整 \( x \) 和 \( y \) 的值(因为我们正在最小化函数): \[ x_{k+1} = x_k - r \dfrac{\partial f}{\partial x}(x_k, y_k) \] \[ y_{k+1} = y_k - r \dfrac{\partial f}{\partial y}(x_k, y_k) \] - 这里,\( x_{k+1} \) 和 \( y_{k+1} \) 是一次迭代后 \( x \) 和 \( y \) 的更新值。
4. 迭代:
- 重复计算梯度和更新 \( x \) 和 \( y \) 的值,直到满足停止条件。停止条件可以是:
- 最大迭代次数。
- 迭代之间 \( x \) 和 \( y \) 值的变化小于预定义的阈值。
- 梯度的大小 \( \dfrac{\partial f}{\partial x}(x_k, y_k) \) 和 \( \dfrac{\partial f}{\partial y}(x_k, y_k) \) 小于预定义的阈值。
5. 收敛: - 一旦满足停止条件,\( x \) 和 \( y \) 的值应接近使函数 \( f(x, y) \) 达到最小值的值。
另一个梯度下降计算器也可用于研究收敛性。

计算器的使用

本计算器仅用于教育目的,以可视化梯度下降算法。因此,建议输入的函数应有最小值,并且初始值可以通过图形方式找到。
输入函数 \( f(x,y) \) 、\( x \) 和 \( y \) 的初始值 \( x_0 \) 和 \( y_0 \) 以及学习率 \( r \)。
输出包括:
1) 函数 \( f(x,y) \) 的偏导数 \( \dfrac{\partial f}{\partial x} \; \text{和} \; \dfrac{\partial f}{\partial y} \)
2) 步数以及更新后的 \( x \) 和 \( y \) 的值,
3) 更新后 \( x \) 和 \( y \) 处的偏导数的值。
4) 所有更新后 \( x \) 和 \( y \) 值的图形。
5) 表格中显示 \( x \) 和 \( y \) 的值、偏导数的值以及 \( f(x,y) \) 的值。
注意 从下表可以看到,当收敛时,偏导数 \( \dfrac{\partial f}{\partial x} \; \text{和} \; \dfrac{\partial f}{\partial y} \) 趋近于零,\( f(x,y) \) 趋近于其局部最小值。

输入 \( f(x,y) = \)

输入初始点 \( (x_0, y_0) \):

输入学习率 \( r \) =

输出




步数 \( x \) \( y \) \( \dfrac{\partial f}{\partial x} \) \( \dfrac{\partial f}{\partial y} \) \( f(x, y) \)