点击画布设置起点
点击设置起点 | 等高线颜色:蓝色=低损失 → 红色=高损失
Adam跟踪梯度的一阶矩m和二阶矩v,为每个参数自适应调整学习率。是大多数深度学习框架的默认选择。
实时可视化SGD、Adam、RMSprop等优化算法在2D损失函数上的动作。直观理解机器学习的优化过程。
点击画布设置起点
点击设置起点 | 等高线颜色:蓝色=低损失 → 红色=高损失
Adam跟踪梯度的一阶矩m和二阶矩v,为每个参数自适应调整学习率。是大多数深度学习框架的默认选择。
深度学习模型训练:从图像识别的CNN到自然语言处理的Transformer,所有神经网络的权重参数学习都依赖梯度下降法的变种。损失函数(误差)通过Adam等优化器最小化,同时调整数百万到数十亿个参数。
CAE中的结构优化:在汽车车身或飞机机翼等零件的形状优化中,通过敏感度分析得到目标函数的梯度信息,用梯度下降法的变种逐步改变形状参数,在保证强度的前提下实现轻量化。
推荐系统:从用户历史行为数据学习用户偏好模型,用损失函数衡量预测精度,通过SGD及其变种优化模型参数,生成电影、商品的个性化推荐清单。
金融投资组合优化:在限制风险范围内最大化预期收益的问题中,也会用梯度下降法的约束优化版本来求解各资产的最优配置比例。
首先,「学习率越大收敛越快」是一个危险的误区。在Rosenbrock函数上用SGD试试,把学习率从0.1提高到1.0。初始几步下降确实快,但很快就会跳出山谷,反复振动甚至发散。实务中应从较小的值开始,逐步调整。「学习率衰减」(如每100步降低10倍)是标准做法。
其次,「用Adam就万事大吉」的过度信心是不对的。虽然Adam很强大,但对于不同问题,默认参数(β₁=0.9, β₂=0.999)不一定是最优的。在极度嘈杂的梯度问题上,可以试试把β₂改为0.99,让适应学习率更加「健忘」,动作更活跃。用工具改β₂=0.9试试,能看到显著的行为变化。
最后,「找到最小值就成功」的想法是片面的。看Himmelblau函数,有4个等价的局部最小值。改变起点,算法会收敛到不同的最小值。实际机器学习也面临同样问题:找到的「最小值」可能是不理想的局部最优解,不是全局最优。「随机重启」(多次尝试不同初值)是缓解这一风险的基本技巧。
在Rosenbrock函数f(x,y)=(1-x)²+100(y-x²)²上,从初始点(x₀,y₀)=(-1.5, 2.5)开始,使用学习率0.001和Adam优化器(β₁=0.9,β₂=0.999),第1500步时损失值收敛到0.0012,梯度范数降至0.0008以下。相比之下,相同条件下SGD(学习率0.01)因梯度发散而表现不稳定,充分体现了Adam的稳定性