Friday, March 29, 2013

Despre descopunerea in vectori proprii si descompunerea SVD

Sa tin minte, ca m-oi face o data de rusine prin vreun articol:

SVD:
- valori singulare reale si pozitive
- U si V ortogonale, dar distincte

Eig:
- valori proprii negative sau chiar si complexe
- V poate for oricum, nu neaparat ortogonala (dar e una singura, V si V^-1)

La matrici simetrice:
-  vectorii proprii sunt ortogonali, V = ortogonala, dar in continuare e una singura, V si V', iar valorile proprii pot fi negative

Asadar, in cazul matricilor reale simetrice, cele doua NU SUNT echivalente (ar trebui sa fie si SPD pentru asta, ceea ce oricum nu poti afla decat facand eig):
- M = U D U'
- M = U S V'

DAR coloanele din U si V pot avea semnul diferit (in schimb S sunt musai pozitive), in timp ce coloanele lui U si U^-1=U' au acelasi semn (in schimb semsnul se muta la valorile proprii, care pot fi negative).

Asadar poti sa gasesti SVD din EIG in acest caz, daca muti semnul minus de la valorile proprii negative (daca sunt) la unul din vectorii din U sau V, stricand astfel simetria dintre U si U', care devin U si V. Trebuie asadar sa folosesti eigs(largest magnitude), apoi muti minusul valorilor proprii negative la V.

Nearest low-rank, apoi extras square root dintr-o matrice simetrica:

Low-rank faci cu SVD, care muta semnul minus de la valorile proprii la V, stricand simetria dintre U si V. Dar ca sa extragi apoi square root, adica M = X'*X, ai nevoie de U si V simetrice si valori proprii nenule, simultan (pentru cu X=USV' implica  X'X = VS'SV = VS^2V' = semipozitiv definita). Asadar tre sa muti minusurile invers de la V la valorile proprii, apoi retii doar valorile proprii pozitive. Deci tot ramai doar cu valorile proprii largest amplitude, pozitive. Sau cel mai bine, luand ambele etape in considerare, faci de la bun inceput eigs(largest amplitude) si pastrezi cele mai mari pozitive.

Labels: , ,

0 Comments:

Post a Comment

<< Home