跳转至

P2-4.5 梯度补充学习:从高中微分到多变量微分

Section ID: P2-4.5 Version: v2026.07.20

在 P2-4.3 中,我们把微分(derivative)、偏微分(partial derivative)、梯度(gradient)连了起来;在 P2-4.4 中,我们又看了为什么学习(training)里需要微分。

这里提供的是一节补充学习,用来减轻从高中微分记忆跨到梯度时产生的陌生感。梯度(gradient) 的代表性说明放在 P2-4.3,梯度下降(gradient descent) 的代表性说明放在 P2-6.3,而这一节只更慢地整理填平它们之间间隔所需要的背景。想快速重新确认术语时,也可以一起看概念词汇表

这里主要围绕正文里快速带过的背景概念来读,例如 补充学习方向导数(directional derivative)向量分析(vector calculus)。目的不是从一开始就用公式把 gradientgradient descentbackpropagation 硬压下去,而是先重新抓住它们到底是在看什么。 重点是让“从记住一个斜率,跳到多方向变化”这一步重新变得可读。

从读者的角度看,这一节可能会特别长。所以先用很短的一步整理出 高中微分到底是在什么地方断开了,通常更有利于理解的恢复。

先看的断点

高中记忆 为什么会在这里卡住 这一节重新抓住的表达
y = f(x) 单变量函数 输入一旦变成多个,问题就不再只有一个 多变量函数(multivariable function)
一个斜率 损失会同时对多个参数作出反应 多个偏导数的集合
切线斜率 很少把坐标轴方向与任意方向分开来看 偏导数、方向导数
微分公式计算 在学习里,比起算式,往哪边移动? 更重要 梯度、梯度下降
微分题求解 在深度学习里,必须高效算出很多梯度 反向传播(backpropagation)

先抓住这张表,原本显得陌生的术语就会更清楚地变成:它们不是新数学,而是把单变量变化率记忆扩展到多个方向之后出现的表达。

先把定义抓稳

在这节补充学习里,我们先放的是为了读懂 AI 学习文档而设的工作用区分,而不是严格的大学数学定义。同时,我们也不会把同一个 Part 里已经作为代表定义的内容再长篇复制,只留下这一节真正需要的连接。

术语 工作用定义
微分(derivative) 当一个输入非常小地变化时,输出变化了多少的变化率
偏微分(partial derivative) 在多个输入里,假设只有其中一个改变时计算出的变化率
方向导数(directional derivative) 沿着我选定的某个方向稍微移动时,函数值变化了多少的变化率
梯度(gradient) 把多个偏微分按顺序收集起来的向量
向量分析(vector calculus) 在空间上把向量、函数、变化率放在一起处理的数学体系
梯度下降(gradient descent) 参考梯度,把参数一点一点往损失更低的方向移动的重复方法
反向传播(backpropagation) 在深度学习模型里高效计算每个参数梯度的过程

简短地说,微分是一条方向上的变化率,偏微分是在多个方向里一个一个分开看的值。方向导数是按我自己选的方向读变化的方式,梯度则是把这些变化率收成一组的向量。梯度下降是参考这个向量来移动的方法,反向传播是在深度学习模型里高效算出这个向量的过程。

应该怎么学比较好

这一节会按下面这样的顺序往前走。

  1. 先把微分重新想成一条方向上的变化率。
  2. 再把输入变成多个时,也想成方向变成多个。
  3. 理解偏微分就是把这些方向一个一个拆开来看。
  4. 理解方向导数就是沿着我自己选的方向看变化率。
  5. 理解梯度就是把多个偏微分收集成一个向量。
  6. 理解梯度下降就是参考这个向量,让损失下降的重复方法。
  7. 理解反向传播就是在深度学习模型里高效计算梯度的过程。

在阅读这条流程时,可以把下面这些问题一起带着走:什么在变化?朝哪个方向变化?这种变化是在让损失增大还是减小?为什么必须把多个方向的变化率收成一组?模型学习又是怎样使用这组信息的?

这些问题,之后在再遇到优化(optimization)、梯度下降(gradient descent)、反向传播(backpropagation)时,会成为重新进入的起点。

