rozkład SVD
rozkład SVD
rozkład SVD
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
10. Rozkład według wartości szczególnych (<strong>SVD</strong>).<br />
KaŜdą macierz rzeczywistą (nie tylko kwadratową) A moŜna przedstawić w postaci <strong>rozkład</strong>u<br />
według wartości szczególnych (albo osobliwych, albo singularnych) (w skrócie piszemy o<br />
<strong>rozkład</strong>zie <strong>SVD</strong> od pierwszych liter angielskich słów singular value decomposition) 1 . Mówi o<br />
tym następujące twierdzenie.<br />
Twierdzenie 10.1.1<br />
Dla kaŜdej macierzy A rzędu r o wymiarach m× n istnieją takie macierze ortogonalne<br />
(unitarne, gdy macierz A jest macierzą zespoloną) U i V (U −1 = U T ; V −1 = V T ) oraz taka<br />
macierz pseudodiagonalna Σ<br />
A = UΣV T , (10.1)<br />
⎡ D 0 ⎤<br />
m× n<br />
⎢ ⎥<br />
gdzie macierz Σ∈<br />
R ma postać Σ =<br />
⎢<br />
− − − −<br />
⎥<br />
. D = diag (σ 1, σ 2, ....., σ r) oznacza<br />
⎢<br />
⎣ 0 0 ⎥<br />
⎦<br />
macierz diagonalną r-tego stopnia (r ≤ l = min (m, n)) o elementach σ 1 ≥ σ 2 ≥ ... ≥ σ r > 0<br />
leŜących na głównej przekątnej, przy czym nieujemne liczby σi, określone jednoznacznie, to<br />
tzw. niezerowe wartości szczególne (osobliwe, singularne) macierzy A. Faktoryzację opisaną<br />
równaniem (10.1) nazywamy w skrócie <strong>rozkład</strong>em <strong>SVD</strong> macierzy. Klatkowe macierze<br />
zerowe mają odpowiednie wymiary w zaleŜności od r, m, n. JeŜeli r = l = n, to odpadają<br />
prawe bloki zerowe (stojące po prawej stronie pionowej kreski macierzy Σ. W przypadku r = l<br />
= m w macierzy Σ nie ma dolnych bloków (znajdujących się poniŜej pionowej kreski).<br />
Macierz U jest wymiaru m m a macierz W ma wymiar n n. Schematycznie taki <strong>rozkład</strong> <strong>SVD</strong><br />
ma jedną z dwóch moŜliwych postaci:<br />
a) m ≥ n<br />
b) m ≤ n<br />
Rys.10.1. Poglądowe przedstawienie faktoryzacji <strong>SVD</strong> macierzy.<br />
1 <strong>SVD</strong> było wielokrotnie odkrywane niezaleŜnie przez wielu badaczy: w 1873 E. Beltrami, 1875 C. Jordan, 1889<br />
J. Sylvester, 1913 L. Autonne, 1936 C. Eckart i G. Young.
gdzie macierz D uzupełniono równieŜ o dodatkowe l − r wartości szczególnych równych zero<br />
σ = = σ = 0<br />
σ symbolizują<br />
σ r+<br />
1 = r+<br />
2 K l , które występują gdy l > r. Wartości szczególne i<br />
kropki na diagonali macierzy Σ.<br />
Definicja 10.1.1.<br />
Symetryczna (hermitowska) macierz A jest dodatnio określona, jeŜeli iloczyn skalarny<br />
wektora x oraz wektora A x jest dodatni, tj. x T A x > 0 dla kaŜdego x ≠ 0.<br />
Uwaga. Iloczyn skalarny dwóch wektorów (kolumnowych), tego samego wymiaru, x i y<br />
moŜna zapisać jako iloczyn macierzy: x T y. Iloczyn skalarny x T x oznaczamy często jako<br />
2 T<br />
x = ( x)<br />
⋅ ( x)<br />
≥ 0<br />
def<br />
poniewaŜ odpowiada on kwadratowi długości wektora albo innymi słowy<br />
2<br />
kwadratowi normy wektora. Indeks u dołu sygnalizuje tylko tzw. normę euklidesową ale<br />
moŜliwe są jeszcze inne definicje normy wektora i macierzy (np. tzw. norma Frobeniusa).<br />
Naszkicujemy teraz dowód twierdzenia 10.1.1.<br />
Dowód.<br />
Macierz A T T<br />
A jest symetryczna. Wartość Ax = ( Ax)<br />
⋅ ( Ax)<br />
≥ 0 . Oznacza to, Ŝe macierz<br />
2<br />
2<br />
A T A jest nieujemnie określona. Zatem na mocy twierdzenia o <strong>rozkład</strong>zie macierzy<br />
rzeczywistej symetrycznej względem wartości własnych (patrz twierdzenie ???) istnieje<br />
rzeczywista macierz ortogonalna V = [v1, v2, v3, …,vn] rozmiaru n n taka, Ŝe spełniona jest<br />
relacja V T (A T A)V = diag(λ1, λ2, …, λn), gdzie λi≥0. MoŜemy przyjąć, Ŝe λ1≥ λ2≥…≥λr>0 oraz<br />
λr+1= λr+2= … = λn = 0, gdzie 0 ≤ r ≤ n. Wiemy, Ŝe kolumny vj macierzy ortogonalnej V<br />
wymiaru n n są wektorami własnymi odpowiadającymi λj, tzn. A T A vj = λjvj . Z tej relacji<br />
T T<br />
wynika, Ŝe λj = v j A Av j = Av j<br />
2<br />
bo w macierzy ortogonalnej wiersze i kolumny są<br />
2<br />
unormowane do jedności. Mamy więc Avj ≠ 0 dla j = 1, 2, …, r oraz Avj = 0 dla j = r + 1,<br />
r + 2, …, n. Przyjmijmy teraz, Ŝe σ j =<br />
Av j<br />
λ j i u j = dla j = 1, 2, …, r. otrzymujemy<br />
σ<br />
wtedy następujące związki (dla i, j = 1, 2, …, r):<br />
j<br />
T T<br />
T<br />
v i A Av j v i v jλ<br />
T<br />
j ⎧0<br />
dla i ≠ j<br />
u i u j = = = ⎨<br />
(10.2)<br />
σ iσ<br />
j σ iσ<br />
j ⎩ 1 dla i = j<br />
Widzimy więc, Ŝe wektory (u1, u2, …, ur) są układem wektorów ortonormalnych. MoŜemy<br />
go uzupełnić do bazy ortonormalnej w przestrzeni R m wektorami: (ur+1, ur+2, …, um). Macierz<br />
U moŜemy utoŜsamić z rzeczywistą macierzą ortogonalną o wymiarze m m<br />
[u1, u2, ur, ur+1, …, um]. Przyjmując, Ŝe σ r + 1<br />
otrzymujemy równości<br />
= σ r+<br />
2 = K = σ l = 0 , gdzie l = min(m, n),<br />
Avj = u jσ j dla j = 1, 2, …, r. (10.3)<br />
Ponadto mamy A T A vj = A T<br />
u =λj vj, czyli<br />
jσ j<br />
A T<br />
u j = j<br />
σ vj dla j = 1, 2, …, r. (10.4)<br />
Zatem z równania (10.3) i tego, Ŝe Avj = 0 dla j > r, wynikają relacje dla i = 1, 2, …, m<br />
oraz j = 1, 2, …, n:
T<br />
T ⎧σ<br />
i dla i = j<br />
( U AV)<br />
ij = ui<br />
Av j = ⎨<br />
.<br />
⎩0<br />
dla i ≠ j<br />
Odpowiada to równaniu<br />
⎡ D 0 ⎤<br />
⎢ ⎥<br />
U AV = Σ =<br />
⎢<br />
− − − −<br />
⎥<br />
⎢<br />
⎣ 0 0 ⎥<br />
⎦<br />
T<br />
,<br />
gdzie D = diag( σ 1, σ 2 , K,<br />
σ l ) . MnoŜąc lewostronnie przez U i prawostronnie przez V T<br />
uzyskujemy Ŝądany <strong>rozkład</strong>. To, Ŝe kolumny macierzy V i U są ortonormalne implikuje<br />
ortogonalność (unitarność w przypadku zespolonej macierzy A) tych macierzy (patrz ???). ■<br />
Wniosek.<br />
1) Kolumny macierzy V to wektory własne macierzy A T A.<br />
2) Kolumny (dokładniej pierwszych r kolumn) macierzy U to wektory własne macierzy AA T .<br />
Dow. Z równania (10.4) wynika, Ŝe AA T<br />
2<br />
u j = Aσ j vj = σ j u j = λ ju<br />
j . Oczywiście moŜna (ale<br />
nie trzeba) tak wybrać pozostałe kolumny U aby one równieŜ były wektorami własnymi<br />
macierzy AA T .<br />
3) Wektory vj i uj są wzajemnie związane relacjami (10.3) i (10.4). Wektory uj i vj nazywamy<br />
wektorami szczególnymi (odpowiednio lewymi i prawymi) macierzy A dla wartości<br />
szczególnej (osobliwej) σ j .<br />
Algorytm znajdowania <strong>SVD</strong> macierzy A ∈ R m×n (lub macierzy zespolonej).<br />
1) Znajdujemy wartości własne λ i macierzy A T A albo AA T (w zaleŜności od tego, która<br />
macierz ma niŜszy stopień).<br />
2) Określamy liczbę r niezerowych wartości własnych macierzy A T A (lub AA T ).<br />
3) Znajdujemy ortonormalne wektory własne macierzy A T A (lub AA T ) odpowiadające<br />
znalezionym wartościom własnym. Tworzymy macierz ortogonalną (unitarną) V ∈ R n×n ,<br />
której kolejne kolumny tworzą wektory własne macierzy A T A uporządkowane w<br />
malejącm porządku odpowiadających im wartości własnych.<br />
4) Tworzymy pseudodiagonalną macierz Σ ∈ R m×n umieszczając na diagonalnej pierwiastki<br />
kwadratowe σ i = λi<br />
z wartości własnych macierzy A T A (lub AA T ) w porządku<br />
malejącym.<br />
5) Znajdujemy pierwszych r wektorów kolumnowych macierzy U ∈ R m×m z równań<br />
1<br />
u j = Avj dla j = 1, 2, …, r.<br />
σ<br />
j<br />
6) Dodajemy do macierzy U pozostałe m − r wektorów wykorzystując proces ortogonalizacji<br />
Grama-Schmidta.<br />
Przykład 1.<br />
⎡1<br />
Znaleźć <strong>rozkład</strong> <strong>SVD</strong> dla macierzy A =<br />
⎢<br />
0<br />
⎢<br />
⎢⎣<br />
1<br />
1⎤<br />
1<br />
⎥<br />
.<br />
⎥<br />
0⎥⎦<br />
T ⎡2<br />
1. Znajdujemy wartości własne A<br />
A = ⎢<br />
⎣1<br />
1⎤<br />
.<br />
2<br />
⎥<br />
⎦
λ 1 = 3, λ2<br />
= 1.<br />
2. Określamy r = 2.<br />
3. Znajdujemy ortonormalne wektory własne macierzy A T A odpowiadające λ λ .<br />
1,<br />
2<br />
⎡ 2 / 2⎤<br />
⎡ 2 / 2⎤<br />
⎡ 2 / 2 2 / 2 ⎤<br />
v 1 = ⎢ ⎥,<br />
v2<br />
= ⎢ ⎥ i macierz V = [ v1,<br />
v 2 ] = ⎢<br />
⎥. ⎣ 2 / 2⎦<br />
⎣−<br />
2 / 2⎦<br />
⎣ 2 / 2 − 2 / 2⎦<br />
4. Tworzymy macierz Σ<br />
Σ<br />
=<br />
⎡<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
0<br />
0<br />
3<br />
0 ⎤<br />
⎥<br />
1 ⎥ ,<br />
0 ⎥<br />
⎦<br />
gdzie na diagonalnej znajdują się pierwiastki wartości własnych w porządku malejącym.<br />
5. Znajdujemy dwie pierwsze kolumny macierzy U ∈ R 3 3 :<br />
u = σ Av<br />
1<br />
−1<br />
1<br />
1<br />
⎡1<br />
3 ⎢<br />
0<br />
3 ⎢<br />
⎢⎣<br />
1<br />
1⎤<br />
1<br />
⎥ ⎡<br />
⎥ ⎢<br />
0⎥<br />
⎣<br />
⎦<br />
⎡<br />
2 / 2⎤<br />
⎢<br />
⎥ = ⎢<br />
2 / 2⎦<br />
⎢<br />
⎣<br />
6 / 3⎤<br />
⎥<br />
6 / 6⎥,<br />
6 / 6⎥<br />
⎦<br />
⎡1<br />
−1<br />
u 2 = σ 2 Av 2 =<br />
⎢<br />
⎢<br />
0<br />
⎢⎣<br />
1<br />
1⎤<br />
1<br />
⎥ ⎡<br />
⎥ ⎢<br />
0 ⎣−<br />
⎥⎦<br />
⎡<br />
2 / 2⎤<br />
=<br />
⎢<br />
⎥<br />
2 / 2 ⎢<br />
−<br />
⎦ ⎢⎣<br />
0 ⎤<br />
2 / 2<br />
⎥<br />
⎥<br />
.<br />
2 / 2 ⎥⎦<br />
6. Wektor musi być prostopadły do v 1 i v 2 :<br />
/<br />
u<br />
T<br />
= e − ( u e ) u<br />
T<br />
− ( u e ) u<br />
T<br />
= [ 1/<br />
3,<br />
−1/<br />
3,<br />
−1/<br />
3]<br />
.<br />
3<br />
1<br />
1<br />
1<br />
=<br />
1<br />
Po unormowaniu tego wektora dostajemy trzeci wektor w macierzy U:<br />
u 3 = [ 3 / 3,<br />
− 3 / 3,<br />
−<br />
T<br />
3 / 3]<br />
.<br />
Stąd<br />
⎡<br />
⎢<br />
U = [ u1<br />
u2<br />
u3]<br />
= ⎢<br />
⎢<br />
⎣<br />
6 / 3<br />
6 / 6<br />
6 / 6 −<br />
0<br />
2 / 2<br />
2 / 2<br />
3 / 3 ⎤<br />
⎥<br />
− 3 / 3⎥<br />
− 3 / 3⎥<br />
⎦<br />
i ostatecznie otrzymujemy <strong>rozkład</strong> (<strong>SVD</strong>) macierzy A według wartości szczególnych<br />
A =<br />
⎡<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
6 / 3<br />
6 / 6<br />
6 / 6<br />
0<br />
2 / 2<br />
2 / 2<br />
Przykład 2.<br />
Znaleźć <strong>SVD</strong> macierzy A = [ 2 1 − 2.<br />
]<br />
−<br />
−<br />
−<br />
2<br />
1<br />
2<br />
3 / 3 ⎤⎡<br />
3<br />
⎥⎢<br />
3 / 3⎥⎢<br />
0<br />
3 / 3⎥⎢<br />
⎦⎣<br />
0<br />
1. Znajdujemy wartości własne macierzy A T A:<br />
0⎤<br />
⎥⎡<br />
1⎥⎢<br />
0⎥⎣<br />
⎦<br />
2 / 2<br />
2 / 2<br />
−<br />
2 / 2 ⎤<br />
⎥.<br />
2 / 2⎦
4 − λ<br />
− 4<br />
2<br />
− 2<br />
− 4<br />
A A − λI)<br />
= 0 ⇔ 2 1−<br />
λ − 2 ⇒ λ = 9,<br />
λ = 0,<br />
λ = 0<br />
T<br />
det( 1 2 3<br />
4 − λ<br />
2. r = 1<br />
3. Znajdujemy wektory własne macierzy A T A.<br />
4. Σ = [ 3 0 0].<br />
λ = 9<br />
λ<br />
1<br />
1,<br />
2<br />
⇒<br />
= 0 ⇒<br />
v<br />
1<br />
⎧v<br />
⎨<br />
⎩v<br />
T<br />
= [ −2<br />
/ 3,<br />
−1/<br />
3,<br />
2/<br />
3]<br />
,<br />
2<br />
3<br />
= [ −<br />
= [ 4<br />
5 / 5,<br />
5 / 15,<br />
2<br />
2<br />
5 / 5,<br />
0]<br />
5 / 15,<br />
T<br />
5<br />
,<br />
5 / 15]<br />
5. Znajdujemy jedyny wektor kolumnowy macierzy U:<br />
1<br />
u 1 = [ 2<br />
3<br />
1 −1][<br />
− 2/<br />
3 −1/<br />
3 2/<br />
3]<br />
= [ −1].<br />
Tak więc mamy <strong>rozkład</strong> <strong>SVD</strong> macierzy A:<br />
Przykład 3.<br />
Znaleźć <strong>SVD</strong> macierzy<br />
A = [ 2 1 − 2]<br />
= UΣ V<br />
T<br />
= [ −1][<br />
3<br />
⎡ 2<br />
⎢17<br />
A =<br />
⎢10<br />
⎢ 3<br />
⎣ 5<br />
2<br />
1<br />
10<br />
9<br />
5<br />
0<br />
−<br />
−<br />
2<br />
17<br />
10<br />
3<br />
5<br />
⎡ − 2 / 3 −1/<br />
3<br />
0]<br />
⎢<br />
⎢<br />
⎢⎣<br />
4<br />
5 / 5<br />
5 / 15<br />
2 5 / 5<br />
2 5 / 15<br />
2 ⎤<br />
1 ⎥<br />
− . 10⎥<br />
9 − ⎥ 5 ⎦<br />
T<br />
.<br />
2 / 3 ⎤<br />
0<br />
⎥<br />
⎥<br />
.<br />
5 5 / 15⎥⎦<br />
Macierz A ma co najwyŜej 3 niezerowe wartości szczególne. Lepiej je wyznaczyć z macierzy<br />
AA T , która jest stopnia trzeciego niŜ z macierzy A T A, która jest stopnia czwartego. Stąd<br />
⎡ 2<br />
T ⎢ 17 AA =<br />
⎢ 10<br />
⎢ 1<br />
⎣−<br />
10<br />
2<br />
1<br />
10<br />
9<br />
5<br />
2<br />
17 − 10<br />
3 − 5<br />
⎡2<br />
2 ⎤⎢<br />
2 1 ⎥<br />
− ⎢<br />
10⎥<br />
⎢2<br />
9 − ⎥ 5 ⎦⎢<br />
⎣2<br />
i równanie charakterystyczne ma postać:<br />
16 − λ<br />
0<br />
0<br />
0<br />
12<br />
5<br />
λ<br />
−<br />
−<br />
36<br />
5<br />
17<br />
10<br />
1<br />
10<br />
17<br />
10<br />
1<br />
10<br />
0<br />
−<br />
−<br />
−<br />
29 12 − =<br />
5<br />
5<br />
− λ<br />
1<br />
10<br />
9<br />
5<br />
3<br />
5<br />
9<br />
5<br />
⎤<br />
⎥ ⎡16<br />
⎥ ⎢<br />
=<br />
⎢<br />
0<br />
⎥<br />
⎥ ⎢<br />
⎣ 0<br />
⎦<br />
0 ,<br />
0<br />
29<br />
5<br />
12<br />
5<br />
0 ⎤<br />
12 ⎥<br />
, 5 ⎥<br />
36⎥<br />
5 ⎦<br />
2<br />
albo ( 16 − λ )( 36 −13λ<br />
+ λ ) = 0 , którego pierwiastkami są λ = , λ = 9,<br />
λ = 4.<br />
Macierz Σ ma postać:<br />
1<br />
16 2 3
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
0<br />
2<br />
0<br />
0<br />
0<br />
0<br />
3<br />
0<br />
0<br />
0<br />
0<br />
4<br />
Σ .<br />
.<br />
]<br />
0<br />
[<br />
4<br />
,<br />
]<br />
0<br />
[<br />
9<br />
,<br />
]<br />
0<br />
0<br />
1<br />
[<br />
16<br />
T<br />
5<br />
3<br />
5<br />
4<br />
3<br />
3<br />
T<br />
5<br />
4<br />
5<br />
3<br />
1<br />
2<br />
T<br />
1<br />
1<br />
−<br />
=<br />
⇒<br />
=<br />
=<br />
⇒<br />
=<br />
=<br />
⇒<br />
=<br />
u<br />
u<br />
u<br />
λ<br />
λ<br />
λ<br />
Konstruujemy macierz U<br />
.<br />
0<br />
0<br />
0<br />
0<br />
1<br />
5<br />
3<br />
5<br />
4<br />
5<br />
4<br />
5<br />
3<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
U<br />
Wektory szczególne, będące kolumnami macierzy V otrzymujemy z równania (10.4)<br />
vj<br />
j<br />
σ<br />
1<br />
= A T<br />
j<br />
u , stąd<br />
.<br />
]<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
[<br />
,<br />
]<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
[<br />
,<br />
]<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
2<br />
/<br />
1<br />
[<br />
T<br />
3<br />
T<br />
2<br />
T<br />
1<br />
−<br />
−<br />
=<br />
−<br />
−<br />
=<br />
=<br />
v<br />
v<br />
v<br />
Wektor 4<br />
v znajdujemy z ortogonalizacji Grama-Schmidta:<br />
.<br />
]<br />
[<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
)<br />
(<br />
)<br />
(<br />
)<br />
(<br />
T<br />
4<br />
1<br />
4<br />
1<br />
4<br />
1<br />
4<br />
1<br />
3<br />
2<br />
1<br />
1<br />
3<br />
1<br />
T<br />
3<br />
2<br />
1<br />
T<br />
2<br />
1<br />
1<br />
T<br />
1<br />
1<br />
/<br />
4<br />
−<br />
−<br />
=<br />
+<br />
−<br />
−<br />
=<br />
−<br />
−<br />
−<br />
= v<br />
v<br />
v<br />
e<br />
v<br />
e<br />
v<br />
v<br />
e<br />
v<br />
v<br />
e<br />
v<br />
e<br />
v<br />
PoniewaŜ 2<br />
1<br />
2<br />
/<br />
4<br />
=<br />
v to wybieramy<br />
T<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
4<br />
]<br />
[ −<br />
−<br />
=<br />
v i<br />
.<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
−<br />
−<br />
=<br />
V<br />
Sprawdźmy wyniki:<br />
.<br />
0<br />
2<br />
0<br />
0<br />
0<br />
0<br />
3<br />
0<br />
0<br />
0<br />
0<br />
4<br />
2<br />
2<br />
2<br />
2<br />
0<br />
0<br />
0<br />
0<br />
1<br />
i<br />
2<br />
2<br />
2<br />
2<br />
0<br />
2<br />
0<br />
0<br />
0<br />
0<br />
3<br />
0<br />
0<br />
0<br />
0<br />
4<br />
0<br />
0<br />
0<br />
0<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
5<br />
9<br />
5<br />
3<br />
5<br />
9<br />
5<br />
3<br />
10<br />
1<br />
10<br />
17<br />
10<br />
1<br />
10<br />
17<br />
5<br />
3<br />
5<br />
4<br />
5<br />
4<br />
5<br />
3<br />
T<br />
5<br />
9<br />
5<br />
3<br />
5<br />
9<br />
5<br />
3<br />
10<br />
1<br />
10<br />
17<br />
10<br />
1<br />
10<br />
17<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
5<br />
3<br />
5<br />
4<br />
5<br />
4<br />
5<br />
3<br />
T<br />
Σ<br />
AV<br />
U<br />
A<br />
V<br />
UΣ<br />
=<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
=<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
−<br />
−<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
=<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
=<br />
⎥<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
−<br />
−<br />
−<br />
−<br />
−<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
⎥<br />
⎥<br />
⎥<br />
⎦<br />
⎤<br />
⎢<br />
⎢<br />
⎢<br />
⎣<br />
⎡<br />
−<br />
=<br />
Ćwiczenie.<br />
Znajdź <strong>SVD</strong> dla macierzy ⎥ ⎦<br />
⎤<br />
⎢<br />
⎣<br />
⎡<br />
= 4<br />
3<br />
A .
Interpretacja geometryczna <strong>SVD</strong><br />
n<br />
Wartości szczególne mówią nam jak przekształca się jednostkowa sfera w przestrzeni R<br />
n m<br />
wskutek działania macierzy Am n, rozumianej jako przekształcenie liniowe R → R .<br />
Obrazem tej sfery jest hiperelipsa jak to poglądowo ilustruje rysunek 10.1.<br />
Rys. 10.2. <strong>SVD</strong> macierzy dwuwymiarowej. Obrazem sfery jednostkowej w odwzorowaniu liniowym A jest<br />
elipsa, której długości półosi są równe wartościom szczególnym macierzy A.<br />
MoŜemy zdefiniować hiperelipsę w R m jako powierzchnię otrzymaną wskutek rozciągania<br />
bądź ściskania sfery jednostkowej w R m , gdzie współczynniki ściskania wzdłuŜ pewnych<br />
ortogonalnych kierunkach u1, u2, …, um to liczby σ 1 , σ 2,<br />
..., σ m (z pośród których niektóre<br />
mogą być równe zero). Wektory { i i u σ } to główne półosie hiperelipsy o długościach<br />
σ 1 , σ 2,<br />
..., σ m . Jeśli A ma rząd r to dokładnie r półosi tej hiperelipsy jest niezerowych.<br />
Wektory u1, u2, …, um to wektory szczególne lewe macierzy A. Przeciwobrazy półosi<br />
hiperelipsy { i i}<br />
u σ , określone równaniem (10.3), Avj = j j u σ , to wektory szczególne prawe<br />
v1, v2, …, vn. Terminy lewy i prawy wektor szczególny są niestety „niekompatybilne” z<br />
powyŜszym rysunkiem, gdzie wektory prawe są po lewej stronie rysunku a lewe po prawej.<br />
Zredukowane <strong>rozkład</strong>y <strong>SVD</strong><br />
Zwykle nie liczymy pełnego <strong>rozkład</strong>u <strong>SVD</strong> opisanego równaniem (10.1). Często wystarcza (i<br />
zabiera duŜo mniej czasu) obliczyć zredukowaną wersję <strong>rozkład</strong>u <strong>SVD</strong> dla danej macierzy.<br />
Wąski <strong>rozkład</strong> <strong>SVD</strong> (m >n)<br />
A = Um nΣnV T , (10.5)<br />
Gdzie jedynie n-kolumn macierzy U, odpowiadających wierszom macierzy V tworzy macierz<br />
Um n, która jest teraz wymiaru m n zamiast m m. Pozostałe m−n tzw. „milczących” kolumn<br />
macierzy U zostało z niej usuniętych. Macierz Σn jest teraz macierzą diagonalną stopnia n.<br />
Obliczenie macierzy Um n jest duŜo szybsze niŜ macierzy U wówczas, gdy m n.<br />
Zwarty <strong>rozkład</strong> <strong>SVD</strong><br />
A = UrΣrVr T , (10.6)<br />
gdzie jedynie r-kolumn macierzy U tworzy macierz Ur stopnia m r i r-wierszy macierzy<br />
V T tworzy macierz Vr T stopnia r n (uwaga indeksy u dołu nie pokazują wymiaru macierzy w<br />
tych przypadkach). Macierz Σr jest macierzą diagonalną stopnia r, zawierającą tylko
niezerowe wartości szczególne w porządku nierosnącym. Obliczenie zwartego <strong>rozkład</strong>u <strong>SVD</strong><br />
jest duŜo szybsze niŜ pełnego dla r n, m.<br />
PrzybliŜony (obcięty) <strong>rozkład</strong> <strong>SVD</strong><br />
A = UtΣtVt T , (10.7)<br />
Gdzie teraz jedynie t-kolumn macierzy U tworzy macierz Ut stopnia m t i t-wierszy<br />
macierzy V T tworzy macierz Vt T stopnia t n (uwaga indeksy u dołu nie pokazują wymiaru<br />
macierzy w tych przypadkach). Macierz Σt zawiera pierwszych t (największych) wartości<br />
szczególnych. Obliczenie przybliŜonego <strong>rozkład</strong>u <strong>SVD</strong> jest duŜo szybsze niŜ zwartego dla<br />
t r.<br />
PrzybliŜone <strong>rozkład</strong>y <strong>SVD</strong> znajdują duŜe zastosowanie do analizy, kompresji i przesyłu<br />
obrazów w telekomunikacji i informatyce. Mogą być równieŜ z powodzeniem stosowane do<br />
analizy ekspresji genów w biologii czy teŜ do analizy sygnałów EEG albo obrazów NMR<br />
mózgu w medycynie. PoniŜszy rysunek przedstawia istotę tej metody przy analizie obrazu.<br />
Rys. 10.3. Zastosowanie <strong>rozkład</strong>u <strong>SVD</strong> do analizy obrazów. Obraz moŜna interpretować jako (duŜą) macierz<br />
(lub kilka macierzy), której elementami są liczby odpowiadające jasności danego piksela albo współrzędnymi<br />
RGB. Pierwszy rysunek pokazuje oryginalny obraz (macierz RGB) a następne w kolejności zredukowany<br />
<strong>rozkład</strong> <strong>SVD</strong> tego obrazu obcięty do 1, 2, 4, 8, 16, 32, 64, 128 największych wartości szczególnych. Ostatni<br />
rysunek otrzymano z pełnego <strong>rozkład</strong>u <strong>SVD</strong>.<br />
Rozkład <strong>SVD</strong> a diagonalizacja macierzy<br />
Istnieje zasadnicza róŜnica między <strong>SVD</strong> a diagonalizacją macierzy. Pierwsza to to, Ŝe <strong>SVD</strong><br />
uŜywa dwóch róŜnych baz (są to zbiory wektorów osobliwych lewych i prawych), podczas<br />
gdy przy diagonalizacji macierzy:<br />
A = PDP −1<br />
uŜywamy tylko jednej bazy (złoŜonej z wektorów własnych macierzy). Następna róŜnica<br />
wynika z tego, Ŝe <strong>SVD</strong> uŜywa ortonormalnych baz, podczas gdy baza wektorów własnych (a<br />
więc i macierz P) w ogólności nie jest ortogonalna. Trzecia to to, Ŝe nie wszystkie macierze,<br />
nawet te kwadratowe są diagonalizowalne natomiast wszystkie macierze (nawet prostokątne)<br />
mają <strong>rozkład</strong> według wartości szczególnych.<br />
Twierdzenie. 10.2<br />
Niech λ j będzie wartością własną związaną z wektorem własnym vj a σ i to wartości<br />
szczególne macierzy kwadratowej A. Mamy<br />
σ | λ | ≤ σ .<br />
N<br />
≤ j<br />
Twierdzenie. 10.3<br />
Jeśli macierz kwadratowa A jest symetryczna to<br />
σ i =<br />
| λi<br />
| .<br />
1
W przypadku macierzy niesymetrycznej wartości własne i szczególne mogą się róŜnić<br />
dowolnie od siebie przy zachowaniu warunku z twierdzenia 10.2.<br />
Rozkład <strong>SVD</strong> a inne własności macierzy<br />
JeŜeli macierz kwadratowa A jest macierzą nieosobliwą, to jej wszystkie wartości szczególne<br />
są dodatnie (i oczywiście uporządkowane nierosnąco). JeŜeli jakakolwiek wartość szczególna<br />
macierzy A jest równa 0, to macierz ta jest macierzą osobliwą.<br />
Moduł (wartość bezwzględna wyznacznika macierzy A) jest iloczynem jej wszystkich<br />
wartości szczególnych<br />
|det(A)| = σ1 σ2 ≡ σn.