返回学习地图
mathPhase A · 第 1

00. 高数唤醒

从导数/偏导/链式法则到矩阵/概率,彻底搞懂AI公式里的90%高数知识

20 个章节·按类别展开/折叠
知识

为什么要学高数?——你比想象中更需要它

打开任何一篇AI论文或教材,你会发现几乎每个公式都包含这些符号:导数(d/dx)、偏导(∂/∂x)、链式法则、矩阵乘法、对数(log)

你可能会问:"我都忘了高中数学,能学AI吗?"答案是:完全可以。

好消息有三个:

  • AI用到的高数不深——90%的公式只需要求导和链式法则。你不需要学微积分II、多重积分、微分方程。
  • 你每天都在用导数的直觉——开车看速度(位置的变化率)、看理财收益率(钱的变化率)、感觉天气变冷(温度的变化率)。导数就是"变化率"。
  • 学完这一章,之后的优化器、激活函数、损失函数、Transformer的公式你都能看懂。

把这章当做一个"公式翻译器"——不追求严谨证明,而是让你看到每个符号时知道它代表什么、为什么这么用。

知识

导数是什么?——先从开车说起

导数的核心思想:函数在某一点的瞬时变化率。

🚗 开车类比:

  • 你的车开了1小时,走了60公里。平均速度 = 60公里/小时。
  • 但看仪表盘,速度在变化:红灯时0,加速到80,刹车时又慢下来。
  • 导数就是仪表盘上的速度——不是平均速度,而是此时此刻的速度。
  • 位置 s(t) 对时间 t 求导 = 速度 v(t)。速度 v(t) 对时间求导 = 加速度 a(t)。

数学定义(别怕,我们一步步拆):

f'(x) = lim(Δx→0) [f(x+Δx) - f(x)] / Δx

拆解这个公式:

  • f(x):一个函数,比如 f(x) = x²。输入x,输出x²。
  • f(x+Δx):给x加一个很小的变化Δx,看输出变成什么。比如x=3,Δx=0.001,那f(3.001)=9.006001。
  • f(x+Δx) - f(x):输出变化了多少。9.006001 - 9 = 0.006001。
  • [f(x+Δx)-f(x)] / Δx:输出变化 ÷ 输入变化 = 变化率。0.006001 ÷ 0.001 = 6.001。
  • lim(Δx→0):让Δx无限接近0,看看这个变化率趋近于多少。Δx=0.0001→6.0001,Δx=0.00001→6.00001……趋近于6。

所以 f'(3) = 6。意思是:在x=3这个点,函数f(x)=x²的变化率是6。

几何意义:导数 = 函数图像上该点切线的斜率

  • 导数 > 0:函数在上升(上坡)
  • 导数 < 0:函数在下降(下坡)
  • 导数 = 0:函数的极值点(山顶或谷底)——这就是"用导数找最小值"的核心

在AI中的意义:

AI训练就是找损失函数的最小值。损失函数L(w)告诉你"在当前参数w下,模型表现有多差"。我们想知道:如果稍微改一下参数w,损失L会变好还是变差?变化多大?——这正好是导数告诉我们的!

表格

常用导数公式表——AI中最常用的10个

下面这张表是AI中最常用的导数公式。不用背推导过程,但需要记住结果。就像学开车不需要懂发动机原理,但要知道怎么操作方向盘。

函数形式导数结果例子AI中出现场景
f(x) = C(常数)f'(x) = 0f(x)=5 → f'(x)=0任何常数项
f(x) = xⁿf'(x) = n·xⁿ⁻¹f(x)=x²→f'(x)=2x
f(x)=x³→f'(x)=3x²
幂函数
f(x) = eˣf'(x) = eˣ(不变!)f(x)=eˣ→f'(x)=eˣSoftmax、Sigmoid
f(x) = ln(x)f'(x) = 1/xf(x)=ln(x)→f'(x)=1/x交叉熵损失
f(x) = sin(x)f'(x) = cos(x)——位置编码
f(x) = cos(x)f'(x) = -sin(x)——位置编码
f(x) = σ(x)(Sigmoid)f'(x) = σ(x)(1-σ(x))σ(0)=0.5, σ'(0)=0.25激活函数反向传播
f(x) = tanh(x)f'(x) = 1 - tanh²(x)tanh(0)=0, tanh'(0)=1RNN、LSTM

