AI數學基礎之:奇異值和奇異值分解

簡介

奇異值是矩陣中的一個非常重要的概念,一般是通過奇異值分解的方法來得到的,奇異值分解是線性代數和矩陣論中一種重要的矩陣分解法,在統計學和信號處理中非常的重要。

在了解奇異值之前,讓我們先來看看特徵值的概念。

相似矩陣

在線性代數中,相似矩陣是指存在相似關係的矩陣。設A,B為n階矩陣,如果有n階可逆矩陣P存在,使得P-1AP=B,則稱矩陣A與B相似,記為A~B。

對角矩陣

對角矩陣(diagonal matrix)是一個主對角線之外的元素皆為0的矩陣,常寫為diag(a1,a2,…,an) 。對角矩陣可以認為是矩陣中最簡單的一種,值得一提的是:對角線上的元素可以為 0 或其他值,對角線上元素相等的對角矩陣稱為數量矩陣;對角線上元素全為1的對角矩陣稱為單位矩陣。對角矩陣的運算包括和、差運算、數乘運算、同階對角陣的乘積運算,且結果仍為對角陣。

可對角化矩陣

可對角化矩陣是線性代數和矩陣論中重要的一類矩陣。如果一個方塊矩陣 A 相似於對角矩陣,也就是說,如果存在一個可逆矩陣 P 使得 P −1AP 是對角矩陣,則它就被稱為可對角化的。

特徵值

設A為n階矩陣,若存在常數λ及n維非零向量x,使得Ax=λx,則稱λ是矩陣A的特徵值,x是A屬於特徵值λ的特徵向量。

一個矩陣的一組特徵向量是一組正交向量。

即特徵向量被施以線性變換 A 只會使向量伸長或縮短而其方向不被改變。

一個線性變換通常可以由其特徵值和特徵向量完全描述。特徵空間是相同特徵值的特徵向量的集合。

特徵分解

特徵分解(Eigendecomposition),又稱譜分解(Spectral decomposition)是將矩陣分解為由其特徵值和特徵向量表示的矩陣之積的方法。需要注意只有對可對角化矩陣才可以施以特徵分解。

A 是一個 N×N 的方陣,且有 N 個線性無關的特徵向量 qi(i=1,…,N)。這樣, A 可以被分解為: A= QΛQ-1

其中 Q 是N×N方陣,且其第 i列為 A 的特徵向量 。如果A的所有特徵向量用x1,x2 … xm來表示的話,那麼Q可以表示為:\(\left[x_1,x_2,…,x_m\right]\), 其中x是n維非零向量。

Λ 是對角矩陣,其對角線上的元素為對應的特徵值,也即Λiii。 也就是\(\left[\begin{matrix}λ_1 … 0\\… … …\\0 … λ_m \end{matrix}\right]\)

這裡需要注意只有可對角化矩陣才可以作特徵分解。比如 \(\left[\begin{matrix}11\\01 \end{matrix}\right]\)不能被對角化,也就不能特徵分解。

因為 A= QΛQ-1 ,可以看做A被分解為三個矩陣,也就是三個映射。

假如現在有一個向量x,我們可以得出下面的結論:

\(Ax=QΛQ^{-1}x\)

Q是正交矩陣,正交陣的逆矩陣等於其轉置,所以\(Q^{-1}\) = \(Q^T\). \(Q^T\)對x的變換是正交變換,它將x用新的坐標系來表示,這個坐標系就是A的所有正交的特徵向量構成的坐標系。比如將x用A的所有特徵向量表示為:

\(x=a_1x_1+a_2x_2+…+a_mx_m\)

則通過第一個變換就可以把x表示為\([a_1 a_2 … a_m]^T\)

\(QΛQ^{-1}x=QΛ\left[\begin{matrix}x_1^T\\x_2^T\\…\\…\\x_m^T \end{matrix}\right](a_1x_1+a_2x_2+a_3x_3+…+a_mx_m)=QΛ\left[\begin{matrix}a_1\\a_2\\…\\a_m \end{matrix}\right]\)

然後,在新的坐標系表示下,由中間那個對角矩陣對新的向量坐標換,其結果就是將向量往各個軸方向拉伸或壓縮:

\(QΛ\left[\begin{matrix}a_1\\a_2\\…\\a_m \end{matrix}\right]=Q\left[\begin{matrix}λ_1 … 0\\… … …\\0 … λ_m \end{matrix}\right]\left[\begin{matrix}a_1\\a_2\\…\\a_m \end{matrix}\right]=Q\left[\begin{matrix}λ_1a_1\\λ_2a_2\\…\\λ_ma_m \end{matrix}\right]\)

​ 如果A不是滿秩的話,那麼就是說對角陣的對角線上元素存在0,這時候就會導致維度退化,這樣就會使映射後的向量落入m維空間的子空間中。

最後一個變換就是Q對拉伸或壓縮後的向量做變換,由於Q和\(Q^{-1}\)是互為逆矩陣,所以Q變換是\(Q^{-1}\)變換的逆變換。

特徵值的幾何意義

一個矩陣乘以一個列向量相當於矩陣的列向量的線性組合。一個行向量乘以矩陣,相當於矩陣的行向量的線性組合。

所以向量乘以矩陣之後,相當於將這個向量進行了幾何變換。

之前講了 Λ 是對角矩陣,其對角線上的元素為對應的特徵值,也即Λiii。 也就是\(\left[\begin{matrix}λ_1 … 0\\… … …\\0 … λ_m \end{matrix}\right]\)

這些特徵值表示的是對向量做線性變換時候,各個變換方向的變換幅度。

奇異值 Singular value

假如A是m * n階矩陣,q=min(m,n),A*A的q個非負特徵值的算術平方根叫作A的奇異值。

奇異值分解SVD

特徵值分解可以方便的提取矩陣的特徵,但是前提是這個矩陣是一個方陣。如果是非方陣的情況下,就需要用到奇異值分解了。先看下奇異值分解的定義:

\(A=UΣV^T\)

其中A是目標要分解的m * n的矩陣,U是一個 n * n的方陣,Σ 是一個n * m 的矩陣,其非對角線上的元素都是0。\(V^T\)是V的轉置,也是一個n * n的矩陣。

奇異值跟特徵值類似,在矩陣Σ中也是從大到小排列,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就佔了全部的奇異值之和的99%以上了。也就是說,我們也可以用前r大的奇異值來近似描述矩陣。r是一個遠小於m、n的數,這樣就可以進行壓縮矩陣。

通過奇異值分解,我們可以通過更加少量的數據來近似替代原矩陣。

本文已收錄於 www.flydean.com

最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程序那些事」,懂技術,更懂你!