掌握好線性導數對於理解和從事機器學習算法相關工作是很有必要的,尤其是對於深度學習算法而言。本文將會介紹機器學習中最常用到的線性代數知識
標量、向量、矩陣和張量
標量 :一個標量就是一個單獨的數,通常用斜體表示,並被賦予小寫的變量名稱
向量 :一個向量是一列數。這些數是有序排列的。通過次序中的索引,可以確定每個單獨的數。通常賦予向量粗體的小寫變量名稱,比如**$x$**
矩陣 :矩陣時一個二維數組,其中每一個元素都由兩個索引所確定
張量 :在某些情況下,我們會討論超過兩維的數組。一般的,一個數組中的元素分布在若干維坐標的規則網絡中,稱之為張量
轉置 是矩陣的重要操作之一。矩陣的轉置是以對角線為軸的鏡像,這條從左上角到右下角的對角線被稱之為主對角線 。矩陣A的轉置通常被記為
向量可以看作只有一列的矩陣。對應地,向量的轉置可以看作只有一行的矩陣。標量可以看作只有一個元素的矩陣,標量的轉置等於它本身 只要矩陣的形狀一樣,介意把兩個矩陣相加。兩個矩陣相加是指對應位置的元素相加 標量和矩陣相乘,或者和矩陣相加時,只需將其與矩陣的每個元素相乘或相加,比如 ,其中, 在深度學習中,有時候會使用一些不那麼常規的符號。比如,允許矩陣和向量相加,產生另一個矩陣: ,其中 。換言之,向量b和矩陣A的每一行相加。這個簡寫方法使我們無須在加法操作前定義一個將向量b複製到每一行而生成的矩陣。這種隱式地複製向量b到很多位置的方式,稱為廣播
矩陣和向量相乘
兩個矩陣A和B的矩陣乘積 是第三個矩陣C。為了使乘法可被定義,矩陣A的列數必須和矩陣B的行數相等。如果矩陣的形狀是 ,矩陣B的形狀是 ,矩陣C的形狀是 。矩陣乘法可定義如下:
矩陣乘積服從分配律:
服從結合律:
但不滿足交換律,即下式並非總是滿足:
矩陣乘積的轉置:
單位矩陣和逆矩陣
任意向量和單位矩陣 相乘,都不會改變,通常記為 。單位矩陣的結構很簡單,所有沿主對角線的元素都是1,而其它位置的所有元素都是0
矩陣A的逆矩陣 記作 ,它滿足如下條件:
現在,可以通過以下步驟來求解方程:
線性相關和生成子空間
可以將方程A的列向量看作從原點 出發的不同方向,確定有多少種方法可以到達向量b。在這個觀點下,向量x中的每個元素表示應該沿著這些方向走多遠,即 表示需要沿著第i個向量的方向走多遠:
一般而言,這種操作稱為線性組合 一組向量的生成子空間 是原始向量線性組合後所能達到的點的集合 確定 是否有解,相當於確定向量b是否在A列向量的生成子空間中。這個特殊的生成子空間被稱為A的列空間 或者A的值域 為了使向量 對於任意向量 都存在解,要求A的列空間構成整個 。如果 中的某個點不在A的列空間中,那麼該點對應的b會使得該方程沒有解。矩陣A的列空間是整個 的要求,意味著A至少有m列,即 。否則,A列空間的維數會小於m 不等式 僅是方程每一點都有解的必要條件,這不是一個充分條件,因為有些列向量可能是冗餘的。這種冗餘稱為線性相關 。如果一組向量中任意一個向量都不能表示成其它向量的線性組合,那麼這組向量稱為線性無關 要想矩陣可逆,還需要保證對於每一個b值至多有一個解。為此,需要確保該矩陣至多有m個列向量;否則,該方程會有不止一個解。也就是說,該矩陣必須是一個方陣 ,即m=n,並且所有列向量都是線性無關的。一個列向量線性相關的方陣被稱為是奇異的
範數
在機器學習中,經常使用範數 的函數來衡量向量大小。形式上, 範數定義如下:
其中, , 直觀上來說,向量 的範數衡量從原點到 的距離。更嚴格地說,範數是滿足下列性質的任意函數:
當p=2時, 範數稱為歐幾裡得範數 。它表示從原點出發到向量 確定的點的歐幾裡得距離。平方 範數也經常用來衡量向量的大小,可以簡單地通過點擊 來計算 平方 範數在數學和計算上都比 範數本身更方便。例如,平方 範數對 中每個元素的導數隻取決於對應的元素,而 範數對每個元素的導數和整個向量相關。但是在很多情況下,平方 範數也可能不受歡迎,因為它在原點附近增長得十分緩慢。在某些機器學習應用中,區分恰好是零的元素和非零但值很小的元素是很重要的。在這些情況下,我們可以使用在各個位置斜率相同,同時保持簡單的數學形式的函數: 範數:
另外一個在機器學習中出現的範數是 範數,也被稱為最大範數 。這個範數表示向量中具有最大幅值的元素的絕對值:
在深度學習中,經常使用Frobenius範數 ,類似於向量的 範數,即
兩個向量的點擊可以用範數來表示:
其中, 是 和 之間的夾角
特殊類型的矩陣和向量
對角矩陣 只在主對角線上含有非零元素,其它位置都是零。對角矩陣受到關注的部分原因是對角矩陣的乘法計算很高效。計算乘法 ,只需將x中每個元素 放大 倍。計算對角矩陣的逆矩陣也很高效,對角矩陣的逆矩陣存在,若且唯若對角元素都是非零值,在這種情況下:
對稱 矩陣是轉置和自己相等的矩陣,即:
單位向量 是具有單位範數 的向量,即:
如果 ,那麼向量x和向量y互相正交。如果兩個向量都有非零範數,那麼這兩個向量夾角是90度。在 中,至多有n個範數非零向量互相正交。如果這些向量不但互相正交,而且範數都是1,那麼它們是標準正交 正交矩陣 指行向量和列向量分別是標準正交的方陣,即
正交矩陣收到關注是因為求逆計算代價非常小
特徵分解
特徵分解 是使用最廣的矩陣分解之一,即將矩陣分解成一組特徵向量和特徵值。方陣A的特徵向量是指與A相乘後相當於對該向量進行縮放的非零向量 :
其中標量 稱為這個特徵向量的特徵值 。如果 是 的特徵向量,那麼任何縮放後的向量 也是 的特徵向量。此外, 和 具有相同的特徵值 假設矩陣 有n個線性無關的特徵向量 ,對應著特徵值 。將特徵向量連接成一個矩陣,使得每一列是一個特徵向量: ;類似地,也可以將特徵值連接成一個 向量 。因此,A的特徵分解可以記為:
不是每一個矩陣都可以分解成特徵值和特徵向量。在某些情況下,特徵分解存在,但是會涉及複數而非實數。具體來講,每個實對稱矩陣都可以分解成實特徵向量和實特徵值:
其中, 是 的特徵向量組成的正交矩陣, 是對角矩陣。特徵值 對應的特徵向量是矩陣 的第i列,記作 。因為 是正交矩陣,因此可以將 看作沿方向 延展 倍的空間 雖然任意一個實對稱矩陣 都有特徵分解,但是特徵分解可能並不唯一。如果兩個或多個特徵向量擁有相同的特徵值,那麼由這些特徵向量產生的生成子空間中,任意一組正交向量都是該特徵值對應的特徵向量。特徵分解唯一,若且唯若所有的特徵值都是唯一的 矩陣是奇異的,若且唯若含有零特徵值 所有特徵值都是正數的矩陣稱為正定 ;所有特徵值都是非負數的矩陣稱為半正定 。同樣地,所有特徵值都是負數的矩陣稱為負定 ;所有特徵值都是非正數的矩陣稱為半負定 。半正定矩陣受到關注是因為它們保證 。此外,正定矩陣還保證
奇異值分解
還有另一種分解矩陣的方法,叫做奇異值分解 ,是將矩陣分解為奇異向量 和奇異值 。每個實數矩陣都有一個奇異值分解,但不一定都有特徵分解。例如,非方陣的矩陣沒有特徵分解,這是只能用奇異值分解 奇異值分解和特徵分解類似,將矩陣 分解成三個矩陣的乘積:
假設 是一個 的矩陣,那麼 是一個 的矩陣, 是一個 的矩陣, 是一個 的矩陣。這些矩陣每一個經定義後都有特殊的結構。矩陣 和矩陣 都定義為正交矩陣,而矩陣 定義為對角矩陣,但不一定是方陣 對角矩陣 對角線上的元素稱為矩陣 的奇異值。矩陣 的列向量稱為左奇異向量 ,矩陣 的列向量稱為右奇異向量 。可以用與A相關的特徵分解來解釋A的奇異值分解。A的左奇異向量是 的特徵向量,A的右奇異向量是 的特徵向量,A的非零奇異值是 特徵值的平方根,同時也是 特徵值的平方根
Moore-Penrose偽逆
對於非方陣而言,其逆矩陣是沒有定義的。但可以計算偽逆
其中,矩陣 、 、 是矩陣 奇異值分解後得到的矩陣。對角矩陣D的偽逆 是其非零元素取倒數之後再轉置得到的 當矩陣A的列數多餘行數時,使用偽逆求解線性方程式眾多可能解法中的一種。特別地,當 是方程所有可行解中歐幾裡得範數 最小的一個;當矩陣A的行數多於列數時,可能沒有解,通過偽逆得到的 使得 和 的歐幾裡得距離 最小
跡運算
跡運算返回的是矩陣對角元素的和
多個矩陣相乘得到的方陣的跡,和將這些矩陣中的最後一個挪到最前面之後相乘的跡是相同的:
即使循環置換後矩陣乘積得到的矩陣形狀變了,跡運算的結果依然不變
行列式
行列式,記作 ,是一個將方陣A映射到實數的函數。行列式等於矩陣特徵值的乘積。行列式的絕對值可以用來衡量矩陣參與矩陣乘法後空間擴大或者縮小了多少。如果行列式是0,那麼空間至少沿著某一維完全收縮了,使其失去了原有的體積;如果行列式是1,那麼這個轉換保持空間體積不變 行列式計算方法:主對角線元素乘積與副對角線元素乘積的差