tft每日頭條

 > 生活

 > 機器學習和深度學習之數學基礎-線性代數

機器學習和深度學習之數學基礎-線性代數

生活 更新时间:2025-01-09 14:18:04
内容導讀

本文主要參考Garrett Thomas(2018),Marc Peter Deisenroth(2018),Strang(2003),José Miguel Figueroa-O’Farrill, Isaiah Lankham(UCD, MAT67,2012)等教授的相關講座和教材。數組是計算機編程語言的一種數據結構,不具有向量的運算特性,比如python中 list 和 numpy 中的 array 是有本質區别的,雖然他們都有類似的編程訪問特性(比如都可以根據下标随機訪問任何一個元素,可以切片訪問一個子序列等),但是隻有 array 實現了向量的運算(比如向量的内積運算等)。我們直觀的可以簡單的理解标準正交基就是我們直角坐标系裡的兩個軸 。從這裡可以看出,空間維數不能簡單的根據一個向量中含有的元素的個數來判斷。其實,如果我們考慮二維空間 ℝ 2 , 它的正則集就是分别沿着x軸和y軸正方向的單位向量:[1,0] ⊤ 和 [0,1] ⊤ 。也就是說,線性映射兼容向量相加及标量相乘的運算操作(注意,T(0)=0)。

本文為原創文章,歡迎轉載,但請務必注明出處。

線性代數是機器學習和深度學習算法的數學基礎之一,這個系列的文章主要描述在AI算法中可能涉及的線性代數相關的基本概念和運算。本文主要參考Garrett Thomas(2018),Marc Peter Deisenroth(2018),Strang(2003),José Miguel Figueroa-O’Farrill, Isaiah Lankham(UCD, MAT67,2012)等教授的相關講座和教材。本文的主要内容包括向量的基本概念,向量空間,線性組合、線性無關、線性相關、基以及線性映射。

1、向量的基本概念

線性代數的研究對象是向量(vector),在數學上通常稱之為“幾何向量(geometric vector)”,使用“字母頭上一個箭頭”(必須要吐槽一下簡書的編輯器,不支持Latex)來表示(如圖一所示),這個時候,向量就可以表示為空間的一個點。而在計算機領域,向量通常使用黑體小寫字母表示,如 xy

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)1

圖一: 二維空間的兩個向量。空間内的向量可以用空間中對應的點表示

通常,滿足以下兩個運算條件的對象都可以看成是向量:

  • 對象之間可以進行相加運算;

  • 對象可以乘以一個标量得到同樣類型的另一個對象。

比如向量 xy 可以相加: x y = z, 那麼 z 也是向量; 另外,向量 x 乘以标量 λ∈ℝ 得到 λx 也是向量。從這個角度來說,多項式(polynomials)也是向量(兩個多項式相加仍是多項式,一個多項式乘以一個标量同樣還是多項式)。 還有,任何數字信号也是向量。

圖二表示了向量相加及向量與标量相乘,其中(a)表示兩個向量相加,其結果向量的長度是是兩個向量組成的平行四邊形的對角線的長度,方向與兩個向量的方向相同;(b)是向量與标量相乘,其結果向量與原向量在同一個直線上,方向由标量的符号決定(正為同方向,負為反方向),結果向量的長度由标量的絕對值決定,如果标量的絕對值在0和1之間,那麼向量的長度被同比例壓縮;如果标量的絕對值的絕對值大于或等于1,那麼向量的長度被同比拉升;(c)是表示了一個三維空間的向量。三維空間裡,兩個向量(如果不在一個直線上)可以确定一個平面,3個向量(如果不在同一個直線或同一個平面上)可以确定一個立體柱體。

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)2

圖二:向量相加及向量與标量相乘

需要說明的是向量和計算機語言中的數組是不同概念。數組是計算機編程語言的一種數據結構,不具有向量的運算特性,比如python中list 和 numpy 中的array 是有本質區别的,雖然他們都有類似的編程訪問特性(比如都可以根據下标随機訪問任何一個元素,可以切片訪問一個子序列等),但是隻有array 實現了向量的運算(比如向量的内積運算等)。

2、向量空間

