大家的AI
机器学习Playground 试玩
加载中…

学习

Ch.08

方向导数与梯度:多维空间中的最陡上升

按章节的数学图示

选择章节后,下方图示会切换为该章节内容。可一览中级数学的脉络。

方向导数与梯度: 找到该走的路

看等高线地图时,梯度 ∇f\nabla f∇f 与等高线成直角,指向最陡的上坡。方向导数 DufD_{\mathbf{u}} fDu​f 表示“沿 u\mathbf{u}u 方向走一步,升高或降低多少”,用 ∇f\nabla f∇f 与 u\mathbf{u}u 的内积 ∇f⋅u\nabla f \cdot \mathbf{u}∇f⋅u 一行就算出。

看图说明:红/黄=误差大的山峰,蓝/紫=误差小的山谷。黑线=为了减小误差而往下走的路(梯度下降),紫箭头=该处最陡的上坡方向(∇f\nabla f∇f)。
想象浓雾中一步也看不清的探险者,必须找到险峻山脉中最深的谷底——误差最小的最佳位置。看不见地形,只能依靠脚底感到的坡度下山。人工智能靠大量数据变聪明的学习过程,与这次惊险登山完全一样。每次预测出错产生的误差(损失)都会形成巨大的三维山脉。
此时回答“你站的位置向东走有多陡?”的指标是方向导数;在周围360度方向中,毫不偏差地指出“哪边是最陡的上坡”的奇迹指南针,就是梯度 ∇f\nabla f∇f。本章用生动的地形比喻,深入说明被称为微积分之花的梯度如何成为人工智能的向导,让人工智能安全地走下复杂的误差之山。

方向导数与梯度: 找到该走的路

1. 多元函数与等高线:把三维地形读成二维
常见的二维地图是平面,但上面蜿蜒的等高线能告诉我们哪里是峰、哪里是凹谷。线挤在一起表示要流汗攀登的陡坡,线散开表示好走的缓坡。人工智能学习时计算的误差(损失)也因变量极多,形成同样巨大险峻的多维山脉。借助数学这面透镜,我们能读出看不见的山脉等高线,直观判断当前误差是在陡升还是在稳定下降。
2. 偏导数:东西南北里只挖一口井测坡度
假设你停在险峻山腰。可以问:“若忽略其他方向,只向正东(xxx 轴方向)迈一步,坡度如何?”或“只向北(yyy 轴方向)走,是上坡还是下坡?”从众多方向中只选一个轴方向、单独量该方向的斜率,就叫偏导数,用 ∂f∂x\frac{\partial f}{\partial x}∂x∂f​ 这类圆符号表示。它只测一个方向,很局限,却是所有计算的基础。
3. 方向导数:你转头正看的那条路的坡度
探险家不必只走东西南北。可按目的地选东北30度、或斜向西南——360度任意方向。在选定方向轻轻迈一小步时,地形高低变化的瞬时速率,就是方向导数 DufD_{\mathbf{u}} fDu​f:此刻你自由转头所看的那条小路的体感坡度。
4. 梯度:指向最可怕上坡的奇迹指南针
周围360度中,朝向山顶最可怕、最陡的上坡方向只有一个。把 xxx 方向与 yyy 方向的斜率合并成一支箭头(向量),就是梯度 ∇f\nabla f∇f。这支魔法箭头总是垂直于等高线——以最短路径穿过等高线。箭头方向指向附近最陡上坡,长度告诉你那条坡到底有多陡(最大坡度)。
5. 内积与梯度的奇妙关系
不必每次为任意方向重新做繁重计算。把最好的指南针“梯度”与要走的“方向向量”做内积,该方向的坡度就会出来。核心是 Duf=∇f⋅uD_{\mathbf{u}} f = \nabla f \cdot \mathbf{u}Du​f=∇f⋅u。若你朝梯度所指完全相同的方向走,就等于正面迎接世上最陡的上坡。
一句总结: 像等高线地图一样读损失山脉;任意方向坡度 Duf=∇f⋅uD_{\mathbf{u}} f = \nabla f \cdot \mathbf{u}Du​f=∇f⋅u;最陡上坡 ∇f\nabla f∇f;下山一步 wk+1=wk−η∇L\mathbf{w}_{k+1}=\mathbf{w}_k-\eta\nabla Lwk+1​=wk​−η∇L。
让人工智能变聪明的训练(优化),实质是寻找误差最小之处——巨大山脉最深、最平静的谷底——的艰难旅程。数据与权重增至数十万,这座山会变成数百万维、难以想象的地形。在浓雾中蒙眼乱走,可能一辈子也找不到谷底。
此时梯度 ∇L\nabla L∇L 像一束光的奇迹导航:它准确指出探险者当前站立之处、误差会最猛烈增加的那条可怕上坡。人工智能只需朝那根手指所指的正相反方向转身,一步步默默下山即可。没有这枚数学指南针,深度学习根本无法训练;无数权重不知道该怎样改变,会永远迷失、永远徘徊。
1. 深度学习不停跳动的心脏:梯度下降
所有方向与坡度的概念,最终汇聚成完成人工智能的唯一伟大算法——梯度下降。核心式 wk+1=wk−η∇L(wk)\mathbf{w}_{k+1} = \mathbf{w}_k - \eta \nabla L(\mathbf{w}_k)wk+1​=wk​−η∇L(wk​) 展现人工智能如何迈步。其中 ∇L\nabla L∇L 表示“最陡的上坡”;前面的减号表示“我要谨慎地朝上坡的正相反方向下山”。
学习率 η\etaη 是探险者的步幅。步幅太大,会蹦跳着越过目标谷底,摔到对面山峰;步幅小如蚂蚁,还没到底训练时间就结束。实战中精细调节步幅往往决定模型成败。
2. 用损失曲面可视化检查模型健康状况
最新数据科学论文里常见五彩三维山图、浓淡变化的等高线热图。为检查学习是否顺畅,把数以亿计的未知权重压缩成肉眼可见的2~3维,画出误差曲面。研究者用眼睛观察沿梯度指南针下山的路径,是在热图上zigzag不安地抖动,还是像坐雪橇一样顺滑下降,从而诊断模型健康与学习结构。
记住三个式子:
① Duf=∇f⋅uD_{\mathbf{u}} f = \nabla f \cdot \mathbf{u}Du​f=∇f⋅u(u\mathbf{u}u 为单位向量)。
② ∇f\nabla f∇f 与等高线垂直、最陡上坡。
③ wk+1=wk−η∇L\mathbf{w}_{k+1}=\mathbf{w}_k-\eta\nabla Lwk+1​=wk​−η∇L(检查负号与 η\etaη)。步骤:∇f\nabla f∇f → 单位化 u\mathbf{u}u → 内积。
  • 用语方向导数
  • 含义沿 u\mathbf{u}u 方向的坡度
  • 用语梯度
  • 含义最陡上坡 ∇f\nabla f∇f
  • 用语核心式
  • 含义Duf=∇f⋅uD_{\mathbf{u}} f = \nabla f \cdot \mathbf{u}Du​f=∇f⋅u
  • 用语等高线
  • 含义∇f\nabla f∇f 与等高线垂直;沿等高线坡度为 0
  • 用语梯度下降
  • 含义wk+1=wk−η∇L\mathbf{w}_{k+1}=\mathbf{w}_k-\eta\nabla Lwk+1​=wk​−η∇L
  • 用语平坦处
  • 含义∇f≈0\nabla f\approx\mathbf{0}∇f≈0 → 候选点