阅读标准:梯度:从高中微分到多变量微分

  • 你可以说明:如果只从高中微分记忆出发,为什么梯度(gradient)会让人觉得陌生。
  • 你可以说明单变量函数(single-variable function)与多变量函数(multivariable function)之间的差别。
  • 你可以把偏微分(partial derivative)解释成“在多个输入里一个一个分开看的变化率”。
  • 你可以把方向导数(directional derivative)解释成“沿着某个特定方向看的变化率”。
  • 你可以把梯度(gradient)解释成把多个偏微分收起来的向量。
  • 你可以把梯度下降(gradient descent)解释成利用梯度不断降低损失的重复方法。
  • 你可以把反向传播(backpropagation)区分成:它是在深度学习模型里高效计算梯度的过程。

三个判断标准

标准 为什么重要 本节需要达到的理解程度
先看清为什么需要这节补充学习 因为高中微分记忆和 AI 学习里的多变量微分之间的间隔很大。 理解这是用来恢复“从单变量微分到多变量微分”的补桥说明。
区分梯度、梯度下降、反向传播 如果把这三个词混成同一个角色,就很难读懂学习流程。 理解梯度是方向信息,梯度下降是移动方法,反向传播是计算过程。
先看角色与连接,再看计算 只有概念先站稳,后面的公式和优化说明才不会继续断开。 理解到能解释每个术语到底是在看什么。

中间总结:我们现在走到哪里了

如果把到这里为止的连接压成一张小表,就是下面的顺序。

阶段 一句话总结
微分 看一个输入稍微变化时,输出变多少
偏微分 当输入有多个时,一个一个分开来看
方向导数 不是只沿轴方向,而是沿选定方向看变化
梯度 把多个偏微分收成一个向量
梯度下降 利用这个向量往损失更低的方向移动
反向传播 在深度学习里高效算出这个向量

只要这张中间表抓住了,即使正文很长,读者也能重新回到“我现在看到的是哪一层解释”。

高中微分记忆通常是从一个方向开始的

一想到高中微分,我们通常先想到 y = f(x)、切线斜率、瞬时变化率、微分系数、导函数、速度和加速度。

这一整条流程,大多都是从输入只有一个的函数开始。

\[ y = f(x) \]

这时问题相对简单。它问的是:x 稍微变化时,y 会变化多少?

所以变化率也很容易被理解成一条方向上的事情。就像在一条线上往前稍微走一点,看看高度变了多少。

也就是说,一个输入 \(x\) 对应一个输出 \(y\),而在这个关系的某一点上读取斜率的感觉,就是高中微分的出发点。

这个记忆非常重要。梯度并不是把这个记忆丢掉,而是在输入变成很多个时,把这个记忆扩展开来的概念。

下面这张图,展示的就是:单方向的微分,如何扩展成多个方向的偏微分,再继续扩展成梯度。

从单变量微分扩展到多个方向的偏微分与梯度的流程

为什么梯度会让人觉得陌生

梯度之所以会让人觉得陌生,通常有两个原因。

第一,梯度自然地出现在输入有多个的函数里。

\[ z = f(x, y) \]

现在问题就不再只有一个,而会增加成:如果 x 稍微变一点,z 会怎么变?如果 y 稍微变一点,z 会怎么变?

第二,梯度的结果不会只停留在一个数字上,它会表现成一个向量(vector)。

如果我们把 \(x\) 方向的变化率和 \(y\) 方向的变化率一起看,就会得到一个把两个值收在一起的向量。

如果高中微分记忆习惯的是 一个斜率,那梯度看起来就会像 一组斜率。于是就很容易怀疑它到底还是不是同一类微分概念,还是已经变成了完全新的数学。

偏微分是一个一个分开看的变化率

先看一个多变量函数(multivariable function)。

\[ L(w_1, w_2) \]

在 AI 语境里,你可以把 \(L\) 理解成损失(loss),把 \(w_1\)\(w_2\) 理解成参数(parameter)。

