Singular Value Decomposition (SVD)
Matrix Transpose
Matrix Multiplication
Matrix Inverse If, A× B = I ,identity matrix Then, B= A -1 Identity matrix : 1 0 ... 0 0 0 1 ... 0 0 . . . . . . ... . 0 0 ...1 0 0 0 ... 0 1
X=
T UΣV
U and V are Orthonormal matrices
rxr diagonal matrix with r non-zero diagonal elements
1 0 0 0
0 0 0 4
X 0 3 0 0
0 0 0 0
2 0 0 0 = 0 0 0 1
U 0 1 0 0
∑ 1 0 0 0
0 4 0 0 0 0 0 0 3 0 0 0 x x -1 0 0 2.24 0 0.45 0 0 0 0 0 0
OPTIONAL R Code > M=matrix(c(1,0,0,0,0,0,0,4,0,3,0,0,0,0,0,0,2,0,0,0),nrow=4,ncol=5) > X=svd(M) > X$u > X$d > X$v > X$u%*%diag(X$d)%*%t(X$v)
T
V 1 0 0 1 0 0 0 0
0 0 0 0 0 0.89 1 0
Applications of SVD in image processing – closest rank-k approximation for a matrix X k
X
k
= ∑ u i Σi vi
T
i =1
– Each term in the summation expression above is called principal image
Original matrix (X) 1 0 0 0 2 0 0 3 0 0 0 0 0 0 0 0 4 0 0 0
1 0 0 0
0 0 0 4
X 0 3 0 0
k=1 0x 4x 0 0 1
0 0 0 0
2 0 0 0 = 0 0 0 1
Original size 4*5=20 bytes
U 0 1 0 0
T
∑ 1 0 0 0
0 4 0 0 0 0 0 0 3 0 0 0 x x -1 0 0 2.24 0 0.45 0 0 0 0 0 0
0 1 0 0 0=
0 0 0 0
0 0 0 4
0 0 0 0
0 0 0 0
0 0 0 0
V 1 0 0 1 0 0 0 0
0 0 0 0 0 0.89 1 0
Compressed size 4*1+1+1*5=10 bytes
k=2 0 0x 0 1 0 0 1 0 k=3 00 01 00 10
1x 0 0 0
k=4 00 01 00 10
1 0 0 0
40x 0 1 0 0 0= 0 0 03 0 0 1 0 0 0 0 0 0 0 4
40 0x 03 0 0 0 2.24
0 0 x -1 0
4 0 0 0
0 0 3 0 0 2.24 0 0
0 1 0 0 0.45 0
0 0 x 0 0
0 0 0.45 0
0 1 0
0 3 0 0
0 0= 0 0 0 0.89
1 0 0 0
0 1 0 0
0 0= 0 0 0 0.89 1 0
0 0 0 0
1 0 0 0
0 0 0 0
0 0 0 4
Compressed size 4*2+2+2*5=20 bytes
0 3 0 0
1 0 0 0
0 0 0 0
0 0 0 4
2 0 0 0
0 3 0 0
Compressed size 4*3+3+3*5=30 bytes
0 0 0 0
2 0 0 0
Compressed size 4*4+4+4*5=40 bytes
The image compression example in http://journal.batard.info/post/2009/04/08/svdfun-profit
• Original size = 384*384 bytes = 147,456 bytes • k=1: 384*1+1+1*384=769 bytes • k=10: 384*10+10+10*384=7,690 bytes • k=20: 384*20+20+20*384=15,380 bytes • k=50: 384*50+50+50*384=38,450 bytes • k=100: 384*100+100+100*384=76,900 bytes • k=200: 384*200+200+200*384=153,800 bytes