用语含义
方向导数沿 u\mathbf{u}u 方向的坡度
梯度最陡上坡 ∇f\nabla f∇f
核心式Duf=∇f⋅uD_{\mathbf{u}} f = \nabla f \cdot \mathbf{u}Du​f=∇f⋅u
等高线∇f\nabla f∇f 与等高线垂直;沿等高线坡度为 0
梯度下降wk+1=wk−η∇L\mathbf{w}_{k+1}=\mathbf{w}_k-\eta\nabla Lwk+1​=wk​−η∇L
平坦处∇f≈0\nabla f\approx\mathbf{0}∇f≈0 → 候选点
① 先求 ∇f\nabla f∇f。
② u\mathbf{u}u 是否为单位向量。
③ Duf>0D_{\mathbf{u}} f>0Du​f>0 为上坡。
④ η\etaη 过大易跳、过小太慢。

解题示例

示例1 — 定义 f=x2+y2f=x^2+y^2f=x2+y2,在 (1,1)(1,1)(1,1) 的梯度与长度? → (2,2)(2,2)(2,2),222\sqrt{2}22​。

示例2 — 方向 单位 u=(1/2,0)\mathbf{u}=(1/\sqrt{2},0)u=(1/2​,0) 的 DufD_{\mathbf{u}} fDu​f? → 2\sqrt{2}2​(内积公式)。

示例3 — 最大 单位 u\mathbf{u}u 时 DufD_{\mathbf{u}} fDu​f 最大? → 方向为 ∇f\nabla f∇f,值为 ∥∇f∥\|\nabla f\|∥∇f∥。

示例4 — 等高线 沿等高线切线走 DufD_{\mathbf{u}} fDu​f? ∇f\nabla f∇f? → 切线为 0;∇f\nabla f∇f 垂直等高线。

示例5 — 梯度下降 L=w12+w22L=w_1^2+w_2^2L=w12​+w22​,w=(2,1)\mathbf{w}=(2,1)w=(2,1),η=0.25\eta=0.25η=0.25 下一步 w\mathbf{w}w? → (1,0.5)(1,0.5)(1,0.5)。

示例6 — 训练停滞 损失不再下降? → 可能靠近 ∇L≈0\nabla L\approx\mathbf{0}∇L≈0 的平坦区(极值/鞍点候选)。

练习题

f(x,y)=x2+xy+y2f(x,y)=x^2+xy+y^2f(x,y)=x2+xy+y2 在原点的 ∇f\nabla f∇f 是?
1 / 5