大家的AI
机器学习AI论文
Loading...

学习

🏅我的成就

Chapter 06

微分与导函数:瞬时斜率,学习的指南针

微分表示某一点的瞬时变化率(斜率)。导函数是将其视为函数的形式,是深度学习梯度下降与反向传播的基础。

按章节的数学图示

选择章节后,下方图示会切换为该章节内容。可一览基础数学的脉络。

左:切线 — 在曲线上一点处仅接触一条的直线。其斜率就是该点处的导数。右:两点连线 — 过曲线上两点的直线。两点趋近时这条线趋近于切线,该极限就是导数。

1232468(2, 4)y=x²

在曲线 y=x2y=x^2y=x2 上取一点 (2, 4)。我们想量这一点的「斜率」。

导数就是切线的斜率。「两点连线斜率」在两点重合时的极限就是切线斜率。

什么是微分与导函数

微分(Derivative)是曲线上某一点处图形「瞬时变化率」——即该点处有多陡。几何上等于该点的切线斜率。就像汽车速度表显示每一瞬间的速度一样,微分用数字告诉我们:当输入 xxx 发生微小变化时,输出 yyy 会有多敏感地反应。
数学上,这个斜率是先求「非常接近的两点间的平均斜率」,再让两点间距趋于 0 取极限(Limit)而得到的。公式为 f′(a)=lim⁡h→0f(a+h)−f(a)hf^{\prime}(a) = \lim_{h \to 0} \frac{f(a+h)-f(a)}{h}f′(a)=limh→0​hf(a+h)−f(a)​。(分母 hhh 是两点间距,分子是 fff 的相应变化量。)这样得到的值称为导数(微分系数),记作 f′(a)f^{\prime}(a)f′(a)。该值越大表示越陡,为 0 表示平坦。
导函数是把函数 f(x)f(x)f(x) 在每个点处的导数(斜率)对应起来得到的新函数。也就是说,不必逐点算斜率,只要把 xxx 代入导函数式子就能得到该处的斜率,相当于「斜率生成器」。求这个导函数的过程就叫做「求导」。
  • 区分下面
  • 说明常用的微分公式。
  • 区分′'′
  • 说明表示求导(导函数)。
区分说明
下面常用的微分公式。
′'′表示求导(导函数)。
  • 公式常数
  • 说明求导为 0
  • 公式幂 xnx^nxn
  • 说明前面乘 nnn,指数变为 n−1n-1n−1
  • 公式指数 exe^xex
  • 说明求导仍为 exe^xex
  • 公式指数 axa^xax
  • 说明axln⁡aa^x \ln aaxlna
  • 公式自然对数 ln⁡x\ln xlnx
  • 说明1/x1/x1/x
  • 公式对数 (底 a)
  • 说明1/(xln⁡a)1/(x \ln a)1/(xlna)
  • 公式sin
  • 说明求导为 cos
  • 公式cos
  • 说明求导为 −sin⁡-\sin−sin
  • 公式tan
  • 说明求导为 1/cos⁡21/\cos^21/cos2
  • 公式和/差
  • 说明各自求导后相加或相减
  • 公式常数倍
  • 说明常数保留,只对里面求导
  • 公式乘积法则
  • 说明(第一个的导数)×第二个 + 第一个×(第二个的导数)
  • 公式商的法则
  • 说明(上导数×下 − 上×下导数) / 下的平方
  • 公式直观(积)
  • 说明「第一个的导数×第二个」+「第一个×第二个的导数」。极限里拆开,两个变化相加就得到这两项。
  • 公式直观(商)
  • 说明把商看成「上×(1/下)」用乘积法则。(1/下)的导数代入整理即得上面公式。
