微积分求导完整手册

从导数定义、基本公式、组合规则,到偏导数、多元链式法则与矩阵求导。为交叉熵推导补齐所需工具,自包含、可独立作为复习手册。


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 的梯度推导都不再是问题。