Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facoltà di Ingegneria
Tesina
DECOMPOSIZIONE IN
VALORI SINGOLARI
APPLICAZIONI
Introduzione 5
1 Notazioni 7
5 Applicazioni 47
5.1 Sistemi lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Compressione delle immagini . . . . . . . . . . . . . . . . . . . 51
B Matlab: svdcompression.m 59
Bibliografia 61
3
Introduzione
Σ = HAK
5
La decomposizione in valori singolari 1 altro non è che la possibilità di fat-
torizzare ciascuna matrice A ∈ Fn×m nel prodotto P ΣQ con P ∈ Fn×n ,
Q ∈ Fm×m unitarie e · ¸
D 0
Σ=
0 0
pseudodiagonale, con gli elementi della diagonale di D tutti reali e positivi.
1
Singular value decomposition o, in forma compatta, SVD.
6
Capitolo 1
Notazioni
In questa trattazione il campo in cui vengono scelti gli elementi di una ma-
trice sarà il campo R dei numeri reali o il campo C dei numeri complessi.
Esso verrà indicato in generale con F, specificando, lì dove risulti necessario,
se si tratta di R o di C.
A∗ = A.
Q∗ Q = QQ∗ = In ,
7
8 CAPITOLO 1. NOTAZIONI
Λ(A) = {λ : ∃v 6= 0 : Av = λv}
mentre con la scrittura Λ0 (A) indicheremo l’insieme dei soli autovalori non
nulli.
ker A = {x : Ax = 0}.
Capitolo 2
p: V ×V → F
(x, y) 7 → x·y
1. x · y = y · x;
3. x · x ≥ 0; x·x=0 ⇒ x = 0V .
x · x = x · x cioè x · x ∈ R.
9
10 CAPITOLO 2. RICHIAMI DI ALGEBRA LINEARE
ovviamente la somma di termini non negativi non può mai essere ne-
gativa. Inoltre
n
X
x·x=0 ⇒ |xi |2 = 0 ⇔ ∀i xi = 0 ⇔ x = 0V .
i=1
D’ora in avanti quando faremo uso del prodotto interno in Fn , esso sarà sem-
pre quello appena illustrato che, per l’importanza che riveste, è detto prodotto
interno canonico.
Diamo alcune definizioni valide sugli spazi vettoriali dotati di prodotto in-
terno.
• per ogni vettore non nullo z indichiamo il versore che lo genera come
4 1
vers(z) = √ z;
z·z
Si osservi che tale proposizione equivale ad affermare che ogni matrice her-
mitiana è diagonalizzabile.
con r = dim Vλ .
Se per assurdo fosse µ(λ) > r vorrebbe dire che λ è autovalore anche della
matrice R. Questo significherebbe che
ar+1
∃w = ... 6= 0n−r tale che Rw = λw
an
· ¸ · ¸
0r 0r
cioè tale che B =λ .
w w
· ¸
0r
Il vettore non nullo Q risulterebbe allora essere autovettore di S rela-
w
tivo a λ e allo stesso tempo apparterrebbe a Vλ⊥ , in contrasto con il teorema
che assicura che Vλ ∩ Vλ⊥ = {0V }.
Sx = λi x,
Sy = λj y.
Da ciò seguono le seguenti relazioni scalari:
y ∗ Sx = y ∗ (λi x) = λi (x · y),
x · y = 0 cioè x⊥y.
¤
Conseguenza importante di questi tre risultati fondamentali è che ogni ma-
trice hermitiana S può essere diagonalizzata mediante matrici unitarie Q e
che la matrice diagonale associata ha elementi reali
λ1 0 0
D = Q−1 SQ = Q∗ SQ = 0 . . . 0 , λ1 , . . . , λn ∈ R.
0 0 λn
Illustriamo ora un punto cruciale su cui si basa la decomposizione in valori
singolari di cui parleremo nei capitoli successivi.
Proposizione 2.2.4 Per ogni matrice A, le matrici A∗ A e AA∗ sono her-
mitiane e hanno autovalori reali non negativi.
Dimostrazione Dimostriamo innanzitutto che sono hermitiane. Infatti
(A∗ A)∗ = A∗ A∗∗ = A∗ A,
(AA∗ )∗ = A∗∗ A∗ = AA∗ .
Per dimostrare che hanno autovalori non negativi consideriamo innanzitut-
to la matrice A∗ A. Sia γ un suo autovalore e z un autovettore ad esso
corrispondente. Allora
A∗ Az = γz ⇒ z ∗ A∗ Az = z ∗ (γz) = γ(z · z).
Prestando attenzione sulla seconda espressione notiamo che essa può essere
anche sviluppata così:
z ∗ A∗ Az = (Az)∗ Az = Az · Az.
Dalla terza proprietà del prodotto interno segue che
Az · Az ≥ 0 e z · z > 0.
Così confrontando le due espressioni si ottiene necessariamente che γ ≥ 0.
2.3 Norme
Richiamiamo ora la definizione generale di norma su uno spazio vettoriale
reale o complesso. In particolare le norme su Fn consentiranno di definire,
tra le norme sullo spazio vettoriale delle matrici di tipo n × m, quelle che
vengono maggiormente usate nelle applicazioni.
1. kxk ≥ 0; kxk = 0 ⇒ v = 0V ;
3. kx + yk ≤ kxk + kyk.
4
kxk∞ = max |xi | (norma l∞ o norma infinito).
1≤i≤n
Ricordiamo che
lim kxkp = kxk∞
p→∞
ed è anche quella che in geometria viene usata per valutare le distanze nello
spazio euclideo.
Passiamo infine ad esporre un importante risultato che lega la norma euclidea
alle matrici unitarie. Questo risultato si rivelerà utile quando parleremo delle
norme sugli spazi delle matrici.
Proposizione 2.3.1 Una matrice Q di Fn×n conserva la norma euclidea se
e solo se è unitaria.
x∗ x = x∗ (I + B)x = x∗ Ix + x∗ Bx = x∗ x + x∗ Bx
⇒ x∗ Bx = 0 ∀x.
Se prendiamo in particolare x = eh + ek e y = eh + iek , otteniamo
4
ei rappresenta il vettore corrispondente alla colonna i-esima della matrice identità
mentre qi è il vettore corrispondente alla i-esima colonna di Q.
Capitolo 3
17
18 CAPITOLO 3. DECOMPOSIZIONE IN VALORI SINGOLARI
¤
22 CAPITOLO 3. DECOMPOSIZIONE IN VALORI SINGOLARI
A = U ΣV ∗
" #
√1
2
y1 = .
− √12
" #
√1 √1
2 2
U= .
− √12 √1
2
Viceversa, se per ipotesi abbiamo una matrice quadrata A ∈ Fn×n con esat-
tamente n valori singolari pari a 1, allora la sua decomposizione è necessa-
riamente del tipo
A = U IV ∗ con U, V unitarie
A risulta essere unitaria perché
AA∗ = U IV ∗ (U IV ∗ )∗ = U IV ∗ V I ∗ U ∗ = U IIIU ∗ = U U ∗ = I,
A∗ A = (U IV ∗ )∗ U IV ∗ = V I ∗ U ∗ U IV ∗ = V IIIV ∗ = V V ∗ = I.
¤
Al concetto di decomposizione in valori singolari si affianca quella che andre-
mo a definire come matrice ridotta secondo tale decomposizione.
Definizione 3.2.1 Sia A una matrice di rango r e U ΣV ∗ sia una sua de-
composizione in valori singolari. Considerato un valore intero k < r, diremo
matrice ridotta di ordine k secondo tale decomposizione in valori singolari la
matrice
Ak = U Σk V ∗
dove Σk è ottenuta da Σ ponendo uguali a 0 tutti i valori σk+1 , . . . , σr .
σ1 0 0
..
. 0 0k×(m−k)
Σk = 0 .
0 0 σk
0(n−k)×k 0(n−k)×(m−k)
Si noti che la matrice Ak ha rango k; inoltre tale matrice gode di altre
proprietà teoriche e applicative che vedremo nei capitoli successivi.
28 CAPITOLO 3. DECOMPOSIZIONE IN VALORI SINGOLARI
A = QS1 ,
A = S2 Q.
Dimostrazione Dal teorema 3.2.1 sappiamo che
A = U ΣV ∗
A = U ΣV ∗ = U IΣV ∗ = U V ∗ V ΣV ∗ = (U V ∗ )(V ΣV ∗ ),
A = U ΣV ∗ = U ΣIV ∗ = U ΣU ∗ U V ∗ = (U ΣU ∗ )(U V ∗ ).
Ora basterà porre
Q = U V ∗, S1 = V ΣV ∗ , S2 = U ΣU ∗
Q∗ Q = (U V ∗ )∗ (U V ∗ ) = V U ∗ U V ∗ = V IV ∗ = V V ∗ = I,
3.3. DECOMPOSIZIONE POLARE 29
QQ∗ = (U V ∗ )(U V ∗ )∗ = U V ∗ V U ∗ = U IU ∗ = U U ∗ = I.
Come ultima cosa occorre verificare che S1 e S2 sono semidefinite positive.
Per farlo consideriamo la matrice
√
σ1 0 0
...
4 0
Γ= 0 √
0 .
0 0 σr
0 0
Risulta allora
Σ = Γ2 , Γ∗ = Γ e quindi Σ = Γ∗ Γ.
Possiamo allora riconoscere che
w: M → R
A 7→ kAk
1. kAk ≥ 0; kAk = 0 ⇒ A = 0M ;
3. kA + Bk ≤ kAk + kBk.
31
32 CAPITOLO 4. NORME DI UNA MATRICE
Una banale verifica diretta mostra che tale funzione soddisfa tutte e tre le
proprietà e dunque è una norma.
Le trasformazioni tra spazi vettoriali, e tra esse quelle lineari, possono essere
tra loro composte purché siano rispettate le condizioni sui rispettivi domini
e codomini. D’altra parte ogni matrice A ∈ Fn×m individua una funzio-
ne lineare tra Fm ed Fn e la matrice prodotto di due matrici moltiplicabili
corrisponde alla composizione delle due funzioni lineari da esse individuate.
È proprio questo fatto che differenzia le trasformazioni lineari e le matrici da
altri vettori; infatti per le matrici è definita l’operazione di moltiplicazione,
cosa che in generale non accade per i vettori.
Premesso ciò vogliamo ora dare una definizione più restrittiva ma che risulti
più conveniente nel seguito.
Definizione 4.1.2 Una norma matriciale o norma submoltiplicativa1 è una
norma definita nello spazio delle matrici per cui vale la proprietà:
p
n X n p
X X X
≤ (a∗i · a∗i )(bj · bj ) = (a∗i · a∗i ) (bj · bj ) =
i=1 j=1 i=1 j=1
n p
X X
= ka∗i k22 kbj k22 = kA∗ k2F kBk2F = kAk2F kBk2F .
i=1 j=1
n
X n
X
≤ (a∗i · a∗i )(x · x) = (x · x) (a∗i · a∗i ) =
i=1 i=1
34 CAPITOLO 4. NORME DI UNA MATRICE
n
X
= kxk22 ka∗i k22 = kA∗ k2F kxk22 = kAk2F kxk22
i=1
kAxkFn
= kAvers(x)kFn ∀x 6= 0
kxkFm
Proposizione 4.2.1 Siano k kFm e k kFn norme definite sugli spazi vettoriali
Fm ed Fn . La funzione
f : Fn×m → R
A 7→ maxkxkFm =1 kAxkFn
Se A 6= 0 allora vuol dire che esiste un suo elemento aij 6= 0. Prendendo per
esempio x = ej , allora Ax 6= 0 e quindi kAxkFn > 0. Si può così concludere
f (A) > 0.
quindi
e dunque
f (A + B) ≤ f (A) + f (B).
f (A) è allora una norma dello spazio vettoriale delle matrici di tipo n × m.
Potremo così scrivere f (A) = kAk.
kAxkFn kAxkFn
≤ max = max kAvers(x)kFn = kAk
kxkFm kxkFm x6=0
e dunque
kAxkFn ≤ kAk kxkFm ∀x ∈ Fm , x 6= 0.
Infine ci resta da far vedere che tra tutte le norme compatibili essa è la
minima. Per definizione di max abbiamo che ∃xM : kxM kFm = 1 tale per cui
kAk = kAxM kFn . Per ogni altra norma matriciale compatibile deve valere
Conosciamo ora una tecnica per poter ottenere delle norme submoltiplicative
e compatibili che hanno dunque la peculiarità di essere le più piccole norme
compatibili con le norme vettoriali.
della proposizione 4.2.1 verrà detta norma matriciale indotta dalle norme
vettoriali k kFn e k kFm .
kIn k = 1.
kIn kF = n.
Andremo ora ad esaminare, tra le norme richiamate nel paragrafo 2.3, quelle
che sono indotte dalle più importanti norme vettoriali in Fn .
4.2. NORME INDOTTE 37
n
X
kAk1 = max |aij | (massima somma di riga).
i
j=1
In altre parole tra tutte le colonne di A si prende quella per cui è massima
la somma del modulo dei suoi elementi. La norma indotta dalla norma l1 di
A è data dal valore tale somma.
Per la norma l∞ si procede analogamente ma per righe.
Allora
m
X
kxk1 = 1 ⇔ |xi | = 1.
i=1
Dunque
¯ ¯ Ã !
n ¯X
X m ¯ X n X
m m
X n
X
¯ ¯
kAxk1 = ¯ aij xj ¯ ≤ |aij | |xj | = |xj | |aij | ≤
¯ ¯
i=1 j=1 i=1 j=1 j=1 i=1
à n
! m n
X X X
≤ max |aij | |xj | = max |aij |
j j
i=1 j=1 i=1
Allora
kxk∞ = 1 ⇔ max |xj | = 1.
j
per cui
m
X
kAk∞ = max kAxk∞ ≤ max |aij | .
kxk∞ =1 i
j=1
|ahj |
xj = se ahj 6= 0,
ahj
xj = 0 se ahj = 0
abbiamo kxk∞ = 1 e per questo vettore a norma l∞ unitaria vale
m
X
kAxk∞ = |ahj |
j=1
¤
4.2. NORME INDOTTE 39
kxk2 = 1 ⇔ x · x = x∗ x = 1.
x = α1 z1 + · · · + αm zm
kAxk22 = x∗ A∗ Ax = x∗ A∗ A(α1 z1 + · · · + αm zm ) =
kAz1 k22 = z1∗ A∗ Az1 = z1∗ (λmax z1 ) = λmax kz1 k22 = λmax
Tornando ancora una volta sulle matrici unitarie ricordiamo che conservano
la norma euclidea di Fn per quanto detto nella proposizione 2.3.1.
Cerchiamo di capire invece come si comportano le matrici unitarie qualora si
stia operando con la norma spettrale.
Partiamo facendo vedere che esse hanno sempre norma spettrale unitaria.
Esponiamo ora il risultato più importante sulle matrici unitarie che afferma
quanto segue.
4.2. NORME INDOTTE 41
kQAW k2 = kAk2
per ogni matrice A e per ogni Q e W unitarie che possano essere moltiplicate
rispettivamente a sinistra e a destra di A.
z = W −1 y = W ∗ y.
Riassumendo:
kQAW k2 = kAW k2 = kAk2 .
¤
42 CAPITOLO 4. NORME DI UNA MATRICE
2
Fuzzy data.
3
Nella letteratura anglosassone è noto come effective rank, rank deficency o approximate
rank.
4.3. RANGO EFFICACE 43
Valgono le relazioni:
n
X k+1
X
Az = U ΣV ∗ z = σi ui vi∗ (α1 v1 + · · · + αk+1 vk+1 ) = σi αi ui ,
i=1 i=1
Bz = 0
sicché abbiamo
k+1
X
kA − Bk22 ≥ k(A − B)zk22 = kAzk22 = σi2 |αi |2 u∗i ui ≥
i=1
44 CAPITOLO 4. NORME DI UNA MATRICE
k+1
X
≥ 2
σk+1 |αi |2 = σk+1
2
.
i=1
Se, tra le matrici di rango k, consideriamo ora proprio la Ak si osserva che
kA − Ak k2 = kU ΣV ∗ − U Σk V ∗ k2 = kU (Σ − Σk )V ∗ k2 = kΣ − Σk k2 =
° °
° 0k×k 0k×(r−k) °
° °
° σ 0 0 °
° k+1 °
° ... 0r×(m−r) °
= ° 0(r−k)×k 0 0 ° =
° °
° 0 0 σr °
° °
° 0(n−r)×r 0(n−r)×(m−r) °2
° °
° σ 0 0 °
° k+1 °
° ... °
° 0 0 0 (r+k)×(m−r+k) °
= °H K ° = σk+1 ,
° 0 0 σr °
° °
° 0(n−r+k)×(r+k) 0(n−r+k)×(m−r+k) °
2
dove le matrici H e K, introdotte nell’ultimo passaggio, hanno lo scopo di
scambiare opportunamente le righe e le colonne. Pioché tali matrici sono
ortogonali, esse non alterano la norma spettrale (cfr. la proposizione 4.2.6).
Abbiamo così che il limite inferiore vale σk+1 ed è raggiunto dalla matrice
Ak .
¤
Detto ciò possiamo ora provare che vale il risultato seguente che relaziona il
rango efficace con i valori singolari di una matrice.
Proposizione 4.3.2 Siano A ∈ Fn×m e ² > 0. Allora il valore ρ² (A) secondo
la norma k k2 verifica
∃B : ρ(B) = k, kA − Bk2 ≤ ².
4.3. RANGO EFFICACE 45
² ≥ kA − Bk2 ≥ kA − Ak k2 = σk+1 .
kA − Ak k2 = σk+1 ≤ ².
ρ² (A) ≤ k.
Sia ora ² < k. Dalla proposizione 4.3.1 segue che per ogni matrice B di rango
k − 1 si ha
kA − Bk2 ≥ kA − Ak−1 k2 = σk > ²
e dunque dev’essere necessariamente
ρ² (A) ≥ k.
ρ² (A) = 1 se σ2 ≤ ² < σ1 ;
ρ² (A) = 0 se ² ≥ σ1 .
Capitolo 5
Applicazioni
47
48 CAPITOLO 5. APPLICAZIONI
con
1
σ1
0 0
..
4 0 0. 0r×(n−r)
Σ+ =
0 0 σ1r
0(m−r)×r 0(m−r)×(n−r)
in Fm×n è detta pseudoinversa della matrice A.
AA+ A = A
A+ AA+ = A+
A+ AA+ = V Σ+ U ∗ U ΣV ∗ V Σ+ U ∗ = V Σ+ IΣIΣ+ U ∗ =
= V Σ+ ΣΣ+ U ∗ = V Σ+ U ∗ = A+ .
¤
6 ∃x : Ax = b
Ax − b 6= 0
o, equivalentemente,
kAx − bk2 6= 0.
Consideriamo l’ultima relazione: una soluzione porta ad annullare la norma
della differenza tra i due membri del sistema (meglio nota come distanza
euclidea tra la n-upla Ax e la n-upla b); se un sistema è incompatibile vuol
dire che tale norma non può essere annullata per nessuna m-upla x. Allora
50 CAPITOLO 5. APPLICAZIONI
quello che ci proponiamo di fare è cercare quella m-upla che minimizza tale
norma ossia che più si avvicina a ciò che potrebbe essere una soluzione del
sistema.
Questo problema è detto problema dei minimi quadrati e si indicherà come
Ax ≈ b.
D’altra parte1
ovvero
1 ∗
(V ∗ x)i = (U b)i ∀i = 1, . . . , k cioè quando V ∗ x = Σ+ U ∗ b.
σi
Segue immediatamente la tesi.
¤
La matrice A associata ad un’immagine ha, nella maggior parte dei casi, ran-
go massimo o di poco inferiore ad esso. Quello che ci proponiamo di fare è
cercare una matrice di rango ridotto, diciamolo , che approssimi, secondo un
criterio da stabilire, tale matrice in modo “soddisfacente”.
Figura k νk ξk Γk byte
5.1 400 / 1 / 20000
5.2 5 0.0225 0.5966 0.0377 450
5.3 10 0.0450 0.6914 0.0651 900
5.4 20 0.0900 0.7789 0.1155 1800
5.5 40 0.1800 0.8595 0.2094 3600
4 ν
Γ= .
ξ
Concludiamo la trattazione osservando che il fattore di compressione offerto
da questa tecnica seppur confrontabile con quello offerto dagli algoritmi di
compressione GIF (che tra l’altro ha il pregio di non essere lossy), non è
comunque paragonabile a quello offerto dalle varie tecniche JPEG che ai fini
pratici sono quelle più utilizzate. Abbiamo comunque un interessante esem-
pio di come la decomposizione in valori singolari possa essere teoricamente
utilizzata per comprimere le immagini.
Ci occupiamo ora di analizzare alcuni aspetti relarivi alla teoria della pertur-
bazioni applicata al problema dei minimi quadrati.
Nel calcolo numerico è spesso conveniente stimare la stabilità numerica delle
matrici coinvolte qualora siano soggette a perturbazioni. Parleremo di pertur-
bazione quando gli elementi di una matrice A possono subire uno scostamento
relativo di una certa quantità δ; nel problema la matrice di partenza viene
sostituita dalla matrice A + δA che rappresenta la massima perturbazione.
Se x risolve il problema posto con la matrice A e x̃ lo stesso problema con
la matrice A + δA è interessante trovare un valore limite di scostamento tra
x e x̃. Scostamenti e distanze sono sempre valutati con la norma euclidea e
quella spettrale. Introduciamo dunque un parametro caratteristico di ogni
matrice che quantifica la stabilità numerica di una matrice.
Diremo condizionamento numerico riferito alla norma spettrale per una ma-
trice A il valore
4 σmax
κ2 (A) =
σmin
dove σmax e σmin rappresentano rispettivamente il valore singolare massimo
e quello minimo di A.
Vediamo un importante teorema sulla stabilità numerica nel problema dei
minimi quadrati che abbiamo già incontrato nel paragrafo 5.1.
57
58 APPENDICE A. TEORIA DELLE PERTURBAZIONI: CENNI
allora µ ¶
kx̃ − x0 k2 2κ2 (A) 2
≤² + κ2 (A) tan ϑ + o(²)
kx0 k2 cos ϑ
krk2
dove sin ϑ = kbk2
ossia ϑ è l’angolo tra il vettore b e il vettore Ax.
Matlab: svdcompression.m
function svdcompression(FileIN,ext,FileOUT,rank)
A=imread(FileIN,ext);
B=double(A);
if ndims(B)<3
[n,m]=size(B);
[U,S,V]=svd(B);
Bc=U(:,1:rank)*S(1:rank,1:rank)*V(:,1:rank)’;
y=0;
for j=1:rank,
y=y+S(j,j);
end
x=y;
for j=rank+1:min(m,n),
x=x+S(j,j);
end
else
x=0;
y=0;
[n,m,p]=size(B);
for i=1:3,
[U,S,V]=svd(B(:,:,i));
y1=0;
for j=1:rank,
59
60 APPENDICE B. MATLAB: SVDCOMPRESSION.M
y1=y1+S(j,j);
end
x1=y1;
for j=rank+1:min(m,n),
x1=x1+S(j,j);
end
x=x+x1;
y=y+y1;
Bc(:,:,i)=U(:,1:rank)*S(1:rank,1:rank)*V(:,1:rank)’;
end
end
Ac=uint8(Bc);
imwrite(Ac,FileOUT,ext);
Compression_Factor=rank*(n+m)/(n*m)
Loss_Factor=y/x
Compression_Information=Compression_Factor/Loss_Factor
Le figure 5.2, 5.3, 5.4, 5.5 e i dati in tabella 5.1 sono ottenuti utilizzando tale
funzione applicata all’immagine di figura 5.1.
Bibliografia
61