重要规律:

  • eˣ的导数就是自己——这就是为什么e在AI中如此重要,求导太方便了
  • Sigmoid的导数用输出值就能算:σ'(x)=σ(x)(1-σ(x))——反向传播时不用重新算x
实例

例1:求 f(x)=x² 在 x=4 处的导数

实例

问题:已知 f(x)=x²,求 f'(4)。

Step 1:套用幂函数求导公式 f(x)=xⁿ → f'(x)=n·xⁿ⁻¹

这里 n=2,所以 f'(x)=2·x²⁻¹ = 2x

Step 2:代入 x=4

f'(4)=2×4=8

验证(用定义看是否合理):

在x=4附近:x=4.1时,f(4.1)=16.81,比f(4)=16多了0.81。变化率=0.81/0.1=8.1 ≈ 8 ✓

几何意义:在点(4,16)处,切线的斜率=8。函数在x=4处快速上升。

实例

例2:求 f(x)=3x²+2x+1 的导数

实例

问题:求 f(x)=3x²+2x+1 的导数 f'(x)。

Step 1:逐项求导。常数项1的导数为0。

Step 2:第一项 3x²:3×2×x¹=6x

Step 3:第二项 2x:2×1×x⁰=2

Step 4:合并结果:f'(x)=6x+2

验证:求f'(2)=6×2+2=14。验证:x=2→f(2)=3×4+4+1=17;x=2.01→f(2.01)=3×4.0401+4.02+1=12.1203+5.02=17.1403。变化量0.1403÷0.01≈14.03≈14 ✓

练习

基础求导练习

练习

Q1:求 f(x)=5x³ 的导数 f'(x)。

Q2:求 f(x)=x²+4x-3 的导数 f'(x)。

Q3:求 f(x)=2eˣ+3ln(x) 的导数 f'(x)。

Q4:计算 f(x)=x² 在 x=-2 处的导数,并说明函数的升降情况。

Q5:一辆车的位置 s(t)=2t²+3t(t为秒),求第5秒时的瞬时速度。

查看答案

A1:f'(x)=5×3×x²=15x²

A2:f'(x)=2x+4。常数-3的导数为0。

A3:f'(x)=2eˣ+3×(1/x)=2eˣ+3/x

A4:f'(x)=2x,f'(-2)=2×(-2)=-4。因为导数为负,函数在x=-2处是下降的。验证:f(-2)=4,f(-1.9)=3.61,确实变小了。

A5:s'(t)=4t+3。代入t=5:s'(5)=4×5+3=23米/秒。也可以说速度是23m/s。

知识

偏导——多变量函数的"局部视角"

偏导的定义:当一个函数有多个输入变量时,对其中一个变量求导,其他变量视为常数。

🏠 装修预算类比:

假设装修总费用 f(瓷砖, 油漆, 人工) 取决于三个因素。

  • 想知道"换一种瓷砖会多花多少钱?"→ 对"瓷砖"求偏导 ∂f/∂(瓷砖)
  • 想知道"涨人工费会多花多少钱?"→ 对"人工"求偏导 ∂f/∂(人工)

每个偏导都独立地告诉你:只改这一个变量,其他不变,结果变化多少。

数学记号:

  • f(x,y)有两个变量
  • ∂f/∂x = 对x求偏导(y看作常数)
  • ∂f/∂y = 对y求偏导(x看作常数)

实例:f(x,y)=x²·y+3y²

  • ∂f/∂x:把y看作常数→2x·y(因为x²的导数是2x,乘以常数y)
  • ∂f/∂y:把x看作常数→x²+6y(x²是常数,3y²的导数是6y)

在神经网络中的意义:

神经网络的损失函数 L 取决于数百万个参数(权重w₁,w₂,...,wₙ)。

  • ∂L/∂w₁ = "如果稍微改一下w₁,损失L会变多少?"
  • ∂L/∂w₂ = "如果稍微改一下w₂,损失L会变多少?"
  • ……这样对每个参数求出偏导

这就是梯度下降的核心——算出每个参数的偏导,然后沿着下降方向更新。

实例

例3:偏导计算实战

实例