向量空間(vector space,又稱為線性空間)是線性代數的基本概念之一。本文開始提到了成為向量所需要的兩種運算條件(或兩個特性),而向量空間的定義就是基于這兩個特性。向量空間定義:一個向量空間 V 是向量的集合,在這個集合上定義了向量的兩種運算:

  • 向量之間可以相加,即x y∈V, 其中 x,y∈V;

  • 向量可以乘以一個稱為标量(scalar)的實數,即αx∈V, 其中x∈V,α∈ℝ。

以上兩個條件又構成了向量空間的“閉包”(closure)特性。也就是說,向量空間中的向量進行以上兩種運算後,其結果仍然在該向量空間中。

向量空間 V 必須滿足:

  • 存在加法單位元,記作 0(即零向量),使得 x 0=x, 這裡 x∈V;

  • 對于任意 x∈V, 存在加法逆元(又稱為相反數),記作 -x,使得 x (−x)=0

  • 在實數集 ℝ 中存在乘法單位元,記為 1,使得 1x=x,這裡 x∈V;

  • 交換律(commutativity):x y=y x;

  • 結合律(associativity):(x y) z=x (y z), α(βx)=(αβ)x, 這裡 x,y,z∈V,α,β∈ℝ;

  • 分配律(distributivity):α(x y)=αx αy 和 (α β)xx βx, 這裡x,y∈V,α,β∈ ℝ。

3、線性組合、線性無關、向量張成與向量空間的基

3.1、線性組合

線性組合(linear combination)定義:對于向量空間 V 中的一組非零向量集 v1,v2,...,vn ,有一組标量(即實數)α12,...,αn,則等式:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)3

稱為向量空間 V 中向量集v1,v2,...,vn 的線性組合。

3.2、線性無關與線性有關

線性無關(linearly independent)定義:對于向量空間 V 中的一組非零向量集 v1,v2,...,vn ,當且僅當α12=...=αn=0時,等式

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)4

成立,那麼稱非零向量集 v1,v2,...,vn是線性無關的。

如果存在一個 αi≠0 使得上式成立,那麼稱非零向量集 v1,v2,...,vn 是線性相關的 (linearly dependent)。 這說明在這 n 個向量中,其中至少有一個向量是剩下的 n−1 個向量的線性組合。比如,假設α1≠0, 那麼根據上式,有

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)5

那麼有

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)6

v1v2,...,vn 的一個線性組合。

3.3、張成span

張成(span)定義:向量空間 V中的非零向量集 v1,v2,...,vn 的張成是指v1,v2,...,vn的線性組合所得到的所有向量所組成的集合。用數學表達就是:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)7

這個集合構成了原向量空間 V的一個子空間(最小子空間)。這裡特别說明是最小子空間是因為v1,v2,...,vn 可能存在線性相關性。

3.4、向量空間的基

向量空間的基(basis)的定義:如果非零向量集v1,v2,...,vn線性無關,而且span(v1,v2,...,vn)=V(即這些向量集的張成就是整個向量空間),那麼向量集v1,v2,...,vn稱為向量空間V的基。這也是一個向量集能稱為一個向量空間的基所必須滿足的兩個條件。

如果這些向量之間兩兩相互正交(即向量兩兩垂直,也即向量之間的内積為0),那麼稱v1,v2,...,vn是向量空間 V 的正交基(orthogonal basis)。如果正交基的向量長度為1(即向量歸一化),那麼稱之為标準正交基或規範正交基

我們直觀的可以簡單的理解标準正交基就是我們直角坐标系裡的兩個軸。比如二維平面坐标系裡的标準正交基是[1,0] (表示x-軸上的标準正交基,即這個基位于(1,0)點) 和[0,1](表示x-軸上的标準正交基,即這個基位于(0,1)點),那麼平面直角坐标系裡的所有向量(或所有點)都可以通過這兩個标準正交基向量的線性組合得到,也就是說這兩個标準正交基向量的張成是整個二維平面空間。

3.5、向量空間的維數

向量空間的維數(dimension)定義: 在有限維(finite-dimensional)向量空間 V中構成向量空間基的向量的數量稱為向量空間 V 的維數, 記作dim(V)。(如果一個向量空間是被有限數量的向量張成,那麼該向量空間被稱為有限維數finite-dimensional,否則稱為無限維數)。

