2. 數學與圖基礎
2.1 線性代數
線性代數的語言和概念在計算機科學的許多領域都得到了廣泛的應用,機器學習也不例外。對機器學習的良好理解是建立在對線性代數的透徹理解的基礎上的。
在這一節中,我們將簡要回顧線性代數中的一些重要概念和計算,這對於理解本書的其餘部分是必要的。在這一節中,我們將回顧線性代數中的一些基本概念和計算,這對於理解本書的其餘部分是必要的。
2.1.1 基本概念
標量: 一個數
向量: 一列有序的數字,可以表示爲:
x=⎣⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎤(2.1)
向量的範數衡量其長度。Lp範數定義如下:
∥x∥p=(i=1∑n∣xi∣p)p1(2.2)
L1範數、L2範數和L∞範數常被用於機器學習。
L1範數可以簡化爲:
∥x∥1=i=1∑n∣xi∣(2.3)
在歐式空間Rn,L2範數常被用來測量兩個向量直接的距離:
∥x∥2=i=1∑nxi2(2.4)
L∞範數也叫最大範數,如:
∥x∥∞=imax∣xi∣(2.5)
對於Lp範數,向量x1,x2之間的距離(其中,x1,x2都在相同的線性空間)可以定義爲:
Dp(x1,x2)=∥x1−x2∥p(2.6)
一組向量x1,x2,...,xm當且僅當不存在一組不全爲0的標量λ1,λ2,⋯,λm時可以稱爲線性無關,例如:
λ1x1+λ2x2+⋯+λmxm=0(2.7)
矩陣: 二維數組,可以表示爲:
A=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2……⋱…a1na2n⋮amn⎦⎥⎥⎥⎤(2.8)
其中,A∈Rm×n
給定兩個矩陣A∈Rm×n,B∈Rn×p,AB的矩陣積可以表示爲C∈Rm×p,其中:
Cij=k=1∑nAikBkj(2.9)
可以證明矩陣乘積是可結合的,但不一定是可交換的。
(AB)C=A(BC)(2.10)
適用於任意矩陣A,B和C(假定乘法是合法的)
AB=BA(2.11)
上式並不總是爲真。
對於n×n的方陣A,其行列式(也稱爲∣A∣)定義爲:
det(A)=k1k2⋯kn∑(−1)τ(k1k2⋯kn)a1k1a2k2⋯ankn(2.12)
如果A是方陣,意味着m=n,矩陣A的逆(表示爲A−1),其滿足:
A−1A=I(2.14)
其中I是n×n的單位陣。
矩陣之間還有另一個經常使用的乘積稱爲Hadamard product.
兩個矩陣A∈Rm×n,B∈Rm×n的Hadamard product爲C∈Rm×n:
Cij=AijBij(2.15)
Tensor: 具有任意維度的數組。大多數矩陣運算也適用於張量。
2.1.2 特徵分解
讓A是一個矩陣,其中A∈Rn×n。一個非0向量v∈Cn叫做A的特徵向量,如果存在一個標量λ∈C:
Av=λv(2.16)
標量λ是對應於特徵向量v的一個A的特徵值。
如果矩陣A有n個線性無關的特徵向量v1,v2,...,vn,則對應的特徵值爲λ1,λ2,...,λn,然後可以推導出:
A[v1v2…vn]=[v1v2…vn]⎣⎢⎢⎡λ1λ2⋱λn⎦⎥⎥⎤(2.17)
讓 V=[v1v2…vn];很明顯V是一個可逆矩陣。我們有A的特徵分解(也叫對角化)
A=Vdiag(λ)V−1(2.18)
也可以寫成以下形式:
A=i=1∑nλiviviT(2.19)
然而,並不是所有的方陣都能以這種形式對角化,因爲一個矩陣可能沒有n個線性無關的特徵向量。幸運的是,可以證明每個實對稱矩陣都有一個特徵分解。
2.1.3 奇異值分解
由於特徵分解只能應用於某些矩陣,我們引入了奇異值分解,它是對所有矩陣的推廣。
首先,我們需要引入奇異值的概念。讓r表示ATA的秩,然後存在r個正標量σ1≥σ2≥⋯≥σr>0,對於1≤i≤r,vi是矩陣ATA對應於特徵值σi2的特徵向量。
注意v1,v2,...,vr是線性無關的。r個正標量σ1,σ2,...,σr叫做A的奇異值。然後我們有奇異值分解:
A=UΣVT(2.20)
其中,U∈Rm×m,V(n×n)是正交矩陣並且Σ是m×n的矩陣定義如下:
Σij={σi0 if i=j≤r otherwise
事實上,矩陣U的列向量是AAT的特徵向量,ATA的特徵向量由V的列向量組成。
2.2 概率論
不確定性在機器學習領域無處不在,因此需要使用概率理論來量化和處理不確定性。在本節中,我們回顧了概率論中的一些基本概念和經典分佈,這對於理解本書的其餘部分至關重要。
2.2.1 基本概念和公式
在概率論中,隨機變量是具有隨機值的變量。例如,我們用X表示一個具有兩個可能值x1,x2的隨機值,則X=x1的概率爲P(X=x1),顯然,以下等式仍然成立:
P(X=x1)+P(X=x2)=1(2.21)
假設有另一個隨機變量Y,它的可能值是y1。X=x1,Y=y1的概率可以寫爲P(X=x1,Y=y1),這稱爲X=x1,Y=y1的聯合分佈。
有時我們需要知道隨機變量之間的關係,例如在Y=y1的情況下X=x1的概率,這個可以寫爲P(X=x1∣Y=y1)。這個我們稱爲在給定Y=y1的情況下,X=x1的條件概率。
有了以上的概念,我們可以寫出概率論的兩個基本規則:
P(X=x)=y∑P(X=x,Y=y)(2.22)
P(X=x,Y=y)=P(Y=y∣X=x)P(X=x)(2.23)
前者是求和法則,後者是乘積法則。稍微修改乘積法則的形式,我們得到了另一個有用的公式:
P(Y=y∣X=x)=P(X=x)P(X=x,Y=y)=P(X=x)P(X=x∣Y=y)P(Y=y)(2.24)
這就是著名的貝葉斯公式。注意,它也適用於兩個以上的變量:
P(Xi=xi∣Y=y)=∑j=1nP(Y=y∣Xj=xj)P(Xj=xj)P(Y=y∣Xi=xi)P(Xi=xi)(2.25)
利用乘積法則,我們可以推出鏈式法則:
P(X1=x1,⋯,Xn=xn)=P(X1=x1)∏i=2nP(Xi=xi∣X1=x1,⋯,Xi−1=xi−1)(2.26)
其中X1,X2,...,Xn是n個隨機變量。
在概率分佈P(x)下某個函數f(x)的平均值(其中x是某個隨機變量的值)稱爲f(x)的期望。對於離散分佈,可以寫成:
E[f(x)]=x∑P(x)f(x)(2.27)
當f(x)=x時,E[x]代表x的期望。
爲了測量f(x)在其均值Ef(x)周圍的離散程度,我們引入了方差:
Var(f(x))=E[(f(x)−E[f(x)])2]=E[f(x)2]−E[f(x)]2(2.28)
標準差是方差的平方根。在某種程度上,協方差表示兩個變量同時變化的程度:
Cov(f(x),g(y))=E[(f(x)−E[f(x)])(g(y)−E[g(y)])](2.29)
協方差越大,表明f(x)和g(y)之間的相關性越高。
2.2.2 概率分佈
概率分佈描述了一個或多個隨機變量在每個狀態下的概率。下面列出了幾個在機器學習領域有用的發行版。
高斯分佈: 它也被稱爲正態分佈,可以表示爲:
N(x∣μ,σ2)=2πσ21exp(−2σ21(x−μ)2)(2.30)
其中,μ是變量x的均值,σ2是方差。
伯努利分佈: 隨機變量X可以是0或1,概率是P(X=1)=p。那麼分佈函數是
P(X=x)=px(1−p)1−x,x∈{0,1}(2.31)
很明顯E(X)=p,Var(X)=p(1−p)。
二項分佈: 重複伯努利實驗N次,X=1的次數用Y表示
P(Y=k)=(Nk)pk(1−p)N−k(2.32)
二項分佈滿足E(Y)=np,Var(Y)=np(1−p)。
拉普拉斯分佈: 拉普拉斯分佈被描述爲
P(x∣μ,b)=2b1exp(−b∣x−μ∣)(2.33)
2.3 圖論
圖是GNNs研究的基礎課題。因此,要對GNN有一個全面的瞭解,就需要用到基礎圖論。
2.3.1 基本概念
圖通常用G=(V,E)表示;其中V是頂點的集合,E是邊的集合。
邊e=u,v有兩個端點u,v,可以認爲是由e連接的。在這種情況下,u被稱爲v的鄰居,換句話說,這兩個頂點是相鄰的。注意,邊可以是有向的也可以是無向的。
如果所有邊都是有向的,則將圖稱爲有向圖;如果所有邊都是無向的,則將圖稱爲無向圖。
頂點v的度,由d(v)表示,是與v連接的邊數。
2.3.2 圖的代數表示
有一些有用的圖代數表示形式,如下所示。
鄰接矩陣: 對於有n個頂點的簡單圖G=(V,E),可以用鄰接矩陣A∈Rn×n來描述,其中:
Aij={10 if {vi,vj}∈E and i=j otherwise
顯然,當G是無向圖時,這種矩陣是對稱矩陣。
度數矩陣: 對於有n個頂點的圖G=(V,E),其度數矩陣D∈Rn×n
是對角矩陣,其中
Dii=d(vi)
拉普拉斯矩陣: 對於有n個頂點的圖G=(V,E),如果我們認爲G中的所有邊都是無向的,
然後其拉普拉斯矩陣L∈Rn×n可以定義爲:
L=D−A
因此,我們具有以下元素:
Lij=⎩⎨⎧d(vi)−10 if i=j if {vi,vj}∈E and i=j otherwise
注意,該圖被認爲是鄰接矩陣的無向圖。
對稱歸一化拉普拉斯算子: 對稱歸一化拉普拉斯算子定義爲:
Lsym=D−21LD−21=I−D−21AD−21
元素由下式給出:
Lijsym=⎩⎪⎨⎪⎧1−d(vi)d(vj)10 if i=j and d(vi)=0 if {vi,vj}∈E and i=j otherwise
隨機遊走歸一化的拉普拉斯算子: 它定義爲:
Lrw=D−1L=I−D−1A
可以通過以下方式計算元素:
Lijrw=⎩⎨⎧1−d(vi)10 if i=j and d(vi)=0 if {vi,vj}∈E and i=j otherwise
關聯矩陣: 表示圖的另一個常用矩陣是關聯矩陣。對於有n個頂點和m條邊的
圖G=(V,E),對應的關聯矩陣M∈Rn×m,其中:
Mij=⎩⎨⎧1−10 if ∃k s.t ej={vi,vk} if ∃k s.t ej={vk,vi} otherwise.
對於無向圖,對應的關聯矩陣滿足這個條件
Mij={10 if ∃k s.t ej={vi,vk} otherwise