Chapter 06
微分与导函数:瞬时斜率,学习的指南针
微分表示某一点的瞬时变化率(斜率)。导函数是将其视为函数的形式,是深度学习梯度下降与反向传播的基础。
按章节的数学图示
选择章节后,下方图示会切换为该章节内容。可一览基础数学的脉络。
左:切线 — 在曲线上一点处仅接触一条的直线。其斜率就是该点处的导数。右:两点连线 — 过曲线上两点的直线。两点趋近时这条线趋近于切线,该极限就是导数。
在曲线 上取一点 (2, 4)。我们想量这一点的「斜率」。
导数就是切线的斜率。「两点连线斜率」在两点重合时的极限就是切线斜率。
什么是微分与导函数
微分(Derivative)是曲线上某一点处图形「瞬时变化率」——即该点处有多陡。几何上等于该点的切线斜率。就像汽车速度表显示每一瞬间的速度一样,微分用数字告诉我们:当输入 发生微小变化时,输出 会有多敏感地反应。
数学上,这个斜率是先求「非常接近的两点间的平均斜率」,再让两点间距趋于 0 取极限(Limit)而得到的。公式为 。(分母 是两点间距,分子是 的相应变化量。)这样得到的值称为导数(微分系数),记作 。该值越大表示越陡,为 0 表示平坦。
导函数是把函数 在每个点处的导数(斜率)对应起来得到的新函数。也就是说,不必逐点算斜率,只要把 代入导函数式子就能得到该处的斜率,相当于「斜率生成器」。求这个导函数的过程就叫做「求导」。
- 区分下面
- 说明常用的微分公式。
- 区分
- 说明表示求导(导函数)。
| 区分 | 说明 |
|---|---|
| 下面 | 常用的微分公式。 |
| 表示求导(导函数)。 |
- 公式常数
- 说明求导为 0
- 公式幂
- 说明前面乘 ,指数变为
- 公式指数
- 说明求导仍为
- 公式指数
- 说明
- 公式自然对数
- 说明
- 公式对数 (底 a)
- 说明
- 公式sin
- 说明求导为 cos
- 公式cos
- 说明求导为
- 公式tan
- 说明求导为
- 公式和/差
- 说明各自求导后相加或相减
- 公式常数倍
- 说明常数保留,只对里面求导
- 公式乘积法则
- 说明(第一个的导数)×第二个 + 第一个×(第二个的导数)
- 公式商的法则
- 说明(上导数×下 − 上×下导数) / 下的平方
- 公式直观(积)
- 说明「第一个的导数×第二个」+「第一个×第二个的导数」。极限里拆开,两个变化相加就得到这两项。
- 公式直观(商)
- 说明把商看成「上×(1/下)」用乘积法则。(1/下)的导数代入整理即得上面公式。
| 公式 | 说明 |
|---|---|
| 常数 | 求导为 0 |
| 幂 | 前面乘 ,指数变为 |
| 指数 | 求导仍为 |
| 指数 | |
| 自然对数 | |
| 对数 (底 a) | |
| sin | 求导为 cos |
| cos | 求导为 |
| tan | 求导为 |
| 和/差 | 各自求导后相加或相减 |
| 常数倍 | 常数保留,只对里面求导 |
| 乘积法则 | (第一个的导数)×第二个 + 第一个×(第二个的导数) |
| 商的法则 | (上导数×下 − 上×下导数) / 下的平方 |
| 直观(积) | 「第一个的导数×第二个」+「第一个×第二个的导数」。极限里拆开,两个变化相加就得到这两项。 |
| 直观(商) | 把商看成「上×(1/下)」用乘积法则。(1/下)的导数代入整理即得上面公式。 |
- 公式常数
- 数值例子(5)'=0、(-3)'=0
- 解题步骤求导为 0
- 公式
- 数值例子, 时为 12
- 解题步骤指数乘到前面,指数变为
- 公式
- 数值例子 时为 1, 时为
- 解题步骤求导不变
- 公式
- 数值例子
- 解题步骤乘以
- 公式
- 数值例子 时为
- 解题步骤求导为
- 公式sin
- 数值例子 时为 1
- 解题步骤sin → cos
- 公式cos
- 数值例子 时为 0
- 解题步骤cos →
- 公式和
- 数值例子
- 解题步骤逐项求导再相加
- 公式常数倍
- 数值例子
- 解题步骤常数保留,只对 求导
- 公式积
- 数值例子
- 解题步骤(第一个的导数)×第二个 + 第一个×(第二个的导数)
- 公式商
- 数值例子 在 时为 0
- 解题步骤(上导数×下−上×下导数)/下的平方 代入
| 公式 | 数值例子 | 解题步骤 |
|---|---|---|
| 常数 | (5)'=0、(-3)'=0 | 求导为 0 |
| , 时为 12 | 指数乘到前面,指数变为 | |
| 时为 1, 时为 | 求导不变 | |
| 乘以 | ||
| 时为 | 求导为 | |
| sin | 时为 1 | sin → cos |
| cos | 时为 0 | cos → |
| 和 | 逐项求导再相加 | |
| 常数倍 | 常数保留,只对 求导 | |
| 积 | (第一个的导数)×第二个 + 第一个×(第二个的导数) | |
| 商 | 在 时为 0 | (上导数×下−上×下导数)/下的平方 代入 |
用日常话说,导数是寻找最优点的指南针。从山顶想下到最低的谷底时,我们顺着脚下感觉到的坡度往下走。导数把这条「坡」精确算出来。坡度为零的地方往往是山顶(最大)或谷底(最小),所以求最小值或最大值时导数必不可少。
深度学习模型要最小化正确答案与预测之间的误差(损失)。梯度就是在决定「该怎样改模型里大量权重()才能让误差变小」。通过求导可以知道「某个权重稍微增大时误差会变大还是变小」,从而沿误差下降最快的方向更新权重。
反向传播是把这套导数思想反过来用的高效学习方法:从输出端一步步往回走,用导数算「每一层对最终误差贡献多少」。要对层层叠叠的函数求导,就要用复合函数求导(链式法则),本章学的基本导函数公式正是它的基础。
通常导数用来做敏感性分析:一个变量动一点时,整体结果会晃多少?经济学里问「价格稍微涨一点,需求会多敏感」;物理学里量「随时间位置变化多快(速度)」。所以凡是把「原因」的微小变化对「结果」的影响量化出来的地方,都在用导数。
AI 学习系统里,所有参数更新都依赖导数值。用 PyTorch、TensorFlow 这类库时,内部会在瞬间对损失按每个权重求导。沿导数值反方向移动权重就是梯度下降。本章学的公式是理解 AI 如何通过计算变聪明的第一把钥匙。
求导时,先看适用哪些法则(幂、指数、对数、三角、积、商、链式),再按法则写并化简。
例题与解答见下表。
- 问题例1. 的导函数
- 解答幂与和:
- 问题例2. 的导函数
- 解答乘积法则:
- 问题例3. 的导函数
- 解答商的法则:
| 问题 | 解答 |
|---|---|
| 例1. 的导函数 | 幂与和: |
| 例2. 的导函数 | 乘积法则: |
| 例3. 的导函数 | 商的法则: |
按题型解题
- 类型幂
- 式子·公式
- 在 处求 的方法。指数提到前面、指数减一后代入 。
- 类型一次式
- 式子·公式
- 在 处求 的方法。斜率为导函数,故与 无关,答案为 。
- 类型二次式
- 式子·公式
- 在 处求 的方法。 系数的 2 倍×+一次项系数。
- 类型常数倍·幂
- 式子·公式
- 在 处求 的方法。常数 保留,乘以 的导数。
| 类型 | 式子·公式 | 在 处求 的方法 |
|---|---|---|
| 幂 | 。指数提到前面、指数减一后代入 。 | |
| 一次式 | 。斜率为导函数,故与 无关,答案为 。 | |
| 二次式 | 。 系数的 2 倍×+一次项系数。 | |
| 常数倍·幂 | 。常数 保留,乘以 的导数。 |
例(幂)
当 时,求 处的导数 。
解答
,故 。→ 答案 12
例(一次式)
当 时,求 处的导数 。
解答
一次式的导函数等于斜率,故 。与 无关,。→ 答案 3
例(二次式)
当 时,求 处的导数 。
解答
,故 。→ 答案 8
例(常数倍·幂)
当 时,求 处的导数 。
解答
,故 。→ 答案 8