Skip to content

函数与极限 -- 微积分的起跑线

微积分是 AI 训练过程的数学引擎。在学导数之前,先回顾函数概念,再理解「极限」——微积分的核心思想。

什么是极限?

极限描述「当 x 无限接近但不等于某个点时,f(x) 趋近于什么值」。

例如:$ f(x) = \frac{x^2-1}{x-1} $,x=1 时无定义。但当 x 趋近于 1 时,f(x) 趋近于 2。

左极限

x → 1⁻(从左边接近)

f(0.999) → 2

极限

左右极限相等 → 存在

$ \lim_{x\to 1} f(x) = 2 $

右极限

x → 1⁺(从右边接近)

f(1.001) → 2

连续 = 不断裂

f(x) 在 a 点连续:$ \lim\_{x\to a} f(x) = f(a) $——该点的极限 = 该点的函数值。

大多数损失函数(MSE、交叉熵)都是连续且可导的——这是能用梯度下降优化的前提。


生活例子

瞬时速度

你想知道在第 3 秒那一瞬间的速度。但「一瞬间」时间间隔为 0,位移也为 0,0/0 无意义。

微积分的解法:取越来越短的时间间隔,看平均速度趋近于什么值。这个趋近的值就是瞬时速度——也就是导数。


数学定义

lim_xaf(x)=L

极限运算法则:和差积商的极限 = 极限的和差积商(分母极限不为 0)。


Python 动手实践

实例

python

import numpy as np

def f(x):

    return (x**2 - 1) / (x - 1)

print("=== lim_{x->1} (x^2-1)/(x-1) = 2 ===")

# 从左右两边逼近

for delta in [0.1, 0.01, 0.001, 0.0001]:

    print(f"x = {1-delta:.4f}, f(x) = {f(1-delta):.6f}")

    print(f"x = {1+delta:.4f}, f(x) = {f(1+delta):.6f}")

print("→ 无论从哪边逼近,f(x)都趋近于 2")
python
=== lim_{x->1} (x^2-1)/(x-1) = 2 ===
x = 0.9000, f(x) = 1.900000
x = 1.1000, f(x) = 2.100000
x = 0.9900, f(x) = 1.990000
x = 1.0100, f(x) = 2.010000
→ 无论从哪边逼近,f(x)都趋近于 2

AI 中的应用场景

梯度的定义依赖极限

导数的定义本身是极限:$ f'(x) = \lim_{h \to 0} \frac{f(x+h)-f(x)}{h} $。反向传播中的梯度计算虽然用了解析求导而非数值极限,但极限的思想是理解「学习率不能太大」的关键——太大的学习率相当于用太大的 h 近似导数。

损失函数的连续性要求

梯度下降要求损失函数几乎处处可导。MSE 和交叉熵都是光滑连续的——这是它们成为标准损失函数的前提。Hinge Loss(SVM 用)在转折点处不可导,需要用次梯度代替。

激活函数的选择

ReLU 在 x=0 处不可导(左右导数不相等),但实践中用次梯度 0 代替,模型仍能正常训练。LeakyReLU 和 GELU 则处处可导,梯度流更平滑。


AI 思考中...

向量空间与基 — 换个坐标系看世界

导数入门 — 瞬时变化率与切线

基于 VitePress 构建,部署于 GitHub Pages