只看 \(w_1\) 稍微变化时,\(L\) 怎么变化,就是对 \(w_1\) 的偏微分(partial derivative)。

\[ \frac{\partial L}{\partial w_1} \]

只看 \(w_2\) 稍微变化时,\(L\) 怎么变化,就是对 \(w_2\) 的偏微分。

\[ \frac{\partial L}{\partial w_2} \]

这里可以把普通微分理解成输入只有一个时的变化率,把偏微分理解成输入有多个时,把一个输入单独拿出来看的变化率。

即使严格的计算方法放到以后再学,现在最重要的是先抓住这种感觉:在很多个调节值里,一个一个单独看敏感度。

方向导数是沿着想看的方向读出来的变化率

偏微分通常是一条坐标轴方向一条坐标轴方向地看。参考方向是固定好的,比如 \(w_1\) 方向、\(w_2\) 方向。

方向导数(directional derivative)问的是一个稍微更一般的问题。

它不再只问坐标轴方向,而是问:如果沿着我选定的某个方向稍微走一点,函数值会变化多少?

偏微分和方向导数都在处理变化率,但它们看的方向不同。下面这张图会把它们分开:偏微分是沿着坐标轴方向一个一个看,方向导数则是沿着任意选定方向看。

比较偏导数与方向导数所观察方向的图

这里不去计算方向导数的公式。现在真正需要的,是下面这个区分。

偏微分是沿着基准轴方向看到的变化率,方向导数是沿着我自己选定方向看到的变化率。

梯度是把多个偏微分收集起来的向量

梯度(gradient)是把多个偏微分按顺序收集起来的向量。

\[ \nabla L = \left[ \frac{\partial L}{\partial w_1}, \frac{\partial L}{\partial w_2} \right] \]

这个式子把下面两个问题的答案收成了一组:如果改 w_1,损失怎么变?如果改 w_2,损失怎么变?

如果换成更贴近现场的话,可以这样理解。

只有一个调节旋钮时,看一个斜率就够了;但如果旋钮有很多个,就必须把每个旋钮对应的变化率一起看。这组变化率,就是梯度。

梯度为什么是向量,这时候也就变得自然了。向量就是把多个数字按顺序收在一起的一种表达。而梯度,是在这些向量里专门把“每个方向的变化率”收在一起的那一种。

向量分析(vector calculus)就是处理这层关系的更大数学语言。这里我们不去学完整体系,只先确认一件事:如果在一个标量场(scalar field)的每个位置读取变化方向,它就会形成梯度;如果这些向量再铺在整个空间上,就可以看成向量场(vector field)。

显示标量场、梯度和向量场在向量分析中连接位置的图

梯度会告诉我们哪一个方向

梯度会连接到:在一个多变量函数里,数值增长最快的方向。在 AI 学习里,我们通常想减小损失。所以很多时候,比起梯度本身,梯度的反方向更重要。

梯度方向接到的是损失变大的那一边,而梯度反方向接到的是损失变小的那一边。

下面这张图展示了:在损失函数的某一点上,梯度方向和让损失下降的方向是怎样互为相反方向的。

在损失函数等高线上比较梯度方向与下降方向的图

这里最重要的是,梯度并不会告诉我们完整地图。它告诉的是当前位置附近的方向信息。它会告诉我们:从当前位置出发,往哪边走值更可能变大,往哪边走值更可能变小。

为什么 AI 学习里需要梯度

在 AI 学习里,我们想让损失(loss)下降。损失会告诉我们当前模型错得有多严重,但只看损失值,很难知道到底该把哪个参数往哪边改。

如果损失很大,意思是当前结果不好,但仍然不知道应该改什么、怎么改。

梯度会告诉我们:在当前位置下,改变每个参数时,损失会怎样变化。

梯度是把损失对每个参数的变化率收集起来的集合,而当我们想找让损失下降的方向时,线索就变成梯度的反方向。

这就会接到梯度下降(gradient descent)。也就是说,在一个有很多参数的损失函数里,梯度就是那组用来告诉我们“往哪边动时数值会变化”的变化率集合。

应该怎么读“梯度下降”这个名字

