跳转至

积分学

一句话总结:积分学把无数小切片加起来还原总量,与微分互为逆运算,是概率密度、期望与 ROC 面积等 ML 量的数学根基。

积分学在区间上累积量,把局部变化率还原为总量。本节涵盖定积分与不定积分、微积分基本定理、积分技巧,以及在 ML 中概率密度与期望值的应用。

  • 微分告诉我们某一点的变化率,积分反过来:把大量微小切片累加起来,算出总量。

  • 如果说导数回答"多快?",那积分就回答"多少?"。

  • 理解积分最直白的方式,就是把它看作曲线下的面积。画出函数 \(f(x)\),再把曲线与 x 轴之间、从 \(x = a\) 到 \(x = b\) 的区域涂上颜色,积分给出的就是这块区域的带符号面积。

积分把曲线下的区域切成薄矩形累加得到面积

  • 为什么强调"带符号"? 因为 x 轴上方的区域算正面积,下方的算负面积。这在物理上很合理:如果 \(f(x)\) 表示速度,那么积分给出的是净位移 (前进减去后退),而不是总路程。

  • 要算这块面积,想象把它切成 \(n\) 个又薄又高的竖直矩形,每个宽为 \(\Delta x\)。每个矩形的高等于该切片内某一点上的函数值。把它们加起来:

\[\text{Area} \approx \sum_{i=1}^{n} f(x_i^\ast) \, \Delta x\]
  • 矩形越切越薄 (\(n \to \infty\), \(\Delta x \to 0\)) 时,这个求和就变得精确。这个取极限的过程定义了定积分 (definite integral):
\[\int_a^b f(x)\, dx = \lim_{n \to \infty} \sum_{i=1}^{n} f(x_i^\ast) \, \Delta x\]
  • 符号 \(\int\) 是拉长的字母 "S",代表 "sum" (求和)。\(dx\) 提醒我们,是在沿 x 轴对无穷薄的切片求和。

  • 不定积分 (indefinite integral) 或反导数 (antiderivative) 是一个函数 \(F(x)\),其导数恰好是 \(f(x)\)。我们写作:

\[\int f(x)\, dx = F(x) + C\]
  • 这里的 \(+ C\) 叫积分常数 (constant of integration)。因为任何常数的导数都是零,所以差一个常数的反导数有无穷多个。例如 \(\int 2x\, dx = x^2 + C\),因为 \(x^2 + 7\) 或 \(x^2 - 3\) 的导数都还是 \(2x\)。

  • 微积分基本定理 (Fundamental Theorem of Calculus) 是连接微分与积分的桥梁,分两部分:

  • 第一部分:若 \(F(x)\) 是 \(f(x)\) 的反导数,则定积分等于 \(F\) 在两端点处取值的差:

