SVD分解及線性最小二乘問題


這部分矩陣運算的知識是三維重建的數據基礎。

矩陣分解

求解線性方程組:Ax=b,其解可以表示為x=A$\backslash$b.

為了提高運算速度,節約存儲空間,通常會采用矩陣分解的方案,常見的矩陣分解有LU分解、QR分解、Cholesky分解、Schur分解、奇異分解等。這里簡單介紹幾種。

LU分解:如果方陣A是非奇異的,LU分解總可進行。一個矩陣可以表示為一個交換下三角矩陣和一個上三角矩陣的乘機。更整潔的形式是:一個矩陣可以表示為一個上三角矩陣和一個下三角矩陣以及一個置換矩陣的形式,即:PX=LU

從而方程的解可以表示為x=U$\backslash$(L$\backslash$Pb)

QR分解:矩陣可以分解為一個正交矩陣Q和一個上三角矩陣R的乘機形式。類似於LU,通常有一個正交矩陣Q,一個上三角矩陣R及一個置換矩陣E,滿足:XE=QR,方程的解為:x=E(R$\backslash$(Q$\backslash$b))

Cholesky分解:如果矩陣X是對稱正定的,X可以分解為一個下三角矩陣和上三角矩陣的乘機,且下三角和上三角互為轉置。X=R^{T}R

如果任何非零向量z,都有z^{T}Xz>0,則X為正定矩陣。蟲咬條件是X的特征值全為正。

特征值分解EVD:任意n階方陣X可以分解為XV=VD,其中D為特征值對角陣,V是特征向量矩陣。

奇異值分解SVD:任意一個m*n維的矩陣X可以分解為X=USV^{T},其中UV為酉矩陣,S是m*n維的對角矩陣,其對角線元素為X的從大到小排序的非負奇異值。SVD分解十分強大且適用,因為任意一個矩陣都可以實現SVD分解,相比與SVD分解,特征值分解只能應用於方陣。

SVD的定義

特征值分解中,任意方陣可以有XV=VD。對於任意m*n的矩陣A,通過A^{T}A可以得到一個方陣,從而得到:(A^{T}A)V=VD

A的SVD分解是:A=USV^{T}

其中:U是一個m*m的正交陣,S是一個m*n的對角陣,對角元素為A的奇異值,V是一個n*n的正交陣。U的m個列向量成為A的左奇異向量,V的n個列向量稱為A的右奇異向量。S完全由A決定和UV無關。

捕獲

AA^{T}實對稱陣的特征值為\lambda,則S中的奇異值為:\sigma=\sqrt{\lambda},V是A^{T}A的特征向量。

在矩陣Σ中也是從大到小排列,而且σ的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上了。也就是說,我們也可以用前r大的奇異值來近似描述矩陣,這里定義一下部分奇異值分解:

image

三個矩陣相乘的結果將會是一個接近於A的矩陣,在這兒,r越接近於n,則相乘的結果越接近於A。

線性最小二乘問題

image

m個方程求解n個未知數,有三種情況:

  1. m=n且A為非奇異,則有唯一解,x=A^{-1}b
  2. m>n,約束的個數大於未知數的個數,稱為超定問題(overdetermined)
  3. m<n,負定/欠定問題(underdetermined)

通常我們遇到的都是超定問題,此時Ax=b的解是不存在的,從而轉向解最小二乘問題:J(x)=||Ax-b||

J(x)為凸函數,一階導數為0,得到:A^{T}Ax-A^{T}b=0,稱之為正規方程

一般解:x=(A^{T}A)^{-1}A^{T}b

奇異值分解與線性最小二乘問題

image 列滿秩,image 是A的奇異值分解。

image 為U的前n列矩陣,即image ,則:

image

等號當且僅當image 時成立,所以:

image

這就是線性最小二乘問題的解。

特殊情況:齊次線性方程Ax=0 A的行數大於列數

min||Ax||\\
st.\,||x||=1

此時,最小二乘解為A^{T}A最小特征值對應的特征向量。

感性認識:如果x是A^{T}A的特征向量,則目標函數:||Ax||=x^{T}(A^{T}A)x=\lambda^{2}||x||

求解方案:

  1. eig(A^{T}A)=[V,D],V為特征向量陣,找最小特征值對應的V中的特征向量。
  2. svd(A)=[U,S,V],前面我們知道U是AA^{T}的特征值,V是A^{T}A的特征值,找S中最小奇異值對應的V的右奇異向量即可。


免責聲明!

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



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