公式说明
常数求导为 0
幂 xnx^nxn前面乘 nnn,指数变为 n−1n-1n−1
指数 exe^xex求导仍为 exe^xex
指数 axa^xaxaxln⁡aa^x \ln aaxlna
自然对数 ln⁡x\ln xlnx1/x1/x1/x
对数 (底 a)1/(xln⁡a)1/(x \ln a)1/(xlna)
sin求导为 cos
cos求导为 −sin⁡-\sin−sin
tan求导为 1/cos⁡21/\cos^21/cos2
和/差各自求导后相加或相减
常数倍常数保留,只对里面求导
乘积法则(第一个的导数)×第二个 + 第一个×(第二个的导数)
商的法则(上导数×下 − 上×下导数) / 下的平方
直观(积)「第一个的导数×第二个」+「第一个×第二个的导数」。极限里拆开,两个变化相加就得到这两项。
直观(商)把商看成「上×(1/下)」用乘积法则。(1/下)的导数代入整理即得上面公式。
  • 公式常数
  • 数值例子(5)'=0、(-3)'=0
  • 解题步骤求导为 0
  • 公式xnx^nxn
  • 数值例子(x3)′=3x2(x^3)'=3x^2(x3)′=3x2,x=2x=2x=2 时为 12
  • 解题步骤指数乘到前面,指数变为 n−1n-1n−1
  • 公式exe^xex
  • 数值例子x=0x=0x=0 时为 1,x=1x=1x=1 时为 eee
  • 解题步骤求导不变
  • 公式axa^xax
  • 数值例子(2x)′=2xln⁡2(2^x)'=2^x \ln 2(2x)′=2xln2
  • 解题步骤乘以 ln⁡a\ln alna
  • 公式ln⁡x\ln xlnx
  • 数值例子x=5x=5x=5 时为 1/51/51/5
  • 解题步骤求导为 1/x1/x1/x
  • 公式sin
  • 数值例子x=0x=0x=0 时为 1
  • 解题步骤sin → cos
  • 公式cos
  • 数值例子x=0x=0x=0 时为 0
  • 解题步骤cos → −sin⁡-\sin−sin
  • 公式和
  • 数值例子(x2+x)′=2x+1(x^2+x)'=2x+1(x2+x)′=2x+1
  • 解题步骤逐项求导再相加
  • 公式常数倍
  • 数值例子(5x2)′=10x(5x^2)'=10x(5x2)′=10x
  • 解题步骤常数保留,只对 x2x^2x2 求导
  • 公式积
  • 数值例子(x⋅ex)′=ex(1+x)(x\cdot e^x)'=e^x(1+x)(x⋅ex)′=ex(1+x)
  • 解题步骤(第一个的导数)×第二个 + 第一个×(第二个的导数)
  • 公式商
  • 数值例子x/(x2+1)x/(x^2+1)x/(x2+1) 在 x=1x=1x=1 时为 0
  • 解题步骤(上导数×下−上×下导数)/下的平方 代入
