论SVD和PCA的渊源
?
因為最近接觸到基于SVD算法的相關算法,所以這幾天就細細看了SVD算法的相關內容,又一連串的引出PCA算法的內容。
今天就好好的把它們倆整理一下。
1.SVD
? ?? 其實之前做算法相關時,也有了解到SVD算法,但一直都是似懂非懂。這里首先給出SVD算法的定義,
? ?? 除了定義,我們還可以提前知道SVD常用于降噪、數據分析等需要矩陣分解的應用里。SVD算法對于矩陣的分解提供了一種很好的可行方案。M = UΣVT。 這就表明任意的矩陣 M 是可以分解成三個矩陣。V 表示了原始域的標準正交基,u 表示經過 M 變換后的co-domain的標準正交基,Σ 表示了V 中的向量與u 中相對應向量之間的關系。
??
? ? ?但是我們最好是從SVD的幾何意義中來理解SVD算法到底具體應用是怎么樣的,AMS網站上有一片博客很清晰的講了什么是? Singular Value Decomposition,有博主也將它翻譯出來作為參考學習了。簡而言之,它從幾何意義上講了二維的SVD:對于任意的 2 x 2 矩陣,通過SVD可以將一個相互垂直的網格(orthogonal grid)變換到另外一個相互垂直的網格!
? ? ?在向量的格式上,就是進行一次標準的變換,任意的矩陣可以分解為三個矩陣,三個矩陣分別為原始的標準正交基、變換后的標準正交基以及這個變換之間的關系,這個關系是一個對角矩陣,對角線上的元素表示兩組標準正交基的特征關系。
2.PCA
? ? ? ??PCA(Principal Component Analysis)是一種數據分析的方法,通常用于降維,提取主要特征量。周志華的機器學習第十章就是專門講的降維和度量學習,這里我就簡單提一嘴什么是降維(dimension reduction),因為我之后肯定會單獨整理第十章的內容的。
? ? ? ? 什么是降維?維度是在我們機器學習中必須遇到見到甚至熟悉的概念。有許多機器學習設計的數據網絡都存在高維空間,高維空間會給距離計算帶來很大的麻煩,所以在實際應用中我們可以選擇降維來緩解維數災難。所以言歸正傳,姜維就是通過某種數學變換將原始高維屬性空間轉變為一個低維“子空間”,當然這會導致子空間中樣本密度的提高。
? ? ? ?PCA的全名叫做主成分分析,顧名思義就是找出數據里面的主要部分,用數據里面最主要的部分來代替原始數據。使用更低維度的數據來代表高維的原始數據,但是這樣不可避免地會導致損失的出現,怎么樣讓我們總的損失最小,就是需要考慮衡量的一個問題。所以要進行PCA,我們主要需要考慮的兩個方面是:(1)“方差”最大(2)“誤差”最小。
? ? ? 第一個需要討論的就是:最大可分性。要想找到最具特征且最能將數據分開的數據?,F實的數據集中,會有很對具有一定相關性的數據,我們的任務就是在這里面選出差異最大,區分能力最強的“特性”。
? ? ? 第二個需要討論的是:最近重構性。怎么說呢,關于最近重構性我是這樣理解的。從一堆能“重建”新特性的舊特性中選出距離和我們的“基”坐標最近的數據。下圖的圖形中有一個十字坐標,這個十字坐標是一個“基”坐標,“方差”就是紅點到黑色的中心圓圈的距離平方的平均值,“誤差”表示藍色小點到投影到直線上的紅色小點的距離。由此我們很明顯的可以得到我們的所需要方向,從這個方向來構建基變換,就能達到我們的目的,實現最大可分性。
? ? ? ? 而我們的PCA就是這樣一種可用于降維的分析方法,下面給出PCA算法步驟:
?
?
總結
以上是生活随笔為你收集整理的论SVD和PCA的渊源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习笔记----周志华《机器学习》第五章
- 下一篇: 一种JPG/PNG在线转EPS/PDF的