當前位置:
首頁 > 最新 > 人工智慧–SVD演算法

人工智慧–SVD演算法

人工智慧之SVD演算法

前言:人工智慧機器學習有關演算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下SVD演算法。 ^_^

機器學習中會用到降維方法,常用的降維方法有兩種:PCA(主成分分析)SVD(奇異值分解)PCA演算法之前已經介紹過, 請參見人工智慧(46),今天給大家介紹一下SVD演算法。

SVD奇異值分解作為一個很基本的演算法,在很多機器學習演算法中都有它的身影。SVD奇異值分解是線性代數中一種重要的矩陣分解,是矩陣分析中正規矩陣酉對角化的推廣。只需要線性代數知識就可以理解SVD演算法,簡單實用,分解出的矩陣解釋性不強,但不影響它的使用,因此值得研究。

SVD在信號處理、統計學、機器學習等領域有重要應用,比如:LSA(隱性語義分析)、推薦系統、圖像處理、自然語言處理和特徵壓縮(或稱數據降維)等。SVD奇異值分解則是譜分析理論在任意矩陣上的推廣。

SVD演算法概念:


SVD奇異值分解(Singular Value Decomposition)是很多機器學習演算法的基石。在某些方面與對稱矩陣或Hermite矩陣基於特徵向量的對角化類似。然而這兩種矩陣分解儘管有其相關性,但還是有明顯的不同。譜分析的基礎是對稱陣特徵向量的分解,而奇異值分解則是譜分析理論在任意矩陣上的推廣。

SVD奇異值分解在矩陣理論的重要性不言而喻,它在最優化問題、特徵值問題、最小乘方問題、廣義逆矩陣、統計學、圖像處理和自然語言處理等方面都有十分重要的應用。

SVD演算法本質:

SVD演算法本質是:將一個比較複雜的矩陣用更小更簡單的3個子矩陣的相乘來表示,這3個小矩陣描述了大矩陣重要的特性。

SVD演算法描述:

假設矩陣M是一個m×n階矩陣,其中的元素全部屬於域 K,也就是實數域或複數域。存在這樣一個分解使得:

其中U是m×m階酉矩陣;Σ是半正定m×n階對角矩陣;V*是V的共軛轉置,是n×n階酉矩陣。稱這樣的分解叫做矩陣M的奇異值分解。Σ對角線上的元素Σi,其中Σi即為M的奇異值。

註:若矩陣V滿足:VV* = V*V=En(n階單位矩陣),則V為酉矩陣。即酉矩陣的共軛轉置和它的逆矩陣相等。

常見做法是為了奇異值由大而小排列。如此Σ便能由M唯一確定了。

在矩陣M的奇異值分解中,U的列(columns)組成一套對M的正交"輸入"或"分析"的基向量。這些向量是MM*的特徵向量。V的列(columns)組成一套對M的正交"輸出"的基向量。這些向量是M*M的特徵向量。Σ對角線上的元素是奇異值,可視為是在輸入與輸出間進行的標量的"膨脹控制"。這些是M*M及MM*的奇異值,並與U和V的列向量相對應。

對於任意的奇異值分解,矩陣Σ的對角線上的元素等於M的奇異值。U和V的列分別是奇異值中的左、右奇異向量。

如果一個奇異值中可以找到兩個左(或右)奇異向量是線性相關的,則稱為退化。退化的奇異值具有不唯一的奇異向量。如果M 具有退化的奇異值,則它的奇異值分解是不唯一的。

非退化的奇異值具有唯一的左、右奇異向量。因此,如果M的所有奇異值都是非退化且非零,則它的奇異值分解是唯一的。

奇異值往往隱含著矩陣M中潛在的重要信息,重要性和奇異值大小正相關,每一個矩陣可以表示成一系列的秩為1的特殊矩陣之和,而奇異值則是衡量這些矩陣的權重

SVD幾何意義:

根據公式M=UΣV* 。

因為U 和V 向量都是單位化的向量, U的列向量u1,...,um組成了K空間的一組標準正交基。同樣,V的列向量v1,...,vn也組成了K空間的一組標準正交基。

幾何意義是:將一個向量從V這組正交基向量的空間旋轉到U這組正交基向量的空間,並且按照Σ在各個方向做了縮放,縮放的倍數就是奇異值。

SVD演算法優點:

1)演算法穩定;

2)適用面廣;

3)簡化數據,減小處理量;

4)去除雜訊;

5)演算法效果好。

SVD演算法缺點:

1)計算代價很大,時間複雜度是3次方的,空間複雜度是2次方的;

2)不能共享內存;

3)很難並行計算;

4)數據轉換可能難以理解。

SVD演算法應用:

SVD演算法的應用範圍廣泛。SVD奇異值分解演算法經常用在信號處理、統計學模式識別、圖像處理和機器學習等領域,比如LSA(隱性語義分析)、推薦系統、特徵壓縮、數據降維等。

1)SVD演算法被用來計算矩陣的偽逆從而可以求解線性最小平方、最小二乘法問題。

2)利用SVD演算法中的平行奇異值把頻率選擇性衰落信道進行分解。

3)SVD在統計中的主要應用為PCA主成分分析,用來找出大量數據中所隱含的「模式」,它可以用在模式識別,數據壓縮等方面。

4)SVD演算法可以實現降維,把數據集映射到低維空間中。數據集的特徵值在SVD中用奇異值來表徵,按照重要性排列,降維過程就是捨棄不重要的特徵向量的過程,而剩下的特徵向量組成的空間即為降維後的空間。

5)在圖像處理領域,SVD演算法不僅可以應用在數據壓縮上,還可以對圖像進行降噪處理。

結語:

SVD演算法是一個降維演算法,是很多機器學習領域演算法的基礎。SVD演算法是線性代數中一種重要的矩陣分解,是矩陣分析中正規矩陣酉對角化的推廣。SVD演算法是一種非常實用的學習演算法,應用範圍很廣,在信號處理、統計學、機器學習等領域有重要應用。簡單實用,分解出的矩陣解釋性不強,但不影響它的使用,因此值得研究。

------以往文章推薦-----


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優化生活 的精彩文章:

人工智慧–遺傳演算法
人工智慧–受限玻爾茲曼機

TAG:科技優化生活 |