公式数值例子解题步骤
常数(5)'=0、(-3)'=0求导为 0
xnx^nxn(x3)′=3x2(x^3)'=3x^2(x3)′=3x2,x=2x=2x=2 时为 12指数乘到前面,指数变为 n−1n-1n−1
exe^xexx=0x=0x=0 时为 1,x=1x=1x=1 时为 eee求导不变
axa^xax(2x)′=2xln⁡2(2^x)'=2^x \ln 2(2x)′=2xln2乘以 ln⁡a\ln alna
ln⁡x\ln xlnxx=5x=5x=5 时为 1/51/51/5求导为 1/x1/x1/x
sinx=0x=0x=0 时为 1sin → cos
cosx=0x=0x=0 时为 0cos → −sin⁡-\sin−sin
和(x2+x)′=2x+1(x^2+x)'=2x+1(x2+x)′=2x+1逐项求导再相加
常数倍(5x2)′=10x(5x^2)'=10x(5x2)′=10x常数保留,只对 x2x^2x2 求导
积(x⋅ex)′=ex(1+x)(x\cdot e^x)'=e^x(1+x)(x⋅ex)′=ex(1+x)(第一个的导数)×第二个 + 第一个×(第二个的导数)
商x/(x2+1)x/(x^2+1)x/(x2+1) 在 x=1x=1x=1 时为 0(上导数×下−上×下导数)/下的平方 代入
用日常话说,导数是寻找最优点的指南针。从山顶想下到最低的谷底时,我们顺着脚下感觉到的坡度往下走。导数把这条「坡」精确算出来。坡度为零的地方往往是山顶(最大)或谷底(最小),所以求最小值或最大值时导数必不可少。
深度学习模型要最小化正确答案与预测之间的误差(损失)。梯度就是在决定「该怎样改模型里大量权重(www)才能让误差变小」。通过求导可以知道「某个权重稍微增大时误差会变大还是变小」,从而沿误差下降最快的方向更新权重。
反向传播是把这套导数思想反过来用的高效学习方法:从输出端一步步往回走,用导数算「每一层对最终误差贡献多少」。要对层层叠叠的函数求导,就要用复合函数求导(链式法则),本章学的基本导函数公式正是它的基础。
通常导数用来做敏感性分析:一个变量动一点时,整体结果会晃多少?经济学里问「价格稍微涨一点,需求会多敏感」;物理学里量「随时间位置变化多快(速度)」。所以凡是把「原因」的微小变化对「结果」的影响量化出来的地方,都在用导数。
AI 学习系统里,所有参数更新都依赖导数值。用 PyTorch、TensorFlow 这类库时,内部会在瞬间对损失按每个权重求导。沿导数值反方向移动权重就是梯度下降。本章学的公式是理解 AI 如何通过计算变聪明的第一把钥匙。
求导时,先看适用哪些法则(幂、指数、对数、三角、积、商、链式),再按法则写并化简。
例题与解答见下表。
  • 问题例1. f(x)=x3−2xf(x)=x^3-2xf(x)=x3−2x 的导函数
  • 解答幂与和:f′(x)=3x2−2f^{\prime}(x)=3x^2-2f′(x)=3x2−2
  • 问题例2. g(x)=exln⁡xg(x)=e^x \ln xg(x)=exlnx 的导函数
  • 解答乘积法则:exln⁡x+ex⋅1xe^x \ln x + e^x \cdot \frac{1}{x}exlnx+ex⋅x1​
  • 问题例3. h(x)=sin⁡xxh(x)=\frac{\sin x}{x}h(x)=xsinx​ 的导函数
  • 解答商的法则:cos⁡x⋅x−sin⁡xx2\frac{\cos x \cdot x - \sin x}{x^2}x2cosx⋅x−sinx​
问题解答
例1. f(x)=x3−2xf(x)=x^3-2xf(x)=x3−2x 的导函数幂与和:f′(x)=3x2−2f^{\prime}(x)=3x^2-2f′(x)=3x2−2
例2. g(x)=exln⁡xg(x)=e^x \ln xg(x)=exlnx 的导函数乘积法则:exln⁡x+ex⋅1xe^x \ln x + e^x \cdot \frac{1}{x}exlnx+ex⋅x1​
例3. h(x)=sin⁡xxh(x)=\frac{\sin x}{x}h(x)=xsinx​ 的导函数商的法则:cos⁡x⋅x−sin⁡xx2\frac{\cos x \cdot x - \sin x}{x^2}x2cosx⋅x−sinx​
按题型解题
  • 类型幂
  • 式子·公式f(x)=xnf(x)=x^nf(x)=xn
  • 在 x=ax=ax=a 处求 f′(a)f^{\prime}(a)f′(a) 的方法f′(a)=n⋅an−1f^{\prime}(a) = n \cdot a^{n-1}f′(a)=n⋅an−1。指数提到前面、指数减一后代入 aaa。
  • 类型一次式
  • 式子·公式f(x)=mx+bf(x)=mx+bf(x)=mx+b
  • 在 x=ax=ax=a 处求 f′(a)f^{\prime}(a)f′(a) 的方法f′(a)=mf^{\prime}(a) = mf′(a)=m。斜率为导函数,故与 aaa 无关,答案为 mmm。
  • 类型二次式
  • 式子·公式f(x)=a2x2+a1x+a0f(x)=a_2 x^2 + a_1 x + a_0f(x)=a2​x2+a1​x+a0​
  • 在 x=ax=ax=a 处求 f′(a)f^{\prime}(a)f′(a) 的方法f′(a)=2a2⋅a+a1f^{\prime}(a) = 2 a_2 \cdot a + a_1f′(a)=2a2​⋅a+a1​。x2x^2x2 系数的 2 倍×aaa+一次项系数。
  • 类型常数倍·幂
  • 式子·公式f(x)=c⋅xnf(x)=c \cdot x^nf(x)=c⋅xn
  • 在 x=ax=ax=a 处求 f′(a)f^{\prime}(a)f′(a) 的方法f′(a)=c⋅n⋅an−1f^{\prime}(a) = c \cdot n \cdot a^{n-1}f′(a)=c⋅n⋅an−1。常数 ccc 保留,乘以 xnx^nxn 的导数。
类型式子·公式在 x=ax=ax=a 处求 f′(a)f^{\prime}(a)f′(a) 的方法
幂f(x)=xnf(x)=x^nf(x)=xnf′(a)=n⋅an−1f^{\prime}(a) = n \cdot a^{n-1}f′(a)=n⋅an−1。指数提到前面、指数减一后代入 aaa。
一次式f(x)=mx+bf(x)=mx+bf(x)=mx+bf′(a)=mf^{\prime}(a) = mf′(a)=m。斜率为导函数,故与 aaa 无关,答案为 mmm。
二次式f(x)=a2x2+a1x+a0f(x)=a_2 x^2 + a_1 x + a_0f(x)=a2​x2+a1​x+a0​f′(a)=2a2⋅a+a1f^{\prime}(a) = 2 a_2 \cdot a + a_1f′(a)=2a2​⋅a+a1​。x2x^2x2 系数的 2 倍×aaa+一次项系数。
常数倍·幂f(x)=c⋅xnf(x)=c \cdot x^nf(x)=c⋅xnf′(a)=c⋅n⋅an−1f^{\prime}(a) = c \cdot n \cdot a^{n-1}f′(a)=c⋅n⋅an−1。常数 ccc 保留,乘以 xnx^nxn 的导数。

例(幂)
当 f(x)=x3f(x)=x^3f(x)=x3 时,求 x=2x=2x=2 处的导数 f′(2)f^{\prime} (2)f′(2)。
解答
f′(x)=3x2f^{\prime}(x)=3x^2f′(x)=3x2,故 f′(2)=3×22=12f^{\prime} (2) =3 \times 2^2 = 12f′(2)=3×22=12。→ 答案 12

例(一次式)
当 f(x)=3x+1f(x)=3x+1f(x)=3x+1 时,求 x=5x=5x=5 处的导数 f′(5)f^{\prime} (5)f′(5)。
解答
一次式的导函数等于斜率,故 f′(x)=3f^{\prime}(x)=3f′(x)=3。与 aaa 无关,f′(5)=3f^{\prime} (5) =3f′(5)=3。→ 答案 3

例(二次式)
当 f(x)=x2+2x+1f(x)=x^2+2x+1f(x)=x2+2x+1 时,求 x=3x=3x=3 处的导数 f′(3)f^{\prime} (3)f′(3)。
解答
f′(x)=2x+2f^{\prime}(x)=2x+2f′(x)=2x+2,故 f′(3)=2×3+2=8f^{\prime} (3) =2 \times 3 + 2 = 8f′(3)=2×3+2=8。→ 答案 8

例(常数倍·幂)
当 f(x)=2x4f(x)=2x^4f(x)=2x4 时,求 x=1x=1x=1 处的导数 f′(1)f^{\prime} (1)f′(1)。
解答
f′(x)=2×4×x3=8x3f^{\prime}(x)=2 \times 4 \times x^3 = 8x^3f′(x)=2×4×x3=8x3,故 f′(1)=8×1=8f^{\prime} (1) =8 \times 1 = 8f′(1)=8×1=8。→ 答案 8