Skip to content

微积分核心 (Calculus)

一句话定义:微积分是研究变化率(微分)和累积量(积分)的数学。在 AI 中,我们主要用**微分(求导)**来告诉模型如何调整参数以降低误差。

  • 导数 (Derivative): 函数在某一点的瞬时变化率(切线斜率)。
  • 偏导数 (Partial Derivative): 多元函数中,保持其他变量不变,只对其中一个变量求导。
  • 梯度 (Gradient): 所有偏导数组成的向量,指向函数增长最快的方向。
  • 链式法则 (Chain Rule): 复合函数求导的法则,反向传播的核心。

  • 函数曲线:就像过山车的轨道。
  • 导数:就像你此时此刻的俯冲角度
    • 导数为正(上坡):还要往上爬。
    • 导数为负(下坡):正在往下冲。
    • 导数为 0(平顶/谷底):到了最高点或最低点。

在 AI 训练中,我们想要找到轨道的最低点(最小 Loss)。导数就是那个告诉我们”前面是上坡还是下坡”的仪表盘。


🎨 交互演示:导数与切线 (Interactive)

Section titled “🎨 交互演示:导数与切线 (Interactive)”

拖动曲线上的点,观察切线斜率(即导数)如何随位置变化。

📈 导数可视化

函数:
f(x) = x²
f'(x) = 2x
x = 1.00
f(x) = 1.000
斜率 = 2.000

💡 拖动曲线上的点,观察切线斜率(导数)的变化


📐 交互演示:泰勒级数 (Interactive)

Section titled “📐 交互演示:泰勒级数 (Interactive)”

观察多项式如何逐项逼近原函数,理解函数近似的本质。

📐 泰勒级数逼近

eˣ = 1 + x + x²/2! + x³/3! + ...
原函数
近似项数
5
x=1 误差
9.95e-3

💡 增加项数,观察红色近似曲线如何逼近蓝色原函数


∫ 交互演示:积分与面积 (Interactive)

Section titled “∫ 交互演示:积分与面积 (Interactive)”

通过黎曼和理解定积分,观察矩形如何逼近曲线下面积。

∫ 积分与黎曼和

黎曼和
2.6600
精确值
2.6667
误差
0.25%
∫x² dx = x³/3

💡 增加矩形数量,观察绿色面积和如何逼近曲线下方真实面积



神经网络的目标是让 Loss 最小化。 Loss 是关于参数 ww 的函数 L(w)L(w)。 为了让 LL 变小,我们需要知道调整 ww 的方向。 导数 dLdw\frac{dL}{dw} 告诉了我们,如果 ww 增加一点点,LL 会增加还是减少,以及变化多快。

没有微积分,我们就只能盲目猜测参数,那对于亿级参数的模型来说是不可能的。


导数的定义
f(x)=limΔx0f(x+Δx)f(x)Δxf'(x) = \lim_{\Delta x \to 0} \frac{f(x+\Delta x) - f(x)}{\Delta x}

衡量 xx 发生微小变化时,f(x)f(x) 变化的比例。

反向传播的基石。如果 y=f(g(x))y = f(g(x)),即 xgfyx \to g \to f \to y

链式法则
dydx=dydududx\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}

其中 u=g(x)u = g(x)

就像传声筒:A 告诉 B,B 告诉 C。A 对 C 的影响 = (A 对 B 的影响) × (B 对 C 的影响)。

⛓️ 交互演示:链式法则 (Interactive)

Section titled “⛓️ 交互演示:链式法则 (Interactive)”

选择不同的复合函数,观察链式法则如何分解导数计算。

⛓️ 链式法则可视化

x = 1.00g(x)u = 0.841f(u)y = 0.708
内层函数
u = g(x) = sin(x)
g'(x) = cos(x)
du/dx = 0.5403
外层函数
f(u) = u²
f'(u) = 2u
dy/du = 1.6829
链式法则
dy/dx = dy/du × du/dx
dy/dx = 0.9093
dy/dx = 1.683 × 0.540 = 0.9093

💡 反向传播就是对整个神经网络应用链式法则,从输出层逐层传递梯度


🏔️ 交互演示:3D 梯度下降 (Interactive)

Section titled “🏔️ 交互演示:3D 梯度下降 (Interactive)”

在 3D Loss 曲面上观察梯度下降过程,理解鞍点和局部最小值问题。

🏔️3D 梯度下降可视化

当前位置
x: -1.500
y: 1.500
损失值
4.5000
迭代: 0
💡 观察要点:凸函数有唯一最小值,梯度下降总能收敛

PyTorch 的核心功能 autograd 就是自动计算微积分。

import torch
# 定义变量 x = 2.0,需要求导
x = torch.tensor(2.0, requires_grad=True)
# 定义函数 y = x^3 + 2x
# 当 x=2 时,y = 8 + 4 = 12
y = x**3 + 2*x
# 手动推导导数: y' = 3x^2 + 2
# 当 x=2 时,y' = 3(4) + 2 = 14
# 自动反向传播计算导数
y.backward()
# 查看 x 的梯度 (即 dy/dx)
print(f"x 的梯度: {x.grad.item()}") # 应该是 14.0


使用 Desmos 探索导数和切线的关系,拖动滑块观察切线如何随着点移动而变化。

💡 拖动滑块调整参数 | 双击添加公式 | 滚轮缩放


3Blue1Brown 微积分本质

直观理解导数与积分

观看

Matrix Calculus for Deep Learning

深度学习所需的矩阵微积分

阅读

Khan Academy Calculus

微积分基础系统学习

访问