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