机器学习数学基础 120 章

一元导数、切线与变化率

层级:A|必学

1. 导数回答“输入动一点,输出怎样变”

训练模型就是调整参数让损失下降。导数提供函数在当前位置的局部斜率:正导数表示向右走函数上升,负导数表示向右走函数下降,绝对值表示局部敏感程度。

2. 平均变化率

从 xx 到 x+hx+h:

f(x+h)−f(x)h\frac{f(x+h)-f(x)}{h}

是区间平均变化率,也是两点割线斜率。要得到某一点的瞬时变化率,让 h→0h\to0。

3. 导数定义

f′(x)=lim⁡h→0f(x+h)−f(x)h,f'(x)=\lim_{h\to0} \frac{f(x+h)-f(x)}{h},

若极限存在。常见记号还有

dfdx,dydx,Df(x).\frac{df}{dx},\quad \frac{dy}{dx},\quad Df(x).

导数是一个新的函数,把每个可微位置映射为斜率。

4. 从定义推导 x2x^2

令 f(x)=x2f(x)=x^2:

(x+h)2−x2h=2xh+h2h=2x+h.\frac{(x+h)^2-x^2}{h} =\frac{2xh+h^2}{h}=2x+h.

令 h→0h\to0:

f′(x)=2x.f'(x)=2x.

这不是把指数“搬下来”的魔法,而是局部差商极限的结果。

5. 切线与线性近似

函数在 x0x_0 的切线:

y=f(x0)+f′(x0)(x−x0).y=f(x_0)+f'(x_0)(x-x_0).

当 Δx\Delta x 很小时:

f(x0+Δx)≈f(x0)+f′(x0)Δx.f(x_0+\Delta x) \approx f(x_0)+f'(x_0)\Delta x.

导数是最佳局部线性近似的系数。梯度下降正是利用该近似,选择让一阶变化为负的方向。

6. 导数符号与单调性

在一个区间内:

  • f′(x)>0f'(x)>0:函数递增;
  • f′(x)<0f'(x)<0:函数递减;
  • f′(x)=0f'(x)=0:该点是驻点候选。

驻点不一定是极小值。f(x)=x3f(x)=x^3 在 0 导数为 0,却既不是局部最大也不是局部最小。

7. 二阶导数与曲率

f′′(x)=ddxf′(x).f''(x)=\frac{d}{dx}f'(x).

它描述斜率如何变化:

  • f′′(x)>0f''(x)>0:局部向上弯,导数递增;
  • f′′(x)<0f''(x)<0:局部向下弯;
  • 在驻点处,f′′(x)>0f''(x)>0 常可判定局部极小,<0<0 判定局部极大;
  • f′′(x)=0f''(x)=0 时二阶检验不确定。

例如 f(x)=x2f(x)=x^2,f′′=2>0f''=2>0;f(x)=x4f(x)=x^4 在 0 二阶导为 0,但仍是极小点。

8. 常用基本导数

ddxc=0,\frac d{dx}c=0, ddxxp=pxp−1,\frac d{dx}x^p=px^{p-1}, ddxex=ex,\frac d{dx}e^x=e^x, ddxlog⁡x=1x(x>0),\frac d{dx}\log x=\frac1x\quad(x>0), ddxsin⁡x=cos⁡x,ddxcos⁡x=−sin⁡x.\frac d{dx}\sin x=\cos x, \qquad \frac d{dx}\cos x=-\sin x.

三角函数不是经典机器学习主线,但周期时间编码和某些表示方法会用到。

9. 极值必要条件

若可微函数在定义域内部点 x∗x^* 取得局部极值,则

f′(x∗)=0.f'(x^*)=0.

这是必要条件,不是充分条件,并且不覆盖:

  • 边界极值;
  • 不可微点,如 ∣x∣|x| 在 0;
  • 无穷远处的下确界。

优化时不能只解 f′=0f'=0 就宣布全局最优。

10. 导数与单位

若 xx 单位是小时、f(x)f(x) 单位是请求数,f′(x)f'(x) 单位是“请求数/小时”。在机器学习中参数和特征尺度会直接影响导数大小,这解释了为何标准化和学习率选择相关。

11. 数值导数

前向差分:

f′(x)≈f(x+h)−f(x)h.f'(x)\approx\frac{f(x+h)-f(x)}h.

中心差分:

f′(x)≈f(x+h)−f(x−h)2h.f'(x)\approx\frac{f(x+h)-f(x-h)}{2h}.

中心差分通常更准确。hh 太大,局部近似差;太小,相减产生浮点消去误差。数值导数适合验证,不适合替代大规模自动微分。

12. 一维梯度下降

xt+1=xt−ηf′(xt).x_{t+1}=x_t-\eta f'(x_t).

若导数为正,向左移动;导数为负,向右移动。学习率过大可能越过谷底甚至发散,过小则收敛慢。导数只提供局部信息,非凸函数中可能到达不同局部极值。

易错点

  1. 导数是局部变化率,不是函数值。
  2. 导数为零不保证极小。
  3. 不可微不等于不连续,连续也不保证可微。
  4. 二阶导数为零时不能直接判定。
  5. 数值差分的 hh 不是越小越好。

常见问答

Q1:神经网络 ReLU 在 0 不可导,为什么还能训练?

不可导点集合很小,框架选定一个次梯度值;随机浮点训练精确落在该点并长期受其影响的机会有限。非光滑优化本身也有成熟理论。

Q2:梯度很大是否说明离最优点很远?

不一定。它表示局部斜率大,受函数尺度和曲率影响;有些地方离最优点近但很陡,有些地方远却很平。

Q3:二阶导数与学习率有什么关系?

曲率大时同样步长更容易越过谷底。二次函数稳定步长上限与最大曲率(Hessian 最大特征值)相关。

练习

  1. 用定义求 f(x)=3x+2f(x)=3x+2 的导数。
  2. 求 x3−4xx^3-4x 的一阶与二阶导数。
  3. 求 f(x)=(x−2)2+1f(x)=(x-2)^2+1 的驻点和最小值。
  4. 给出一个导数为零但不是极值的例子。
  5. f(x)=x2f(x)=x^2,从 x=3x=3、学习率 0.10.1 做一步梯度下降。

答案与提示

  1. 3。
  2. 3x2−43x^2-4 与 6x6x。
  3. x=2x=2,最小值 1。
  4. x3x^3 在 0。
  5. 导数 6,新位置 3−0.6=2.43-0.6=2.4。