常用求导规则——幂函数、指数与对数
上一章理解了导数的含义,本章掌握实际计算。AI 中最常用的三类函数求导规则,记住就能应对大多数场景。
基本函数导数速查表
| 函数 f(x) | 导数 f'(x) | AI 中出现的场景 |
|---|---|---|
| \( c \)(常数) | \( 0 \) | 偏置项求导时常数消掉 |
| \( x^n \) | \( nx^{n-1} \) | MSE 损失中 \( x^2 \) |
| \( e^x \) | \( e^x \) | Sigmoid、Softmax |
| \( \ln x \) | \( \frac{1}{x} \) | 交叉熵损失 |
四则运算求导法则
| 法则 | 公式 |
|---|---|
| 和差 | \( (f \pm g)' = f' \pm g' \) |
| 乘积 | \( (fg)' = f'g + fg' \) |
| 数乘 | \( (cf)' = cf' \) |
最重要的一个导数:\( (e^x)' = e^x \)——指数函数的导数等于它自己。
这让指数函数在微分方程和深度学习中无处不在。
生活例子
学习求导规则就像学做菜的刀法——每个规则是基本功,组合起来能处理任何食谱。
\( (e^x)' = e^x \) 好比一个不变的材料:无论怎么加工,它始终保持原样。
数学定义
幂函数求导:降一次幂,乘原指数
\[ \frac{d}{dx} x^n = n x^{n-1} \]这是最基础的求导公式。例如 \( (x^2)' = 2x \)、\( (x^3)' = 3x^2 \)。
MSE 损失中的 \( (y - \hat{y})^2 \) 就是幂函数,对其求导得到 \( 2(y - \hat{y}) \)。
指数函数求导:导数是自身
\[ \frac{d}{dx} e^x = e^x \]这是数学中最独特的函数之一。e^x 的导数还是 e^x——无论求多少次导,它始终保持原样。
这一性质让 e^x 在 Sigmoid 函数 \( \sigma(x) = 1/(1+e^{-x}) \) 和 Softmax 中反复出现。
对数函数求导
\[ \frac{d}{dx} \ln x = \frac{1}{x} \]交叉熵损失中的 log 项求导就用到它。对数和指数的导数互为倒数关系——它们互为反函数。
和差法则
\[ (f \pm g)' = f' \pm g' \]和的导数 = 导数的和。求导操作可以「穿过」加号和减号,分别对每一项求导。
乘积法则
\[ (f \cdot g)' = f' \cdot g + f \cdot g' \]乘积的导数 ≠ 导数的乘积。而是「第一个的导数乘第二个 + 第一个乘第二个的导数」。
这个法则在反向传播中经常出现——当计算 \( w \cdot x \) 对 w 的偏导时,就用到乘积法则。
结合这三类函数和三条法则,就能求出 AI 中绝大多数函数的导数。
例如 Sigmoid 的导数 \( \sigma'(x) = \sigma(x)(1-\sigma(x)) \) 就是综合运用了商法则、指数函数求导和链式法则。
Python 动手实践
实例
x = sp.Symbol('x')
funcs = {'x^3': x**3, 'e^x': sp.exp(x), 'ln(x)': sp.log(x),
'x^2 + 3x + 5': x**2 + 3*x + 5}
print("=== 符号求导验证 ===")
for name, f in funcs.items():
print(f"f(x)={name:15s} → f'(x)={sp.diff(f, x)}")
# 乘积法则
f = x**2 * sp.exp(x)
print(f"\n(x^2 · e^x)' = {sp.diff(f, x)}")
# 链式法则:(2x+1)^3 的导数
g = (2*x + 1)**3
print(f"((2x+1)^3)' = {sp.diff(g, x)}")
AI 中的应用场景
反向传播中的梯度计算
神经网络的每一层都涉及这些基本求导规则。线性层 y = Wx + b 对参数 W 求导用到乘积法则,对 b 求导用到常数的导数为 0。
Sigmoid 激活函数的导数推导
\( \sigma(x) = 1/(1+e^{-x}) \),用商法则得到 \( \sigma'(x) = \sigma(x)(1-\sigma(x)) \)。这个简洁形式在反向传播中计算极快——只需要前向传播时已经算好的 \sigma(x) 值,不需要重新算指数。
Softmax + 交叉熵的组合梯度
Softmax 包含指数、求和、除法,单独求导很复杂。但与交叉熵损失组合后,梯度奇迹般化简为 \( \hat{y} - y \)(预测 - 真实标签)——这是深度学习中最优雅的导数化简之一,也是分类任务标配 Softmax+CE 的根本原因。
