Chapter 06
微分与导函数
微分表示某一点的瞬时变化率(斜率)。导函数是将其视为函数的形式,是深度学习梯度下降与反向传播的基础。
home.mathDiagramTitle
home.mathDiagramDescription
左:切线 — 在曲线上一点处仅接触一条的直线。其斜率就是该点处的导数。右:两点连线 — 过曲线上两点的直线。两点趋近时这条线趋近于切线,该极限就是导数。
在曲线 上取一点 (2, 4)。我们想量这一点的「斜率」。
导数就是切线的斜率。「两点连线斜率」在两点重合时的极限就是切线斜率。
什么是微分与导函数
一句话:微分就是曲线上某一点有多陡(斜率)的度量。在图像上取一点,过该点作切线,这条切线的斜率就是该点处的微分。横动一点时纵坐标变化有多快。
用式子写:这个斜率是「很近两点间的平均斜率」的极限。极限存在时就说在该点可微,记成导数(如 )。上面图示里切线的斜率就是这个导数。
导函数是把「每个点处的斜率」收集起来得到的函数。每个点有一个斜率,按位置排起来就是导函数。求导函数叫做求导。
| 区分 | 说明 |
|---|---|
| 下面 | 常用的微分公式。 |
| 表示求导(导函数)。 |
| 公式 | 说明 |
|---|---|
| 常数 | 求导为 0 |
| 幂 | 前面乘 ,指数变为 |
| 指数 | 求导仍为 |
| 指数 | |
| 自然对数 | |
| 对数 (底 a) | |
| sin | 求导为 cos |
| cos | 求导为 |
| tan | 求导为 |
| 和/差 | 各自求导后相加或相减 |
| 常数倍 | 常数保留,只对里面求导 |
| 乘积法则 | (第一个的导数)×第二个 + 第一个×(第二个的导数) |
| 商的法则 | (上导数×下 − 上×下导数) / 下的平方 |
| 直观(积) | 「第一个的导数×第二个」+「第一个×第二个的导数」。极限里拆开,两个变化相加就得到这两项。 |
| 直观(商) | 把商看成「上×(1/下)」用乘积法则。(1/下)的导数代入整理即得上面公式。 |
| 公式 | 数值例子 | 解题步骤 |
|---|---|---|
| 常数 | (5)'=0、(-3)'=0 | 求导为 0 |
| , 时为 12 | 指数乘到前面,指数变为 | |
| 时为 1, 时为 | 求导不变 | |
| 乘以 | ||
| 时为 | 求导为 | |
| sin | 时为 1 | sin → cos |
| cos | 时为 0 | cos → |
| 和 | 逐项求导再相加 | |
| 常数倍 | 常数保留,只对 求导 | |
| 积 | (第一个的导数)×第二个 + 第一个×(第二个的导数) | |
| 商 | 在 时为 0 | (上导数×下−上×下导数)/下的平方 代入 |
日常生活中「斜率」表示「朝哪边、多快地变化」。比如下山时,最陡的方向就是「斜率最大的方向」。反过来,在谷底(最小值)或山顶(最大值)处,既不算往上也不算往下,所以那里的斜率是零。所以找「最低点」「最高点」其实就是找「斜率为零的地方」。导数就是把这种「斜率」用式子精确写出来的东西。懂了导数,不仅能算「哪里最低、哪里最高」,还能算「往哪个方向走能最快下山」。
深度学习里会先定一个分数(损失)——比如预测离正确答案有多远——希望把它变小。分数越低说明模型越准。然后一点点调整模型里的很多数字(权重)来降低这个分数。但数字太多,没法一个一个试「这个加大、那个减小」。所以要用梯度。梯度能告诉我们:对每个数字来说,稍微增大它会让分数下降还是上升,稍微减小它又会怎样——和导数是同一个概念。根据这个再决定「要降分数,这个权重加大、那个减小」。懂导数就能解释「AI为什么会这样改这些数字」。
反向传播是从「答案(输出)」往输入方向倒着一步一步走,对每个权重算「损失会变多少」(即导数)的方法。模型有很多层(输入→第一层→…→输出),所以改一个权重,后面几层会依次变,最后损失才变。要沿着这种「一环扣一环」的变化做求导,就要用复合函数求导(链式法则)。本章学的导函数和公式会原样用上,这里学扎实了后面会轻松很多。
一般说来,导数衡量的是「把这个值稍微改一点,结果会变多少、往哪边变(变大还是变小)」。所以凡是要决定「这个数该加大还是减小」时都会用到。比如:气温升高时销量会升还是降?涨价时需求会降多少?多投广告费时营收会多多少?——这类「改一点某一项时,另一项会多少、往哪边变」都可以用导数来量。
AI训练时,「每个权重该改多少、往哪边改」由损失对这个权重的导数决定。我们想降低损失(分数),但权重有成千上万个,没法一个一个试。所以用导数来算「这个权重稍微加大一点,损失会下降还是上升」。掌握本章的微分法则(和、积、商、链式),就能看懂反向传播的式子,后面再扩展到偏导数与梯度(Ch08)。
求导时,先看适用哪些法则(幂、指数、对数、三角、积、商、链式),再按法则写并化简。
例题与解答见下表。
| 问题 | 解答 |
|---|---|
| 例1. 的导函数 | 幂与和: |
| 例2. 的导函数 | 乘积法则: |
| 例3. 的导函数 | 商的法则: |