從這裡可以看出,空間維數不能簡單的根據一個向量中含有的元素的個數來判斷。比如上面說到的二維平面空間,之所以叫二維,是因為有2個标準正交基。還有3為立體空間,在3維直角坐标系中,x-軸,y-軸,z-軸的上的标準正交基分别是[1,0,0],[0,1,0],[0,0,1]。這三個标準正交基的張成構成了整個3維空間。假設一個平面在這個3為空間中,我們知道在這個時候平面是2維的,但是為什麼是2維呢?因為3維空間中的任何一個平面可以由兩個不在同一條直線上的基向量決定,所以3維空間中的平面是2維的。

4、歐氏空間 ℝn

通常情況下,在機器學習中我們把多維向量組成的空間稱為歐氏空間(Euclidean space),即x∈ℝn。

一般來說,對于向量空間 ℝn, 以下的的一組 n 個向量集:{[1,0,...,0],[0,1,...,0],...,[0,0,...,1]} 稱為 ℝn 的基, 也稱為空間 ℝn 的正則基(canonical basis)。這也就說明為什麼向量空間 ℝn 的維數是 n, 這是因為這裡有 n 個正則基,所以說向量空間 ℝn 的維數是 n,而不是因為每個正則基有 n 個元素而說向量空間 ℝn 的維數是 n。 這一點不要混淆。其實,如果我們考慮二維空間 ℝ2, 它的正則集就是分别沿着x軸和y軸正方向的單位向量:[1,0] 和 [0,1]

在機器學習中, 我們一般都是在使用了正則基的歐氏空間 ℝn 中讨論向量間的各種運算,而且向量通常表示為列向量(沒有别的原因,隻是為了方便,你也可以表示為行向量):

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)8

于是根據向量空間的閉包性質,有(歐氏空間可以看成是由标準正交基張成的向量空間):

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)9

歐氏空間通常是在數學上用來表示物理空間,比如表示空間中兩點(即兩個向量)的距離,向量的長度,向量之間的夾角等。

5、子空間

子空間(subspace)的定義: 給定一個向量空間 V, 那麼 S⊆V 被稱為 V 的子空間,則 S 必須滿足:

  • 0∈S

  • S 對加法閉包:x,y∈S 則 x y∈S

  • S 對于标量乘法閉包:x∈S,α∈ℝ, 則 αx∈S。

比如,一條穿過原點的直線是歐氏空間的一個子空間。

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)10

圖三,并不是所有2維空間的子集都構成二維空間的子空間。這裡,圖A和圖C不是子空間,因為他們沒有滿足“閉包”的性質,圖B沒有包括0點,所以也不是子空間,隻有圖D是子空間。圖片來自(Marc Peter Deisenroth, et al 2018)

如果 U 和 W 是V 的子空間,那麼他們的和(sum)定義為:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)11

可以看出 U W 也是V的子空間。如果 U ∩ W = {0}, 那麼這個“和”就稱為 “直和(direct sum)”, 記作 U ⊕ W。任何在 U ⊕ W 中的向量都可以唯一的記作 u w, 其中 u∈U,w∈W。 (這是直和的充要條件)。另外,對于維度有

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)12

于是,對于直和的維數有

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)13

這是因為對于直和,有 dim( U ∩ W )=dim( {0} )=0

6、線性映射

線性映射(linear map) 是指通過函數從一個向量空間映射到另一個向量空間(即線性變換)。即如果函數 T: V→W 是線性映射,其中 V 和 W 是向量空間,那麼函數 T 必須滿足以下條件:

  • T(x y)=T(x) T(y), 其中 x,y∈V;

  • T(αx)=αT(x), 其中 x∈V, α∈ℝ。

也就是說,線性映射兼容向量相加及标量相乘的運算操作(注意,T(0)=0)。在習慣上,如果不出現歧義,T(x) 都是記作 Tx (即去掉括号)。從向量空間V 到向量空間 W 的線性映射函數 T 不止一個,那麼所有的線性映射函數就可以構成從向量空間V 到向量空間 W 的線性映射函數集,記作 L(V,W)。如果一個線性映射是從向量空間 V 映射到它自己空間本身(即V=W, L(V,V)=L(V)),那麼稱該映射為線性算子(linear operator),也被稱為線性轉換(linear transform),如圖四所示。

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)14

