1. 程式人生 > >人工智慧數學基礎——線性代數

人工智慧數學基礎——線性代數

    必備的數學知識是理解人工智慧不可或缺的要素,所有的人工智慧技術歸根到底都建立在數學模型之上,而這些數學模型又都離不開線性代數(linear algebra)的理論框架。

    線性代數不僅僅是人工智慧的基礎,更是現代數學和以現代數學作為主要分析方法的眾多學科的基礎。從量子力學到影象處理都離不開向量和矩陣的使用。而在向量和矩陣背後,線性代數的核心意義在於提供了⼀種看待世界的抽象視角:萬事萬物都可以被抽象成某些特徵的組合,並在由預置規則定義的框架之下以靜態和動態的方式加以觀察

    線性代數中最基本的概念是集合(set)。在數學上,集合的定義是由某些特定物件彙總而成的集體。集合中的元素通常會具有某些共性,因而可以用這些共性來表示。對於集合 { 香蕉,橘子,蘋果 } 來說, 所有元素的共性是它們都是水果;對於集合 {豬,馬,羊} 來說,所有元素的共性是它們都是動物。當然 { 香蕉,羊} 也可以構成一個集合,但這兩個元素並沒有明顯的共性,這樣的集合在解決實際問題中的作用也就相當有限。

“    香蕉”或是“羊”這樣的具體概念顯然超出了數學的處理範圍,因而集合的元素需要進行進一步的抽象,用數字或符號來表示。如此一來,集合的元素既可以是單個的數字或符號,也可以是多個數字或符號以某種方式排列形成的組合。

    線上性代數中,由單獨的數 a構成的元素被稱為標量(scalar):一個標量a可以是整數、實數或複數。如果多個標量 a1,a2,,an 按一定順序組成一個序列,這樣的元素就被稱為向量(vector)。顯然,向量可以看作標量的擴充套件。原始的一個數被替代為一組數,從而帶來了維度的增加,給定表示索引的下標才能唯一地確定向量中的元素。

    每個向量都由若干標量構成,如果將向量的所有標量都替換成相同規格的向量,得到的就是如下的矩陣(matrix)

:

[a11a12a13a21a22a23a31a32a33]

    相對於向量,矩陣同樣代表了維度的增加,矩陣中的每個元素需要使用兩個索引確定。同理,如果將矩陣中的每個標量元素再替換為向量的話,得到的就是張量(tensor)。直觀地理解,張量就是高階的矩陣。

    如果把三階魔方的每一個小方塊看作一個數,它就是個3×3×3的張量,3×3 的矩陣則恰是這個魔方的一個面,也就是張量的一個切片。相比於向量和矩陣,張量是更加複雜,直觀性也更差的概念。

    向量和矩陣不只是理論上的分析工具,也是計算機工作的基礎條件。人類能夠感知連續變化的世界,可計算機只能處理離散取值的二進位制資訊,因而來自模擬世界的訊號必須在定義域和值域上同時進行數字化,才能被計算機儲存和處理。從這個角度看,線性代數是用虛擬數字世界表示真實物理世界的工具

    在計算機儲存中,標量佔據的是零維陣列向量佔據的是一維陣列,例如語音訊號;矩陣佔據的是二維陣列,例如灰度影象;張量佔據的是三維乃至更高維度的陣列,例如 RGB 影象和視訊。

    描述作為數學物件的向量需要有特定的數學語言,範數和內積就是代表。範數(norm)是對單個向量大小的度量,描述的是向量自身的性質,其作用是將向量對映為一個非負的數值。通用的 Lp 範數定義如下:

|x|p=(i|xi|p)1p

    對⼀個給定向量,L1範數計算的是向量所有元素絕對值的和,L2 範數計算的是向量長度,L 範數計算的則是向量中最大元素的取值。

    範數計算的是單個向量的尺度,內積(inner product)計算的則是兩個向量之間的關係。兩個相同維數向量內積的表示式為:

