深度學習的數學基礎-有助於理解神經網路的向量基礎

向量的定義為具有大小和方向的量。這裡我們主要關注神經網路中用到的內容,弄清向量的性質。

有向線段與向量

有兩個點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)是向量概念的推廣。Google提供的人工智慧學習系統TensorFlow的命名中就用到了這個數學術語。
「tensor」來源於「tension」(物理學中的「張力」)。向固體施加張力時,會在固體的截面產生力的作用,這個力稱為應力。這個力在不同的截面上大小和方向各不相同。
image.png
法向量是垂直於面的向量,根據這個向量的方向(也就是法向),應力的方向和大小各不相同。

因此,當面的法向為x、y、z軸時,作用在面上的力依次用向量表示為
image.png
可以將它們合併為以下的量。
image.png

我們稱這個量為應力張量。

張量是應力張量在數學上的抽象。我們不清楚Google將人工智慧學習系統命名為TensorFlow的原委,不過在神經網路的世界裡,經常用到附帶多個下標的變數,這與張量的計算相似,可能也是出於這個原因,TensorFlow才這樣命名的吧。