“梯度下降(gradient descent)”这个名字本身也可能让人陌生。把英文拆开来看,会容易一点。

表达 入门含义
gradient 在当前位置数值增长最快的方向
descent 往下走,向更低的一侧移动
gradient descent 参考梯度,重复向数值更低的一侧移动的方法

如果写得更像定义一点,那么梯度下降就是:在当前参数位置计算损失函数的梯度,然后让参数一点一点地朝着损失下降的方向移动的优化方法。

这句话里有四个要素。

要素 含义
当前参数位置 模型当前持有的那组数字状态
损失函数 用来计算当前模型错了多少的标准
梯度 告诉我们损失会沿哪个方向、变化多少的变化率集合
一点一点移动 不是一下子大改,而是用小步调整数值

所以梯度下降很常被拿来做“下山”的比喻。站在当前位置,看周围的坡度,然后朝着更低的方向走一点。不是一次就瞬间跳到正确答案,而是走一点,再看一遍坡度,如此反复。

就像下面这张图显示的那样,梯度下降不是一次冲到中心的方法。它会从当前位置出发,朝着损失更低的方向走一小步,然后在新位置上再次读取方向。

显示梯度下降是朝更低损失方向重复小步移动的图

也就是说,它会不断重复:看当前位置的损失,用梯度读出变化方向,朝着损失下降的一边小步移动,再重新看损失。

梯度下降更新式到底在说什么

梯度下降通常会用下面这样的更新式来说明。

\[ w_{\text{next}} = w - \eta \nabla L \]

现在还不需要把这个式子完整算出来。但我们可以先理解每个符号在说什么角色。

符号 入门含义
\(w\) 当前参数值
\(w_{\text{next}}\) 下一步参数值
\(\nabla L\) 当前位置下损失如何变化的方向信息
\(\eta\) 决定一次移动多远的学习率(learning rate)
\(-\eta \nabla L\) 朝着损失下降的一边小步移动的量

这里“小步”这个词很重要。走得太大,可能会越过低谷;走得太小,又可能花很久。这个步长会在 P5-7.1 里以 learning rate 的名字再次出现。

下面这张图用直觉方式展示了梯度下降的更新式。目标不是背下公式,而是记住这个结构:从当前值出发,按照梯度反方向,按学习率大小小步移动。

显示梯度下降更新表示从当前值沿梯度反方向小步移动的图

还有一点也很重要:梯度下降并不是那种总能保证完美答案的魔法方法。它是利用当前所在位置看到的坡度,试着往更好的方向走的一种方法。起点、损失函数形状、步长、重复次数,都会让结果不同。

这里先整理到“梯度在当前位置提供方向信息”这一层。学习率怎么选、什么时候停、在多个参数上怎么算,会在 P2-6.3 再展开。

反向传播不是和梯度下降同一个东西

反向传播(backpropagation)和梯度下降有关,但它们不是同一个词。

梯度下降是利用梯度去调整数值的优化方法,而反向传播是在深度学习模型内部高效算出很多参数梯度的过程。

深度学习模型是由多层(layer)连续计算组成的结构。输入经过多层之后变成输出,再由输出去计算损失。

我们可以把它理解成 输入 -> 第 1 层计算 -> 第 2 层计算 -> 输出 -> 损失 这样的结构。

为了学习,必须知道损失相对于每一层参数会怎样变化。反向传播就是把这个信息从后往前高效算出来的过程。

就像下面这张图那样,前向传播(forward pass)会从输入一路算到输出与损失,而反向传播(backward pass)则会从损失反过来算:每一层参数到底对损失产生了多大影响。

比较前向传播计算方向与反向传播中梯度回传方向的图

这里先把它们分开:梯度下降处理的是“为了减小损失,该怎么改数值”,而反向传播处理的是“每一层参数到底会对损失产生多少影响”的计算。

从课程视角看,有些话要说得谨慎

在 2022 修订的韩国高中课程中,人工智能数学里确实会出现损失函数(loss function)与梯度下降(gradient descent)。所以如果说“高中课程里完全没有任何和梯度相关的东西”,就可能不准确。

