零基础学习分式求导法则

分式求导法则是一种用于处理两个函数相除的导数计算的方法,根据商法则,分式的导数公式如下:

对于函数 f ( x ) = u ( x ) v ( x ) f(x) = \frac{u(x)}{v(x)} f(x)=v(x)u(x),其中 u ( x ) u(x) u(x) v ( x ) v(x) v(x) 是可导函数,并且 v ( x ) ≠ 0 v(x) \neq 0 v(x)=0,分式的求导公式为:

f ′ ( x ) = u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) [ v ( x ) ] 2 f'(x) = \frac{u'(x) v(x) - u(x) v'(x)}{[v(x)]^2} f(x)=[v(x)]2u(x)v(x)u(x)v(x)

分步解析:

  1. 分母平方:导数结果的分母是原分母函数的平方,即 ([v(x)]^2)。
  2. 分子规则:分子是“分子的导数 × 分母 - 分子的原值 × 分母的导数”,即:
    u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) u'(x) v(x) - u(x) v'(x) u(x)v(x)u(x)v(x)

示例:

假设 f ( x ) = x 2 + 1 x + 2 f(x) = \frac{x^2 + 1}{x + 2} f(x)=x+2x2+1,我们对其求导:

  • u ( x ) = x 2 + 1 u(x) = x^2 + 1 u(x)=x2+1,因此 u ′ ( x ) = 2 x u'(x) = 2x u(x)=2x
  • v ( x ) = x + 2 v(x) = x + 2 v(x)=x+2,因此 v ′ ( x ) = 1 v'(x) = 1 v(x)=1

套用公式:
f ′ ( x ) = u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) [ v ( x ) ] 2 f'(x) = \frac{u'(x) v(x) - u(x) v'(x)}{[v(x)]^2} f(x)=[v(x)]2u(x)v(x)u(x)v(x)

计算分子:
u ′ ( x ) v ( x ) − u ( x ) v ′ ( x ) = ( 2 x ) ( x + 2 ) − ( x 2 + 1 ) ( 1 ) u'(x) v(x) - u(x) v'(x) = (2x)(x + 2) - (x^2 + 1)(1) u(x)v(x)u(x)v(x)=(2x)(x+2)(x2+1)(1)
展开简化:
= 2 x 2 + 4 x − x 2 − 1 = x 2 + 4 x − 1 = 2x^2 + 4x - x^2 - 1 = x^2 + 4x - 1 =2x2+4xx21=x2+4x1

分母:
[ v ( x ) ] 2 = ( x + 2 ) 2 [v(x)]^2 = (x + 2)^2 [v(x)]2=(x+2)2

最终结果:
f ′ ( x ) = x 2 + 4 x − 1 ( x + 2 ) 2 f'(x) = \frac{x^2 + 4x - 1}{(x + 2)^2} f(x)=(x+2)2x2+4x1

分子为常数的负分数求导

我们从头讲解,并用详细步骤来帮助你理解「分子为常数的负分数求导」。

问题

如果一个分式的分子是常数,求导的形式和步骤是怎样的?

公式回顾:

对于 f ( x ) = C v ( x ) f(x) = \frac{C}{v(x)} f(x)=v(x)C(其中 C C C 是常数, v ( x ) v(x) v(x) 是分母),求导公式为:
f ′ ( x ) = − C ⋅ v ′ ( x ) [ v ( x ) ] 2 f'(x) = -\frac{C \cdot v'(x)}{[v(x)]^2} f(x)=[v(x)]2Cv(x)

解释:
  • 分子是常数 C C C,求导时分子不变,只需对分母 v ( x ) v(x) v(x) 求导。
  • 符号变负:因为分母的倒数公式引入了负号。

示例

假设我们要对 f ( x ) = − 3 x 2 + 1 f(x) = \frac{-3}{x^2 + 1} f(x)=x2+13 求导。


第 1 步:确定分子和分母
  • 分子 C = − 3 C = -3 C=3,是一个常数。
  • 分母 v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1

第 2 步:对分母 v ( x ) v(x) v(x) 求导

分母的导数公式:对 v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1,其导数为:
v ′ ( x ) = 2 x v'(x) = 2x v(x)=2x


第 3 步:套用公式

根据公式:
f ′ ( x ) = − C ⋅ v ′ ( x ) [ v ( x ) ] 2 f'(x) = -\frac{C \cdot v'(x)}{[v(x)]^2} f(x)=[v(x)]2Cv(x)

C = − 3 C = -3 C=3 v ′ ( x ) = 2 x v'(x) = 2x v(x)=2x v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1 代入:
f ′ ( x ) = − ( − 3 ) ⋅ ( 2 x ) ( x 2 + 1 ) 2 f'(x) = -\frac{(-3) \cdot (2x)}{(x^2 + 1)^2} f(x)=(x2+1)2(3)(2x)


第 4 步:简化符号

分子中负号相乘:
f ′ ( x ) = 6 x ( x 2 + 1 ) 2 f'(x) = \frac{6x}{(x^2 + 1)^2} f(x)=(x2+1)26x


最终答案

f ′ ( x ) = 6 x ( x 2 + 1 ) 2 f'(x) = \frac{6x}{(x^2 + 1)^2} f(x)=(x2+1)26x


总结关键点

  1. 分子为常数:直接把常数拿出来。
  2. 分母求导:只需对分母求导,然后用公式。
  3. 符号规则:记住公式里有负号。

分母求导

如何求分母的导数。我们来看一下:

导数的基本规则

求导时,我们用的是一些常见的求导规则,比如:

  • 常数的导数:常数的导数是0。
  • 幂函数的导数:如果函数是 x n x^n xn,那么它的导数是 n x n − 1 nx^{n-1} nxn1
  • 和差法则:如果一个函数是两个函数的和(或差),那么它的导数是这两个函数的导数之和(或差)。
  • 乘法法则:如果函数是两个函数的乘积,那么我们用乘法法则求导。

在我们的例子中:

我们有分母 v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1,要求导数。

第一步:将分母分开

可以把 x 2 + 1 x^2 + 1 x2+1 分开,写作两项的和:
v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1

第二步:分别对每一项求导
  • x 2 x^2 x2 的导数是 2 x 2x 2x,根据 幂函数的导数规则 d d x ( x n ) = n x n − 1 \frac{d}{dx}(x^n) = nx^{n-1} dxd(xn)=nxn1,这里 n = 2 n = 2 n=2
  • 1 1 1 是常数,常数的导数是 0 0 0

因此:
v ′ ( x ) = d d x ( x 2 + 1 ) = 2 x + 0 = 2 x v'(x) = \frac{d}{dx}(x^2 + 1) = 2x + 0 = 2x v(x)=dxd(x2+1)=2x+0=2x


总结

v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1 求导得到 v ′ ( x ) = 2 x v'(x) = 2x v(x)=2x

所以在我们的公式中,分母 v ( x ) = x 2 + 1 v(x) = x^2 + 1 v(x)=x2+1 求导后是 v ′ ( x ) = 2 x v'(x) = 2x v(x)=2x


进一步举个例子:

如果分母是 v ( x ) = x 3 + 5 x − 2 v(x) = x^3 + 5x - 2 v(x)=x3+5x2,我们也按同样的步骤进行:
v ′ ( x ) = 3 x 2 + 5 v'(x) = 3x^2 + 5 v(x)=3x2+5

幂函数的导数规则

幂函数的导数规则是求导时的一个基本法则。对于一个幂函数 f ( x ) = x n f(x) = x^n f(x)=xn,其中 n n n 是常数,导数的计算方法为:

f ′ ( x ) = n ⋅ x n − 1 f'(x) = n \cdot x^{n-1} f(x)=nxn1

也就是说,对于一个幂函数 x n x^n xn,其导数是将指数 n n n 乘到前面,然后指数减一。

例子:

  1. f ( x ) = x 3 f(x) = x^3 f(x)=x3,则 f ′ ( x ) = 3 x 2 f'(x) = 3x^2 f(x)=3x2
  2. f ( x ) = x − 2 f(x) = x^{-2} f(x)=x2,则 f ′ ( x ) = − 2 x − 3 f'(x) = -2x^{-3} f(x)=2x3
  3. f ( x ) = x 1 / 2 f(x) = x^{1/2} f(x)=x1/2,则 f ′ ( x ) = 1 2 x − 1 / 2 f'(x) = \frac{1}{2} x^{-1/2} f(x)=21x1/2

这是基本的幂函数求导规则,适用于任何实数指数。

