總結有乙個 m×n
m \times n
m×n 的矩陣 a
aa ,可以分解成如下形式
a =u
σvta = u \sigma v^t
a=uσvt
其中 u∈r
m×mu\in r^
u∈rm×m
和 v∈rn
×nv\in r^
v∈rn×n
均為單位正交陣,即有 uut
=iuu^t=i
uut=
i 和 vvt
=ivv^t=i
vvt=
i ,u稱為左奇異矩陣,v稱為右奇異矩陣, σ∈r
m×n\sigma \in r^
σ∈rm×n
僅在主對角線上有值,稱為奇異值。
可以用下面的表示奇異值分解的過程,圖中方塊的顏色表示值的大小,顏色越淺,值越大。對於奇異值矩陣 σ
\sigma
σ ,只有其主對角線有奇異值,其餘均為0。
#注:來自網路
import numpy as np
a = np.array([[
1,2,
3],[
4,5,
6]])
print
(a.shape)
print
(a)u,sigma,vt = np.linalg.svd(a)
print
(u)print
(sigma)
print
(vt)
的壓縮與重構
分解之後得到200個奇異值,從svd函式中得到的奇異值sigma的值是從大到小排列的,畫出sigma的值的影象如下:
# 取前30個奇異值對影象重構
nums =
30img_re1 =(u
[:,0
:nums]).
dot(np.
diag
(sigma[
0:nums]))
.dot(vt
[0:nums,:]
)print
(img_re1.shape)
img_re1 = img_re1.
reshape
(200
,200,3
)
# 取前100個奇異值對影象重構
奇異值可以被看作成乙個矩陣的代表值,或者說,奇異值能夠代表這個矩陣的資訊。當奇異值越大時,它代表的資訊越多。因此,我們取前面若干個最大的奇異值,就可以基本上還原出資料本身。
從前面的曲線圖可以看出,奇異值的大小下降是非常快的,因此可以只取前面幾個奇異值,便可基本表達出原矩陣的資訊。
奇異值分解
奇異值分解 singular value decomposition 是線性代數中一種重要的 矩陣分解,是矩陣分析中正規矩陣酉對角化的推廣。在訊號處理 統計學等領域有重要應用。1基本介紹 2理論描述 3幾何意義 4範數 5應用 求偽逆 平行奇異值模型 矩陣近似值 奇異值分解在某些方面與 對稱矩陣或 ...
奇異值分解
從幾何 的角度上來看奇異值分解 上圖表明任意的矩陣 a 是可以分解成三個矩陣相乘的形式。v表示了原始域的標準正交基,u表示經過a 變換後的co domain的標準正交基,表示了v 中的向量與u中相對應向量之間的關係。我們仔細觀察上圖發現,線性變換a可以分解為旋轉 縮放 旋轉這三種基本線性變換。接下來...
奇異值分解
本文 知乎 我們先舉乙個例子,假設現在我們拿到這樣一組資料,裡面有兩個屬性,既有以 千公尺 每小時 度量的最大速度特徵,也有 英里 小時 的最大速度特徵,顯然我們一眼就看出這兩個特徵有乙個多餘。怎麼直觀的判斷資料是否冗餘?上圖從左往右,我們可以發現資料之間的關聯性越來越強,也就是說兩組資料越來越 相...