机器学习数学基础 120 章

一元导数、切线与变化率

层级:A|必学

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

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

2. 平均变化率

xxx+hx+h

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

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

3. 导数定义

f(x)=limh0f(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)2x2h=2xh+h2h=2x+h.\frac{(x+h)^2-x^2}{h} =\frac{2xh+h^2}{h}=2x+h.

h0h\to0

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

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

5. 切线与线性近似

函数在 x0x_0 的切线:

y=f(x0)+f(x0)(xx0).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^2f=2>0f''=2>0f(x)=x4f(x)=x^4 在 0 二阶导为 0,但仍是极小点。

8. 常用基本导数

ddxc=0,\frac d{dx}c=0, ddxxp=pxp1,\frac d{dx}x^p=px^{p-1}, ddxex=ex,\frac d{dx}e^x=e^x, ddxlogx=1x(x>0),\frac d{dx}\log x=\frac1x\quad(x>0), ddxsinx=cosx,ddxcosx=sinx.\frac d{dx}\sin x=\cos x, \qquad \frac d{dx}\cos x=-\sin x.

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

9. 极值必要条件

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

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(xh)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. x34xx^3-4x 的一阶与二阶导数。
  3. f(x)=(x2)2+1f(x)=(x-2)^2+1 的驻点和最小值。
  4. 给出一个导数为零但不是极值的例子。
  5. f(x)=x2f(x)=x^2,从 x=3x=3、学习率 0.10.1 做一步梯度下降。

答案与提示

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