線性代數是機器學習領域的基礎,其中一個最重要的概念是奇異值分解(SVD),本文儘可能簡潔的介紹SVD(奇異值分解)演算法的基礎理解,以及它在現實世界中的應用。
SVD是最廣泛使用的無監督學習演算法之一,它在許多推薦系統和降維繫統中居於核心位置,這些系統是全球公司如谷歌、Netflix、Facebook、YouTube等的核心技術。
簡單來說,SVD是將一個任意矩陣分解為三個矩陣。所以如果我們有一個矩陣A,那麼它的SVD可以表示為:
A是矩陣,U是的正交矩陣,是的非負對角矩陣,是的正交矩陣。
U也被稱為左奇異向量,S為奇異值,V為右奇異向量。
帶維度的奇異值分解:
用矩陣表示奇異值分解:
我們通常將具有較大特徵值的向量排列在前,而較小特徵值的向量則排在後面。
特徵值與向量的對應關係:
與特徵值分解相比,奇異值分解可以應用於非方陣。在SVD中,U和 V 對於任何矩陣都是可逆的,並且它們是正交歸一的,這是我們所喜愛的特性。雖然這裡不進行證明,但我們可以告訴你,奇異值位元徵值在數值上更穩定。
為了更好地理解,我們透過一個例子演示SVD。
假設我們有非方陣A:
我們計算矩陣與轉置矩陣的乘積,有:
求解的特徵值和特徵向量:
求解的特徵值和特徵向量:
奇異值是正特徵值的平方根,即5和3。因此非方陣A的SVD分解為:
SVD分解證明
最後一個方程等價於求矩陣的特徵向量,我們只需將所有特徵向量放入一個矩陣中,矩陣S則是包含特徵值的對角矩陣。
SVD的另一種表述
SVD降維
SVD應用
1.影像降維
2.特徵臉
3.降低噪聲
結論
我真的覺得奇異值分解(SVD)被低估了。它是線性代數中一個非常重要的基礎概念,而且它的應用非常酷!相信我,我們看到的只是 SVD 眾多用途中的一小部分。有什麼問題,歡迎討論!
原文連結:這是我見過最通俗易懂的SVD(奇異值分解)演算法介紹