问题:f(x,y)=3x²y+xy²,求 ∂f/∂x 和 ∂f/∂y 在点 (1,2) 处的值。

Step 1:求 ∂f/∂x

把y看作常数:

  • 第一项 3x²y:3y·2x = 6xy
  • 第二项 xy²:y²·1 = y²
  • ∂f/∂x = 6xy + y²

代入(1,2):∂f/∂x = 6×1×2 + 2² = 12+4 = 16

解释:在(1,2)处,x每增加1小单位,f约增加16。前提是y不变。

Step 2:求 ∂f/∂y

把x看作常数:

  • 第一项 3x²y:3x²·1 = 3x²
  • 第二项 xy²:x·2y = 2xy
  • ∂f/∂y = 3x² + 2xy

代入(1,2):∂f/∂y = 3×1 + 2×1×2 = 3+4 = 7

解释:在(1,2)处,y每增加1小单位,f约增加7。前提是x不变。

总结:在(1,2)处,改变x比改变y对f的影响更大(16 > 7)。

知识

梯度——所有偏导的集合

梯度的定义:梯度 ∇f 是一个向量,包含函数f对所有变量的偏导。

数学表示:

∇f = [∂f/∂x₁, ∂f/∂x₂, ..., ∂f/∂xₙ]

🏔️ 登山类比:

  • 你站在山上某一点,想知道"往哪个方向走上升最快?"
  • 梯度方向=上升最快的方向
  • 负梯度方向=下降最快的方向
  • 梯度下降就是沿着负梯度方向走——快速下山找谷底(最小化损失)

梯度的三个关键性质:

  1. 方向:指向函数增长最快的方向
  2. 大小:梯度向量的长度 = 该方向的变化率大小|∇f| = √((∂f/∂x₁)²+(∂f/∂x₂)²+...)
  3. 正交性:梯度方向与等高线垂直

在AI中:一次梯度计算 = 输入所有样本→前向传播→反向传播→得到每个参数的偏导。

实例

例4:梯度计算实战

实例

问题:f(x,y)=x²+2y²,计算梯度∇f(1,1)。

Step 1:求偏导

∂f/∂x = 2x,∂f/∂y = 4y

Step 2:代入(1,1)

∇f(1,1) = [2×1, 4×1] = [2, 4]

Step 3:解释

  • 在(1,1)处,往x方向走变化率是2,往y方向走变化率是4
  • 梯度方向是[2,4](约63°角)
  • 梯度大小 = √(2²+4²) ≈ 4.47
  • 负梯度方向[-2,-4]是下降最快的方向

验证:从(1,1)沿[-2,-4]走0.1步:新点(0.8,0.6)→f=0.64+0.72=1.36,确实比原值1+2=3小了!

知识

链式法则——神经网络反向传播的核心引擎

链式法则:复合函数 f(g(x)) 的导数 = 外层导数 × 内层导数。

🥟 包子成本类比:

  • 包子价格=面粉价格+肉价+人工
  • 面粉价格=小麦价格×加工费
  • 所以:包子价格对小麦的敏感度 = (包子价格对面粉的敏感度) × (面粉价格对小麦的敏感度)

这就是链式法则:把连锁反应一步步传递回去。

数学形式:

df/dx = df/dg · dg/dx

更常用的扩展形式(多个变量影响):

df/dx = (∂f/∂g₁)(dg₁/dx) + (∂f/∂g₂)(dg₂/dx) + ...

神经网络中的链式法则(反向传播):

一个简单神经网络:输入x→隐藏层h→输出层ŷ→损失L

损失L对权重w的导数:∂L/∂w = (∂L/∂ŷ) · (∂ŷ/∂h) · (∂h/∂w)

从右往左算:

  1. 先算∂h/∂w(权重对输出的影响)
  2. 再算∂ŷ/∂h(隐藏层对输出层的影响)
  3. 最后算∂L/∂ŷ(输出对损失的影响)
  4. 乘起来得到∂L/∂w

这就是"反向传播"名字的由来——从损失函数出发,反向逐层传播梯度。

实例

例5:链式法则手算

实例

问题:f(x)=e^(2x+1),求f'(x)。

Step 1:识别内外函数

外层:e^(□) → 导数是e^(□)(不变)

内层:2x+1 → 导数是2

