深度学习的数学基础—误差反向传播法必需的链式法则
下面我们来考察有助于复杂函数求导的链式法则。这个法则对于理解后述的误差反向传播法很有必要。
注:所考察的函数是充分光滑的函数。
神经网络和复合函数
已知函数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的复合函数。
函数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的复合函数。
单变量函数的链式法则
已知单变量函数y=f(u),当u表示为单变量函数u=g(x)时,复合函数f(g(x))的导函数可以如下简单地求出来。
这个公式称为单变量函数的复合函数求导公式,也称为链式法则。本书使用“链式法则”这个名称。
单变量函数的链式法则。导数可以像分数一样进行计算。
观察式(1)的右边,如果将dx、dy、du都看作一个单独的字母,那么式(1)的左边可以看作将右边进行简单的约分的结果,这个看法总是成立的。通过将导数用dx、dy等表示,我们可以这样记忆链式法则:“复合函数的导数可以像分数一样使用约分。”
注:这个约分的法则不适用于dx、dy的平方等情形。
例3
当y为u的函数,u为v的函数,v为x的函数时,
三个函数的复合函数的链式法则。与两个变量的情形一样,可以像分数一样进行计算。
问题
对x的函数(w、b为常数)求导。
解我们设定以下函数,
由于第1个式子为Sigmoid函数,有,可得
此外,由于du/dx=w,所以可得
多变量函数的链式法则
在多变量函数的情况下,链式法则的思想也同样适用。只要像处理分数一样对导数的式子进行变形即可。然而事情并没有这么简单,因为必须对相关的全部变量应用链式法则。
我们来考察两个变量的情形。
变量z为u、v的函数,如果u、v分别为x、y的函数,则z为x、y的函数,此时下式(多变量函数的链式法则)成立。
变量z为u、v的函数,u、v分别为x、y的函数,z关于x求导时,先对u、v求导,然后与z的相应导数相乘,最后将乘积加起来。
例4
与上面式(2)一样,下式也成立。
例4中各变量的关系如下图所示。
例5当时,
上式在三个以上的变量的情况下也同样成立。
例6
当时,
例6的变量关系。