使用说明:
(1)选择目标函数
在“函数”下拉框中选择需要演示的目标函数 z = f(x,y)。
不同函数对应不同的地形结构,用于展示梯度下降在凸函数、非凸函数及多局部最优函数上的不同表现。
(2)设置初始点 (x₀, y₀)
初始点表示梯度下降算法的起始位置。
对于非凸函数,不同的初始点可能导致算法收敛到不同的位置(全局最优或局部最优)。
(3)设置算法参数
学习率 η:控制每一步沿负梯度方向移动的步长大小。
学习率过大可能导致震荡甚至发散,过小则收敛速度较慢。
每秒步数:仅影响动画播放速度,不影响算法本身的数值结果。
最大迭代:限制梯度下降的最大更新次数,用于防止无限迭代。
停止阈值:当梯度范数 ‖∇f‖ 小于该阈值时,认为算法已基本收敛并自动停止。
(4)执行梯度下降
若在设置参数后进行了修改,需先点击“重置”按钮,再点击“开始”或“单步”执行梯度下降。
点击“开始”将以动画形式连续执行梯度下降;点击“单步”可逐步观察每一次梯度更新。
(5)结果观察与分析
红色折线表示梯度下降轨迹,黄色点表示初始位置。
通过观察轨迹是否进入谷底、是否停留在某个局部极小值,可分析目标函数地形与参数设置对算法收敛行为的影响。
(6)重复实验
点击“重置”按钮可清空当前轨迹,并使用新的初始点或参数重新进行实验,从而对不同情形进行对比分析。
(梯度下降更新规则说明)
本程序采用的是
标准固定步长梯度下降算法(Vanilla Gradient Descent)。
在第 k 次迭代时,算法按照如下规则更新变量:
(xk+1, yk+1) = (xk, yk) − η ∇f(xk, yk)
其中 ∇f(x,y) 表示目标函数在当前点的梯度方向,η 为固定学习率。
每一步更新均沿着函数值下降最快的方向(负梯度方向)进行。
该方法不包含动量项或自适应步长机制,便于直观分析梯度方向、步长选择以及目标函数地形对收敛行为的影响。