Decomposizione a Valori Singolari (SVD), Demistificata

Decomposizione a Valori Singolari (SVD), Svelata

Una guida completa all’SVD con esempi in Python

La decomposizione dei valori singolari (SVD) è una potente tecnica di scomposizione di matrici che scompone una matrice in altre tre matrici, rivelando importanti aspetti strutturali della matrice originale. Viene utilizzata in una vasta gamma di applicazioni, tra cui l’elaborazione dei segnali, la compressione delle immagini e la riduzione della dimensionalità nell’apprendimento automatico.

Questo articolo fornisce una guida passo-passo su come calcolare l’SVD di una matrice, compreso un esempio numerico dettagliato. Mostra poi come utilizzare l’SVD per la riduzione della dimensionalità utilizzando esempi in Python. Infine, l’articolo discute varie applicazioni dell’SVD e alcune delle sue limitazioni.

L’articolo presume che il lettore abbia una conoscenza di base dell’algebra lineare. In particolare, il lettore dovrebbe essere familiare con concetti come i vettori e le norme delle matrici, il rango di una matrice, la decomposizione agli autovalori (autovettori e autovalori), i vettori ortogonali e le proiezioni lineari.

Immagine di Peggy und Marco Lachmann-Anke da Pixabay

Definizione Matematica

La decomposizione dei valori singolari di una matrice reale m × n A è una scomposizione della forma A = UΣVᵗ, dove:

  • U è una matrice m × m ortogonale (ovvero, le sue colonne e righe sono vettori ortogonali). Le colonne di U sono chiamate vettori singolari sinistri di A.
  • Σ è una matrice diagonale rettangolare m × n con numeri reali non negativi sulla diagonale. Gli elementi diagonali σᵢ = Σᵢᵢ sono noti come i valori singolari di A e sono tipicamente disposti in ordine decrescente, cioè σ₁ ≥ σ₂ ≥ … ≥ σₙ ≥ 0. Il numero dei valori singolari non nulli è uguale al rango di A.
  • V è una matrice n × n ortogonale. Le colonne di V sono chiamate vettori singolari destri di A.

Ogni matrice reale m × n ha una decomposizione dei valori singolari (una dimostrazione di questa affermazione può essere trovata qui). Questo è diverso, ad esempio, dalla decomposizione agli autovalori, che può essere applicata solo a matrici diagonalizzabili quadrate.

Calcolo dell’SVD

La decomposizione dei valori singolari di una matrice A può essere calcolata utilizzando le seguenti osservazioni:

  1. I vettori singolari sinistri di A sono un insieme di autovettori ortogonali…