不过,人工智能数学 这个课程名,对于很久以前学过学校数学的读者来说,未必熟悉。对这些读者而言,不会把损失函数或梯度下降自动联想到高中数学,是很自然的。这里并不是把这种记忆判定成错误,而是把它和当前课程里新增确认到的流程重新接起来说明。

根据已核对的高中课程文本,gradientpartial derivativedirectional derivative 这些术语并没有直接出现。人工智能数学中的梯度下降,也更接近于理解一元函数定义下的损失函数和微分系数的直觉层级。

所以这里的表述是:虽然高中课程里也可能会介绍损失函数和梯度下降,但梯度与偏微分这一整套体系,依然可能需要单独的补充说明。

这种表达同时尊重了读者的学习记忆,也尊重了正式资料的范围。

作为补充学习先留下什么

这里并不需要把梯度完整算出来。相反,我们先记住下面这些边界就够了。

区分 现在需要的理解
微分(derivative) 相对于一个输入的瞬时变化率
偏微分(partial derivative) 在多个输入里,一个一个分开看的变化率
方向导数(directional derivative) 沿着选定方向看的变化率
向量分析(vector calculus) 在空间里把变化率与向量一起处理的更大数学语言
梯度(gradient) 把偏微分收集起来的向量
梯度下降(gradient descent) 利用梯度反复减小损失的方法
反向传播(backpropagation) 高效计算很多参数梯度的过程

偏微分如何继续接到梯度下降的计算,会在 P2-6.3 再次出现;损失怎样传到各个权重,会在 P5-5.1 和 P5-5.2 再次出现;真正的更新规则,会在 P5-7.1 和 P5-7.2 再次出现。现在的目标,是先抓住这些术语彼此如何连接,以及为什么它们会在 AI 学习里反复出现。

用案例来看

案例 1. 当必须一次读懂一个有很多调节旋钮的混音面板时

假设我们在操作一个音频混音面板。它有音量、低音、高音、混响等很多个旋钮,而最后的声音是这些数值共同做出的结果。人手动调的时候,通常会一边转一个旋钮,一边听 声音是不是更清楚了人声会不会太薄了

但随着旋钮变多,一次调整就会开始和其他性质纠缠在一起。高音提高以后,清晰度可能上升,但声音也可能变得刺耳;混响增加以后,声音可能更丰满,但说话也可能糊掉。只改一个看看 这种直觉仍然有效,但整体上,如果想调得更稳定,就必须把很多方向上的变化率一起读出来。

这也正是为什么需要做梯度补充学习。高中微分更接近“看转一个旋钮时变化了什么”的感觉,而多变量微分与梯度更接近“读懂一个同时有很多旋钮的面板”。梯度下降是在这些方向里一点点朝着让结果更好的方向调整,反向传播则可以看成是在复杂设备内部高效计算每个旋钮影响大小的过程。

一个可以验证的结果是:把每个旋钮只微调一点点,记录最终音质评分怎样变化。例如,音量提高 1 格时噪声分数增加了多少,低音降低 1 格时语音清晰度提高了多少。这样比较,就能更直观地看出 一条方向上的变化率很多方向变化率收成一组 之间的差别。

检查清单

  • 你可以说明,高中微分记忆主要是从单变量函数的变化率开始的。
  • 你可以说明,梯度自然会出现在有多个输入的函数里。
  • 你可以把偏微分解释成“在多个输入中,一个一个分开看的变化率”。
  • 你可以把方向导数解释成“沿着选定方向看的变化率”。
  • 你可以把梯度解释成“把偏微分收集起来的向量”。
  • 你可以把梯度下降解释成“利用梯度来反复减小损失的方法”。
  • 你可以把反向传播解释成“高效计算很多参数梯度的过程”。
  • 你可以说明:即使在高中 人工智能数学 里会出现梯度下降,梯度和偏微分这套体系依然可能需要单独补充说明。
  • 你可以区分偏微分、方向导数、梯度各自看的东西有什么不同。
  • 你可以说明高中微分和后面梯度、梯度下降、反向传播语言之间的间隔。

来源与参考资料