偽逆矩陣與奇異值分解(SVD)


偽逆矩陣與奇異值分解(SVD)

偽逆矩陣

矩陣的逆

定義:設\(A\)\(n\)階方陣,如果存在\(n\)階方陣\(B\),使得\(AB=BA=E\),則稱矩陣\(A\)為可逆矩陣,矩陣\(B\)成為\(A\)的逆矩陣,記作\(A^{-1}=B\)

注意:如果\(n\)階矩陣\(A\)的行列式\(\left | A \right |=0\),則稱\(A\)為奇異矩陣,奇異矩陣沒有逆矩陣。

矩陣逆的求法:

  1. 伴隨矩陣。
  2. 初等行列式變換。

偽逆矩陣

通過上面的定義可以知道,奇異矩陣和非方陣是沒有逆矩陣的,但是他們可以有偽逆矩陣。

定義:對於一個矩陣A,如果存在一個矩陣B滿足下面四個式子,則稱B為廣義逆。

  • \(ABA=A\)
  • \(BAB=B\)
  • \((AB)^{T}=AB\)
  • \((BA)^{T}=BA\)

偽逆表示:

  • 如果矩陣\(C\)的逆不為0,則\(C\)可以滿秩分解\(C=AB\),那么\(C^+=A^T(AA^T)^{-1}(B^TB)^{-1}B^T\)
  • 僅當\(m\ge n\)時,列滿秩,矩陣\(A_{mn}\)有左逆矩陣,\(A^L=(A^TA)^{-1}A^T\)
  • \(n\ge m\)時,行滿秩,矩陣\(A_{mn}\)有右逆矩陣,\(A^R=A^T(A^TA)^{-1}\)

(1)偽逆矩陣

代碼

最小二乘法中,\(Ax=b\),最小二乘法解 \(\widehat{x} =A^+b\)

import numpy as np
pinv=np.linalg.pinv(A) #求矩陣的偽逆

奇異值分解(SVD)

方陣特征值

定義:設\(A\)\(n\)階矩陣,如果數\(\lambda\)\(n\)維非零列向量\(X\)使得關系式

\[AX=\lambda X \tag{1} \]

成立,那么數\(\lambda\)就是方陣\(A\)的特征值。

由相似矩陣的定義可以知道,

\[PAP^{-1}=\sum \tag{2} \]

\[\Rightarrow A=P\sum P^{-1} \tag{3} \]

其中\(\sum\)為對角矩陣,並且特征值都在對角線上。

當P為正交矩陣的時候,即\(PP^T=E\),滿足:

\[A=P\sum P^T \tag{4} \]

注意:以上就是特征分解表達式,但是A必須是方陣。

當A不是方陣的時候,就需要使用奇異值分解。

奇異值分解

\(SVD\)也是對矩陣進行分解,但是和特征分解不同,\(SVD\)並不要求要分解的矩陣為方陣。假設我們的矩陣\(A\)是一個\(m×n\)的矩陣,那么我們定義矩陣\(A\)\(SVD\)為:

\[A=U\sum V^T \tag{5} \]

其中,\(U\)\(m×m\)的方陣,\(\sum\)\(m×n\)的矩陣,\(V\)\(n×n\)的方陣,並且\(U\)\(V\)是正交矩陣。

\(A^TA\)是一個\(n×n\)的方陣,對它進行特征值分解,滿足:

\[(A^TA)V=\lambda V \tag{6} \]

\(A^TA\)的n個特征值對應\(V\)\(n\)個特征向量,將所有特征向量合並成一個\(n×n\)的方陣V。

同理,\(AA^T\)是一個\(m×m\)的方陣,對它進行特征值分解,滿足:

\[(AA^T)U=\lambda U \tag{7} \]

\(AA^T\)的m個特征值對應U的m個特征向量,將所有特征向量合並成一個m*m的方陣U。

證明:

\[A=U\sum V^T,A^T=V\sum U^T \tag{8} \]

\[A^TA=V\sum U^TU\sum V^T=V {\textstyle \sum_{}^{2}} V^T \tag{9} \]

其中,\(UU^T=E,\sum={\textstyle \sum_{}^{T}}\),由此得出上面的對應關系,並且還可以得出來特征值矩陣等於奇異值矩陣的平方,即:

\[\sigma_{i} = \sqrt{\lambda _{i}} \tag{10} \]

代碼

import numpy as np
U,s,V=np.linalg.svd(A)

(2)奇異值分解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM