Scomposizione ai valori singolari

Indice dei contenuti

    La scomposizione ai valori singolari, o SVD da singular value decomposition, è una fattorizzazione matriciale che rappresenta una matrice come composizione di rotazioni, dilatazioni lungo assi ortogonali e un’altra rotazione. Per una matrice reale X\in\mathbb{R}^{m\times n} si scrive

    X=U\Sigma V^T,

    dove U e V hanno colonne ortonormali e \Sigma contiene valori singolari non negativi.

    È uno degli strumenti più importanti dell’algebra lineare numerica perché esiste per ogni matrice, anche rettangolare e non invertibile.

    Forma completa e forma ridotta

    Nella forma completa,

    U\in\mathbb{R}^{m\times m}, \qquad \Sigma\in\mathbb{R}^{m\times n}, \qquad V\in\mathbb{R}^{n\times n},

    con U e V matrici ortogonali. Se il rango di X è r, spesso si usa la forma compatta:

    X=U_r\Sigma_r V_r^T,

    dove

    \Sigma_r= \operatorname{diag}(\sigma_1,\dots,\sigma_r), \qquad \sigma_1\ge\sigma_2\ge\cdots\ge\sigma_r>0.

    I numeri \sigma_i sono i valori singolari. Le colonne di U_r sono i vettori singolari sinistri, le colonne di V_r quelli destri.

    Collegamento con autovalori

    I valori singolari sono legati agli autovalori delle matrici simmetriche semidefinite

    X^TX \qquad\text{e}\qquad XX^T.

    In particolare,

    X^TX v_i=\sigma_i^2 v_i,

    quindi i valori singolari sono le radici quadrate degli autovalori non negativi di X^TX. Questo spiega perché la SVD è numericamente robusta e perché generalizza la diagonalizzazione anche a matrici rettangolari.

    Interpretazione geometrica

    La trasformazione x\mapsto Xx può essere letta come:

    1. rotazione o cambio di coordinate tramite V^T;
    2. dilatazione lungo assi ortogonali tramite \Sigma;
    3. rotazione nello spazio di arrivo tramite U.

    I valori singolari misurano quanto la matrice amplifica o comprime lungo direzioni principali. Il valore singolare massimo descrive la massima amplificazione euclidea:

    \|X\|_2=\sigma_1.

    Il numero di valori singolari non nulli è il rango della matrice.

    Approssimazione a rango basso

    Troncando la SVD ai primi k valori singolari si ottiene

    X_k=\sum_{i=1}^{k}\sigma_i u_i v_i^T.

    Il teorema di Eckart-Young afferma che X_k è la migliore approssimazione di rango k di X in norma spettrale e in norma di Frobenius. Questo risultato è alla base di compressione, denoising, riduzione dimensionale e modelli latenti.

    PCA e dati

    Nell’analisi delle componenti principali, si applica la SVD alla matrice dati centrata. I vettori singolari destri descrivono le direzioni principali nello spazio delle variabili; i valori singolari determinano la varianza spiegata:

    \lambda_i= \dfrac{\sigma_i^2}{n-1}.

    Mantenendo solo le prime componenti, si riduce la dimensionalità conservando la quota più grande possibile di variabilità lineare.

    Minimi quadrati e pseudoinversa

    La SVD permette di trattare in modo stabile problemi ai minimi quadrati e matrici mal condizionate. Se

    X=U\Sigma V^T,

    la pseudoinversa di Moore-Penrose è

    X^+=V\Sigma^+U^T,

    dove \Sigma^+ si ottiene sostituendo ogni valore singolare non nullo \sigma_i con 1/\sigma_i. Valori singolari molto piccoli segnalano direzioni instabili: invertirli amplifica rumore ed errori numerici.

    Errori comuni

    Il primo errore è pensare che la SVD sia solo una tecnica per PCA: è una fattorizzazione generale, utile anche in condizionamento, compressione, regressione e algebra lineare numerica. Il secondo è ignorare la scala dei valori singolari: valori molto piccoli possono rendere instabile una soluzione. Il terzo è confondere autovalori e valori singolari: coincidono solo in casi particolari, per esempio per matrici simmetriche positive semidefinite.

    Per esercizi applicati si vedano PCA: esercizi svolti e minimi quadrati e regressione numerica.

    Ultimo aggiornamento: