链式法则是重要的求导法则,它允许我们处理复合函数。它对于理解反向传播算法的运作至关重要,该算法广泛应用链式法则来计算损失函数对神经网络中每个权重的误差梯度。我们将基于我们之前对链式法则的介绍,处理更具挑战性的函数。
在本教程中,您将学习如何将微积分的链式法则应用于具有挑战性的函数。
完成本教程后,您将了解:
- 将链式法则应用于单变量函数的过程可以扩展到多变量函数。
- 链式法则的应用遵循相似的过程,无论函数有多复杂:首先对外部函数求导,然后向内求导。在此过程中,可能需要应用其他求导法则。
- 将链式法则应用于多变量函数需要使用偏导数。
让我们开始吧。

微积分链式法则 – 更多函数
图片由Nan Ingraham提供,保留部分权利。
教程概述
本教程分为两部分;它们是
- 单变量函数的链式法则
- 多变量函数的链式法则
先决条件
对于本教程,我们假设您已经了解以下内容:
您可以通过点击上面给出的链接来复习这些概念。
单变量函数的链式法则
我们已经了解了单变量和多变量函数的链式法则,但到目前为止只看到了一些简单的例子。在这里,我们将看一些更具挑战性的例子。我们将首先从单变量函数开始,然后将所学知识应用于多变量函数。
例1:让我们通过考虑以下复合函数来稍微提高一下难度
我们可以将复合函数分解为内函数f(x) = x2 – 10和外函数g(x) = √x = (x)1/2。内函数的输出用中间变量u表示,其值将作为外函数的输入。
第一步是求复合函数外部部分的导数,同时忽略内部的任何内容。为此,我们可以应用幂法则
dh / du = (1/2) (x2 – 10)-1/2
下一步是求复合函数内部部分的导数,这次忽略外部的任何内容。我们也可以在这里应用幂法则
du / dx = 2x
将这两部分组合并简化,我们得到
例2:让我们重复这个过程,这次使用一个不同的复合函数
我们将再次使用内函数的输出u作为我们的中间变量。
在这种情况下,外部函数是cos x。求其导数,再次忽略内部,得到:
dh / du = (cos(x3 – 1))’ = -sin(x3 – 1)
内函数是x3 – 1。因此,其导数变为
du / dx = (x3 – 1)’ = 3x2
将这两部分组合起来,我们得到复合函数的导数
例3:现在让我们通过考虑一个更具挑战性的复合函数来进一步提高难度
如果我们仔细观察,我们会发现我们不仅有嵌套函数需要多次应用链式法则,而且我们还有一个乘积需要应用乘积法则。
我们发现最外层函数是余弦。在通过链式法则求其导数时,我们将使用中间变量u
dh / du = (cos(x √(x2 – 10) ))’ = -sin(x √(x2 – 10) )
在余弦内部,我们有乘积x √(x2 – 10),我们将对其应用乘积法则来求其导数(请注意,我们总是从外到内移动,以发现下一个需要处理的运算)
du / dx = (x √(x2 – 10) )’ = √(x2 – 10) + x ( √(x2 – 10) )’
结果项中的一个分量是( √(x2 – 10) )’,我们将再次对其应用链式法则。事实上,我们之前已经这样做过,因此我们可以简单地重用结果
( √(x2 – 10) )’ = x (x2 – 10)-1/2
将所有部分组合起来,我们得到复合函数的导数
这可以进一步简化为
想开始学习机器学习微积分吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
多变量函数的链式法则
例4:假设现在我们有一个具有两个独立变量s和t的多变量函数,其中每个变量又依赖于另外两个独立变量x和y
h = g(s, t) = s2 + t3
其中函数s = xy,和t = 2x – y。
在这里实现链式法则需要计算偏导数,因为我们正在处理多个独立变量。此外,s和t也将作为我们的中间变量。我们将使用的公式,针对每个输入定义,如下所示
从这些公式中,我们可以看到我们将需要找到六个不同的偏导数
我们现在可以继续将这些项代入∂h / ∂x 和 ∂h / ∂y的公式中
然后代入s和t 以求得导数
例5:让我们再次重复这个过程,这次使用一个具有三个独立变量$r$、$s$和$t$的多变量函数,其中每个变量又依赖于另外两个独立变量$x$和$y$
$$h=g(r,s,t)=r^2-rs+t^3$$
其中函数,$r = x \cos y$,$s=xe^y$,和$t=x+y$。
这次,$r$、$s$和$t$将作为我们的中间变量。我们将使用的公式,针对每个输入定义,如下所示
从这些公式中,我们可以看到现在我们将需要找到九个不同的偏导数
同样,我们继续将这些项代入∂h / ∂x 和 ∂h / ∂y的公式中
然后代入$r$、$s$和$t$以求得导数
这可以进一步简化(提示:将三角恒等式$2\sin y\cos y=\sin 2y$应用于$\partial h/\partial y$)
无论表达式多么复杂,遵循的步骤都相似
你最后一次计算告诉你首先要做的事情。
——第143页,傻瓜微积分,2016年。
因此,首先处理外部函数,然后向内处理下一个函数。在此过程中,您可能需要应用其他规则,如例3所示。如果您正在处理多变量函数,请不要忘记计算偏导数。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
书籍
- 微积分傻瓜书, 2016.
- 单变量和多变量微积分, 2020.
- 机器学习数学, 2020.
总结
在本教程中,您学习了如何将微积分的链式法则应用于具有挑战性的函数。
具体来说,你学到了:
- 将链式法则应用于单变量函数的过程可以扩展到多变量函数。
- 链式法则的应用遵循相似的过程,无论函数有多复杂:首先对外部函数求导,然后向内求导。在此过程中,可能需要应用其他求导法则。
- 将链式法则应用于多变量函数需要使用偏导数。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
暂无评论。