Descompunerea valorii singulare este un anumit tip de descompunere a unei matrice dreptunghiulare , care este utilizat pe scară largă, datorită interpretării sale geometrice vizuale, în rezolvarea multor probleme aplicate. O reformulare a descompunerii valorii singulare, așa-numita descompunere Schmidt , are aplicații în teoria informației cuantice , cum ar fi în încheiere .
Descompunerea valorii singulare a unei matrice permite calcularea valorilor singulare ale unei matrice date, precum și vectorii singulari stânga și dreapta ai matricei :
Unde este matricea conjugată Hermitiană la matrice , pentru o matrice reală .
Valorile singulare ale unei matrice nu trebuie confundate cu valorile proprii ale aceleiași matrice.
Descompunerea valorii singulare este utilă în calcularea rangului unei matrice , a nucleului unei matrice și a pseudoinversului unei matrice .
Descompunerea valorii singulare este, de asemenea, utilizată pentru a aproxima matrice prin matrice de un anumit rang.
Fie ca matricea de ordine să fie formată din elemente din câmp , unde este fie câmpul numerelor reale, fie câmpul numerelor complexe .
Un număr real nenegativ se numește valoare singulară a matricei atunci când există doi vectori de lungime unitară și astfel încât:
șiAstfel de vectori se numesc, respectiv, vector singular stânga și vector singular drept corespunzător numărului singular .
Descompunerea valorii singulare a matricei de ordine este descompunerea următoarei forme
unde este o matrice de dimensiune cu elemente nenegative, în care elementele aflate pe diagonala principală sunt numere singulare (și toate elementele care nu se află pe diagonala principală sunt zero), iar matricele (de ordin ) și (de ordin ) sunt două matrice unitare , formate din vectori singulari stânga și respectiv dreapta (a este matricea conjugat-transpusă k ).
Fie dată matricea:
Una dintre descompunerea de valoare singulară a acestei matrice este descompunerea , unde matricele și sunt următoarele:
deoarece matricele și sunt unitare ( și , unde este matricea de identitate ), și este o matrice diagonală dreptunghiulară , adică dacă .
Fie asociată matricei cu un operator liniar . Descompunerea valorii singulare poate fi reformulată în termeni geometrici. Un operator liniar care mapează elementele spațiale în sine poate fi reprezentat ca operatori liniari executați succesiv de rotație și întindere. Prin urmare, componentele descompunerii valorii singulare arată clar schimbări geometrice atunci când un operator liniar mapează un set de vectori dintr-un spațiu vectorial în sine sau într-un spațiu vectorial de altă dimensiune [1] .
Pentru o reprezentare mai vizuală, luați în considerare o sferă cu raza unitară în spațiu . Maparea liniilor mapează această sferă la un elipsoid de spațiu . Atunci valorile singulare diferite de zero ale diagonalei matricei sunt lungimile semi- axelor acestui elipsoid. În cazul în care și toate valorile singulare sunt diferite și diferite de zero, descompunerea valorii singulare a unei mapări liniare poate fi ușor analizată ca o consecință a trei acțiuni: luați în considerare un elipsoid și axele sale; apoi luați în considerare direcțiile în care maparea se mapează la aceste axe. Aceste direcții sunt ortogonale. În primul rând, aplicăm izometria prin maparea acestor direcții la axele de coordonate . Al doilea pas este aplicarea unui endomorfism diagonalizat de-a lungul axelor de coordonate și extinderea/contractarea acestor direcții, folosind lungimile semiaxelor ca factori de întindere. Produsul mapează apoi sfera unității pe un elipsoid izometric . Pentru a determina ultimul pas , pur și simplu aplicați izometria acestui elipsoid pentru a-l converti în . După cum puteți verifica cu ușurință, produsul este același cu .
Descompunerea valorii singulare poate fi utilizată pentru a găsi matrici pseudoinverse , care se aplică, în special, metodei celor mai mici pătrate .
Dacă , atunci matricea pseudo-inversa față de aceasta se găsește prin formula:
unde este pseudoinversul matricei , obținut din aceasta prin înlocuirea fiecărui element diagonal cu inversul său: și transpunerea.
În unele probleme practice, este necesar să se aproximeze o matrice dată cu o altă matrice cu un rang predeterminat . Este cunoscută următoarea teoremă, care uneori este numită teorema Eckart -Yang. [2]
Dacă cerem ca o astfel de aproximare să fie cea mai bună în sensul că norma euclidiană a diferenței matricelor și este minimă, sub constrângerea , atunci rezultă că cea mai bună astfel de matrice este obținută din descompunerea valorii singulare a matricei. matrice prin formula:
unde este matricea în care toate elementele diagonale sunt înlocuite cu zerouri, cu excepția celor mai mari elemente.
Dacă elementele matricei sunt ordonate în ordine necrescătoare, atunci expresia pentru matrice poate fi rescrisă în următoarea formă:
unde matricele , și sunt obținute din matricele corespunzătoare în descompunerea valorii singulare a matricei prin tăierea la exact primele coloane.
Astfel, se poate observa că prin aproximarea matricei cu o matrice de rang inferior, se efectuează un fel de compresie a informațiilor conținute în : matricea de dimensiuni este înlocuită cu matrice de dimensiuni mai mici și și o matrice diagonală cu elemente. În acest caz, compresia are loc cu pierderi - doar cea mai semnificativă parte a matricei este păstrată în aproximare .
În mare parte datorită acestei proprietăți, descompunerea valorilor singulare își găsește o aplicație practică largă: în compresia datelor, procesarea semnalului, metode iterative numerice de lucru cu matrice, analiza componentelor principale , analiza semantică latentă și alte domenii.
Pentru o matrice de ordin , dacă este necesar să se aproximeze printr-o matrice de rang mai mic decât , se folosește adesea o reprezentare de descompunere compactă [3] :
Sunt calculate doar coloanele și rândurile . Restul coloanelor și rândurilor nu sunt calculate. Acest lucru economisește multă memorie atunci când .
Să dăm un exemplu, să presupunem că acesta este numărul de utilizatori, dintre care fiecare a pus o parte din evaluările pentru filme, al căror număr total va fi notat cu , apoi matricea (foarte rar, deoarece fiecare utilizator a evaluat doar o mică parte din filme) vor fi notate și au o dimensiune suficient de mare .
Dacă vrem să lucrăm cu o matrice de dimensiuni mai mici, trebuie să calculăm descompunerea valorii singulare:
în acest caz, matricea , așa cum am menționat mai devreme, este diagonală. După aceea, dacă vrem să salvăm doar informații, atunci trebuie să luăm , astfel încât suma pătratelor primelor elemente să fie din suma totală a tuturor pătratelor elementelor diagonale .
Deci obținem dimensiunea (luând coloanele), dimensiunea și c . Apoi, în loc de o matrice, putem manipula o matrice de dimensiuni inferioare , care este adesea interpretată ca o matrice a evaluărilor utilizatorilor în funcție de categoria de film.
Algoritmii numerici pentru găsirea descompunerii valorii singulare sunt încorporați în multe pachete matematice. De exemplu, în sistemele MATLAB și GNU Octave , acesta poate fi găsit cu comanda
[ U , S , V ] = svd ( M );SVD este inclus în lista metodelor de bază a multor biblioteci matematice, inclusiv a celor distribuite gratuit.
De exemplu, există implementări
https://www.gnu.org/software/gsl/manual/html_node/Singular-Value-Decomposition.html
https://root.cern.ch/root/htmldoc/guides/users-guide/LinearAlgebra.html#svd
https://software.intel.com/en-us/intel-mkl
https://numpy.org/doc/stable/reference/generated/numpy.linalg.svd.html
https://www.tensorflow.org/api_docs/python/tf/linalg/svd
https://tedlab.mit.edu/~dr/SVDLIBC/
http://www.alglib.net/matrixops/general/svd.php
Vectori și matrici | |||||||||
---|---|---|---|---|---|---|---|---|---|
Vectori |
| ||||||||
matrici |
| ||||||||
Alte |