1. 程式人生 > >深度學習(花書)讀書筆記——第二章-線性代數

深度學習(花書)讀書筆記——第二章-線性代數

第二章-線性代數

2.1 標量、向量、矩陣和張量

標量(scalar):一個標量就是一個單獨的數,它不同於線性代數中研究的其他大部分物件(通常是多個數的陣列)。向量(vector):一個向量是一列數。這些數是有序排列的。                                                                               
矩陣(matrix):矩陣是一個二維陣列。                                                      

張量(tensor):在某些情況下,我們會討論座標超過兩維的陣列。一般地,一個數組中的元素分佈在若干維座標的規則網格中,我們稱之為張量。我們使用字型 A

來表示張量 “A’’。張量 A 中座標為 (i, j, k) 的元素記作 A i,j,k。

轉置(transpose):

                         

2.2 矩陣和向量相乘

C = AB:如果矩陣 A 的形狀是 m × n,矩陣 B 的形狀是 n × p,那麼矩陣C 的形狀是 m × p。

矩陣乘積服從分配律:A(B + C) = AB + AC

矩陣乘積也服從結合律:A(BC) = (AB)

不同於標量乘積,矩陣乘積並不滿足交換律(AB = BA 的情況並非總是滿足)。

矩陣乘積的轉置:

兩個向量的點積(dot product)滿足交換律:

2.3 單位矩陣和逆矩陣

單位矩陣(identity matrix):所有沿主對角線的元素都是 1,而所有其他位置的元素都是0。

2.4 線性相關和生成子空間(p32)

2.5 範數

有時我們需要衡量一個向量的大小。在機器學習中,我們經常使用被稱為 範數(norm)的函式衡量向量大小。

其中 p ∈ R,p ≥ 1

範數是將向量對映到非負值的函式。直觀上來說,向量 x 的範數衡量從原點到點 x 的距離

當 p = 2 時,L2範數被稱為 歐幾里得範數(Euclidean norm)。它表示從原點出發到向量 x 確定的點的歐幾里得距離。L2範數在機器學習中出現地十分頻繁,經常簡化表示為||x||略去了下標 2。平方L2 範數也經常用來衡量向量的大小,可以簡單地通過點積xTx 計算。

注意:平方 L2 範數在數學和計算上都比 L2 範數本身更方便。例如,平方 L2

範數對x 中每個元素的導數只取決於對應的元素,而 L2 範數對每個元素的導數卻和整個向量相關。但是在很多情況下,平方 L2 範數也可能不受歡迎,因為它在原點附近增長得十分緩慢。在某些機器學習應用中,區分恰好是零的元素和非零但值很小的元素是很重要的。在這些情況下,我們轉而使用在各個位置斜率相同,同時保持簡單的數學形式的函式:L1 範數。L1 範數可以簡化如下:

當機器學習問題中零和非零元素之間的差異非常重要時,通常會使用 L1 範數。每當x 中某個元素從 0 增加 ε,對應的 L 1 範數也會增加 ε。

另外一個經常在機器學習中出現的範數是 L ∞ 範數,也被稱為 最大範數(max norm)。這個範數表示向量中具有最大幅值的元素的絕對值:

有時候我們可能也希望衡量矩陣的大小。在深度學習中,最常見的做法是使用 Frobenius 範數(Frobenius norm),F-範數

2.6 特殊型別的矩陣和向量

對角矩陣(diagonal matrix)只在主對角線上含有非零元素,其他位置都是零。對稱(symmetric)矩陣是轉置和自己相等的矩陣。
單位向量(unit vector)是具有單位範數(unit norm)的向量:||x||2=1.正交矩陣(orthogonal matrix)是指向量和列向量是分別標準正交的方陣:ATA=AAT=I.這意味著A-1=AT所以正交矩陣受到關注是因為求逆計算代價小

2.7 特徵分解

特徵分解(eigendecomposition)是使用最廣的矩陣分解之一,即我們將矩陣分解成一組特徵向量和特徵值。方陣 A特徵向量(eigenvector)是指與 A 相乘後相當於對該向量進行縮放的非零向量 v :

每個實對稱矩陣都可以分解成實特徵向量和實特徵值:

2.8 奇異值分解

奇異值分解(singular value decomposition, SVD),將矩陣分解為奇異向量(singular vector)和 奇異值(singular value)。通過奇異值分解,我們會得到一些與特徵分解相同型別的資訊。然而,奇異值分解有更廣泛的應用。每個實數矩陣都有一個奇異值分解,但不一定都有特徵分解。例如,非方陣的矩陣沒有特徵分解,這時我們只能使用奇異值分解。


        假設 A 是一個 m × n 的矩陣,那麼 U 是一個 m × m 的矩陣,D 是一個 m × n的矩陣,V 是一個 n × n 矩陣。這些矩陣中的每一個經定義後都擁有特殊的結構。矩陣 U V 都定義為正交矩陣,而矩陣 D 定義為對角矩陣。注意,矩陣 D 不一定是方陣。

        對角矩陣 D 對角線上的元素被稱為矩陣 A 的奇異值(singular value)。矩陣U 的列向量被稱為左奇異向量(left singular vector),矩陣 V 的列向量被稱 右奇異向量(right singular vector)。
        事實上,我們可以用與 A 相關的特徵分解去解釋 A 的奇異值分解。A 的 左奇異向量(left singular vector)是 AAT 的特徵向量。 A 的 右奇異向量(right singularvector)是ATA的特徵向量。A 的非零奇異值是ATA特徵值的平方根,同時也是AAT 特徵值的平方根。

2.9 Moore-Penrose 偽逆

對於非方矩陣而言,其逆矩陣沒有定義。Moore-Penrose 偽逆(Moore-Penrose pseudoinverse)使我們在這類問題上取得了一定的進展。矩陣 A 的偽逆定義為:


計算偽逆的實際演算法沒有基於這個定義,而是使用下面的公式:


其中,矩陣 U,D V 是矩陣 A奇異值分解後得到的矩陣。對角矩陣 D 的偽逆D + 是其非零元素取倒數之後再轉置得到的。

2.10 跡運算

跡運算返回的是矩陣對角元素的和:

跡運算因為很多原因而有用。若不使用求和符號,有些矩陣運算很難描述,而通過矩陣乘法和跡運算子號可以清楚地表示。例如,跡運算提供了另一種描述矩陣F-範數的方式:


用跡運算表示表示式,我們可以使用很多有用的等式巧妙地處理表達式。例如,跡運算在轉置運算下是不變的:


多個矩陣相乘得到的方陣的跡,和將這些矩陣中的最後一個挪到最前面之後相乘的跡是相同的。當然,我們需要考慮挪動之後矩陣乘積依然定義良好:

即使迴圈置換後矩陣乘積得到的矩陣形狀變了,跡運算的結果依然不變。例如,假設矩陣 A ∈ R m×n ,矩陣 B ∈ R n×m ,我們可以得到
儘管 AB ∈ R m×m 和 BA ∈ R n×n 。

另一個有用的事實是標量在跡運算後仍然是它自己:a = Tr(a)。

2.11 行列式

行列式,記作 det(A),是一個將方陣 A 對映到實數的函式。行列式等於矩陣特徵值的乘積。行列式的絕對值可以用來衡量矩陣參與矩陣乘法後空間擴大或者縮小了多少。如果行列式是 0,那麼空間至少沿著某一維完全收縮了,使其失去了所有的體積。如果行列式是 1,那麼這個轉換保持空間體積不變。