x,y=ixi.yi

    即對應元素乘積的求和。內積能夠表示兩個向量之間的相對位置,即向量之間的夾角。一種特殊的情況是內積為 0,即 x,y=0。在二維空間上,這意味著兩個向量的夾角為 90 度,即相互垂直。而在高維空間上,這種關係被稱為正交(orthogonality)。如果兩個向量正交,說明他們線性無關,相互獨立,互不影響。

    在實際問題中,向量的意義不僅是某些數字的組合,更可能是某些物件或某些行為的特徵。範數和內積能夠處理這些表示特徵的數學模型,進而提取出原始物件或原始行為中的隱含關係。

    如果有一個集合,它的元素都是具有相同維數的向量(可以是有限個或無限個), 並且定義了加法和數乘等結構化的運算,這樣的集合就被稱為線性空間(linear space),定義了內積運算的線性空間則被稱為內積空間(inner product space)。線上性空間中,任意一個向量代表的都是 n 維空間中的一個點;反過來, 空間中的任意點也都可以唯一地用一個向量表示。兩者相互等效。

    線上性空間上點和向量的相互對映中,一個關鍵問題是參考系的選取。在現實生活中,只要給定經度、緯度和海拔高度,就可以唯一地確定地球上的任何一個位置,因而經度值、緯度值、高度值構成的三維向量 (x, y, h) 就對應了三維物理空間中的⼀個點。

    人工神經網路要處理的通常是數以萬計的特徵,對應著維度同樣數以萬計的複雜空間,這時就需要正交基的概念了。

    在內積空間中,一組兩兩正交的向量構成這個空間的正交基(orthogonal basis),假若正交基中基向量的 L2 範數都是單位長度 1,這組正交基就是標準正交基(orthonormal basis)。正交基的作用就是給內積空間定義出經緯度。⼀旦描述內積空間的正交基確定了,向量和點之間的對應關係也就隨之確定。

    需要注意的是,描述內積空間的正交基並不唯一。對二維空間來說,平面直角座標系和極座標系就對應了兩組不同的正交基,也代表了兩種實用的描述方式。

    線性空間的一個重要特徵是能夠承載變化。當作為參考系的標準正交基確定後,空間中的點就可以用向量表示。當這個點從一個位置移動到另一個位置時,描述它的向量也會發生改變。點的變化對應著向量的線性變換(linear transformation),而描述物件變化抑或向量變換的數學語言,正是矩陣。

    線上性空間中,變化的實現有兩種方式:一是點本身的變化,二是參考系的變化。在第一種方式中,使某個點發生變化的方法是用代表變化的矩陣乘以代表物件的向量。可是反過來,如果保持點不變,而是換一種觀察的角度,得到的也將是不同的結果,

    在這種情況下,矩陣的作用就是對正交基進行變換。因此,對於矩陣和向量的相乘,就存在不同意義:

Ax=y

    這個表示式既可以理解為向量 x 經過矩陣 A 所描述的變換,變成了向量 y;也可以理解為一個物件在座標系 A 的度量下得到的結果為向量x,在標準座標系I(單位矩陣:主對角線元素為 1,其餘元素為 0)的度量下得到的結果為向量 y。

    這表示矩陣不僅能夠描述變化,也可以描述參考系本身。表示式 Ax 就相當於對向量x做了一個環境宣告,用於度量它的參考系是 A。如果想用其他的參考系做度量的話,就要重新宣告。而對座標系施加變換的方法,就是讓表示原始座標系的矩陣與表示變換的矩陣相乘。

    描述矩陣的⼀對重要引數是特徵值(eigenvalue)和特徵向量(eigenvector)。對於給定的矩陣A,假設其特徵值為λ,特徵向量為x,則它們之間的關係如下:

Ax=λx

    矩陣代表了向量的變換,其效果通常是對原始向量同時施加方向變化和尺度變化。可對於有些特殊的向量,矩陣的作用只有尺度變化而沒有方向變化,也就是隻有伸縮的效果而沒有旋轉的效果。對於給定的矩陣來說,這類特殊的向量就是矩陣的特徵向量,特徵向量的尺度變化係數就是特徵值。

    矩陣特徵值和特徵向量的動態意義在於表示了變化的速度和方向。

    求解給定矩陣的特徵值和特徵向量的過程叫做特徵值分解,但能夠進行特徵值分解的矩陣必須是 n 維方陣。將特徵值分解演算法推廣到所有矩陣之上,就是更加通用的奇異值分解