矩阵分解方法 概述
目錄
- 簡述矩陣分解
- 定義
- 作用
- 三角分解(LU分解、LR分解)
- 必要條件
- 定義
- 步驟
- 作用
- QR分解
- 必要條件
- 定義
- 步驟
- 作用
- 特征值分解(譜分解,EVD分解)
- 必要條件
- 定義
- 步驟
- 作用
- 奇異值分解(SVD分解)
- 必要條件
- 定義
- 步驟
- 作用
簡述矩陣分解
定義
把一個矩陣AAA表示為多個矩陣連乘的形式。
作用
- 用更少的內存消耗,存儲一樣多信息。eg:稀疏矩陣分解為多個稠密矩陣。
- 提高計算速度。eg:小矩陣比大矩陣更容易求逆。
- 用于矩陣補全。eg:推薦系統中,填補評分矩陣中的空缺項;圖像復原。
- 分解后的矩陣有一些實際的意義。
三角分解(LU分解、LR分解)
這部分可以參考我之前的博客,鏈接
必要條件
- AAA可逆,即:滿秩矩陣
- AAA可以被前面的r(A)r(A)r(A)行線性表示
定義
A=LU=LRA=LU=LRA=LU=LR
- LU分解中,LLL是下三角矩陣
- LR分解中,LLL是單位下三角矩陣(單位的意思是“對角線全為1”)
- UUU或RRR是上三角矩陣
- 三角分解本質上是高斯消元法的一種表達形式
步驟
通過對AAA不斷的左乘初等矩陣,對AAA進行初等變換,使其變為上三角矩陣,那么得到的上三角矩陣即為UUU,這些初等矩陣的逆即為LLL。
eg:E3E2E1A=U=>A=(E3E2E1)?1UE_3E_2E_1A=U => A=(E_3E_2E_1)^{-1}UE3?E2?E1?A=U=>A=(E3?E2?E1?)?1U
作用
- 求AAA的行列式∣A∣|A|∣A∣時,轉換為求解∣L∣∣U∣|L||U|∣L∣∣U∣,三角矩陣求解行列式只需計算對角元素。
- 求線性方程組Ax=bAx=bAx=b時,可將其轉換為求解Ly=bLy=bLy=b和Ux=yUx=yUx=y的兩個同規模問題,由于LLL和UUU都是三角矩陣,運算量小。
- 求AAA的逆矩陣時,A?1=U?1L?1A^{-1}=U^{-1}L^{-1}A?1=U?1L?1,三角矩陣的逆可以通過矩陣分塊的方法計算。
QR分解
這部分可以參考我之前的博客,鏈接
必要條件
- AAA的所有列向量線性無關,即:列滿秩,即:可逆。
定義
A=QRA=QRA=QR
- QQQ是AAA的列向量的施密特標準正交化(正規正交矩陣)
- RRR是AAA的列向量在標準正交基下的坐標表(上三角矩陣)
步驟
作用
- 求解矩陣AAA的全部特征值,此方法被稱為QR方法(前提:不存在絕對值相等的特征值),下面進行詳細描述。
當AAA為對稱矩陣時:
①. 通過相似變換,將AAA變換為三對角矩陣A0A_0A0?(除主對角線、主對角線挨著的兩條線,其他元素為零);
②. 對A0A_0A0?進行QR分解,得到A0=Q0R0A_0=Q_0R_0A0?=Q0?R0?,令A1=R0Q0A_1=R_0Q_0A1?=R0?Q0?;
③. 對A1A_1A1?進行QR分解,得到A1=Q1R1A_1=Q_1R_1A1?=Q1?R1?,令A2=R1Q1A_2=R_1Q_1A2?=R1?Q1?;
④. 重復上述過程,得到AkA_kAk?,當AkA_kAk?趨于對角矩陣時,其特征值即為A0A_0A0?的特征值(因為Ak+1=RkQk=Qk?1QkRkQk=Qk?1AkQkA_{k+1}=R_k Q_k=Q_k^{-1} Q_k R_k Q_k = Q_k^{-1} A_k Q_kAk+1?=Rk?Qk?=Qk?1?Qk?Rk?Qk?=Qk?1?Ak?Qk?)。
當AAA不是對稱矩陣時:
①. 通過HouseHolder變換,將AAA變換為HessenbergA0A_0A0?(上三角矩陣,左下零三角中緊貼主對角線的那條線上的元素均不為零),Hessenberg矩陣的QR分解一定是另一個Hessenberg矩陣乘以上三角矩陣;
②. 對A0A_0A0?進行QR分解,得到A0=Q0R0A_0=Q_0R_0A0?=Q0?R0?,令A1=R0Q0A_1=R_0Q_0A1?=R0?Q0?;
③. 對A1A_1A1?進行QR分解,得到A1=Q1R1A_1=Q_1R_1A1?=Q1?R1?,令A2=R1Q1A_2=R_1Q_1A2?=R1?Q1?;
④. 重復上述過程,得到AkA_kAk?,當AkA_kAk?趨于上三角矩陣時,其特征值即為A0A_0A0?的特征值。
特征值分解(譜分解,EVD分解)
必要條件
- 方陣
定義
A=QDQ?1A=QDQ^{-1}A=QDQ?1
- 當AAA為nnn階方陣時(一般形式),A=QDQ?1A=QDQ^{-1}A=QDQ?1,QQQ為nnn階方陣,QQQ的列向量qiq_iqi?為特征向量,D=diag{λ1,λ2,...,λn}n×nD=diag \{ \lambda_1, \lambda_2, ... , \lambda_n \}_{n \times n}D=diag{λ1?,λ2?,...,λn?}n×n?,λ1,λ2,...,λn\lambda_1, \lambda_2, ... , \lambda_nλ1?,λ2?,...,λn?為特征值。
- 當AAA為實對稱矩陣時,A=QDQTA=QDQ^{T}A=QDQT,QQQ為正交陣(QQT=IQQ^T=IQQT=I)。
- 當AAA為復正規矩陣時,A=UDUHA=UDU^{H}A=UDUH,UUU為酉矩陣。
步驟
求AAA的特征值和特征向量即可。
作用
- 求解AAA的逆矩陣,A?1=QDQ?1?1=QD?1Q?1A^{-1}= {QDQ^{-1}}^{-1} =QD^{-1}Q^{-1}A?1=QDQ?1?1=QD?1Q?1,可以看出,只需求D?1D^{-1}D?1即可求得A?1A^{-1}A?1,而DDD是對角矩陣,其逆矩陣只需將對角元素取倒數。
- 圖像壓縮。但是一般現實中,大多數圖片不是方的,所以奇異值分解用的較多。
奇異值分解(SVD分解)
必要條件
- 無限制
定義
A=UDVHA=UDV^HA=UDVH
- AAA為mmm行nnn列
- UUU為mmm階酉矩陣
- VVV為nnn階酉矩陣,VHV^HVH是VVV的共軛轉置
- D=diag{σ1,σ2,...,σr,0,...,0}m×nD=diag \{ \sigma_1, \sigma_2, ... , \sigma_r, 0, ... ,0\}_{m \times n}D=diag{σ1?,σ2?,...,σr?,0,...,0}m×n?,σ1,σ2,...,σr\sigma_1, \sigma_2, ... , \sigma_rσ1?,σ2?,...,σr?為奇異值。
步驟
作用
- 奇異值相當于方陣中的特征值,一般對應于矩陣中的重要信息,奇異值越大,信息的重要性越大。
- 圖像壓縮。假設原圖片為800×600800 \times 600800×600(忽略顏色通道)的矩陣AAA,將其進行SVD分解,得到UUU、DDD和VVV三個矩陣,我們可以很容易的通過分解后的三個矩陣還原圖片。但是,當我們沒有足夠的存儲空間時,我們可以僅保留奇異值較大的若干項(保留的奇異值越多,圖片的還原程度越高),來還原一個近似的圖像。
- 圖像去噪。當圖像中存在噪聲時,我們可以假設較小的奇異值是由噪聲引起的,將這些奇異值變為零,即可去除噪聲。
- 主成分分析。
- 推薦系統。
- 語義索引LSI。
總結
- 上一篇: 图像处理中的秩、低秩、稀疏
- 下一篇: TextVQA论文汇总