Algebra lineare (2): matrici, determinanti, autovalori e SVD
- Ottieni link
- X
- Altre app
Nella prima parte di questa serie abbiamo costruito gli spazi vettoriali e le applicazioni lineari, e abbiamo visto che una matrice non è altro che un'applicazione lineare scritta rispetto a due basi fissate. Qui prendiamo quell'oggetto e lo studiamo per conto suo: come si moltiplica, come si inverte, come si decompone.
Il filo conduttore dell'articolo è che quasi ogni formula matriciale si può leggere in più modi, e che scegliere la lettura giusta rende un risultato ovvio invece che oscuro. Il prodotto fra matrici, per dire, ammette quattro interpretazioni diverse che danno lo stesso numero ma raccontano cose diverse. Il punto d'arrivo sono la diagonalizzazione e la decomposizione ai valori singolari, cioè gli strumenti con cui si guarda dentro una matrice per capire cosa fa davvero.
1. Il prodotto righe per colonne
Partiamo dalla definizione classica, quella che si impara per prima e che si implementa con tre cicli annidati.
Il vincolo sulle dimensioni — le colonne di \(A\) devono essere tante quante le righe di \(B\) — non è una convenzione arbitraria, ma il riflesso del fatto che il codominio della prima applicazione deve coincidere con il dominio della seconda perché la composizione abbia senso.
- \(A \cdot (B + C) = A \cdot B + A \cdot C\) (distributività destra)
- \((A + B) \cdot C = A \cdot C + B \cdot C\) (distributività sinistra)
- \((A \cdot B) \cdot C = A \cdot (B \cdot C)\) (associatività)
- \(\forall k \in \mathbb{R} : (kA) \cdot B = A \cdot (kB) = k (A \cdot B)\)
Manca vistosamente la commutatività: in generale \(A \cdot B \neq B \cdot A\), e spesso uno dei due prodotti non è nemmeno definito. La ragione l'abbiamo vista nella prima parte — il prodotto rappresenta la composizione di funzioni, e comporre in ordine diverso dà risultati diversi. Fanno eccezione i vettori, per i quali \(x^T y = y^T x\).
2. Prodotti fra vettori
Prima di scomporre il prodotto fra matrici conviene fissare i due casi estremi, quelli in cui gli operandi sono vettori. Sono duali l'uno dell'altro e producono oggetti di natura opposta: uno scalare il primo, una matrice il secondo.
Prodotto scalare (o interno)
Dati due vettori \(x, y \in \mathbb{R}^n\), il valore \(x^T y\), chiamato anche prodotto interno o prodotto scalare standard, è definito come:
Il prodotto scalare fra vettori è commutativo. Lo avevamo già incontrato nella definizione di spazio vettoriale euclideo: è una forma bilineare su \(\mathbb{R}^n\), e da esso discendono norma, distanza e angolo.
Prodotto esterno
Dati \(x \in \mathbb{R}^m\) e \(y \in \mathbb{R}^n\), la matrice \(x y^T \in \mathbb{R}^{m \times n}\), chiamata prodotto esterno, è definita come:
È lo stesso ordine di operandi, invertito, e produce una matrice \(m \times n\) invece di un numero. Si osservi che ogni colonna del risultato è un multiplo di \(x\): una matrice ottenuta come prodotto esterno ha sempre rango 1. Torneremo su questo fatto parlando di SVD, dove una matrice qualsiasi verrà scritta come somma di prodotti esterni.
3. Prodotto matrice-vettore: due letture
Data \(A \in \mathbb{R}^{m \times n}\) e \(x \in \mathbb{R}^n\), il prodotto è un vettore \(y = Ax \in \mathbb{R}^m\). Ci sono due modi di guardarlo, entrambi corretti, che portano a intuizioni diverse.
Prima lettura: per righe. Scrivendo \(A\) come pila di righe,
ossia l'\(i\)-esima componente di \(y\) è il prodotto scalare della \(i\)-esima riga di \(A\) con \(x\): \(y_i = a_i^T x\). Ogni riga di \(A\) è una "sonda" che misura \(x\) lungo una certa direzione.
Seconda lettura: per colonne. Scrivendo \(A\) come affiancamento di colonne \(a^1, \dots, a^n\),
In altre parole il risultato \(y\) è la combinazione lineare delle colonne di \(A\), dove i coefficienti sono le componenti di \(x\). Questa seconda lettura è quella concettualmente più importante: dice che l'insieme dei possibili risultati \(Ax\), al variare di \(x\), è esattamente lo span delle colonne di \(A\). Ci ritorneremo definendo il range.
Sistemi lineari in forma matriciale
Con la notazione del prodotto possiamo rappresentare un sistema lineare in \(m\) equazioni e \(n\) incognite come
dove \(A \in \mathbb{R}^{m \times n}\), \(b \in \mathbb{R}^m\) è il vettore dei termini noti e \(x \in \mathbb{R}^n\) il vettore delle incognite. Denotando con \(A_{i,:}\) le righe di \(A\), la scrittura compatta equivale a
o, esplicitando i coefficienti:
Le due letture del prodotto matrice-vettore danno due modi diversi di interpretare il sistema. Per righe: cerchiamo un punto che soddisfi simultaneamente \(m\) vincoli. Per colonne: ci chiediamo se \(b\) sia esprimibile come combinazione lineare delle colonne di \(A\) — e la risposta è sì esattamente quando \(b\) appartiene al loro span.
4. Prodotto matrice-matrice: quattro letture
Lo stesso gioco si può fare con il prodotto fra due matrici, e stavolta le letture sono quattro. Siano \(A \in \mathbb{R}^{m \times n}\), \(B \in \mathbb{R}^{n \times p}\) e \(C = AB \in \mathbb{R}^{m \times p}\).
4.1 Righe per colonne
È la definizione: ogni elemento di \(C\) è il prodotto scalare di una riga di \(A\) per una colonna di \(B\).
4.2 Colonne per righe
All'opposto, consideriamo \(A\) per colonne \(a^i\) e \(B\) per righe \(b_i\). Si ottiene un'interpretazione più sorprendente, come somma di prodotti esterni:
In sostanza \(AB\) è la somma, per ogni \(i\), dei prodotti esterni della \(i\)-esima colonna di \(A\) per la \(i\)-esima riga di \(B\). Poiché ciascun addendo ha rango 1, questa lettura mostra che un prodotto di matrici è una somma di \(n\) matrici di rango 1 — ed è il germe dell'idea di approssimazione a basso rango: se molti addendi contribuiscono poco, si possono buttare via.
4.3 Matrice per set di colonne
Rappresentando \(B\) per colonne, \(C\) è l'affiancamento dei prodotti di \(A\) per ciascuna colonna di \(B\):
L'\(i\)-esima colonna di \(C\) è il prodotto di \(A\) per l'\(i\)-esima colonna di \(B\).
4.4 Set di righe per matrice
Simmetricamente, rappresentando \(A\) per righe:
L'\(i\)-esima riga di \(C\) è il prodotto della \(i\)-esima riga di \(A\) per \(B\). Vale la pena tenere a mente tutte e quattro: nelle dimostrazioni, scegliere la lettura giusta spesso riduce a due righe un conto che altrimenti richiede indici ovunque. Ne vedremo un esempio parlando di diagonalizzazione.
5. Trasposta, simmetria, traccia
- \((A^T)^T = A\)
- \((A + B)^T = A^T + B^T\)
- \((A \cdot B)^T = B^T \cdot A^T\)
- se esiste \(A^{-1}\), allora \((A^{-1})^T = (A^T)^{-1}\)
La terza proprietà, con l'inversione dell'ordine, è quella che si dimentica più spesso ed è responsabile di metà degli errori nei conti con i gradienti. Torneremo a usarla continuamente nella terza parte.
È facile dimostrare che per ogni \(A \in \mathbb{R}^{n \times n}\) la matrice \(A + A^T\) è simmetrica e \(A - A^T\) è antisimmetrica. Da qui segue una decomposizione che useremo subito:
ossia ogni matrice quadrata è somma di una parte simmetrica e di una antisimmetrica, in modo unico. L'insieme delle matrici simmetriche di ordine \(n\) si denota con \(\mathbf{S}^n\), e scrivere \(A \in \mathbf{S}^n\) significa che \(A\) è simmetrica \(n \times n\). Che le simmetriche siano importanti lo abbiamo anticipato nella prima parte: sono la controparte in coordinate delle forme bilineari simmetriche, cioè di una struttura che non dipende dalla base.
- \(\forall A \in \mathbb{R}^{n \times n} : \mathrm{tr}\, A = \mathrm{tr}\, A^T\)
- \(\forall A, B \in \mathbb{R}^{n \times n} : \mathrm{tr}(A + B) = \mathrm{tr}\, A + \mathrm{tr}\, B\)
- \(\forall A \in \mathbb{R}^{n \times n},\ \forall k \in \mathbb{R} : \mathrm{tr}(kA) = k\, \mathrm{tr}\, A\)
- ove \(AB\) sia quadrata: \(\mathrm{tr}\, AB = \mathrm{tr}\, BA\)
- ove \(ABC\) sia quadrata: \(\mathrm{tr}\, ABC = \mathrm{tr}\, CAB = \mathrm{tr}\, BCA\)
La proprietà ciclica è meno innocua di quanto sembri: permette di far ruotare i fattori dentro una traccia, ed è il trucco standard per riscrivere espressioni scalari in forma trattabile. Si noti che è una permutazione ciclica, non arbitraria: in generale \(\mathrm{tr}\, ABC \neq \mathrm{tr}\, ACB\).
6. Rango
Che i due numeri coincidano non è affatto ovvio: righe e colonne vivono in spazi di dimensione diversa (\(\mathbb{R}^n\) le une, \(\mathbb{R}^m\) le altre) e non c'è ragione a priori perché le loro ridondanze si corrispondano. Il rango è dunque una quantità intrinseca della matrice, e misura quante direzioni sopravvivono alla trasformazione: è, nel linguaggio della prima parte, la dimensione dell'immagine.
La seconda proprietà dice che moltiplicare non può aumentare il rango: l'informazione, una volta persa, non si recupera. È la ragione per cui in una rete neurale una sequenza di soli strati lineari, per quanto lunga, non può fare più di quanto faccia una sola matrice — servono le non linearità.
7. Inversa
Denotiamo con \(GL(n, \mathbf{K})\) l'insieme delle matrici quadrate invertibili di ordine \(n\) sul campo \(\mathbf{K}\).
Per l'ultima identità si abbrevia spesso \((A^{-1})^T\) con \(A^{-T}\). Si noti ancora una volta l'inversione dell'ordine nel prodotto, per la stessa ragione della trasposta: per disfare due operazioni applicate in sequenza bisogna disfarle a partire dall'ultima.
\(GL(n,\mathbf{K})\) non è vuoto, poiché \(I_n \in GL(n,\mathbf{K})\). È chiuso rispetto al prodotto: se \(A, B \in GL(n,\mathbf{K})\), allora \(AB\) è invertibile con \((AB)^{-1} = B^{-1}A^{-1}\). L'associatività è ereditata dal prodotto fra matrici, l'elemento neutro è \(I_n\) e l'inverso di ogni elemento esiste per definizione. \(\blacksquare\)
Con l'inversa possiamo finalmente risolvere \(Ax = b\), almeno formalmente:
8. Matrici ortogonali
Dalla definizione discende immediatamente la proprietà che rende queste matrici così comode:
Il conto è quello del punto 4.1: l'elemento \((i,j)\) di \(U^T U\) è il prodotto scalare della colonna \(i\) con la colonna \(j\), che vale 1 se \(i = j\) (normalizzazione) e 0 altrimenti (ortogonalità). In altre parole l'inversa di una matrice ortogonale è la sua trasposta: \(U^{-1} = U^T\). Invertire, che in generale è l'operazione più costosa, diventa gratuito.
- la somma dei quadrati degli elementi di ogni riga (colonna) di \(A\) è uguale a 1;
- la somma dei prodotti degli elementi di ogni riga (colonna) per quelli di un'altra riga (colonna) è zero.
Un'altra proprietà fondamentale è che moltiplicare per una matrice ortogonale non altera la norma euclidea: per ogni \(U \in \mathbb{R}^{n \times n}\) ortogonale e ogni \(x \in \mathbb{R}^n\),
Geometricamente, le trasformazioni ortogonali sono rotazioni e riflessioni: cambiano l'orientamento delle cose ma non le deformano. Numericamente, questo significa che non amplificano gli errori — motivo per cui gli algoritmi seri, dove possono, lavorano con matrici ortogonali.
9. Proiezione, range, nullspace
Le due definizioni della sezione 3 tornano qui: poiché \(Ax\) è la combinazione lineare delle colonne di \(A\) con coefficienti \(x\), l'insieme di tutti i possibili \(Ax\) è precisamente lo span delle colonne. Il range di \(A\) è dunque l'immagine dell'applicazione lineare \(f : \mathbb{R}^n \rightarrow \mathbb{R}^m\) associata ad \(A\), e la sua dimensione è il rango.
Quando \(A\) si riduce a una sola colonna \(a\), la formula si semplifica nella proiezione su una retta:
dove si riconosce al numeratore un prodotto esterno (una matrice di rango 1) e al denominatore un prodotto scalare. Nella terza parte ricaveremo la formula generale per via differenziale, derivando le equazioni normali dei minimi quadrati.
Mettendo insieme i pezzi si ottiene una delle relazioni più eleganti dell'algebra lineare: il nullspace di \(A\) e il range di \(A^T\) sono complementi ortogonali l'uno dell'altro, e insieme ricostruiscono tutto lo spazio di partenza:
Ogni vettore \(x \in \mathbb{R}^n\) si scompone dunque, in modo unico, in una parte che \(A\) annulla e una che \(A\) conserva. Le dimensioni si sommano a \(n\), e ritroviamo il teorema del rango visto nella prima parte.
10. Determinanti
Il determinante associa a ogni matrice quadrata un unico scalare che ne riassume una proprietà cruciale: se sia invertibile o no. La definizione classica è ricorsiva, per sviluppo di Laplace.
- se \(n = 1\), cioè \(A = (a_{11})\), si pone \(|A| = a_{11}\);
- se \(n \gt 1\), si suppone data la definizione per \(n-1\); si dice che \(a_{ij}\) è di posto pari se \(i+j\) è pari, di posto dispari se \(i+j\) è dispari;
- si definisce determinante di \(A\) la somma dei prodotti degli elementi di una riga (o colonna) arbitrariamente scelta per i rispettivi complementi algebrici.
- \(|A^T| = |A|\)
- Il determinante di una matrice diagonale è il prodotto degli elementi sulla diagonale principale; in particolare \(|I_n| = 1\).
- \(\forall A, B \in \mathbb{R}^{n \times n} : |AB| = |A||B| = |B||A|\)
- \(\forall A \in \mathbb{R}^{n \times n}\) non singolare: \(|A^{-1}| = 1/|A|\)
- \(|A| = 0\) se e solo se \(A\) è singolare, ossia non ha rango \(n\), e questo avviene se e solo se una qualsiasi riga (o colonna) è combinazione lineare delle altre.
- Se si scambiano fra loro due righe o due colonne di \(A\), si ottiene una matrice \(A'\) con \(|A'| = -|A|\).
- Se si moltiplica ogni elemento di una riga o colonna per uno scalare \(\lambda \in \mathbf{K}\), si ottiene \(A'\) con \(|A'| = \lambda |A|\).
- Condizione necessaria e sufficiente affinché \(p\) vettori \(v_1, \dots, v_p\) di \(\mathbf{E}\), con \(\dim \mathbf{E} = n\), siano linearmente indipendenti è che il determinante relativo a una qualsiasi base \(\mathbf{B} = (e_i)\) non sia nullo.
- Se tutti gli elementi di una riga (o colonna) sono somma di due addendi, allora \(|A| = |A'| + |A''|\), dove \(A'\) e \(A''\) si ottengono da \(A\) tenendo rispettivamente il primo o il secondo addendo e lasciando inalterate le altre righe o colonne.
- Se a una riga o colonna si aggiunge una combinazione lineare delle altre righe o colonne, il determinante non cambia.
La proprietà 3, la moltiplicatività, è quella meno intuitiva e più potente: il determinante trasforma prodotti di matrici in prodotti di numeri. La 10 è invece il fondamento dell'eliminazione di Gauss — permette di semplificare una matrice senza alterarne il determinante.
Sviluppando lungo la riga giusta si ottiene il determinante, sviluppando lungo quella sbagliata si ottiene zero. È esattamente la struttura di un'identità del tipo \(\delta_{ik}\), e infatti è quello che serve per dimostrare il teorema seguente.
(\(\Rightarrow\)) Se \(A \in GL(n,\mathbf{K})\), esiste \(A^{-1}\) con \(A \cdot A^{-1} = I_n\). Passando ai determinanti e usando la moltiplicatività, \(|A| \cdot |A^{-1}| = |I_n| = 1\), quindi \(|A| \neq 0\).
(\(\Leftarrow\)) Sia \(|A| \neq 0\) e consideriamo la matrice \(B\) definita da
$$b_{ij} = \frac{\Delta_{ji}}{|A|}$$
Mostriamo che \(AB = I_n = BA\). Posto \(C = AB\), con \(C = (c_{ik})_{i,k = 1 \dots n}\):
$$c_{ik} = \sum_{j=1}^n a_{ij} b_{jk} = \sum_{j=1}^n a_{ij} \frac{\Delta_{kj}}{|A|}$$
Se \(i = k\), la sommatoria \(\sum_{j=1}^n a_{ij}\Delta_{ij}\) è proprio lo sviluppo di Laplace lungo la riga \(i\), quindi vale \(|A|\) e \(c_{ii} = 1\). Se invece \(i \neq k\), la sommatoria \(\sum_{j=1}^n a_{ij}\Delta_{kj}\) mescola gli elementi di una riga con i cofattori di un'altra, e per il II teorema di Laplace vale 0, da cui \(c_{ik} = 0\).
Dunque \(c_{ik} = \delta_{ik}\), cioè \(AB = I_n\), e analogamente si verifica \(BA = I_n\). \(\blacksquare\)
In questa dimostrazione abbiamo implicitamente ricavato una formula esplicita per l'inversa a partire dall'aggiunta classica:
Formula elegante ma di scarso uso pratico — richiede il calcolo di \(n^2\) determinanti di ordine \(n-1\) — che però ci tornerà utile nella terza parte, quando calcoleremo il gradiente del determinante. Si noti anche che il determinante di una matrice ortogonale vale \(\pm 1\), coerentemente col fatto che rotazioni e riflessioni non alterano i volumi.
Matrici simili
La similitudine è il modo formale di dire "stessa trasformazione, coordinate diverse": \(P\) è la matrice di cambiamento di base, e \(B\) descrive la stessa applicazione lineare vista da un altro sistema di riferimento.
Riflessiva: \(I_n^{-1} A I_n = A\), quindi \(A \sim A\).
Simmetrica: se \(A \sim B\), esiste \(P\) con \(B = P^{-1} A P\), da cui \(P B P^{-1} = A\); posto \(Q = P^{-1}\), si ha \(A = Q^{-1} B Q\), cioè \(B \sim A\).
Transitiva: se \(A \sim B\) e \(B \sim C\), esistono \(P, Q\) con \(A = P^{-1} B P\) e \(B = Q^{-1} C Q\); sostituendo, \(A = P^{-1} Q^{-1} C Q P = (QP)^{-1} C (QP)\), cioè \(A \sim C\). \(\blacksquare\)
11. Forme quadratiche
Nella prima parte avevamo visto che una forma bilineare si scrive \(\varphi(x,y) = x^T A y\). Ponendo \(y = x\) si ottiene la forma quadratica, che è la generalizzazione a più dimensioni del polinomio di secondo grado \(ax^2\).
C'è una sottigliezza che vale la pena mettere in luce, perché spiega perché in questo contesto si assume quasi sempre \(A\) simmetrica: la parte antisimmetrica di \(A\) non contribuisce affatto al valore della forma.
Poiché \(x^T A x\) è uno scalare, coincide con la propria trasposta. Applicando \((ABC)^T = C^T B^T A^T\):
$$x^T A x = (x^T A x)^T = x^T A^T x$$
Ma \(A\) è antisimmetrica, cioè \(A^T = -A\), quindi \(x^T A^T x = -x^T A x\). Mettendo insieme le due relazioni si ottiene \(x^T A x = -x^T A x\), cioè \(2\, x^T A x = 0\) e quindi \(x^T A x = 0\). \(\blacksquare\)
Da qui segue il risultato annunciato. Decomponiamo \(A\) nella sua parte simmetrica e antisimmetrica:
Nella forma quadratica il secondo addendo dà contributo nullo per la proposizione appena dimostrata, e resta
ossia solo la parte simmetrica di \(A\) contribuisce alla forma quadratica. Assumere \(A\) simmetrica non è dunque una restrizione: è semplicemente eliminare una parte che non ha alcun effetto sul risultato.
- \(A\) si dice definita positiva se \(\forall x \in \mathbb{R}^n,\ x \neq 0 : x^T A x \gt 0\)
- \(A\) si dice semidefinita positiva se \(\forall x \in \mathbb{R}^n : x^T A x \geq 0\)
- \(A\) si dice definita negativa se \(\forall x \in \mathbb{R}^n,\ x \neq 0 : x^T A x \lt 0\)
- \(A\) si dice semidefinita negativa se \(\forall x \in \mathbb{R}^n : x^T A x \leq 0\)
- \(A\) si dice indefinita se non rientra in nessuno dei casi precedenti
La definitezza è la generalizzazione del segno di un numero, e regola tutto ciò che riguarda minimi e massimi: nella terza parte vedremo che una matrice hessiana definita positiva in un punto critico identifica un minimo, esattamente come \(f''(x) \gt 0\) nel caso a una variabile.
Supponiamo per assurdo che \(A\) non abbia rango \(n\). Allora una colonna di \(A\) è combinazione lineare delle altre \(n-1\):
$$a_j = \sum_{i \neq j} x_i a_i \qquad \text{per qualche } x_1, \dots, x_{j-1}, x_{j+1}, \dots, x_n \in \mathbb{R}$$
Ponendo \(x_j = -1\) otteniamo un vettore \(x\) non nullo tale che
$$Ax = \sum_{i=1}^n x_i a_i = 0$$
e quindi \(x^T A x = 0\) per un \(x \neq 0\). Ma allora \(A\) non può essere né definita positiva né definita negativa. Pertanto una matrice definita deve necessariamente avere rango \(n\), ed essere quindi invertibile. \(\blacksquare\)
Il perché si vede in una riga: \(x^T A^T A x = (Ax)^T(Ax) = \lVert Ax \rVert_2^2 \geq 0\). È il motivo per cui la matrice \((A^T A)^{-1}\) che compare nella formula dei minimi quadrati esiste ogni volta che \(A\) ha pieno rango.
12. Autovalori e autovettori
Arriviamo al cuore del capitolo. La domanda è: esistono direzioni che la trasformazione \(A\) non ruota, ma si limita a dilatare o contrarre?
Se \(x\) è autovettore e \(c \in \mathbb{C}\), allora \(A(cx) = cAx = c\lambda x = \lambda(cx)\), quindi anche \(cx\) è autovettore associato allo stesso autovalore. Un autovettore individua dunque una direzione, non un vettore specifico; per convenzione si sceglie quello di norma 1.
Una conseguenza immediata, che tornerà utilissima, riguarda le potenze: da \(Av = \lambda v\) segue \(A^2 v = A(\lambda v) = \lambda A v = \lambda^2 v\), e in generale
Lungo un autovettore, applicare \(A\) mille volte costa quanto elevare un numero alla millesima potenza. È l'osservazione da cui nasce tutto il resto della sezione.
Polinomio caratteristico
Riscriviamo la definizione come sistema omogeneo:
Il sistema ammette soluzioni non nulle se e solo se il nullspace di \(A - \lambda I_n\) non si riduce al solo vettore nullo, ossia se e solo se \(A - \lambda I_n\) è singolare, cioè se \(\det(A - \lambda I_n) = 0\). Altrimenti l'unica soluzione sarebbe \(x = 0\), che la definizione esclude.
La ricetta operativa segue: per calcolare gli autovalori si risolve l'equazione caratteristica; per ogni autovalore trovato si sostituisce in \((A - \lambda I_n)x = 0\) e si risolve il sistema lineare in \(x\) per ottenere i corrispondenti autovettori. Poiché il polinomio ha grado \(n\), sul campo complesso ci sono sempre \(n\) autovalori contati con molteplicità — ed è questa la ragione per cui la definizione è data su \(\mathbb{C}\) e non su \(\mathbb{R}\).
Essendo \(A\) e \(B\) simili, esiste \(P \in GL(n,\mathbf{K})\) con \(B = P^{-1}AP\). Osserviamo che anche \(\lambda I_n\) si può riscrivere come \(P^{-1}(\lambda I_n)P\), poiché l'identità commuta con tutto. Quindi
$$B - \lambda I_n = P^{-1}AP - P^{-1}(\lambda I_n)P = P^{-1}(A - \lambda I_n)P$$
Passando ai determinanti e sfruttando la moltiplicatività:
$$\det(B - \lambda I_n) = \det(P^{-1}) \det(A - \lambda I_n) \det(P) = \det(P^{-1}P) \det(A - \lambda I_n) = \det(A - \lambda I_n)$$
I due polinomi coincidono, quindi hanno le stesse radici. \(\blacksquare\)
Unendo gli ultimi due risultati si ottiene una conclusione importante: a un endomorfismo si può associare lo stesso polinomio caratteristico indipendentemente dalla base scelta. Gli autovalori non sono una proprietà della matrice, ma della trasformazione che la matrice rappresenta. Ecco perché sono così informativi: sopravvivono al cambiamento di coordinate.
- \(\mathrm{tr}\, A = \sum_{i=1}^n \lambda_i\)
- \(|A| = \prod_{i=1}^n \lambda_i\)
- Se \(A\) è invertibile e \(\lambda\) è autovalore di \(A\) con autovettore \(x\), allora \(\frac{1}{\lambda}\) è autovalore di \(A^{-1}\) con lo stesso autovettore associato.
- Gli autovalori di una matrice diagonale sono semplicemente gli elementi della diagonale principale.
- Se \(A\) è diagonalizzabile, il rango di \(A\) è pari al numero dei suoi autovalori non nulli.
Le prime due sono notevoli perché legano due quantità immediate da calcolare (traccia e determinante) alle radici di un polinomio che invece è difficile risolvere. La seconda in particolare chiarisce il legame con l'invertibilità: \(|A| = 0\) se e solo se almeno un autovalore è nullo, cioè se e solo se esiste una direzione che \(A\) schiaccia sullo zero.
Il teorema di min-max per le matrici simmetriche
Il risultato che segue caratterizza gli autovalori estremi di una matrice simmetrica come minimo e massimo della forma quadratica sulla sfera unitaria. È il ponte fra algebra lineare e ottimizzazione, e la dimostrazione — la più lunga di questa serie — merita di essere seguita per intero perché mostra il meccanismo all'opera.
- \(\forall x \in \mathbb{R}^n : m \lVert x \rVert^2 \leq x^T A x \leq M \lVert x \rVert^2\)
- \(m\) è il più piccolo autovalore di \(A\), \(M\) il più grande.
Esistenza di minimo e massimo. Denotiamo \(S = \{x \in \mathbb{R}^n : \lVert x \rVert = 1\}\). La funzione \(x^T A x = \sum_{i,j} a_{ij}x_i x_j\) è un polinomio in \(n\) variabili, quindi continua; \(S\) è chiuso e limitato in \(\mathbb{R}^n\), quindi compatto. Per il teorema di Weierstrass minimo e massimo esistono, e la tesi ha senso.
Punto 1. Sia \(x \in \mathbb{R}^n\). Se \(x = 0\) la catena di disuguaglianze è banale, perché tutti i membri sono nulli. Se \(x \neq 0\), il vettore \(x/\lVert x \rVert\) appartiene a \(S\), quindi per definizione di \(m\) e \(M\):
$$m \leq \left(\frac{x}{\lVert x \rVert}\right)^T A \left(\frac{x}{\lVert x \rVert}\right) = \frac{x^T A x}{\lVert x \rVert^2} \leq M$$
Moltiplicando per \(\lVert x \rVert^2 \gt 0\) si ottiene \(m \lVert x \rVert^2 \leq x^T A x \leq M \lVert x \rVert^2\), che è la tesi.
Punto 2, prima parte: ogni autovalore è compreso fra \(m\) e \(M\). Sia \(\lambda \in \mathbb{R}\) un autovalore di \(A\) (reale, perché \(A\) è simmetrica), con autovettore \(x \neq 0\), cioè \(Ax = \lambda x\). Allora
$$x^T A x = x^T \lambda x = \lambda \lVert x \rVert^2$$
e per il punto 1, dividendo per \(\lVert x \rVert^2\), si ha \(m \leq \lambda \leq M\).
Punto 2, seconda parte: \(m\) e \(M\) sono effettivamente autovalori. Consideriamo la funzione
$$F(x) = \frac{x^T A x}{\lVert x \rVert^2}, \qquad x \in \mathbb{R}^n \setminus \{0\}$$
che è un rapporto di polinomi con denominatore non nullo, quindi differenziabile. Per il punto 1 si ha \(F(x) \geq m\) ovunque, e per definizione di minimo esiste \(\dot v \in S\) con \(\lVert \dot v \rVert = 1\) tale che \(m = \dot v^T A \dot v = F(\dot v)\). Dunque \(\dot v\) è un punto di minimo assoluto — e quindi anche relativo — per \(F\), e in un punto di minimo relativo interno il gradiente si annulla:
$$\forall h = 1 \dots n : \quad \frac{\partial F}{\partial x_h}(\dot v) = 0$$
Calcoliamo la derivata parziale con la regola del quoziente:
$$\frac{\partial F}{\partial x_h}(x) = \frac{\lVert x \rVert^2 \frac{\partial}{\partial x_h}(x^T A x) - (x^T A x)\frac{\partial}{\partial x_h}\lVert x \rVert^2}{\lVert x \rVert^4}$$
Serve il numeratore. Isolando nella doppia sommatoria i termini che contengono \(x_h\):
$$\frac{\partial}{\partial x_h}(x^T A x) = \frac{\partial}{\partial x_h}\left[ \sum_{\substack{i,j \\ i,j \neq h}} a_{ij}x_i x_j + \sum_{j \neq h} a_{hj}x_h x_j + \sum_{i \neq h} a_{ih}x_i x_h + a_{hh}x_h^2 \right]$$
Il primo blocco non dipende da \(x_h\) e dà 0; restano
$$= \sum_{j \neq h} a_{hj}x_j + \sum_{i \neq h} a_{ih}x_i + 2 a_{hh}x_h \ \overset{(A \text{ simmetrica})}{=}\ 2 \sum_{i=1}^n a_{ih}x_i$$
Per l'altro pezzo, da \(\lVert x \rVert^2 = x_1^2 + \dots + x_n^2\) segue \(\frac{\partial}{\partial x_h}\lVert x \rVert^2 = 2x_h\). Sostituendo:
$$\frac{\partial F}{\partial x_h}(x) = \frac{2\lVert x \rVert^2 \sum_{i=1}^n a_{ih}x_i - 2(x^T A x)x_h}{\lVert x \rVert^4} = \frac{2}{\lVert x \rVert^2}\left[ \sum_{i=1}^n a_{ih}x_i - F(x)\, x_h \right]$$
Valutando in \(\dot v\), dove \(\lVert \dot v \rVert = 1\) e \(F(\dot v) = m\), e imponendo l'annullamento:
$$\frac{\partial F}{\partial x_h}(\dot v) = 2\left[ \sum_{i=1}^n a_{ih}\dot v_i - m\, \dot v_h \right] = 0 \quad \Rightarrow \quad \forall h : \sum_{i=1}^n a_{ih}\dot v_i = m\, \dot v_h$$
Le \(n\) uguaglianze scalari, messe insieme, sono esattamente l'equazione vettoriale
$$A \dot v = m \dot v$$
cioè \(m\) è autovalore di \(A\) con autovettore \(\dot v\). Lo stesso ragionamento applicato al punto di massimo mostra che anche \(M\) è autovalore. Poiché per la prima parte ogni autovalore sta fra \(m\) e \(M\), essi sono rispettivamente il minimo e il massimo. \(\blacksquare\)
Il risultato è notevole: cercare il massimo di una forma quadratica sulla sfera unitaria — un problema di ottimizzazione vincolata — equivale a trovare un autovalore, che è un problema algebrico. Nella terza parte ritroveremo lo stesso fatto per via lagrangiana, e lo vedremo comparire come principio dietro alla PCA.
- \(A\) è definita positiva \(\iff m \gt 0\)
- \(A\) è definita negativa \(\iff M \lt 0\)
È il corollario immediato del teorema di min-max: se il minimo della forma quadratica sulla sfera è positivo, la forma è positiva ovunque tranne che nell'origine. Verificare la definitezza si riduce così a guardare il segno degli autovalori.
13. Diagonalizzazione
Il teorema dice esattamente cosa significhi diagonalizzare: trovare un sistema di riferimento in cui la trasformazione si limita a scalare gli assi. Vediamo come si costruisce.
Il passaggio chiave usa la lettura 4.3 del prodotto. Posto \(V = [\,v_1 \ \dots \ v_n\,]\), moltiplicare \(A\) per \(V\) significa moltiplicare \(A\) per ciascuna colonna di \(V\):
Moltiplicando a destra per \(V^{-1}\) si ottiene \(A = V\Lambda V^{-1}\). Si noti come la scelta della lettura giusta del prodotto abbia ridotto tutto a due passaggi: con gli indici sarebbe stato un conto ben più laborioso.
In generale gli autovalori possono essere complessi, ma le matrici simmetriche reali si comportano molto meglio, e si decompongono con una matrice ortogonale:
dove \(Q\) è ortogonale e composta dagli autovettori di \(A\). Poiché per una matrice ortogonale l'inversa è la trasposta, la decomposizione diventa gratuita da invertire.
- tutti gli autovalori sono reali; li denotiamo con \(\lambda_1, \dots, \lambda_n\);
- esiste un insieme di autovettori \(u_1, \dots, u_n\) che costituiscono una base ortonormale di \(\mathbb{R}^n\), corrispondenti agli autovalori \(\lambda_i\);
- detta \(U\) la matrice le cui colonne sono tali autovettori, si ha \(A = U \Lambda U^T\).
Usando la lettura "matrice per set di colonne":
$$AU = A\,[\,u^1, \dots, u^n\,] = [\,Au^1, Au^2, \dots, Au^n\,] = [\,\lambda_1 u^1, \dots, \lambda_n u^n\,] = U\,\mathrm{diag}(\lambda_1, \dots, \lambda_n) = U\Lambda$$
Ricordando che per una matrice ortonormale vale \(U U^T = I\), si conclude:
$$A = A I_n = A U U^T = U \Lambda U^T \qquad \blacksquare$$
Questa rappresentazione di \(A\) come \(U \Lambda U^T\) è chiamata diagonalizzazione della matrice \(A\), e permette di trattare una matrice simmetrica come se fosse diagonale — cosa molto più semplice da capire e da calcolare.
Il cambio di base come cambio di prospettiva
Vale la pena vedere in dettaglio che cosa significhi operativamente. Una matrice ortonormale \(U\) definisce una base ortonormale di \(\mathbb{R}^n\): ogni \(x \in \mathbb{R}^n\) si scrive come combinazione lineare di \(u_1, \dots, u_n\) con opportuni coefficienti \(\hat x_1, \dots, \hat x_n\), cioè \(x = U \hat x\). Ma poiché \(U^T U = I\),
Il vettore \(\hat x = U^T x\) è dunque la rappresentazione di \(x\) rispetto alla base \(U\), e passare avanti e indietro fra le due rappresentazioni costa una moltiplicazione per \(U\) o per \(U^T\).
Moltiplicare a sinistra per \(A\) nello spazio originale equivale dunque a moltiplicare per la matrice diagonale \(\Lambda\) rispetto alla nuova base: nella base giusta, l'azione di \(A\) si riduce a scalare ciascuna coordinata per il proprio autovalore. Il vantaggio esplode con le potenze. Calcoliamo \(q = AAAx\):
I fattori \(U^T U\) si annullano a coppie e restano solo le potenze degli autovalori. Elevare una matrice alla \(k\)-esima potenza costa \(n\) elevamenti a potenza scalari invece di \(k\) moltiplicazioni matriciali. È la stessa idea che rende trattabili le catene di Markov e i sistemi dinamici lineari.
Nella base degli autovettori la forma quadratica perde tutti i termini misti e diventa una somma pesata di quadrati: \(n\) addendi invece dei \(n^2\) richiesti dal calcolo diretto \(x^T A x = \sum_{i,j} a_{ij}x_i x_j\). Da questa scrittura la caratterizzazione della definitezza diventa evidente.
- se \(\lambda_i \gt 0\) per ogni \(i\), allora \(A\) è definita positiva, poiché \(x^T A x = \sum_i \lambda_i \hat x_i^{\,2} \gt 0\) per ogni \(\hat x \neq 0\);
- se \(\lambda_i \geq 0\) per ogni \(i\), allora \(A\) è semidefinita positiva;
- analogamente se gli autovalori sono tutti negativi o tutti non positivi;
- se \(A\) ha sia autovalori positivi sia negativi, è indefinita.
Siano \(\lambda_i \gt 0\) e \(\lambda_j \lt 0\). Scegliamo \(\hat x\) con \(\hat x_i = 1\) e \(\hat x_k = 0\) per ogni \(k \neq i\): allora \(x^T A x = \sum_k \lambda_k \hat x_k^{\,2} = \lambda_i \gt 0\). Scegliendo invece \(\hat x_j = 1\) e le altre componenti nulle si ottiene \(x^T A x = \lambda_j \lt 0\). La forma assume dunque valori di entrambi i segni, cioè \(A\) è indefinita. \(\blacksquare\)
14. Decomposizione ai valori singolari (SVD)
La diagonalizzazione ha un limite: si applica solo a matrici quadrate, e per avere una base ortonormale di autovettori serve anche la simmetria. La SVD rimuove entrambe le restrizioni. Vale per qualsiasi matrice, anche rettangolare, e produce sempre due basi ortonormali.
L'idea è decomporre una matrice \(m \times n\) in tre componenti: una matrice unitaria a sinistra, una matrice diagonale al centro e una matrice unitaria a destra trasposta. Formalmente, data \(A \in \mathbb{R}^{m \times n}\), la sua SVD è
dove:
- \(U\) è una matrice unitaria \(m \times m\) le cui colonne sono gli autovettori sinistri di \(A\), cioè quelli che si ottengono dall'equazione \(v A = \lambda v\). Una matrice unitaria è tale che \(U U^* = I\), dove \(U^*\) è la trasposta coniugata di \(U\);
- \(D\) è una matrice diagonale \(m \times n\) contenente i valori singolari di \(A\);
- \(V\) è unitaria \(n \times n\) e contiene nelle colonne gli autovettori destri di \(A\), ottenuti da \(Av = \lambda v\).
La decomposizione ha una lettura geometrica pulita: ogni trasformazione lineare, per quanto complicata, è la composizione di una rotazione (\(V^T\)), una dilatazione lungo gli assi (\(D\)) e un'altra rotazione (\(U\)). Non c'è altro.
Come si calcola
- Calcolare \(A^T A\) e \(A A^T\). Questi prodotti sono matrici quadrate e simmetriche, quindi molto più maneggevoli dell'originale per il calcolo di autovalori e autovettori.
- Calcolare autovalori e autovettori di \(A^T A\) e \(A A^T\). Gli autovalori saranno i quadrati dei valori singolari di \(A\), e gli autovettori corrispondenti saranno i vettori singolari sinistri e destri.
- Calcolare i valori singolari. Sono le radici quadrate degli autovalori di \(A^T A\) (equivalentemente di \(A A^T\)), ordinati in senso decrescente.
- Costruire \(U\) e \(V\). Le colonne di \(U\) sono gli autovettori normalizzati di \(A A^T\); le colonne di \(V\) sono gli autovettori normalizzati di \(A^T A\).
- Costruire \(D\). È una matrice \(m \times n\) diagonale, con i valori singolari lungo la diagonale principale in ordine decrescente e zeri altrove, per far tornare le dimensioni.
Riassumendo il legame con la diagonalizzazione: i vettori singolari sinistri di \(A\) sono gli autovettori di \(A A^T\), i vettori singolari destri sono gli autovettori di \(A^T A\), e i valori singolari di \(A\) sono le radici quadrate degli autovalori di \(A^T A\). Il fatto che tutto funzioni non è casuale — abbiamo visto nella sezione 11 che \(A^T A\) è sempre semidefinita positiva, quindi i suoi autovalori sono non negativi e la radice quadrata esiste sempre.
15. Pseudo-inversa di Moore-Penrose
L'inversa non è definita per matrici non quadrate, ma spesso è proprio quello che ci servirebbe: risolvere \(Ax = y\) con \(A\) rettangolare. Se disponessimo di un'inversa sinistra \(B\), cioè tale che \(BA = I\), potremmo scrivere \(x = By\). Il problema è che non sempre esiste: se \(A\) ha più righe che colonne (sistema sovradeterminato) potrebbe non esserci alcuna soluzione, se ne ha meno (sottodeterminato) le soluzioni potrebbero essere infinite.
La pseudo-inversa di Moore-Penrose dà una risposta sensata in entrambi i casi ed è definita così:
Il termine \(\alpha I\) è una regolarizzazione che rende la matrice invertibile anche quando \(A^T A\) è singolare, e il limite la fa sparire. Nella pratica però non si calcola così, ma tramite la SVD:
dove \(U\) e \(V\) provengono dalla SVD di \(A\) e \(D^+\) è la pseudo-inversa della matrice diagonale \(D\), ottenuta prendendo il reciproco degli elementi non nulli di \(D\) e trasponendo il risultato. Se \(D\) ha valori singolari \(\sigma_1, \sigma_2, \dots, \sigma_r\), allora \(D^+\) è la matrice diagonale con elementi \(\frac{1}{\sigma_1}, \frac{1}{\sigma_2}, \dots, \frac{1}{\sigma_r}\), zeri fuori dalla diagonale, trasposta.
Il comportamento nei due casi problematici è esattamente quello che si vorrebbe:
- quando \(A\) ha più colonne che righe e le soluzioni sono infinite, \(x = A^+ y\) restituisce quella di norma euclidea \(\lVert x \rVert_2\) minima;
- quando \(A\) ha più righe che colonne e potrebbe non esistere alcuna soluzione, \(x = A^+ y\) restituisce l'\(x\) per cui \(Ax\) è il più vicino possibile a \(y\), misurando con \(\lVert Ax - y \rVert_2\).
Il secondo caso è precisamente il problema dei minimi quadrati, e infatti quando \(A\) ha pieno rango si ha \(A^+ = (A^T A)^{-1}A^T\), che ritroveremo nella terza parte per via differenziale.
Dove si va da qui
Abbiamo visto le matrici da vicino: le quattro letture del prodotto, il rango come misura dell'informazione conservata, il determinante come volume, e infine autovalori e valori singolari come strumenti per guardare dentro una trasformazione e capire in quali direzioni agisce e con quale intensità.
Manca un pezzo: la derivazione. Nella terza e ultima parte introduciamo il gradiente rispetto a una matrice e l'hessiana, calcoliamo le derivate delle forme lineari e quadratiche, deriviamo le equazioni dei minimi quadrati, e chiudiamo il cerchio ritrovando gli autovalori come soluzioni di un problema di ottimizzazione vincolata.
- Ottieni link
- X
- Altre app
Commenti
Posta un commento