深度学习的数学基础-有助于理解神经网络的向量基础

向量的定义为具有大小和方向的量。这里我们主要关注神经网络中用到的内容,弄清向量的性质。

有向线段与向量

有两个点A、B,我们考虑从A指向B的线段,这条具有方向的线段AB叫作有向线段。我们称A为起点,B为终点。
image.png
有向线段AB具有以下属性:
起点A的位置、指向B的方向,以及AB的长度,也就是大小。在这3个属性中,把方向与大小抽象出来,这样的量叫作向量,通常用箭头表示,总结如下:
向量是具有方向与大小的量,用箭头表示。
有向线段AB所代表的向量用image.png表示,也可以用带箭头的单个字母image.png或者不带箭头的黑斜体字母a表示。为了便于书写,之后博文将主要使用最后一种表示方法。
image.png
表示向量的几种方法。

向量的坐标表示

把向量的箭头放在坐标平面上,就可以用坐标的形式表示向量。把箭头的起点放在原点,用箭头终点的坐标表示向量,这叫作向量的坐标表示。用坐标表示的向量a如下所示(平面的情况)。
image.png
image.png
向量的坐标表示,即把起点放在原点,通过终点的坐标来表示。这应该不难理解,在应用时想必也不会发生问题。

例1
a=(3, 2)表示的向量。
image.png

例2
b=(-2, -1)表示的向量。
image.png

例3
在三维空间的情况下也是同样的。例如,a=(1, 2, 2)表示右图所示的向量。
image.png

向量的大小

从直观上来讲,表示向量的箭头的长度称为这个向量的大小。向量a的大小用|a|表示。
注:符号| |是由数的绝对值符号一般化而来的。实际上,数可以看成一维向量。
image.png

例4
根据下图求得a=(3, 4)的大小|a|。
image.png
image.png

例5
在三维空间的情况下也是同样的。
例如,如下求得右图所示的向量a=(1, 2, 2)的大小|a|。
image.png

注:例4、例5都使用了勾股定理。
image.png

问题1
求右图所示的向量a、b的大小。

image.png
image.png

向量的内积

我们在考虑具有方向的向量的乘积时,包含了“方向与方向的乘积”这样不明确的概念。因此,我们需要一个新的定义——内积。两个向量a、b的内积a·b的定义如下所示。
image.png

注:当a、b有一个为0或两者都为0时,内积定义为0。

例6
考虑边长为1的正方形ABCD,image.png于是有
image.png
image.png
此外,a与a的夹角为0°, a与b的夹角为90°, a与c的夹角为45°,因此有
image.png

问题2
在上述例6中,求b·c。

image.png
在三维空间的情况下也是同样的。

例7
在边长为3的立方体ABCD-EFGH中,有
image.png
image.png

问题3
有一个边长为2的正四面体OABC,求内积[插图]
OA与OB的夹角为60°,因此有
image.png
image.png

柯西-施瓦茨不等式

根据内积的定义式(2),我们可以推导出下式,该式在应用上十分重要。
image.png

证明
根据余弦函数的性质,对任意的θ,有-≤cosθ≤1,两边同时乘以|a||b|,有
-|a||b|≤|a||b|cosθ≤|a||b|
利用定义式(2),我们可以得到式(3)。

让我们通过图形来考察式(3)。两个向量a、b的大小固定时,有下图(1)、(2)、(3)的3种关系。
image.png

根据柯西-施瓦茨不等式(3),可以得出以下事实。
①当两个向量方向相反时,内积取得最小值。
②当两个向量不平行时,内积取平行时的中间值。
③当两个向量方向相同时,内积取得最大值。

性质①就是后述的梯度下降法的基本原理。

另外,可以认为内积表示两个向量在多大程度上指向相同方向。如果将方向相似判定为“相似”,则两个向量相似时内积变大。后面我们考察卷积神经网络时,这个观点就变得十分重要。
image.png
通过内积可以知道两个向量的相对的相似度。

内积的坐标表示

下面我们使用坐标表示的方式来表示定义式(2)。在平面的情况下,下式成立。
image.png
image.png

例8
当a= (2, 3), b= (5, 1)时,
a·b=2·5+3·1=13, a·a=2·2+3·3=1,b · b=5 · 5+1·1=26

在三维空间的情况下,内积的坐标表示如下所示,只是在平面情况下的式(4)中添加了z分量。
image.png
image.png

注:这里我们省略了式(4)、(5)的证明。此外,也有很多文献使用式(4)、(5)作为内积的定义。

例9
a=(2, 3, 2), b=(5, 1, -1)时,
a·b=2·5+3·1+2·(-1)=11,a·a=2·2+3·3+2·2=17

问题4
求以下两个向量a、b的内积。
image.png[插图]
解根据式(4)、(5),可得
image.png

向量的一般化

到目前为止,我们考察了平面(也就是二维空间)以及三维空间中的向量。向量的方便之处在于,二维以及三维空间中的性质可以照搬到任意维空间中。神经网络虽然要处理数万维的空间,但是二维以及三维空间的向量性质可以直接利用。出于该原因,向量被充分应用在梯度下降法中。

为了对今后所要学习的内容做好准备,我们将目前考察过的二维以及三维空间中的向量公式推广到任意的n维空间。

  • 向量的坐标表示:a=(a1,a2,…,an)
  • 内积的坐标表示:对于两个向量a=(a1,a2,…,an), b=(b1,b2,…,bn),其内积a·b如下式所示。
    a·b=a1b1+a2b2+…+anbn
  • 柯西-施瓦茨不等式:-|a||b| ≤ a·b≤ |a||b|

例10
神经单元有多个输入x1, x2, …, xn时,将它们整理为如下的加权输入。
z=w1·x1+w2·x2+…+wn·xn+b
其中,w1, w2, …, wn为权重,b为偏置。
使用w=(w1, w2, …, wn), x=(x1, x2, …, xn)这两个向量,我们可以将加权输入表示为内积形式,如下所示。
z=w·x+b
image.png
从例10可以看出,在神经网络的世界中,向量的观点是十分有益的。

备注 张量

张量(tensor)是向量概念的推广。谷歌提供的人工智能学习系统TensorFlow的命名中就用到了这个数学术语。
“tensor”来源于“tension”(物理学中的“张力”)。向固体施加张力时,会在固体的截面产生力的作用,这个力称为应力。这个力在不同的截面上大小和方向各不相同。
image.png
法向量是垂直于面的向量,根据这个向量的方向(也就是法向),应力的方向和大小各不相同。

因此,当面的法向为x、y、z轴时,作用在面上的力依次用向量表示为
image.png
可以将它们合并为以下的量。
image.png

我们称这个量为应力张量。

张量是应力张量在数学上的抽象。我们不清楚谷歌将人工智能学习系统命名为TensorFlow的原委,不过在神经网络的世界里,经常用到附带多个下标的变量,这与张量的计算相似,可能也是出于这个原因,TensorFlow才这样命名的吧。