\[\int_a^b f(x)\, dx = F(b) - F(a)\]
  • 这一点极其实用。与其去算和的极限 (很难),不如找一个反导数,然后在两个点上求值 (通常很容易)。

  • 第二部分:若定义 \(F(x) = \int_a^x f(t)\, dt\),则 \(F'(x) = f(x)\)。微分与积分互为逆运算,它们彼此抵消。

  • 举个例子,算 \(\int_1^3 x^2\, dx\): \(x^2\) 的反导数是 \(\frac{x^3}{3}\)。于是 \(\int_1^3 x^2\, dx = \frac{27}{3} - \frac{1}{3} = \frac{26}{3} \approx 8.67\)。

  • 就像微分有一套规则,积分也有对应的反向规则:

函数 积分 条件
\(x^n\) \(\frac{x^{n+1}}{n+1} + C\) \(n \neq -1\)
\(\frac{1}{x}\) \(\ln\|x\| + C\)
\(e^x\) \(e^x + C\)
\(a^x\) \(\frac{a^x}{\ln a} + C\)
\(\sin x\) \(-\cos x + C\)
\(\cos x\) \(\sin x + C\)
\(k\) (常数) \(kx + C\)
  • 和差规则同样适用:\(\int [f(x) \pm g(x)]\, dx = \int f(x)\, dx \pm \int g(x)\, dx\)。常数可以拎到积分号外:\(\int k\, f(x)\, dx = k \int f(x)\, dx\)。

  • 当一个函数复杂到无法直接积分时,我们有一些技巧可以化简。

  • u 代换 (u-substitution) 是链式法则的反向操作。当你看到一个复合函数 \(f(g(x))\) 乘以 \(g'(x)\) 时,令 \(u = g(x)\),则 \(du = g'(x)\, dx\),积分立刻变简单。

  • 例如:\(\int 2x \cos(x^2)\, dx\)。令 \(u = x^2\),则 \(du = 2x\, dx\)。积分变成 \(\int \cos(u)\, du = \sin(u) + C = \sin(x^2) + C\)。

  • 分部积分 (integration by parts) 是乘积法则的反向操作。当被积函数是两个函数的乘积时:

\[\int u\, dv = uv - \int v\, du\]
  • 挑选 \(u\) 与 \(dv\) 时要有策略,让剩下的积分 \(\int v\, du\) 比原来的更简单。选 \(u\) 有个常见口诀 LIATE:对数 (Logarithmic)、反三角 (Inverse trig)、代数 (Algebraic)、三角 (Trigonometric)、指数 (Exponential),越靠前的越优先选作 \(u\)。

  • 举个例子:\(\int x\, e^x\, dx\)。令 \(u = x\) (代数) 和 \(dv = e^x\, dx\)。则 \(du = dx\), \(v = e^x\)。于是:\(\int x\, e^x\, dx = x\, e^x - \int e^x\, dx = x\, e^x - e^x + C = e^x(x - 1) + C\)。

  • 在 ML 中,积分出现在概率论 (通过对密度函数积分求概率)、期望值 (对连续分布做加权平均) 和 ROC 曲线下面积 (Area Under Curve, AUC) 的计算中。虽然我们在实践中很少手工做积分,但理解积分的含义能帮我们看懂这些量到底代表什么。

编程练习 (使用 CoLab 或 Notebook)

  1. 用黎曼和数值近似 \(\int_0^1 x^2\, dx\),逐步增加矩形数量。与精确答案 \(\frac{1}{3}\) 对比。

    import jax.numpy as jnp
    
    for n in [10, 100, 1000, 10000]:
        x = jnp.linspace(0, 1, n, endpoint=False)
        dx = 1.0 / n
        area = jnp.sum(x**2 * dx)
        print(f"n={n:5d}  approx: {area:.6f}  exact: {1/3:.6f}")
    

  2. 数值验证微积分基本定理。定义 \(F(x) = \int_0^x t^2\, dt = \frac{x^3}{3}\),检查它的导数 (用 jax.grad 计算) 是否等于 \(x^2\)。

    import jax
    import jax.numpy as jnp
    
    F = lambda x: x**3 / 3
    dF = jax.grad(F)
    
    for x in [0.5, 1.0, 2.0, 3.0]:
        print(f"x={x:.1f}  F'(x)={dF(x):.4f}  x^2={x**2:.4f}")
    

  3. 可视化 \(f(x) = \sin(x)\) 在 \(0\) 到 \(\pi\) 之间的曲线下面积。用 plt.fill_between 涂色,再用黎曼和数值计算它。

    import jax.numpy as jnp
    import matplotlib.pyplot as plt
    
    x = jnp.linspace(0, jnp.pi, 500)
    y = jnp.sin(x)
    
    plt.plot(x, y, color="purple", linewidth=2)
    plt.fill_between(x, y, alpha=0.2, color="purple")
    plt.title(f"Area = {jnp.sum(jnp.sin(x) * (jnp.pi / 500)):.4f}  (exact: 2.0)")
    plt.show()
    


📌 本节要点

  • 定积分:定义为黎曼和的极限,几何上给出曲线下的带符号面积。
  • 不定积分:即反导数,差一个常数 \(+ C\),因为常数的导数为零。
  • 微积分基本定理:微分与积分互为逆运算;定积分等于反导数在两端点上的差。
  • 基本积分表:幂函数、指数、对数、三角函数各有对应的反向规则。
  • 线性性质:积分对和、差与常数因子都是线性的,可拆开逐项计算。
  • u 代换:链式法则的反用,遇到 \(f(g(x))\cdot g'(x)\) 时把 \(g(x)\) 换元变简单。
  • 分部积分:乘积法则的反用,选 \(u\) 时按 LIATE 口诀 (对数-反三角-代数-三角-指数)。
  • ML 应用:概率密度、期望值、ROC 曲线下面积 (AUC) 等都依赖积分定义与直觉。