A.8 函数的函数
想象一下,一个函数
其中y 本身也是函数
如果我们愿意,我们也可以写为f =(x 3 + x )2 。
f 如何随着y 的改变而改变?也就是,∂f / ∂y 是什么?只要应用刚刚得到的幂规则,乘上幂指数,幂指数减1,那么这个计算就很容易了,可以得到∂f / ∂y = 2y 。
还有一个有趣的问题——f 如何随着x 的变化而变化呢?可以展开表达式f =(x 3 + x )2 ,然后应用相同的规则。不能不加思索地硬套规则,将(x 3 + x )2 变为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 ,然后应用简单的幂规则,对所得到的多项式进行微积分运算。当然能这样做,但是如果这样的话,就不能详细说明链式法则,而链式法则可以解决许多比较困难的问题。
让我们来看看最后一个例子,这个示例演示了如何处理多个独立变量。
如果得到一个函数
其中x 、y 和z 是彼此无关的变量。我们说的无关是什么意思呢?我们的意思是,x、y 和z 可以为任意值,并且无需关心其他变量的取值——它们彼此之间不互相影响。这不同于前一个示例y =x 3 + x ,在这种情况下,y 与x 相关。
∂f / ∂x 是多少?让我们看看这个长表达式的每项。第一项是2xy ,因此导数为2y 。为什么这么简单呢?由于y 与x 无关,因此非常简单。当我们说∂f / ∂x ,我们说的是,当x 变化时,f 如何变化。如果y 与x 无关,那么可以将其视为常数。即y 也可能是如2、3、10的另一个数。
让我们继续,下一项是3x 2 z 。可以应用幂规则,得到2×3xz 或6xz 。由于x 与z 无关,因此我们将z 视为如2、4或者100这样无聊的常数。z 的变化不会影响到x 。
最后一项是4z ,这项中不存在x 。由于我们将其视为如2或4的普通常数,因此这项完全消失了。
最后的答案是
在最后一个示例中,重要的一点是你要有信心,忽略已知的无关变量。这使得对相当复杂的表达式进行微积分运算变得非常简单。在观察神经网络的时候,我们非常需要这种深刻的见解。
你可以进行微积分运算了!
如果走到了这一步,那么你真是太棒了!
你真正理解了微积分的真谛,明白了如何使用逼进,一步一步地改善,直到最终引入了微积分。在其他困难的问题上,如果难以使用正常的方法求解,那么你可以尝试使用这些方法求解。
我们学习了幂规则和链式法则这两种技术,从而能够进行大量的微积分运算,包括理解神经网络的工作机制和原理。
享受你的新力量吧!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论