深度学习的数学基础—神经网络的偏导数基础

神经网络的计算往往会涉及成千上万个变量,这是因为构成神经网络的神经单元的权重和偏置都被作为变量处理。下面我们就来考察一下神经网络的计算中所需的多变量函数的导数。

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

多变量函数

在函数y=f(x)中,x称为自变量,y称为因变量。之前我们讲解求导方法时考虑了有一个自变量的函数的情形。现在我们来考察有两个以上的自变量的函数。有两个以上的自变量的函数称为多变量函数

例1
z=x2+y2
多变量函数难以直观化。例如,即使是像例1那样简单的函数,其图像也是非常复杂的,如下图所示。
image.png
z= x2+ y2的图像。

描述神经网络的函数的变量有成千上万个,因此难以从直观上理解这些函数。不过,只要理解了单变量的情况,我们就可以将多变量的情况作为其扩展来理解,这样就不会那么困难了。

单变量函数用f(x)表示,仿照单变量函数,多变量函数可以如下表示。

例2
f(x, y) :有两个自变量x、y的函数。

例3
f(x1, x2, …, xn) :有n个自变量x1, x2, …, xn的函数。

偏导数

求导的方法也同样适用于多变量函数的情况。但是,由于有多个变量,所以必须指明对哪一个变量进行求导。在这个意义上,关于某个特定变量的导数就称为偏导数(partial derivative)。

例如,让我们来考虑有两个变量x、y的函数z=f(x, y)。只看变量x,将y看作常数来求导,以此求得的导数称为“关于x的偏导数”,用下面的符号来表示。

image.png

关于y的偏导数也是同样的。
image.png

下面,我们通过例4和问题1、问题2来看一下神经网络中用到的偏导数的代表性例子。

例4
当z=wx+b时,∂z/∂x=w,∂z/∂w=x,∂z/∂b=1.

问题1
image.png时,求∂f(x,y)/∂x,∂f(x,y)/∂y.


image.png

问题2
当z=w1x1+w2x2+b1时,求关于x1、w2、b1的偏导数。

image.png

多变量函数的最小值条件

光滑的单变量函数y=f(x)在点x处取得最小值的必要条件是导函数在该点取值0,这个事实对于多变量函数同样适用。例如对于有两个变量的函数,可以如下表示。
image.png

上述(1)很容易扩展到一般的具有n个变量的情形。

此外,从下图可以清楚地看出上述(1)是成立的。因为从x方向以及y方向来看,函数z=f(x, y)取得最小值的点就像葡萄酒杯的底部。
image.png
上述(1) 的含义。

就像我们之前所确认的那样,上述(1)所示的条件是必要条件。即使满足上述(1),也不能保证函数f(x, y)在该点处取得最小值。

例5
求函数z=x2+y2取得最小值时x、y的值。

首先,我们来求关于x、y的偏导数。
image.png

根据上述(1),函数取得最小值的必要条件是x=0, y=0。此时函数值z为0。由于z=x2+y2≥0,所以我们知道这个函数值0就是最小值。通过前面的例1的函数图像,我们也可以确认这个事实。
备注拉格朗日乘数法

在实际的最小值问题中,有时会对变量附加约束条件,例如下面这个与例5相似的问题。

例6
当x2+y2=1时,求x+y的最小值。
这种情况下我们使用拉格朗日乘数法。这个方法首先引入参数λ,创建下面的函数L。
L=f(x, y)-λg(x, y)=(x+y)-λ(x2+y2-1)
然后利用之前的(1)。
image.png

根据这些式子以及约束条件x2+y2=1,可得x=y=λ= ±1/ 2。

因而,当x=y=-1/√2时,x+y取得最小值-√2。

在用于求性能良好的神经网络的正则化技术中,经常会使用该方法。