2018年1月11日 星期四

數學基礎 | 線性代數





人工智慧基礎從數學基礎開始,必備的數學知識是理解人工智慧不可或缺的要素,今天的種種人工智慧技術歸根到底都建立在數學模型之上,而這些數學模型又都離不開線性代數的理論框架


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

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

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

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

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


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

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

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

在計算機存儲中,標量佔據的是零維數組;向量佔據的是一維數組,例如語音信號;矩陣佔據的是二維數組,例如灰度圖像;張量佔據的是三維乃至更高維度的數組,例如 RGB 圖像和視頻

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




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

範數計算的是單個向量的尺度,內積計算的則是兩個向量之間的關係兩個相同維數向量內積的表達式為


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

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



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



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

可是在直覺無法感受的高維空間中,坐標系的定義可就沒有這麼直觀了要知道,人工神經網絡要處理的通常是數以萬計的特徵,對應著維度同樣數以萬計的複雜空間,這時就需要正交基的概念了

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

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

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

在線性空間中,變化的實現有兩種方式:一是點本身的變化,二是參考系的變化在第一種方式中,使某個點發生變化的方法是用代表變化的矩陣乘以代表對象的向量可是反過來,如果保持點不變,而是換一種觀察的角度,得到的也將是不同的結果,正所謂「橫看成嶺側成峰,遠近高低各不同

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

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



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



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


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



矩陣特徵值和特徵向量的動態意義在於表示了變化的速度和方向如果把矩陣所代表的變化看作奔跑的人,那麼矩陣的特徵值就代表了他奔跑的速度,特徵向量代表了他奔跑的方向但矩陣可不是普通人,它是三頭六臂的哪吒,他的不同分身以不同速度(特徵值)在不同方向(特徵向量)上奔跑,所有分身的運動疊加在⼀起才是矩陣的效果



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


人工智慧必備的線性代數基礎,著重於抽象概念的解釋而非具體的數學公式,其要點如下:

● 線性代數的本質在於將具體事物抽象為數學對象,並描述其靜態和動態的特性
● 向量的實質是 n 維線性空間中的靜止點
● 線性變換描述了向量或者作為參考系的坐標系的變化,可以用矩陣表示
● 矩陣的特徵值和特徵向量描述了變化的速度與方向
● 線性代數之於人工智慧如同加法之於高等數學
Share:

0 意見: