1. 导数 (Derivative)

导数衡量函数在某一点上的瞬时变化率,也就是该点切线的斜率。在机器学习中,我们通过计算损失函数相对于模型参数的导数来更新参数。

动手试试:

拖动滑块,观察函数 `f(x) = x²` 在不同点 `x` 处的切线和导数值(斜率)的变化。

# 函数 f(x) = x^2 def f(x):
return x**2
# 导数 f'(x) = 2x def df(x):
return 2*x
# 在点 x=1.0 处 slope = df(1.0) print(f"在 x={1.0} 处的导数是: {slope}")
导数值 (斜率):

2. 偏导数与梯度

对于多变量函数,偏导数是函数相对于其中一个变量的导数,同时保持其他变量恒定。所有偏导数组成的向量就是梯度 (Gradient),它指向函数值上升最快的方向。

动手试试:

对于函数 `f(x, y) = x² + y²`,输入一个点 (x, y),计算该点的偏导数和梯度。

# 函数 f(x, y) = x^2 + y^2 # 偏导数 # ∂f/∂x = 2x # ∂f/∂y = 2y # 在点 (x, y) = (2, 3) df_dx = 2 * 2 df_dy = 2 * 3 gradient = [df_dx, df_dy] print(f"梯度 ∇f = {gradient}")
计算结果:

3. 链式法则与泰勒展开

链式法则用于计算复合函数的导数,是神经网络中反向传播算法的核心。泰勒展开用一个多项式来近似一个函数,在优化算法中非常重要。

泰勒展开 (Taylor Expansion)

拖动滑块,增加泰勒展开的阶数,观察多项式如何越来越好地近似 `sin(x)` 函数。

# sin(x) 在 x=0 处的泰勒展开 # f(x) ≈ f(0) + f'(0)x + f''(0)/2! * x^2 + ... # 1阶: x # 3阶: x - x^3/6 # 5阶: x - x^3/6 + x^5/120 # 当前选择阶数: 3