20.07.2013 Views

rozkład SVD

rozkład SVD

rozkład SVD

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!