多元优化
最速下降(steepest descent)
想象你站在雾蒙蒙的山坡上,想尽快到达谷底,却只能感觉脚下的坡度。最明智的一步,是朝此刻下降最陡的方向迈出。最速下降正是把这种本能精确地化为一种迭代方法,用来最小化多元函数。
梯度 grad f 指向 f 增长最快的方向,于是它的相反方向 minus grad f 指向下降最快的方向——你当前点处最陡的下坡方向。该方法沿这个方向迈一步,在新点重新计算梯度,再重复,生成序列 x_new = x_old - t 乘 grad f,其中步长 t 取得让进展良好(精确线搜索挑选沿该射线最小化 f 的那个 t)。由于每一步都径直向下,f 的值在每次迭代都减小,直到梯度近乎为零,标志着一个驻点。
最速下降是几乎所有一阶优化的概念祖先。它诚实的弱点广为人知。在又长又窄的山谷里它锯齿般来回摆:因为每一步都与上一步正交,它在谷底来回横穿,而不是顺着谷长往下跑,收敛极慢。而且它只找到局部极小——下坡路碰巧通向哪里就到哪里。这些局限催生了更聪明的变体(共轭梯度、动量、牛顿型方法),但其核心思想——沿负梯度走——依然是几乎所有大型模型训练的心跳。
对 f(x, y) = x^2 + 10 y^2,在 (1, 1) 处的梯度为 (2, 20)。最速下降步沿 (-2, -20) 前进——压倒性地朝更小的 y。在这个被拉长的碗上迭代点呈锯齿,说明了为何病态问题会使朴素最速下降变慢。
最速下降在被拉长的山谷中锯齿前进——相邻步骤正交,故沿谷的进展缓慢。
最陡方向只是局部最陡、且只在所选坐标下最陡——它并不是通往极小的直线。这正是为什么纯粹的最速下降虽然总是下坡,却可能低效。
又称
另见