Numerisches Seminar BNC 2002 Thema3: Singulärwertzerlegung Holger Junghanns - TU Bergakademie Freiberg 1 Jede reelle Matrix A ∈ IRm×n vom Rang r kann so in drei Matritzen zerlegt werden(Singulärwertzerlegung), dass sie die folgende Gleichung erfüllt: A = U ΣV T Dabei gilt folgendes: Die Matritzen U ∈ IRm×m und V ∈ IRn×n sind orthogonal, dh. sie erfüllen U U T = U T U = I und V V T = V T V = I. Die Matrix Σ ist eine Diagonalmatrix mit der folgenden Struktur: Σ= σ1 0 0 .. 0 .. . 0 0 . ···0 0 ···0 0 .. . σr . .. ···0 . .. 0 0 ···0 , wobei σ1 ≥ σ2 ≥ · · · ≥ σr > 0 , Σ ∈ IRm×n Die Zahlen σi nennt man die Singulärwerte von A. Die Spalten [u1 · · · um ] von U heißen linke Singulärvektoren. Analog heißen die Spalten [v1 · · · vn ] von V rechte Singulärvektoren. 2 A=U V T n v1 m A vn 1 1 n n n+1 m Abb. 1: Abbildungseigenschaften von A im Zusammenhang mit der SVD 3 Nun folgen einige wichtige Eigenschaften der SVD (engl. Singular Value Decompositon) 1. Es gelten: AV = U Σ und AT U = V ΣT 2. Vergleicht man die Spalten der unter Punkt 1 beteiligten Matritzen, dann muß gelten: ( Avi = ( AT ui = σi ui für i = 1, 2, ..., r 0 für i = r + 1, r + 2, ..., n σi vi für i = 1, 2, ..., r 0 für i = r + 1, r + 2, ..., m und 3. A = U ΣV T kann als Summe von Rang-1 Matritzen dargestellt werden: A= r P σi ui viT i=1 4. Die von Null verschiedenen Eigenwerte der symmetrischen Matrix AT A sind σ12 , ..., σr2 . Die rechten Singulärvektoren [v1 , ..., vr ] sind die zugehörigen orthonormalen Eigenvektoren. 4 5. Die von Null verschiedenen Eigenwerte der symmetrischen Matrix AAT sind ebenfalls σ12 , ..., σr2 . Die linken Singulärvektoren [u1 , ..., ur ] sind die zugehörigen orthonormalen Eigenvektoren. 6. Sei A ∈ IRn×n symmetrisch mit Eigenwerten λ1 , ..., λr verschieden von Null und dem Betrage nach größer Null. Dann sind σi = |λi | die Singulärwerte von A. 7. Das Bild der n-dimensionalen Einheitskugel unter A ist im m-dimensionalen ein Ellipsoid mit Mittelpunkt 0. Die Länge seiner Halbachsen beträgt σi ui . 8. Es gilt kAk2 = σ1 für A ∈ IRm×n . Falls A ∈ IRn×n invertierbar ist gilt außerdem kA−1 k2 = σ −1 5 Aus der SVD geht ein äußerst wichtiger Approximationssatz hervor. Die SVD einer Matrix A kann verwendet werden um eine rangreduzierte Matrix Ak zu finden, die A am besten annähert. Theorem von Schmidt-Mirsky . Sei A ∈ IRm×n eine Matrix mit Rang r und der SVD A = U ΣV T . Dann gibt es eine Matrix Ak ∈ IRm×n mit Rang k < r und Ak = k P σi ui viT i=1 Diese Matrix Ak ist die beste Rang-k Approximation an A im Sinne der Minimierung von kA − Ak k2 . Es gilt kA − Ak k2 = σk+1 6 Dieser Approximationssatz wird für verschiedene Anwendungen in der Praxis benutzt. Eine davon ist die Bildkompression. Ein Bild kann man als eine m × n Matrix auffassen, wobei der Eintrag (i, j) den Helligkeitswert des Pixel (i, j) repräsentiert. Anstatt nun alle m · n Einträge zu speichern wollen wir weniger Einträge speichern, aus denen sich das Original-Bild annähernd wiederherstellen läßt. Unter Verwendung einer rangreduzierten Matrix Ak müssen wir nur noch m · k Einträge für die Vektoren u1 · · · uk und n · k Einträge für die σ1 v1 · · · σk vk speichern. Insgesamt benötigt das komprimierte Bild also nur (m + n) · k Speichereinträge. In M atlab läßt sich die Kompression eines 512 × 512 Graustufen-Bildes mit Hilfe der SVD folgendermaßen umsetzen: A = imread(’lenna.jpg’); [U,S,V]=svd(double(A)); Ak = U(:,1:N)*S(1:N,1:N)*V(:,1:N)’; imagesc(Ak); colormap(gray), axis image, axis off 7 Originalbild k=30 k=10 Die Kompressionsrate errechnet sich wie folgt: (m+n)·k m·n Damit haben wir für die verschieden Werte von k folgende Kompressionsraten: k Kompressionsrate 10 0.039 30 0.117 50 0.195 8