機器學習筆記(五)--SVD奇異值分解

SVD奇異值分解可運用在降維算法PCA中進行特徵分解,在機器學習等領域有廣泛應用,所以很有必要將它搞清楚。

優秀文章:https://www.cnblogs.com/pinard/p/6251584.html

一、特徵值與特徵向量

                                                                                  $Ax=\lambda x$

            其中,A是一個n×n的方陣,x爲n維向量,\lambda是一個實數。那麼,x爲A的一個特徵向量,\lambda爲A的一個特徵值。這樣我們可以將矩陣A特徵分解,如果我們求出了A的k個特徵值λ1≤λ2≤...≤λk,和對應的n個特徵向量x1->x2->...->xk。如果這些特徵向量線性無關,那麼矩陣A就可以用下面式子進行特徵分解。

                                                                                        A = W \Sigma W^{-1}

            其中,W爲{x1,x2,...,xk},即A的k個特徵向量組成的n×k的矩陣,\Sigma爲以k個特徵值做主對角線的對角矩陣。一般的,我們會把這k個特徵向量標準化(二範數爲1),那麼就會有W^{-1} = W^{T},則會有下式。

                                                                                       A = W \Sigma W^{T}

            列向量的線性組合結果是權重向量的延伸。特徵值與特徵矩陣的計算如下。

                                                         \lambda x - Ax = 0 \rightarrow (\lambda I - A)x = 0\rightarrow |\lambda I-A|=0

要進行特徵分解,矩陣A必須爲方陣,若A不是方陣時,我們使用SVD。

二、SVD的定義

                                                                                       A = U \Sigma V^{T}

            其中,A是一個M*N的矩陣,U是一個M×M的矩陣,\Sigma同上是一個M*N對角矩陣,主對角線由奇異值組成的奇異矩陣,V同上是一個N*N的酉矩陣,有V^{-1}=V^{T},且有U^{-1}=U^{T},分別爲左右奇異矩陣。

三、SVD的應用

                         

              如圖所示,奇異值與特徵值類似,在奇異矩陣中,奇異值也是從大到小排列的,我們可以使用最大的k個奇異值和左右2k個奇異向量來表示原矩陣A。

                                                             A_{m \times n} = U_{m \times m}\Sigma_{m \times n} V^T_{n \times n} \approx U_{m \times k}\Sigma_{k \times k} V^T_{k \times n}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章