Step 2:套用链式法则

f'(x) = e^(2x+1) × 2 = 2e^(2x+1)

验证:x=0时,f(0)=e¹≈2.718。x=0.01时,f(0.01)=e^(1.02)≈2.774。变化=(2.774-2.718)/0.01=5.6。公式给出2e¹≈5.436。接近✓(Δx=0.01不够小,Δx更小会更准)

例6:多层复合

f(x)=ln(x²+1)

Step 1:外层ln(□)→1/□,内层x²+1→2x

Step 2:f'(x) = [1/(x²+1)] × 2x = 2x/(x²+1)

验证:x=2时,f'(2)=4/5=0.8

知识

Sigmoid导数——激活函数反向传播实例

Sigmoid函数 σ(x) = 1/(1+e⁻ˣ) 是AI中最重要的激活函数之一。

它的导数有一个超棒的发现:

σ'(x) = σ(x) · (1 - σ(x))

也就是说,用Sigmoid的输出值本身就能算出导数,不需要回过头去算x。

推导(不强制记住,但看看很有趣):

Step 1:σ(x)=1/(1+e⁻ˣ) = (1+e⁻ˣ)⁻¹

Step 2:链式法则:σ'(x) = -1×(1+e⁻ˣ)⁻² × (-e⁻ˣ) = e⁻ˣ/(1+e⁻ˣ)²

Step 3:巧妙地写为:[1/(1+e⁻ˣ)] × [e⁻ˣ/(1+e⁻ˣ)]

Step 4:注意到 e⁻ˣ/(1+e⁻ˣ) = (1+e⁻ˣ-1)/(1+e⁻ˣ) = 1 - 1/(1+e⁻ˣ) = 1 - σ(x)

Step 5:所以 σ'(x) = σ(x) × (1-σ(x))

数值验证:

  • σ(0) = 0.5 → σ'(0) = 0.5×0.5 = 0.25
  • σ(5) = 0.9933 → σ'(5) = 0.9933×0.0067 ≈ 0.0067
  • σ(-5) = 0.0067 → σ'(-5) = 0.0067×0.9933 ≈ 0.0067

观察:x远离0时,导数非常小——这就是"梯度消失"问题:深层网络反向传播时,梯度越乘越小,前层几乎不更新。

表格

Sigmoid导数参数表

参数含义典型值太大/太小的影响
xSigmoid的输入[-5,5]x>>0: σ≈1,梯度≈0(饱和);x<<0: σ≈0,梯度≈0(饱和)
σ(x)Sigmoid输出(0,1)接近0或1时梯度消失
σ'(x)导数(梯度)最大0.25(x=0)最大值仅0.25,深度网络连乘后趋近于0
练习

链式法则与Sigmoid练习

练习

Q1:用链式法则求 f(x)=(3x+1)² 的导数。

Q2:若 σ(x)=1/(1+e⁻ˣ),计算 σ(2) 和 σ'(2)。

Q3:在一个两层的神经网络中,z₁=w₁·x+b₁,a₁=σ(z₁),z₂=w₂·a₁+b₂,ŷ=σ(z₂),损失L=½(ŷ-y)²。写出∂L/∂w₂的链式法则分解式。

Q4:求 f(x)=ln(eˣ+1) 的导数。

查看答案

A1:外层(□)²→2(□),内层3x+1→3。f'(x)=2(3x+1)×3=6(3x+1)=18x+6

A2:σ(2)=1/(1+e⁻²)=1/(1+0.1353)≈0.8808。σ'(2)=0.8808×(1-0.8808)=0.8808×0.1192≈0.1050

A3:∂L/∂w₂ = (∂L/∂ŷ) × (∂ŷ/∂z₂) × (∂z₂/∂w₂) = (ŷ-y) × σ(z₂)(1-σ(z₂)) × a₁

A4:外层ln(□)→1/□,内层eˣ+1→eˣ。f'(x)=eˣ/(eˣ+1)。

知识

矩阵乘法——神经网络的计算引擎

为什么需要矩阵?

神经网络的一层:有n个输入和m个输出。如果不用矩阵,你得写n×m个循环。用矩阵:一行代码搞定。

矩阵乘法规则:

A(m×n) × B(n×p) = C(m×p)

条件:A的列数必须等于B的行数。

