微积分求导完整手册
从导数定义、基本公式、组合规则,到偏导数、多元链式法则与矩阵求导。为交叉熵推导补齐所需工具,自包含、可独立作为复习手册。
1. 导数的定义与直观含义
1.1 定义
函数 在点 处的导数:
1.2 直观含义
| 视角 | 含义 |
|---|---|
| 几何 | 曲线在点 处切线的斜率 |
| 物理 | 瞬时变化率(位移对时间的导数是速度) |
| 优化 | 函数在该点上升/下降的陡峭程度;导数为 0 是极值点的必要条件 |
1.3 可导与连续
可导必连续,连续不一定可导(如 在 处连续但不可导)。本文默认所涉函数在其定义域内可导。
1.4 记号
三种写法等价。多变量时用偏导记号 。
2. 基本求导公式表
这些是「原子」,所有复杂函数的导数都由它们组合而成。必须背熟到看见即反应。
2.1 常数与幂
| 函数 | 导数 | 说明 |
|---|---|---|
| (常数) | 常数不变,变化率为 0 | |
| 自身变化率为 1 | ||
| 幂降一次,乘原指数 | ||
| 幂公式特例 | ||
| 幂公式特例 |
2.2 指数与对数
| 函数 | 导数 | 说明 |
|---|---|---|
| 唯一导数等于自身的函数 | ||
| 一般底数指数 | ||
| 自然对数 | ||
| 一般底数对数 |
2.3 三角函数
| 函数 | 导数 |
|---|---|
2.4 反三角函数
| 函数 | 导数 |
|---|---|
2.5 双曲函数(深度学习偶见)
| 函数 | 导数 |
|---|---|
记忆点: 的导数 在 RNN 反向传播中反复出现——前向存下 的输出,反向只需一次乘法。
3. 组合规则
3.1 常数倍
例:。
3.2 和 / 差
逐项求导,符号不变。例:。
3.3 乘积法则
口诀:前导后不导 + 前不导后导。
例:。
三因子推广:
3.4 商法则
口诀:上导下不导,减上不导下导,除以分母平方。
例:
softmax 的雅可比矩阵就是用商法则推出来的(见练习 6)。
3.5 复合函数
交给下一章的链式法则。
4. 一元链式法则
4.1 公式
若 ,,则
口诀:外层导数 × 内层导数。
4.2 多层嵌套
从外到内逐层乘。
4.3 例子
例 1
外层 的导数是 ,内层 导数是 3:
例 2
外层 的导数是 ,内层 导数是 2:
例 3
外层 的导数是 ,内层 导数是 :
例 4 ,其中
而 ,所以结果为 。这个结果在 logistic 回归中常见。
4.4 链式法则的本质
链式法则是变化率的传递: 变一点 → 变 倍 → 再变 倍 → 总变化率是乘积。
反向传播就是链式法则在计算图上的系统应用:每个节点把自己收到的上游梯度乘上本地导数,再传给下游。
5. 偏导数
5.1 定义
多元函数 对 的偏导数:只让 变,其余变量全部当常数,此时的变化率。
核心口诀:求谁谁动,其余冻住。
5.2 例子
例 1
- ( 当常数, 导数为 0)
- ( 当常数, 导数为 0)
例 2
- (对 求导, 是常数系数)
例 3
5.3 高阶偏导
若二阶偏导连续,则 (混合偏导可交换顺序)。
5.4 梯度
所有一阶偏导组成的向量:
梯度指向函数增长最快的方向。梯度下降就是沿 走。
6. 多元链式法则(核心)
这一章是交叉熵推导的真正瓶颈。核心只有一句:把每一条影响路径的局部导数相乘,再把所有路径相加。
6.1 形式 1:一个自变量,经多个中间变量影响输出
设 ,每个 都只依赖同一个 。则
为什么求和: 变一点,会通过 每一条路径影响 ;总变化率 = 各路径贡献之和。
例:,,。
- 路径 1:
- 路径 2:
- 合计:
验证:, ✓
6.2 形式 2:多个自变量,各自经多个中间变量
设 ,每个 。对某个 :
为什么是 : 可能通过全部 个中间变量 影响 (如 softmax 中 出现在分母,影响所有 )。每条路径的局部导数乘积相加。
例(softmax 前的简化版,即交叉熵):设 ,其中 是 one-hot 标签向量——、其余为 0,所以该式退化成 。
softmax 输出为 ,。
- ( 时 ,偏导也为 0)
- (由第 3 节商法则可推, 见下)
- 代入求和:(最后一步用 )
其中 是克罗内克 δ(Kronecker delta)。它本身不是变量,只是把「 才成立的那一项」写进同一个式子的记号,等价于单位矩阵的第 个元素:
为什么分子求导会产生它: 只在 时对 敏感,两个分支写成一个乘积就是
分母则不分情况—— 里始终有 那一项,所以 恒成立。代进商法则:
拆开看: 时是 , 时是 ;而这一行所有项加起来为 0(因 ),说明抬高某个 logit 只是把概率重新分配,总和不变。
另一个常用性质是筛选:——求和时 δ 只把 那一项留下,其余全归零。练习 7 最后一步消掉求和用的就是它。
6.3 一般形式
若 ,每个 ,则
这是最一般的多元链式法则。形式 1、2 都是它的特例。
6.4 一元 vs 多元对比
| 一元链式 | 多元(形式 1) | 多元(形式 2) | |
|---|---|---|---|
| 式子 | |||
| 求和 | 无 | 有 | 有 |
| 原因 | 只有一条路径 | 经多个 影响 | 经多个 影响 |
7. 全微分视角
如果只记一句话:多元链式法则里的求和不是技巧,是全微分公式的必然结果。
7.1 全微分公式
若 ,则
含义是「 的微小变化 = 各变量微小变化按偏导加权求和」。求和是全微分公式自带的,因为 依赖 个变量,任何一个变了 都变。
7.2 用它推多元链式法则
设 ,则
代入全微分:
取 的系数(其他 视为 0):
7.3 反例:漏项会错
设 ,,,求 。
| 做法 | 结果 | 结论 |
|---|---|---|
| 正确(遍历全部路径) | 与直接验证一致 | |
| 直接展开验证 | ,对 求导 | ✓ |
| 只算 | 错(漏了 经 的路径) |
易错:只对「显式出现」的那一项求导,是多元链式最常见的翻车点。动手前先画依赖图,数清 到 有几条路径。
8. 矩阵 / 向量求导入门
8.1 梯度与雅可比
| 类型 | 形式 |
|---|---|
| 标量对向量 | 是标量,,则 是梯度向量,分量为 |
| 向量对向量 | ,,则 是雅可比矩阵 , |
8.2 链式法则的矩阵形式
即「梯度行向量 × 雅可比矩阵」。矩阵乘法的第 个分量天然是 ,与多元链式法则完全一致。
一句话:求和 = 矩阵乘法内积。所谓「多元链式法则」,写成矩阵就是这个乘法。
8.3 常用矩阵求导公式
| 表达式 | 对 的导数 |
|---|---|
| ( 对称时为 ) | |
| 逐元素;标量情形为 |
注意:分子布局 / 分母布局约定不同会导致转置差异。本文统一用「梯度为行向量」的分子布局,读其他资料时先确认对方用的是哪一套。
9. 常用技巧与易错点
9.1 对数求导法
对 这类「幂指函数」,先取对数再求导:
例:,,,故 。
9.2 隐函数求导
时,两边对 求导( 视为 的函数,用链式法则),再解出 。
例:,,故 。
9.3 易错点清单
| 易错点 | 正确做法 |
|---|---|
| 丢负号 | ,负号来自系数 |
| 商法则分子顺序 | ,减号前后不能反 |
| 链式法则漏内层 | 的导数是 而不是 ,内层的 3 必须乘 |
| 偏导时没冻住其他变量 | 求 时 当常数, 的导数为 0 |
| 多元链式漏求和 | 经 个中间变量影响 ,必须 |
| 提前代入 one-hot | 求和化简前保留 符号,最后再用 |
| 求导 | 等于自身 ;链式时再乘内层导数 |
9.4 求导流程建议
| 步骤 | 动作 |
|---|---|
| 1 | 识别结构:基本函数、和差、乘积、商,还是复合? |
| 2 | 套对应规则;复合函数从外到内逐层 |
| 3 | 偏导时明确「谁动谁冻」 |
| 4 | 多元链式先画依赖关系图,确认有几条路径,决定求和范围 |
| 5 | 化简,并用特殊值(如代入 )或量纲检查 |
10. 练习题与答案
建议先遮住答案独立手推。第 6–8 题是深度学习梯度的主干,务必推熟到能默写。
练习 1(基本公式 + 链式)
求 。
答案:外层 的导数为 ,内层 的导数为 :
练习 2(商法则)
求 。
答案:
练习 3(乘积 + 链式)
求 。
答案:乘积法则 + 链式:
练习 4(偏导)
,求 、。
答案:
练习 5(多元链式,形式 1)
,,,求 。
答案:
验证:,导数 ✓
练习 6(多元链式,形式 2:softmax 雅可比)
设 ,。求 ,分 与 两种情形。
答案:
(商法则;分子含 ,分母也含 ):
(分子 对 是常数,导数为 0;仅分母含 ):
合并:
练习 7(综合:交叉熵梯度)
, 为 one-hot, 如上。求 。
答案:
中间两步: 用的是 δ 的筛选性质(只有 那项留下); 用的是 one-hot 的 。
即
练习 8(挑战:sigmoid + BCE)
,。求 。
答案:先证 (商法则,或写成 用链式)。
代入 并化简:
即 ,与 softmax 情形形式一致。
11. 速查表
11.1 基本导数
常数 C → 0
x → 1
x^n → n·x^(n-1)
1/x → -1/x^2
√x → 1/(2√x)
e^x → e^x
a^x → a^x·ln a
ln x → 1/x
log_a x → 1/(x·ln a)
sin x → cos x
cos x → -sin x
tan x → 1/cos^2 x
tanh x → 1 - tanh^2 x
arcsin x → 1/√(1-x^2)
arctan x → 1/(1+x^2)
11.2 组合规则
常数倍 (C·f)' = C·f'
和差 (f±g)' = f'±g'
乘积 (fg)' = f'g + fg'
商 (f/g)' = (f'g - fg')/g^2
一元链式 f(g(x))' = f'(g(x))·g'(x)
多层链式 f(g(h(x)))' = f'(g(h(x)))·g'(h(x))·h'(x)
11.3 多元
偏导:求谁谁动,其余冻住
多元链式(形式 1):
dL/dx = Σ_i (∂L/∂u_i)·(du_i/dx)
多元链式(形式 2):
∂L/∂z_j = Σ_i (∂L/∂ŷ_i)·(∂ŷ_i/∂z_j)
一般形式:
∂L/∂x_j = Σ_i (∂L/∂u_i)·(∂u_i/∂x_j)
全微分:
dL = Σ_i (∂L/∂u_i)·du_i
矩阵形式:
∂L/∂z = (∂L/∂ŷ)·J
11.4 深度学习常用结果
sigmoid: σ'(z) = σ(z)(1-σ(z))
softmax: ∂ŷ_i/∂z_j = ŷ_i(δ_ij - ŷ_j)
BCE + sigmoid: dL/dz = σ(z) - y
CE + softmax: ∂L/∂z_j = ŷ_j - y_j
tanh: tanh'(z) = 1 - tanh^2(z)
ReLU: ReLU'(z) = 1 (z>0), 0 (z<0)
11.5 易错点自查
□ 负号:(-ln x)' = -1/x
□ 商法则分子顺序不能反
□ 链式法则别漏内层导数
□ 偏导时其他变量当常数
□ 多元链式别漏求和
□ 求和化简前别提前代入 one-hot
结论:本文档覆盖了从一元求导到多元链式法则、再到深度学习常用梯度的全部工具。练习 6–8 推熟之后,交叉熵、softmax、sigmoid、BCE 的梯度推导都不再是问题。