圖四:二維平面空間的線性轉換

下面舉例一些線性映射:

  • 零映射(zero map) 0: V→W, 将 每一個v∈V 映射為 0∈W,是線性映射;

  • 單元映射(identity map) I: V→V,對每一個 v∈V 有 Iv=v,是線性映射;

  • 将映射 T:ℝ[z]→ℝ[z] 定義為微分映射 Tp(z)=p′(z), 那麼對于兩個多項式 p(z),q(z)∈ℝ[z] 有

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)15

類似的, α∈ℝ,那麼

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)16

所以微分映射是線性映射。

  • 定義映射 T:ℝ2→ℝ2 為 T(x,y)=(x−2y,3x y),那麼對于(x,y), (x′,y′)∈ℝ2, 有(注意,這裡是用圓括号來表示一個二維向量如(x,y)):

    機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)17

類似的, α∈ℝ,那麼

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)18

所以這個映射是線性映射。

  • 更一般的,任何映射 T:ℝn→ℝm 被定義為(aij∈ℝ):

    機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)19

那麼映射 T 就是線性映射。

不是所有的函數都是線性(映射)的,比如指數函數 f(x)=ex 就不是線性的,因為 e2x ≠ 2ex。同樣,函數 f:ℝ→ℝ 定義為 f(x)=x−1 也不是線性的,因為 f(x y) = x y−1 ≠ f(x) f(y)=x−1 y−1。

線性映射集 L(V,W) 本身就是向量空間。 假設有兩個線性映射 S,T∈L(V,W), 那麼加法定義為:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)20

标量乘法定義為:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)21

這裡有一個重要結論:如果給定向量空間的基的值,那麼線性映射是可以完全被确定的,即:

定理1:給定v1,...,vn 是向量空間 V 的一個基, w1,...,wn 是向量空間 W 的任意向量列表,那麼存在一個唯一的線性映射 T: V→W :T(vi)=wi,∀i=1,2,...,n

另外,線性映射除了可以定義加法和标量乘法,還可以定義線性映射的合成(composition of linear maps) :給定 U,V,W 是三個向量空間,假設 S∈L(U,V), T∈L(V,W), 那麼定義線性映射的合成T∘S∈L(U,W):

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)22

T∘S 也叫做 T 和 S 的乘積(product),一般記作 TS。它的性質如下:

  • 交換律(associativity): (T1T2)T3=T1(T2T3), T1∈L(V1,V0), T2∈L(V2,V1), T3∈L(V3,V2).

  • 單元乘積(identity): TI=IT=T, T∈L(V,W)。這裡在 TI 中的 I 是在 (V,V)中的單位映射,而IT 中的 I 是在 L(W,W)中的單位映射, 這點需要區别。

  • 分配律(distributivity):(T1 T2)S=T1S T2S, T(S1 S2)=TS1 TS2,這裡 S,S1,S2∈L(U,V),T,T1,T2∈L(V,W)

需要注意的是線性映射的乘積一般沒有交換律(commutivity)。例如,假設 T∈L(ℝ[z],ℝ[z]),定義微分映射函數 Tp(z)=p′(z) ; 另外設S∈L(ℝ[z],ℝ[z]) 定義 Sp(z)=z2p(z), 那麼

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)23

所以,線性映射 T 是通過一個矩陣完成了映射或轉換的操作運算。所以,不嚴格的說,線性映射的函數 T 就可以看成矩陣。上面對線性映射 T 的操作(加法,标量乘法,線性映射合成)對應矩陣的加法,标量乘法和矩陣之間的乘法(product).

7、零空間(null space)或核(kernel)

對于線性映射 T:V→W, 那麼 T 的零空間(null space 或稱為核 kernel) 的定義是在向量空間 V 中使得 Tv=0 的所有向量 v所組成的空間,即

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)24

例1,假設 T∈L(ℝ[z],ℝ[z]) 是微分映射函數 Tp(z)=p′(z), 那麼

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)25

例2,線性映射T(x,y)=(x−2y,3x y),為了找到null space,那麼需要 T(x,y)=(0,0),即求解線性方程組

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)26

上面方程組的解為 (x,y)=(0,0), 所以 null(T)={(0,0)}