<think>嗯,用户想了解softmax函数的链式求导方法,需要分步解释。首先,我得回忆一下softmax函数的定义和它在神经网络中的应用场景。softmax通常用于多分类问题的输出层,将输入向量转化为概率分布。它的数学表达式是$S_i = \frac{e^{z_i}}{\sum_{j=1}^C e^{z_j}}$,其中$C$是类别数,$z_i$是第i个类别的输入。 接下来要考虑的是如何对softmax函数进行求导,尤其是在反向传播中需要计算损失函数对输入$z_k$的导数。用户提到的链式法则,这意味着可能需要考虑损失函数(比如交叉熵损失)与softmax结合时的梯度计算。 常见的组合是softmax后面接交叉熵损失。假设真实标签是one-hot编码,对于第$m$个类别,损失函数为$L = -\log(S_m)$。这时候,导数计算会比较简洁,因为交叉熵和softmax的结合简化了梯度。 我需要分步骤推导:首先计算softmax本身的导数$\frac{\partial S_i}{\partial z_k}$,然后再结合损失函数的导数。对于$\frac{\partial S_i}{\partial z_k}$,当i=k时,导数是$S_i(1 - S_i)$;当i≠k时,导数是$-S_i S_k$。这样,当计算损失函数的导数时,对于真实类别m,梯度会是$S_m - 1$,而其他类别则是$S_k$,因为交叉熵的导数与softmax的梯度结合后,很多项会抵消,最终结果变得简单。 需要注意是否用户需要的是单独softmax的导数,还是结合了交叉熵的情况。根据问题描述,用户可能想要完整的链式法则步骤,所以应该从softmax的偏导开始,然后展示如何与损失函数的导数相乘。 此外,要确保使用正确的数学符号,如使用下标i和k区分不同的输入节点,正确应用求导规则。在推导过程中,可能需要使用分式求导法则,以及注意到分母的和中的指数函数对各个$z_k$的依赖。 最后,要检查是否有常见的错误点,例如在计算偏导时是否遗漏了Kronecker delta符号,或者是否在链式法则中正确应用了乘积规则。同时,需要强调当i=m时的特殊情况,因为损失函数只针对真实类别的输出。 总结来说,步骤应该是:定义softmax函数,计算其关于输入z的偏导数,然后结合交叉熵损失的导数,展示最终的梯度表达式。并且通过例子来说明当i是正确类别时的梯度变化,以及如何简化计算。</think>### Softmax函数链式求导分步解析 #### 1. Softmax函数定义 对于输入向量$z = [z_1, z_2, ..., z_C]$,softmax函数定义为: $$ S_i = \frac{e^{z_i}}{\sum_{j=1}^C e^{z_j}} $$ 其中$C$为类别总数,$S_i$表示第$i$个类别的预测概率[^1]。 #### 2. 求导目标 计算$\frac{\partial S_i}{\partial z_k}$,即第$i$个输出对第$k$个输入的偏导数。分两种情况讨论: **情况1:** $i = k$ $$ \frac{\partial S_i}{\partial z_k} = \frac{e^{z_i}\sum e^{z_j} - e^{z_i}e^{z_k}}{(\sum e^{z_j})^2} = S_i(1 - S_i) $$ **情况2:** $i \neq k$ $$ \frac{\partial S_i}{\partial z_k} = \frac{0 \cdot \sum e^{z_j} - e^{z_i}e^{z_k}}{(\sum e^{z_j})^2} = -S_i S_k $$ #### 3. 结合交叉熵损失 假设使用交叉熵损失函数: $$ L = -\sum_{m=1}^C y_m \log S_m $$ 其中$y_m$为真实标签的one-hot编码(仅有一个元素为1)。 **链式法则推导:** $$ \frac{\partial L}{\partial z_k} = \sum_{i=1}^C \frac{\partial L}{\partial S_i} \cdot \frac{\partial S_i}{\partial z_k} $$ 通过计算可得最终简化形式: $$ \frac{\partial L}{\partial z_k} = S_k - y_k $$ #### 4. 数值验证示例 假设$z = [2, 1, 0]$,真实标签$y = [1, 0, 0]$: 1. 计算softmax: $S = [0.665, 0.244, 0.090]$ 2. 计算梯度: $\frac{\partial L}{\partial z} = [0.665-1, 0.244-0, 0.090-0] = [-0.335, 0.244, 0.090]$ #### 5. 关键特性 - 梯度计算复杂度为$O(C)$ - 梯度仅依赖预测概率与真实标签的差值 - 数值稳定性可通过log-sum-exp技巧增强[^2] $$ \text{LogSumExp}(z) = \log\left(\sum_{i=1}^C e^{z_i}\right) $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值