在機器學習(ML)中,最重要的線性代數(shù)概念之一是奇異值分解(SVD)和主成分分析(PCA)。在收集到所有原始數(shù)據(jù)后,我們如何發(fā)現(xiàn)其中的結構?例如,通過過去6天的利率,我們能否理解其組成并發(fā)現(xiàn)趨勢?
對于高維原始數(shù)據(jù),這變得更加困難,就像在一堆干草中找針一樣。SVD使我們能夠提取和解開信息。在本文中,我們將詳細介紹SVD和PCA。我們假設您具備基本的線性代數(shù)知識,包括秩和特征向量。如果您在閱讀本文時遇到困難,我建議您先刷新這些概念。在本文末尾,我們將回答上面的利率示例中的一些問題。本文還包含可選部分。根據(jù)您的興趣程度隨意跳過。
誤解
我發(fā)現(xiàn)一些非初學者可能會問這樣的問題。PCA是降維嗎?PCA確實可以降維,但它遠遠不止于此。我喜歡維基百科的描述:
主成分分析(PCA)是一種統(tǒng)計過程,它使用正交變換將一組可能存在相關性的變量(每個實體都具有各種數(shù)值)的觀測值轉換為一組線性不相關變量的值,這些變量稱為主成分。
從一個簡化的角度來看,PCA將數(shù)據(jù)線性轉換為彼此不相關的新屬性。對于機器學習而言,將PCA定位為特征提取,可能比將其定位為降維更能充分發(fā)揮其潛力。
SVD和PCA的區(qū)別是什么?SVD將矩陣對角化為易于操作和分析的特殊矩陣,從而為將數(shù)據(jù)分解成獨立成分奠定了基礎。PCA跳過了較不重要的成分。顯然,我們可以使用SVD來找到PCA,方法是在原始SVD矩陣中截斷較不重要的基向量。
矩陣對角化
在特征值和特征向量的文章中,我們描述了一種將n×n方陣A分解為以下形式的方法:
例如,
如果A是一個方陣并且A具有n個線性無關的特征向量,則可以將矩陣對角化。現(xiàn)在,是時候使用SVD為所有矩陣開發(fā)解決方案了。
奇異向量和奇異值
在線性代數(shù)中,矩陣AA?和A?A非常特殊??紤]任何m×n矩陣A,我們可以分別將其與A?相乘以形成AA?和A?A。這些矩陣:
- 對稱的,
- 方陣,
- 至少是半正定的(特征值為零或正),
- 這兩個矩陣具有相同的正特征值,
- 這兩個矩陣的秩與A的秩相同,均為r。
此外,我們在機器學習中經(jīng)常使用的協(xié)方差矩陣也處于這種形式。由于它們是對稱的,我們可以選擇其特征向量為正交的(彼此垂直且長度為1)——這是對稱矩陣的基本性質。
現(xiàn)在,讓我們介紹一些在SVD中經(jīng)常使用的術語。我們在這里將AA?的特征向量稱為u?,將A?A的特征向量稱為v?,并將這些特征向量集合u和v稱為A的奇異向量。這兩個矩陣具有相同的正特征值。這些特征值的平方根被稱為奇異值。
到目前為止還沒有太多解釋,但讓我們先把所有東西放在一起,解釋將在接下來給出。我們將向量u?連接成U,將向量v?連接成V,以形成正交矩陣。
由于這些向量是正交的,很容易證明U和V遵循以下關系:
SVD
我們先從難的部分開始。SVD表明,任何矩陣A都可以分解為:
其中U和V是正交矩陣,其特征向量分別從AA?和A?A中選擇。S是一個對角矩陣,其r個元素等于AA?或A?A的正特征值的平方根(這兩個矩陣具有相同的正特征值)。對角線元素由奇異值組成。
即一個m×n矩陣可以分解為:
我們可以按不同的順序排列特征向量來產(chǎn)生U和V。為了標準化解決方案,我們將特征值較大的向量排在較小的值的前面。
與特征值分解相比,SVD適用于非方陣。對于SVD中的任何矩陣,U和V都是可逆的,并且它們是正交的,這是我們所喜歡的。在這里不提供證明,我們還告訴您,奇異值比特征值更具數(shù)值穩(wěn)定性。
示例
在進一步深入之前,讓我們用一個簡單的例子來演示一下。這將使事情變得非常容易理解。
計算:
這些矩陣至少是半正定的(所有特征值均為正或零)。如圖所示,它們共享相同的正特征值(25和9)。下面的圖還顯示了它們對應的特征向量。
奇異值是正特征值的平方根,即5和3。因此,SVD分解為:
證明(可選)
為了證明SVD,我們要解出U、S和V,使得:
我們有三個未知數(shù)。希望我們可以使用上面的三個方程解決它們。A的轉置為:
已知
計算 A?A,
最后一個方程相當于矩陣(A?A)的特征向量定義。我們只是將所有特征向量放入一個矩陣中。
其中VS2等于
V保存A?A的所有特征向量v?,而S保存A?A的所有特征值的平方根。我們可以對AA?重復相同的過程,并得到類似的方程式。
現(xiàn)在,我們只需要解出U、V和S,使其符合以下條件:
總結
以下是SVD的總結。
其中
重新表述SVD
由于矩陣V是正交的,V?V等于I。我們可以將SVD方程重寫為:
這個方程式建立了u?和v?之間的重要關系。
回顧
應用AV = US,
這可以推廣為:
回顧
and
SVD分解可以被認為是u?和v?的一系列外積。
這種SVD的公式化是理解A的構成要素的關鍵。它提供了一種將糾纏在一起的m×n數(shù)據(jù)數(shù)組分解為r個組件的重要方法。由于u?和v?是單位向量,我們甚至可以忽略具有非常小奇異值σ?的項(σ?u?v??)。 (稍后我們會回到這個問題。)
讓我們先重用之前的例子,展示一下它是如何工作的。
上面的矩陣A可以分解為:
列空間,行空間,左零空間和零空間(可選-高級用戶)
接下來,我們將看看U和V由什么組成。假設A是一個秩為r的m×n矩陣。A?A將是一個n×n的對稱矩陣。所有對稱矩陣都可以選擇n個正交的特征向量v?。由于Av? = σ?u?,而v?是A?A的正交特征向量,我們可以計算u??u?的值:
它等于零,即u?和u?互相正交。如前所述,它們也是AA?的特征向量。
由于Av? = σu?,我們可以認識到u?是A的列向量。
由于A的秩為r,所以我們可以選擇這r個u?向量為正交基。那么AA?的剩余m-r個正交特征向量是什么呢?由于A的左零空間與列空間正交,因此將其選為剩余的特征向量非常自然。(左零空間N(A?)是由A?x = 0定義的空間。)對于A?A的特征向量,類似的論證也是適用的。因此,我們有:
從前面的SVD方程式回到原來的方程式,我們有:
我們只需將特征向量放回左零空間和零空間中。
對于線性方程組,我們可以計算一個方陣A的逆來求解x。
但并非所有矩陣都可逆。而且,在機器學習中,由于數(shù)據(jù)中存在噪聲,很難找到精確的解。我們的目標是找到最適合數(shù)據(jù)的模型。為了找到最佳擬合解,我們需要計算一個偽逆。
該偽逆最小化以下最小二乘誤差:
解x的估計值為:
在線性回歸問題中,x是我們的線性模型,A包含訓練數(shù)據(jù),b包含相應的標簽。我們可以通過以下方式解決x:
下面是一個例子
方差和協(xié)方差
在機器學習中,我們識別模式和關系。我們如何確定數(shù)據(jù)中屬性之間的相關性?讓我們從一個例子開始討論。我們隨機抽取了12個人的身高和體重,并計算它們的均值。我們通過將原始值減去其均值來將其零中心化。例如,下面的矩陣A保存了調整后的零中心化身高和體重。
當我們繪制數(shù)據(jù)點時,我們可以看出身高和體重是正相關的。但是我們如何量化這種關系呢?
首先,一個屬性如何變化?我們可能在高中就學過方差。讓我們介紹一下它的近親。樣本方差的定義為:
注意,它的分母為n-1而不是n。由于樣本數(shù)量有限,樣本均值存在偏差并與樣本相關。相對于總體,平均平方距離會更小。樣本協(xié)方差S2除以n-1來抵消這個偏差,可以被證明是方差σ2的無偏估計。
-
ML
+關注
關注
0文章
149瀏覽量
34664 -
SVD
+關注
關注
0文章
21瀏覽量
12179 -
機器學習
+關注
關注
66文章
8420瀏覽量
132687
發(fā)布評論請先 登錄
相關推薦
評論