返回介绍

A.8 函数的函数

发布于 2024-01-27 20:58:55 字数 3437 浏览 0 评论 0 收藏 0

想象一下,一个函数

其中y 本身也是函数

如果我们愿意,我们也可以写为f =(x 3 + x2

f 如何随着y 的改变而改变?也就是,∂f / ∂y 是什么?只要应用刚刚得到的幂规则,乘上幂指数,幂指数减1,那么这个计算就很容易了,可以得到∂f / ∂y = 2y

还有一个有趣的问题——f 如何随着x 的变化而变化呢?可以展开表达式f =(x 3 + x2 ,然后应用相同的规则。不能不加思索地硬套规则,将(x 3 + x2 变为2(x 3 + x )。

如果像以前一样,采用逐渐减小的delta方式,通过漫长艰难的道路,解出了这个表达式,我们会意外发现这里存在着另一组模式。让我们直接跳到答案吧。

这个模式是这样的:

这是一个非常重要的结果,我们称之为链式法则。

可以看到,这个模式允许我们逐层计算出导数,就像剥洋葱,将复合的层一层一层解开。为了计算∂f / ∂x ,我们可能发现,先计算出∂f / ∂y ,然后再计算出∂y / ∂x ,这会比较容易一些。如果这些都比较容易,那么我们就可以对看起来不可能的表达式进行微积分运算。链式法则允许我们打破问题,将问题分割为较小、较容易的问题。

再次观察这个示例,应用链式法则:

现在,计算得到了比较简单的项。第一项是(∂f / ∂y )= 2y ,第二项是(∂y / ∂x )= 3x 2 + 1。然后,使用链式法则,将这些项结合起来,我们得到:

我们知道,y = x 3 + x ,因此,得到了只有x 的表达式:

这真是见证神奇的一刻!

你可能会质疑为什么这样做,为什么不能首先根据x 展开f ,然后应用简单的幂规则,对所得到的多项式进行微积分运算。当然能这样做,但是如果这样的话,就不能详细说明链式法则,而链式法则可以解决许多比较困难的问题。

让我们来看看最后一个例子,这个示例演示了如何处理多个独立变量。

如果得到一个函数

其中xyz 是彼此无关的变量。我们说的无关是什么意思呢?我们的意思是,x、yz 可以为任意值,并且无需关心其他变量的取值——它们彼此之间不互相影响。这不同于前一个示例y =x 3 + x ,在这种情况下,yx 相关。

f / ∂x 是多少?让我们看看这个长表达式的每项。第一项是2xy ,因此导数为2y 。为什么这么简单呢?由于yx 无关,因此非常简单。当我们说∂f / ∂x ,我们说的是,当x 变化时,f 如何变化。如果yx 无关,那么可以将其视为常数。即y 也可能是如2、3、10的另一个数。

让我们继续,下一项是3x 2 z 。可以应用幂规则,得到2×3xz 或6xz 。由于xz 无关,因此我们将z 视为如2、4或者100这样无聊的常数。z 的变化不会影响到x

最后一项是4z ,这项中不存在x 。由于我们将其视为如2或4的普通常数,因此这项完全消失了。

最后的答案是

在最后一个示例中,重要的一点是你要有信心,忽略已知的无关变量。这使得对相当复杂的表达式进行微积分运算变得非常简单。在观察神经网络的时候,我们非常需要这种深刻的见解。

你可以进行微积分运算了!

如果走到了这一步,那么你真是太棒了!

你真正理解了微积分的真谛,明白了如何使用逼进,一步一步地改善,直到最终引入了微积分。在其他困难的问题上,如果难以使用正常的方法求解,那么你可以尝试使用这些方法求解。

我们学习了幂规则和链式法则这两种技术,从而能够进行大量的微积分运算,包括理解神经网络的工作机制和原理。

享受你的新力量吧!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文