Questo modulo esplora i concetti matematici e statistici fondamentali che costituiscono l'ossatura di molti algoritmi di Data Science e Machine Learning. Acquisire una solida comprensione di questi principi ti permetterà di non trattare gli algoritmi come "scatole nere", ma di comprenderne il funzionamento interno, le assunzioni sottostanti e le potenziali limitazioni.
2.1 – Vettori e Matrici: L'Algebra Lineare alla Base dei Dati 📐
L'algebra lineare fornisce il linguaggio formale e gli strumenti computazionali per rappresentare, manipolare e analizzare dati strutturati in forma numerica. È la lingua franca di quasi tutti gli algoritmi quantitativi utilizzati nella Data Science e nel Machine Learning.
Vettori
- Definizione Formale e Pratica:
- Matematicamente, un vettore è un elemento di uno spazio vettoriale, un insieme su cui sono definite le operazioni di somma vettoriale e prodotto per scalare, che soddisfano determinati assiomi.
- Nella pratica della Data Science, un vettore $\bm{v} \in \mathbb{R}^n$ è tipicamente rappresentato come una sequenza ordinata (array) di $n$ numeri reali (detti scalari o componenti): $\bm{v} = [v_1, v_2, \dots, v_n]^T$. La $T$ indica la trasposizione, convenzionalmente si considerano i vettori come vettori colonna.
- Può rappresentare:
- Le coordinate di un punto nello spazio $n$-dimensionale $\mathbb{R}^n$.
- Le features (caratteristiche misurate) di una singola osservazione o campione (es., l'età, l'altezza, il peso di una persona).
- Una direzione e una magnitudine nello spazio (es., la direzione del gradiente di una funzione, la velocità di un oggetto).
- Spazi Vettoriali e Basi:
- Lo spazio $\mathbb{R}^n$ è lo spazio vettoriale più comune in ML.
- Ogni vettore in $\mathbb{R}^n$ può essere espresso univocamente come combinazione lineare di un insieme di $n$ vettori linearmente indipendenti detti base. La base standard (o canonica) di $\mathbb{R}^n$ è formata dai vettori $\bm{e}_1 = [1, 0, \dots, 0]^T$, $\bm{e}_2 = [0, 1, \dots, 0]^T$, ..., $\bm{e}_n = [0, 0, \dots, 1]^T$. Le componenti $v_i$ di un vettore $\bm{v}$ sono i coefficienti di questa combinazione lineare: $\bm{v} = v_1 \bm{e}_1 + v_2 \bm{e}_2 + \dots + v_n \bm{e}_n$.
- Operazioni Fondamentali:
- Somma Vettoriale: Dati $\bm{u}, \bm{v} \in \mathbb{R}^n$, la loro somma è $\bm{w} = \bm{u} + \bm{v}$, dove $w_i = u_i + v_i$ per ogni $i=1, \dots, n$. Geometricamente (in $\mathbb{R}^2$ o $\mathbb{R}^3$), corrisponde alla "regola del parallelogramma" o alla concatenazione testa-coda dei vettori.
- Prodotto per Scalare: Dato $\bm{v} \in \mathbb{R}^n$ e uno scalare $c \in \mathbb{R}$, il prodotto è $\bm{z} = c\bm{v}$, dove $z_i = c v_i$ per ogni $i$. Geometricamente, scala la lunghezza del vettore $\bm{v}$ di un fattore $|c|$ e ne inverte la direzione se $c < 0$.
- Combinazione Lineare: Una combinazione lineare di vettori $\bm{v}_1, \dots, \bm{v}k$ con scalari $c_1, \dots, c_k$ è il vettore $\bm{w} = \sum{i=1}^{k} c_i \bm{v}_i$.
- Norma (Lunghezza o Magnitudine):
- Una norma $\|\cdot\|$ è una funzione che assegna una lunghezza non negativa a un vettore, soddisfacendo proprietà di positività, omogeneità e disuguaglianza triangolare. Misura la "grandezza" del vettore.
- Norma $L_2$ (Euclidea): La più comune, rappresenta la lunghezza geometrica standard del vettore (distanza dall'origine).
$$ \|\bm{v}\|2 = \sqrt{\sum{i=1}^{n} v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2} $$
- Norma $L_1$ (Manhattan): Somma dei valori assoluti delle componenti.
$$ \|\bm{v}\|1 = \sum{i=1}^{n} |v_i| $$
Spesso utilizzata in ML per promuovere la sparsità (indurre componenti nulle), come nella regolarizzazione Lasso.
- Norma $L_\infty$ (Massimo): Massimo valore assoluto tra le componenti.
$$ \|\bm{v}\|\infty = \max{i} |v_i| $$
- Distanza tra Vettori: La distanza euclidea tra due vettori $\bm{u}$ e $\bm{v}$ è definita come la norma $L_2$ della loro differenza: $d(\bm{u}, \bm{v}) = \|\bm{u} - \bm{v}\|_2$.
- Prodotto Scalare (Dot Product o Prodotto Interno):
- Dati $\bm{u}, \bm{v} \in \mathbb{R}^n$, il loro prodotto scalare (standard) è:
$$ \bm{u} \cdot \bm{v} = \bm{u}^T \bm{v} = \sum_{i=1}^{n} u_i v_i $$
- Proprietà Algebriche: È commutativo ($\bm{u} \cdot \bm{v} = \bm{v} \cdot \bm{u}$), distributivo rispetto alla somma, e bilineare. Inoltre, $\bm{v} \cdot \bm{v} = \|\bm{v}\|_2^2$.
- Interpretazione Geometrica: È legato all'angolo $\theta$ tra i due vettori:
$$ \bm{u} \cdot \bm{v} = \|\bm{u}\|_2 \|\bm{v}\|_2 \cos(\theta) $$
- Se $\bm{u} \cdot \bm{v} = 0$ (e $\bm{u}, \bm{v}$ non sono il vettore nullo), allora $\cos(\theta)=0$, quindi $\theta = 90^\circ$. I vettori sono ortogonali (perpendicolari).
- Se $\bm{u} \cdot \bm{v} > 0$, allora $\cos(\theta) > 0$, quindi $0^\circ \le \theta < 90^\circ$ (angolo acuto).
- Se $\bm{u} \cdot \bm{v} < 0$, allora $\cos(\theta) < 0$, quindi $90^\circ < \theta \le 180^\circ$ (angolo ottuso).
- Proiezione Vettoriale: La proiezione ortogonale del vettore $\bm{u}$ sulla direzione del vettore $\bm{v}$ (non nullo) è data da:
$$ \text{proj}_{\bm{v}} \bm{u} = \frac{\bm{u} \cdot \bm{v}}{\|\bm{v}\|_2^2} \bm{v} $$
Il coefficiente $\frac{\bm{u} \cdot \bm{v}}{\|\bm{v}\|_2}$ è la lunghezza (con segno) della proiezione.
- Similarità Coseno: Misura la similarità tra le direzioni di due vettori, indipendentemente dalla loro magnitudine. È ampiamente usata in NLP (word embeddings) e sistemi di raccomandazione.
$$ \text{similarity}(\bm{u}, \bm{v}) = \cos(\theta) = \frac{\bm{u} \cdot \bm{v}}{\|\bm{u}\|_2 \|\bm{v}\|_2} $$
Il valore è compreso tra -1 (direzioni opposte) e 1 (stessa direzione), con 0 che indica ortogonalità.
Matrici
- Definizione:
- Una matrice $A$ è una tabella rettangolare di scalari disposti in $m$ righe e $n$ colonne. Si dice che $A$ ha dimensione $m \times n$ e si scrive $A \in \mathbb{R}^{m \times n}$. L'elemento nella $i$-esima riga e $j$-esima colonna è denotato come $A_{ij}$ o $a_{ij}$.
- Un vettore colonna è una matrice $m \times 1$, un vettore riga è una matrice $1 \times n$.
- Interpretazione:
- Dataset: In ML, un dataset tabellare è comunemente rappresentato come una matrice $X \in \mathbb{R}^{N \times D}$, dove $N$ è il numero di campioni (righe) e $D$ è il numero di features (colonne). $X_{ij}$ è il valore della $j$-esima feature per l'$i$-esimo campione.
- Trasformazioni Lineari: Ogni matrice $A \in \mathbb{R}^{m \times n}$ definisce una trasformazione lineare $T: \mathbb{R}^n \rightarrow \mathbb{R}^m$ data da $T(\bm{x}) = A\bm{x}$. Questa trasformazione mappa vettori da $\mathbb{R}^n$ a $\mathbb{R}^m$. Moltiplicare un vettore $\bm{x}$ per una matrice $A$ equivale ad applicare la trasformazione lineare $T$ a $\bm{x}$. Esempi includono rotazioni, scalature (stretching/compressione), riflessioni, proiezioni e shear (taglio).
- Sistemi di Equazioni Lineari: Un sistema di $m$ equazioni lineari in $n$ incognite $x_1, \dots, x_n$ può essere scritto in forma matriciale compatta come $A\bm{x} = \bm{b}$, dove $A \in \mathbb{R}^{m \times n}$ è la matrice dei coefficienti, $\bm{x} \in \mathbb{R}^n$ è il vettore delle incognite, e $\bm{b} \in \mathbb{R}^m$ è il vettore dei termini noti.
- Parametri Modello: In reti neurali, i pesi che connettono i neuroni tra due layer adiacenti sono organizzati in matrici.
- Operazioni Fondamentali:
- Somma di Matrici: $C = A + B$, definita solo se $A, B$ hanno la stessa dimensione ($m \times n$). Si esegue elemento per elemento: $C_{ij} = A_{ij} + B_{ij}$.
- Prodotto per Scalare: $C = cA$, dove $c \in \mathbb{R}$. Si ottiene moltiplicando ogni elemento di $A$ per $c$: $C_{ij} = c A_{ij}$.
- Prodotto Matrici (Composizione di Trasformazioni): Se $A \in \mathbb{R}^{m \times p}$ e $B \in \mathbb{R}^{p \times n}$, il loro prodotto $C = AB$ è una matrice $C \in \mathbb{R}^{m \times n}$. L'elemento $C_{ij}$ è il prodotto scalare della $i$-esima riga di $A$ con la $j$-esima colonna di $B$:
$$ C_{ij} = (AB){ij} = \sum{k=1}^{p} A_{ik} B_{kj} $$
- Regola Fondamentale: Il numero di colonne della prima matrice ($p$) deve eguagliare il numero di righe della seconda matrice ($p$).
- Interpretazione: Se $A$ rappresenta la trasformazione $T_A$ e $B$ rappresenta $T_B$, allora la matrice prodotto $C=AB$ rappresenta la composizione delle trasformazioni $T_C(\bm{x}) = T_A(T_B(\bm{x}))$. Si applica prima $B$, poi $A$.
- Non Commutatività: In generale, $AB \neq BA$. L'ordine è cruciale.
- Operazioni Speciali e Tipi di Matrici:
- Trasposta ($A^T$): La trasposta di $A \in \mathbb{R}^{m \times n}$ è $A^T \in \mathbb{R}^{n \times m}$, ottenuta scambiando righe e colonne: $(A^T){ij} = A{ji}$.
- Proprietà: $(A^T)^T = A$, $(A+B)^T = A^T + B^T$, $(cA)^T = cA^T$, $(AB)^T = B^T A^T$.
- Matrice Quadrata: Una matrice con lo stesso numero di righe e colonne ($m=n$).
- Diagonale Principale: Gli elementi $A_{ii}$ di una matrice quadrata.
- Matrice Diagonale: Matrice quadrata con elementi non nulli solo sulla diagonale principale.
- Matrice Identità ($I$ o $I_n$): Matrice diagonale $n \times n$ con tutti 1 sulla diagonale principale ($I_{ii}=1$, $I_{ij}=0$ se $i \neq j$). È l'elemento neutro per il prodotto matriciale: $AI = A$ e $IA = A$.
- Matrice Simmetrica: Matrice quadrata tale che $A = A^T$ (cioè $A_{ij} = A_{ji}$). Le matrici di covarianza sono simmetriche.
- Matrice Inversa ($A^{-1}$): Definita solo per matrici quadrate $A$ che sono non singolari (o invertibili). L'inversa $A^{-1}$ è l'unica matrice tale che:
$$ AA^{-1} = A^{-1}A = I $$
- Permette di risolvere sistemi lineari $A\bm{x} = \bm{b}$: se $A$ è invertibile, la soluzione unica è $\bm{x} = A^{-1}\bm{b}$.
- Proprietà: $(A^{-1})^{-1} = A$, $(AB)^{-1} = B^{-1} A^{-1}$, $(A^T)^{-1} = (A^{-1})^T$.
- Nota Pratica: Calcolare direttamente l'inversa è spesso numericamente instabile e computazionalmente costoso. In pratica, per risolvere sistemi $A\bm{x}=\bm{b}$ o calcolare espressioni che coinvolgono inverse, si usano metodi numerici più robusti (es., decomposizione LU, QR, SVD, metodi iterativi).
- Determinante ($\det(A)$ o $|A|$): Uno scalare associato a una matrice quadrata $A$.
- Interpretazione Geometrica: Indica come la trasformazione lineare $T(\bm{x})=A\bm{x}$ scala il volume (o area in 2D). $|\det(A)|$ è il fattore di scala del volume. Il segno indica se l'orientamento dello spazio viene invertito ($\det(A)<0$).
- Invertibilità: Una matrice quadrata $A$ è invertibile (non singolare) se e solo se $\det(A) \neq 0$.
- Proprietà: $\det(AB) = \det(A)\det(B)$, $\det(A^T) = \det(A)$, $\det(A^{-1}) = 1/\det(A)$.
Applicazioni Cruciali in Machine Learning
- Rappresentazione Dati: Matrici $X$ per dataset.
- Regressione Lineare: Soluzione tramite Normal Equations: $\hat{\bm{\beta}} = (X^T X)^{-1} X^T \bm{y}$. Richiede prodotto matrice-matrice, trasposizione, e inversione (o soluzione di sistema lineare $(X^T X)\hat{\bm{\beta}} = X^T \bm{y}$).
- Reti Neurali: I pesi $W^{[l]}$ tra layer sono matrici. Il forward pass $ \bm{z}^{[l]} = W^{[l]} \bm{a}^{[l-1]} + \bm{b}^{[l]} $ è un'operazione matrice-vettore (o matrice-matrice se si processano più campioni in batch). La backpropagation calcola gradienti che sono anch'essi matrici.
- Principal Component Analysis (PCA): Si basa sull'analisi della matrice di covarianza dei dati $ \Sigma \approx \frac{1}{N} X^T X $ (se $X$ è centrato). Richiede il calcolo di autovalori e autovettori (eigendecomposizione) di $\Sigma$, che sono operazioni di algebra lineare. La Singular Value Decomposition (SVD) della matrice dati $X$ è un'alternativa robusta e generale.