比如,假設一個矩陣A,那麼它的零空間就是所有使得下式成立的所有向量x

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)27

8、值域 (range)

線性映射 T:V→W 的值域 (range) 的定義如下:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)28

可以看出,線性映射 T:V→W 的值域是向量空間 W 的子空間。

例1: 微分映射 T:ℝ[z]→ℝ[z] 的值域 range(T)=ℝ[z],因為對于任何一個多項式 q∈ℝ[z],都有一個對應的 p∈ℝ[z] 使得 p′=q。

例2:線性映射 T(x,y)=(x−2y,3x y) 的值域是 ℝ2。 因為對于任意 (z1,z2)∈ℝ2, 當 (x,y)=17(z1 2z2,−3z1 z2),那麼 T(x,y)=(z1,z2)。

9、維數定理

定理2:給定 V 是有限維數的向量空間,T:V→W 是線性映射,那麼 range(T) 是向量空間 W 的有限維子空間,并且dim(V)=dim( null(T) ) dim( range(T) )

這個定理将核(kernel)的維數與值域的維數聯系了起來。

線性映射的矩陣

前面我們提到,線性映射可以看成矩陣。那麼我們應該怎樣對每個線性映射 T∈L(V,W)(其中 V,W 是有限維數的向量空間),進行矩陣的表示或編碼呢?或者反過來,每一個矩陣是怎麼定義了一個線性映射呢?

給定有限維向量空間 V 和 W,T:V→W 是一個線性映射。假設 v1,...,vnw1,...,wm 分别是有限維向量空間V和 W 的一個基(basis),根據定理1,T 是可以通過給定向量 Tv1,...,Tvn∈W 來唯一确定的。由于 w1,...,wm 是 W 的一個基,那麼存在唯一的标量(或實數) aij∈ℝ, 使得

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)29

于是,我們可以組裝這些标量成為了一個 m × n 的矩陣:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)30

通常,上面的M(T) 可以記作 A∈ℝm×n。需要說明的是,M(T)不僅取決于線性映射 T, 同時也取決于向量空間 V 的基 v1,...,vn 的選擇和 W 的基 w1,...,wm 的選擇。 M(T) 的第 j 列包含了依據據基 w1,...,wm 進行擴展時第 j 個基向量 vj 的各元素對應的系數(coefficients),見下面的例子說明。

例1:假設線性映射T:ℝ2→ℝ2 的定義是 T(x,y)=(ax by,cx dy),a,b,c,d∈ℝ, 那麼對于 二維空間 ℝ2 的标準正交基為 ((1,0),(0,1)),相應的矩陣為:

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)31

因為 T(1,0)=(a,c)得到了矩陣第一例,T(0,1)=(b,d)得到了矩陣第二列。

例2:假設線性映射T:ℝ2→ℝ3 的定義是 T(x,y)=(y,x 2y,x y),那麼關于标準正交基,我們有 T(1,0)=(0,1,1),T(0,1)=(1,2,1),于是

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)32

但是,如果使用 ((1,2),(0,1)) 作為ℝ2的基,((1,0,0),(0,1,0),(0,0,1))作為ℝ3的基,那麼 T(1,2)=(2,5,3),T(0,1)=(1,2,1),于是

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)33

例3:假設線性映射S:ℝ2→ℝ2 的定義是 S(x,y)=(y,x),如果使用((1,2),(0,1))作為 ℝ2的基,那麼S(1,2)=(2,1)=2(1,2)−3(0,1), S(0,1)=(1,0)=1(1,2)−2(0,1), 所以

機器學習和深度學習之數學基礎-線性代數(機器學習和深度學習之數學基礎-線性代數)34

11、小結

本文主要描述了向量的基本概念,向量空間,線性組合、線性無關、線性相關、線性空間的基以及線性映射。

  • 線性映射定義了一個函數。根據這個函數,向量空間可以被線性映射或轉換到裡一個向量空間。

  • 為什麼要了解線性映射?因為線性映射的函數可以看成是通過矩陣完成了映射操作。所以從這個角度,如何定義線性映射是向量空間進行轉換也就是如果定義相應的矩陣。線性映射從一個角度解釋了引入矩陣的物理意義,另一個可以引出矩陣概念的是線性方程組。

下一節介紹矩陣相關的基本概念。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved