深度学习的数学基础—误差反向传播法必需的链式法则

下面我们来考察有助于复杂函数求导的链式法则。这个法则对于理解后述的误差反向传播法很有必要。

注:所考察的函数是充分光滑的函数。

神经网络和复合函数

已知函数y=f(u),当u表示为u=g(x)时,y作为x的函数可以表示为形如y=f(g(x))的嵌套结构(u和x表示多变量)。这时,嵌套结构的函数f(g(x))称为f(u)和g(x)的复合函数。

例1
函数z=(2-y)2是函数u=2-y和函数z=u2的复合函数。
image.png

函数z=(2- y)2是函数u=2-y和函数z=u2的复合函数。此外,这个函数示例在后面的代价函数中会用到。

例2
对于多个输入x1, x2, …, xn,将a(x)作为激活函数,求神经单元的输出y的过程如下所示。
y=a(w1x1+w2x2+…+wnxn+b)

w1, w2, …, wn为各输入对应的权重,b为神经单元的偏置。这个输出函数是如下的x1, x2, …, xn的一次函数f和激活函数a的复合函数。
image.png

image.png

单变量函数的链式法则

已知单变量函数y=f(u),当u表示为单变量函数u=g(x)时,复合函数f(g(x))的导函数可以如下简单地求出来。
image.png

这个公式称为单变量函数的复合函数求导公式,也称为链式法则。本书使用“链式法则”这个名称。
image.png

单变量函数的链式法则。导数可以像分数一样进行计算。

观察式(1)的右边,如果将dx、dy、du都看作一个单独的字母,那么式(1)的左边可以看作将右边进行简单的约分的结果,这个看法总是成立的。通过将导数用dx、dy等表示,我们可以这样记忆链式法则:“复合函数的导数可以像分数一样使用约分。”

注:这个约分的法则不适用于dx、dy的平方等情形。

例3
当y为u的函数,u为v的函数,v为x的函数时,
image.png
image.png
三个函数的复合函数的链式法则。与两个变量的情形一样,可以像分数一样进行计算。

问题
对x的函数image.png(w、b为常数)求导。
解我们设定以下函数,
image.png
由于第1个式子为Sigmoid函数,有image.png,可得
image.png

此外,由于du/dx=w,所以可得
image.png

多变量函数的链式法则

在多变量函数的情况下,链式法则的思想也同样适用。只要像处理分数一样对导数的式子进行变形即可。然而事情并没有这么简单,因为必须对相关的全部变量应用链式法则。
我们来考察两个变量的情形。
变量z为u、v的函数,如果u、v分别为x、y的函数,则z为x、y的函数,此时下式(多变量函数的链式法则)成立。
image.png
image.png

变量z为u、v的函数,u、v分别为x、y的函数,z关于x求导时,先对u、v求导,然后与z的相应导数相乘,最后将乘积加起来。

例4
与上面式(2)一样,下式也成立。
image.png

例4中各变量的关系如下图所示。
image.png

例5当image.png时,
image.png

上式在三个以上的变量的情况下也同样成立。

例6
image.png时,
image.png
image.png
例6的变量关系。