📦 物流类比:

  • 你有3个仓库(3行),每个仓库有4种商品的数量(4列)
  • 每种商品有5个目的地(5列)的运送单价
  • 矩阵乘法 = 算出从每个仓库到每个目的地的总运费

神经网络的矩阵形式:

y = Wx + b

其中:

  • x:输入向量(n维)
  • W:权重矩阵(m×n维)
  • b:偏置向量(m维)
  • y:输出向量(m维)

y的第i个元素 = Σ(W[i][j] × x[j]) + b[i],j从1到n

堆叠多层:

深度学习 = 一串矩阵乘法 + 激活函数

h₁ = σ(W₁x + b₁)

h₂ = σ(W₂h₁ + b₂)

ŷ = W₃h₂ + b₃

实例

例7:2×3矩阵乘法手算

实例

问题:A = [[1,2,3],[4,5,6]],B = [[7,8],[9,10],[11,12]],求A×B。

Step 1:确认维度

A=2×3, B=3×2 → 结果C=2×2

Step 2:逐元素计算

C[0][0] = A第0行×B第0列 = 1×7+2×9+3×11 = 7+18+33 = 58

C[0][1] = 1×8+2×10+3×12 = 8+20+36 = 64

C[1][0] = 4×7+5×9+6×11 = 28+45+66 = 139

C[1][1] = 4×8+5×10+6×12 = 32+50+72 = 154

结果:C = [[58, 64], [139, 154]]

验证:可以用矩阵乘法交换律的变体验证。两个矩阵第0行点积=第0列点积等关系。

知识

对数(Log)——让乘法变加法的魔法

为什么AI中到处是log?

三个核心原因:

  • 乘法变加法:log(ab)=log(a)+log(b)。求导时,加法比乘法简单无数倍。
  • 数值稳定:一个很小的概率 p=0.0001,直接乘n次会下溢为0。取log后是-4+(-4)+...,稳定得多。
  • 信息论定义:信息量 = -log(p)。交叉熵损失源于信息论。

常用对数规则(务必记住):

  • log(ab) = log(a) + log(b)
  • log(a/b) = log(a) - log(b)
  • log(aⁿ) = n·log(a)
  • ln(eˣ) = x(自然对数的定义)
  • e^(ln(a)) = a

实例:交叉熵损失

CE = -Σ yᵢ·log(ŷᵢ)

其中y是真实标签([1,0,0]),ŷ是预测概率([0.7,0.2,0.1])。

计算:CE = -(1×log(0.7) + 0×log(0.2) + 0×log(0.1)) = -log(0.7) ≈ 0.357

如果预测错了:ŷ=[0.1,0.2,0.7],CE = -log(0.1) ≈ 2.303

错误时惩罚大了约6.5倍——这就是交叉熵"惩罚错误"的方式。

表格

对数在AI中的参数表

参数含义典型值作用
log(a)a的自然对数(底数e≈2.718)a∈(0,∞)压缩量级,将乘法转为加法
-log(p)事件的"信息量"p∈(0,1], -log(p)∈[0,∞)小概率事件信息量大
CE=-Σy·log(ŷ)交叉熵损失≥0, 越接近0越好分类任务的默认损失
练习

综合练习

练习

Q1:计算 log₂(8) + log₂(16)。

Q2:用对数规则化简:log(ab³/c²)。

Q3:若损失函数 L=-log(ŷ_y),当真实类别y的第k个元素为1,模型预测ŷ_k=0.01时,损失L是多少?如果ŷ_k=0.99呢?

Q4:矩阵A=[[1,0],[2,3]],B=[[4],[5]],求A×B。

查看答案

A1:log₂(8)=3(因为2³=8),log₂(16)=4(因为2⁴=16)。所以3+4=7。

A2:log(ab³/c²) = log(a) + log(b³) - log(c²) = log(a) + 3log(b) - 2log(c)

A3:当ŷ_k=0.01:L=-log(0.01)=-(-4.605)=4.605。当ŷ_k=0.99:L=-log(0.99)=-(-0.01005)=0.01005。可见错误(置信度低)时损失大得多。

A4:[[1×4+0×5], [2×4+3×5]] = [[4], [8+15]] = [[4], [23]]。结果是2×1矩阵。