Anomaly detection
In questa pagina 9
In questa pagina 5
Dopo l'apprendimento supervisionato si passa a quello non supervisionato: in questa nota il rilevamento di anomalie, nella successiva il clustering (Clustering e k-meansIl clustering raggruppa osservazioni simili senza etichette, come preprocessing (un modello per ogni cluster) o come obiettivo (segmentazione clienti, organizzazione di documenti). K-means: si sceglie $K$, si inizializzano $K$ centroidi, si alterna assegnazione di ogni punto al centroide più vicino e aggiornamento di ogni centroide alla media dei suoi punti, fino a convergenza; minimizza $\mathrm{MSE}{\text{within}}=\frac1N\sum_k\sum{x_i\in C_k}|x_i-\mu_k|^2$ ma solo fino a un minimo locale, quindi dipende dall'inizializzazione. Il numero di cluster si sceglie col metodo del gomito (la dispersione cala sempre, si cerca dove rallenta) o con la gap statistic $\mathrm{Gap}(K)=E[\log W_K^{ref}]-\log W_K$ (si prende il più piccolo $K$ con $\mathrm{Gap}(K)\ge\mathrm{Gap}(K+1)-s_{K+1}$). Il clustering gerarchico agglomerativo parte da un cluster per punto e fonde i due più vicini (linkage single, complete, average, Ward) costruendo un dendrogramma; quello divisivo parte da un solo cluster. Programma di Telecomunicazioni: clustering.Clustering e k-means →). Gli esercizi sono Esercizio - Statistica T2 di Hotelling e soglia chi quadro e Esercizio - Isolation forest da zero e anomalie sul dataset delle abitazioni.
Apprendimento non supervisionato
Si ricordi la differenza (Introduzione al machine learningIl machine learning (ML) è la parte dell'intelligenza artificiale che costruisce soluzioni a partire dai dati e non da regole scritte a mano: un modello matematico con parametri liberi viene addestrato su esempi storici e poi usato su dati nuovi. Si distingue tra apprendimento supervisionato (dati $(x,y)$, si impara la mappa $x\mapsto y$: regressione se $y$ è un numero, classificazione se è una categoria), non supervisionato (solo $x$, si cercano struttura e gruppi) e per rinforzo (stato, azione, ricompensa). Un progetto ML non è «plug and play»: segue le fasi problema, raccolta, pulizia, modellazione, rilascio, e va valutato su dati mai visti; senza dati non c'è modello, alcuni fenomeni sono imprevedibili, la generalizzazione fuori dal dominio di addestramento non è garantita.Introduzione al machine learning →): nell'apprendimento supervisionato i dati sono coppie e si impara la mappa ; nel non supervisionato si hanno solo gli ingressi , senza etichette, e il compito è scoprire la struttura o la distribuzione sottostante dei dati. Alcuni compiti non supervisionati: clustering (trovare gruppi), riduzione di dimensione (Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →), stima di densità, regole di associazione, topic modelling per testi, rilevamento di anomalie. Un compito non supervisionato può essere l'obiettivo finale del progetto o un passo di preprocessing.
Che cos'è un'anomalia
Definizione (anomalia o outlier). «Un outlier è un'osservazione che si discosta così tanto dalle altre da destare il sospetto di essere stata generata da un meccanismo diverso» (Hawkins, 1980). In un dataset, per definizione, gli outlier dovrebbero essere pochi.
Esempio. Un sensore di temperatura che segna gradi invece di per un guasto del sensore.
Perché rilevare le anomalie
- Preprocessing (pulizia). Gli outlier possono essere errori di inserimento o di misura che distorcono i risultati; toglierli può migliorare molto le prestazioni. Va fatto con attenzione, perché togliere i dati «difficili» migliora sempre le metriche.
- Ha senso (non è barare): (i) sono errori o rumore (sensore guasto, «2000» al posto di «200»); (ii) si prepara il dato per un modello che assume la normalità, e la regressione lineare (Regressione lineareNell'apprendimento supervisionato si impara una funzione $F(x)$ dagli esempi $(x,y)$: regressione se $y$ è continua, classificazione se è categorica. Il modello lineare è $F_\beta(x)=\beta_0+\beta_1x_1+\dots+\beta_px_p=X\beta$ (con una colonna di uni per $\beta_0$) e i parametri si scelgono minimizzando l'errore quadratico medio $\mathrm{MSE}=\frac1n\sum_i(y_i-F_\beta(x_i))^2$, funzione convessa dei parametri. Annullando il gradiente di $J(\beta)=|y-X\beta|^2$ si ottengono le equazioni normali $X^TX\beta=X^Ty$ e la soluzione dei minimi quadrati ordinari $\beta=(X^TX)^{-1}X^Ty$. Il coefficiente di determinazione $R^2=1-SS_{res}/SS_{tot}$ misura la qualità del fit (0 = come la media, negativo = peggio della media). Un modello va valutato su un test set mai usato per addestrare: l'errore sul training è ottimistico e un polinomio di grado alto lo azzera senza generalizzare.Regressione lineare →) è molto influenzata dai valori estremi; (iii) si analizza il comportamento «tipico» (acquisto medio di un cliente).
- È barare: (i) si tolgono solo per migliorare le metriche (per esempio togliendo i casi difficili dal test set: è fuga di informazione); (ii) gli outlier sono proprio ciò che interessa (frodi, diagnosi, guasti): toglierli annulla lo scopo. La decisione non è sempre facile: può servire la competenza di dominio e conviene tenere traccia delle scelte fatte.
- Obiettivo finale. In molti ambiti il rilevamento è l'obiettivo: frodi, diagnostica di produzione industriale, cybersicurezza, transazioni nel marketing digitale.
- Monitoraggio di una soluzione in produzione. Un modello distribuito va controllato: i dati devono rimanere coerenti con quelli dell'addestramento. Se compaiono outlier, si può non fidarsi della singola previsione o riaddestrare (principi di MLOps).
Metodi semplici
Box plot. Gli outlier sono i punti oltre i «baffi», cioè oltre da e (Correlazione e visualizzazione dei datiLa correlazione di Pearson $r=\sum(X_i-\bar X)(Y_i-\bar Y)/\big(\sqrt{\sum(X_i-\bar X)^2}\sqrt{\sum(Y_i-\bar Y)^2}\big)\in[-1,1]$ misura la relazione lineare tra due variabili (covarianza divisa per le deviazioni standard); correlazione non implica causalità. Serve a capire quali variabili contano per il target e a eliminare quelle quasi duplicate (|r| molto alto). Gli indicatori di sintesi non bastano (quartetto di Anscombe, Datasaurus): vanno affiancati ai grafici: istogramma, KDE, box plot, violin plot, heatmap di correlazione, scatter plot e matrice di scatter plot.Correlazione e visualizzazione dei dati →, Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →).
Carte di controllo univariate. Molto usate in industria per il monitoraggio on-line. Una carta di controllo è il grafico nel tempo di una variabile (o di un indicatore di processo, KPI) con una linea centrale (la media attesa del processo) e due soglie, il limite di controllo superiore (UCL) e inferiore (LCL), che definiscono l'intervallo «normale»: con media e deviazione standard stimate. Con («tre sigma») e una variabile gaussiana (Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →) il dei dati è «inlier» (cioè ).
Esempio. , : , ; la misura è un'anomalia.
Da dove viene il (passaggi). Se si standardizza (Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →, Funzioni di una variabile aleatoriaPer trovare la legge di Y = g(X) si calcola la FdD: F_Y(y) = P(g(X) ≤ y) = P(X ∈ g⁻¹((−∞, y])), poi si deriva; se g è strettamente monotona e derivabile vale la formula f_Y(y) = f_X(g⁻¹(y)) · |(g⁻¹)'(y)|; se g è costante a tratti Y è discreta; se g non è iniettiva (es. X²) si spezza l'evento.Funzioni di una variabile aleatoria →). L'evento equivale a , quindi , usando la simmetria (Funzione di distribuzioneLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione →). Con si ha . La probabilità di un falso allarme (punto normale fuori dai limiti) è , cioè in media campione su . Con la copertura sarebbe ( falso allarme su campioni), con solo : più è piccolo, più si rilevano anomalie vere ma più falsi allarmi si ricevono. Nell'esempio, la misura dista : la probabilità di un valore così lontano per caso è .
Grafico interattivo: Carta di controllo a tre sigma: la densità normale standard con l'area tra −3σ e +3σ (99,73% dei dati normali) e i limiti LCL e UCL; ciò che cade fuori (0,27%) è dichiarato anomalo
Problemi. Con molte variabili servono molte carte: la complessità del monitoraggio cresce, c'è sovraccarico cognitivo e falsi allarmi. E soprattutto le carte univariate non vedono le anomalie multivariate, in cui ogni variabile è nella norma ma la combinazione no.
Statistica di Hotelling
Definizione (statistica di Hotelling). Per variabili, con media campionaria e matrice di covarianza : È uno z-score multivariato: misura quanto un'osservazione è lontana dalla media tenendo conto delle correlazioni. Un punto è un outlier multivariato se .
Perché proprio (idea). Nel caso di una variabile è il quadrato dello z-score (Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →): la distanza dalla media misurata in deviazioni standard. Con variabili la «deviazione standard» diventa la matrice di covarianza (Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione →: sulla diagonale le varianze, fuori le covarianze), e dividere per diventa moltiplicare per l'inversa (Matrice inversaL'inversa di una matrice quadrata A è la matrice A⁻¹ con A A⁻¹ = A⁻¹ A = I; esiste se e solo se rango(A) = n e si calcola con Gauss-Jordan riducendo (A | I) fino a (I | A⁻¹).Matrice inversa →). Se le variabili sono indipendenti con varianze , è diagonale e : la somma dei quadrati degli z-score, con ogni variabile pesata per la propria scala. Con correlazioni, corregge anche per esse.
Per dati gaussiani, segue una distribuzione chi-quadro con gradi di libertà (Vettori gaussianiX = (X₁, ..., Xₙ) è un vettore gaussiano N(m, Σ) se ogni combinazione lineare a·X è gaussiana (equivalentemente X = m + AZ con Z gaussiane standard indipendenti); se Σ è invertibile ha densità exp(−½(x−m)ᵀΣ⁻¹(x−m)) / √((2π)ⁿ det Σ). Proprietà chiave: AX + b ~ N(Am + b, AΣAᵀ), le marginali sono gaussiane e componenti non correlate sono indipendenti.Vettori gaussiani →; il chi-quadro è un caso della Distribuzione gammaΓ(α, λ) ha densità λ^α x^(α−1) e^(−λx) / Γ(α) per x > 0, dove Γ(α) = ∫ x^(α−1) e^(−x) dx è la funzione Gamma (Γ(n) = (n − 1)!, Γ(1/2) = √π); media α/λ, varianza α/λ²; Γ(1, λ) = Exp(λ), e la somma di n esponenziali Exp(λ) indipendenti è Γ(n, λ), il tempo d'attesa dell'n-esimo evento.Distribuzione gamma →), e dove è il numero di variabili e quanto si vuole essere severi (valori tipici o ): è il quantile di livello del chi-quadro, che si legge su tabelle.
Esempio. Quantili: per e , (uguale a ); per : () e (); per : . Caso univariato: con media e varianza la statistica è : nel laboratorio, per valori da il punto ha , ben oltre : anomalo.
Esempio bidimensionale. Si abbiano due variabili con media , varianze e covarianza : . L'inversa (Matrice inversaL'inversa di una matrice quadrata A è la matrice A⁻¹ con A A⁻¹ = A⁻¹ A = I; esiste se e solo se rango(A) = n e si calcola con Gauss-Jordan riducendo (A | I) fino a (I | A⁻¹).Matrice inversa →) ha determinante e vale . Per il punto si ha . Poiché il punto è un outlier, anche se ciascuna coordinata, presa da sola, vale cioè è entro una deviazione standard: le due variabili sono molto correlate e vederle di segno opposto è insolito. La distanza euclidea normale darebbe invece .
Grafico interattivo: Con correlazione 0,8 e varianze 1, la regione «normale» T² ≤ 5,99 (α = 0,05) è un'ellisse allungata lungo la diagonale: il punto (1, −1) è fuori (T² = 10) anche se ogni coordinata è entro 1σ; il punto (2, 2) è dentro (T² = 4,4) anche se ogni coordinata è a 2σ
(Per : .)
Perché l'ellisse è allungata lungo la diagonale (autovalori). La regione è , un'ellisse i cui assi sono gli autovettori di (Autovalori e autovettoriUn autovettore è un vettore non nullo che una funzione lineare manda in un suo multiplo; si trovano gli autovalori come radici del polinomio caratteristico det(A − λI) e gli autovettori come nucleo di A − λI. Matrici simili hanno gli stessi autovalori.Autovalori e autovettori →, Teorema spettrale e forme quadraticheUna funzione lineare è simmetrica se f(v)·w = v·f(w); in una base ortonormale ha matrice simmetrica. Teorema spettrale: f è simmetrica se e solo se esiste una base ortonormale di autovettori, cioè A simmetrica ⇔ PᵀAP diagonale con P ortogonale. Applicato alle forme quadratiche, permette di scriverle come somma di quadrati con gli autovalori come coefficienti.Teorema spettrale e forme quadratiche →: è simmetrica, quindi gli autovettori sono ortogonali). Qui :
- equazione caratteristica , quindi e , ;
- autovettore di : dà , (la diagonale); per : (l'antidiagonale);
- lungo un autovettore di con autovalore vale , quindi un punto ha (distanza al quadrato divisa per la varianza in quella direzione). La semilunghezza dell'ellisse è allora : con , lungo la diagonale e lungo l'antidiagonale. Per i punti dell'esempio: sta sulla diagonale a distanza , ; sta sull'antidiagonale a distanza , . Il grafico mostra gli assi dell'ellisse.
Limiti. Le variabili reali sono raramente gaussiane e raramente unimodali (con un solo picco): nei dati industriali reali spesso molte anomalie restano non rilevate perché la nube ha più gruppi o forme non ellittiche.
Rilevamento multivariato non supervisionato
I metodi multivariati non supervisionati producono un anomaly score: un unico indicatore quantitativo del grado di «anomalia» di un sistema con molte variabili. Vantaggi: (1) non servono dati etichettati; (2) si possono considerare decine o centinaia di variabili insieme; (3) non serve che i dati siano gaussiani o unimodali. Famiglie di metodi (per dati tabellari, per esempio nella libreria PyOD): basati sulla densità (LOF, DBSCAN), sulla distanza (k-NN, Classificazione e k-nearest neighborsNella classificazione l'uscita $y$ è una categoria (con $C$ classi; $C=2$ è il caso binario). Il classificatore più semplice è il k-nearest neighbors: una nuova osservazione prende la classe più frequente (voto di maggioranza) tra i suoi $k$ vicini più prossimi nel training, con distanza euclidea $\sqrt{\sum(A_i-B_i)^2}$ o di Manhattan $\sum|A_i-B_i|$ (per la regressione si fa la media dei vicini). $k$ è un iperparametro: $k$ piccolo dà bordi frastagliati e overfitting, $k$ grande underfitting. È un metodo basato su istanze e «pigro» (nessun addestramento, costo alla predizione), sensibile a scala e feature irrilevanti e alla maledizione della dimensionalità; gli ingressi categorici si codificano con one-hot. Approfondimento: non nel programma di Telecomunicazioni.Classificazione e k-nearest neighbors →), sul clustering (CBLOF), su reti neurali (autoencoder, Autoencoderapprofondimento: non nel programma di Telecomunicazioni. Un autoencoder è una rete non supervisionata che impara a ricostruire il proprio ingresso passando per un collo di bottiglia: encoder $z=e(x)$ (dimensione bassa), decoder $\hat x=d(z)$, loss $|x-d(e(x))|^2$. Con attivazioni lineari equivale alla PCA; con non linearità impara rappresentazioni latenti più ricche (ipotesi del manifold). Varianti: sparse (penalità $\ell_1$ sulle attivazioni), denoising (ingresso corrotto, bersaglio pulito), convolutivi (inpainting). Anomaly detection: si addestra su dati normali e si segnala come anomalo ciò che ha errore di ricostruzione sopra una soglia. VAE: l'encoder produce media e deviazione standard di una gaussiana, il campione si ottiene con il trucco di riparametrizzazione $z=\mu+\sigma\odot\zeta$, $\zeta\sim\mathcal N(0,I)$, e la loss è errore di ricostruzione più KL verso $\mathcal N(0,I)$, con $KL=\frac12\sum(\mu^2+\sigma^2-1-\ln\sigma^2)$; il $\beta$-VAE pesa il KL con $\beta>1$ per rappresentazioni disaccoppiate. Cenno ai GAN.Autoencoder →), e l'isolation forest.
Isolation forest
L'isolation forest (Liu et al.) è un algoritmo efficiente che supera altri metodi in molti ambiti. Si basa su un procedimento di partizione (che costruisce gli isolation tree) e sull'idea che outlier e inlier siano influenzati in modo diverso: un punto anomalo, lontano dagli altri, viene separato con pochi split casuali; un punto in una zona densa ne richiede molti. È un metodo ensemble (Metodi ensemble - bagging, random forest e boostingUn albero da solo ha varianza alta; un ensemble combina molti modelli deboli. Bagging: ogni albero è addestrato su un campione bootstrap (n estrazioni con rimpiazzo, circa il 63% di campioni distinti) e si vota o si fa la media: riduce la varianza, perché la media di $T$ stimatori con varianza $\sigma^2$ e correlazione $\rho$ ha varianza $\rho\sigma^2+(1-\rho)\sigma^2/T$. Random forest = bagging + a ogni split solo $\sqrt p$ feature casuali (alberi meno correlati); l'importanza di una feature è la somma delle riduzioni di Gini pesate sui nodi in cui è usata. Boosting: alberi in sequenza, ciascuno corregge gli errori dei precedenti, e si riduce il bias. Gradient boosting: $F\leftarrow F+\eta h$ con $h$ albero sui residui (gradiente negativo della perdita), $\eta$ piccolo; AdaBoost: stump e pesi sui campioni sbagliati; XGBoost: similarity score $\frac{(\sum r)^2}{N+\lambda}$, gain, potatura con $\gamma$, output $\frac{\sum r}{N+\lambda}$. Programma di Telecomunicazioni: Random Forests; boosting come approfondimento.Metodi ensemble - bagging, random forest e boosting →): lo score è la media della profondità su molti alberi.
Esempio (dalle slide). Isolare un inlier in mezzo ai dati richiede 4 split; isolare un outlier isolato in un angolo, 1 solo.
L'albero di isolamento
Si costruisce un albero binario in modo ricorsivo su un sottoinsieme dei dati:
- a ogni nodo si sceglie a caso una feature e a caso un valore di split tra il minimo e il massimo di quella feature nei dati del nodo;
- si ferma quando il nodo ha un solo punto, oppure si raggiunge la profondità massima (di solito con la dimensione del campione), oppure tutti i punti sono uguali.
Ogni cammino dalla radice a una foglia isola un punto: la profondità della foglia, cioè il numero di split necessari, misura quanto il punto è facile da isolare.
Perché tanta casualità. L'obiettivo non è apprendere un modello preciso ma separare le anomalie dal resto in fretta. (1) Le anomalie sono rare e molto diverse: gli split casuali le isolano presto (a poca profondità). (2) Non servono split «buoni» come nei decision tree (Gini, entropia): conta solo quanti split servono per isolare un punto, quindi il caso va bene, anzi è ideale. (3) Mediare su molti alberi con split casuali diversi rende la stima robusta. La scelta casuale della feature evita bias ed esplora tutte le dimensioni; quella casuale del valore semplifica e accelera.
Un esempio in una dimensione, con i numeri. Cinque valori e split uniforme tra il minimo e il massimo dei punti del nodo, cioè in al primo passo (ampiezza ). Il punto è isolato al primo split se la soglia cade in , che ha ampiezza : probabilità (Distribuzioni uniforme continua ed esponenzialeU(a, b) ha densità costante 1/(b − a) su [a, b], media (a + b)/2 e varianza (b − a)²/12; Exp(λ) ha densità λe^(−λx) per x ≥ 0, FdD 1 − e^(−λx), P(X > t) = e^(−λt), media 1/λ, varianza 1/λ², ed è l'unica legge continua senza memoria (versione continua della geometrica).Distribuzioni uniforme continua ed esponenziale →: la soglia ha densità uniforme, quindi la probabilità è la lunghezza dell'intervallo diviso per ). Il punto si isola subito solo se la soglia cade in : probabilità . Su simulazioni la profondità media (numero di split per isolare il punto) è per il punto , per , per , per , per : l'anomalia ha profondità circa tre volte più piccola di quelle dei punti centrali. Gli estremi della nube sono più facili da isolare dei punti centrali, ma il valore , lontano dagli altri, lo è molto di più.
Passi dell'algoritmo
- Sottocampionare: da tutto il dataset si estrae a caso un sottoinsieme (per esempio punti): riduce il costo e migliora la generalizzazione.
- Costruire un albero per ciascun sottocampione con le regole sopra.
- Ripetere per costruire una foresta (tipicamente alberi), ciascuno su un campione diverso.
- Calcolare le lunghezze dei cammini: ogni punto del dataset originale è fatto scendere in tutti gli alberi e si registra la profondità raggiunta.
- Calcolare l'anomaly score. Per il punto , con la lunghezza media del cammino su tutti gli alberi:
è la lunghezza media di una ricerca senza successo in un albero binario di ricercaAlbero binario di ricerca come albero binario proprio con entry nei nodi interni e foglie vuote; inorder crescente; TreeSearch; get, put e remove (due casi, con predecessore inorder) in Theta(h); altezza fino a n-1; esempi di inserimenti; alberi aumentati con campi size e max e algoritmi di conteggio e interrogazione in O(h).Alberi binari di ricerca → con nodi: è la lunghezza attesa di un cammino in un albero con punti e serve a normalizzare, perché un cammino breve in un dataset piccolo non è uguale a uno breve in un dataset grande. Perché proprio questa analogia: un isolation tree divide i dati con soglie casuali come un albero di ricerca costruito inserendo i punti in ordine casuale, e arrivare a una foglia corrisponde a cercare un valore che non c'è. Controlli sui valori piccoli: (con due punti serve un solo split); . La somma armonica cresce come (Serie notevoli - geometrica, telescopica, armonicaLe serie di cui si conosce il carattere e da usare come termine di paragone: geometrica (converge a 1/(1-q) se |q|<1), telescopiche (somma b_1 - lim b_n, come Mengoli), armonica generalizzata (1/n^alpha converge se e solo se alpha>1).Serie notevoli - geometrica, telescopica, armonica →): quindi cresce lentamente, e per questo con soli punti per albero il cammino medio è circa , non . L'esponente e la base servono a mettere lo score tra e : dà .
Costo. Ogni albero ha profondità al più (con punti nel campione, quindi livelli) e ogni livello tocca al più punti, quindi un albero costa e la foresta di alberi (Notazione asintoticaDefinizioni di O, Omega, Theta e o piccolo con le costanti c ed n0; esempi con costanti esplicite; proprietà (polinomi, esponenziali, logaritmi, somme, implicazioni tra notazioni); sommatorie notevoli; terminologia (logaritmica, lineare, polinomiale, esponenziale).Notazione asintotica →, Complessità in tempo e caso pessimoPerché lo studio sperimentale non basta; complessità al caso pessimo come massimo sul numero di operazioni tra le istanze di una data taglia; stima con limiti superiore e inferiore senza trovare l'istanza peggiore; esempi arrayMax, prefixAverages e InsertionSort; efficienza asintotica e limiti dell'analisi.Complessità in tempo e caso pessimo →): non dipende dal numero di punti del dataset, a differenza dei metodi basati su distanze come il k-NN (Classificazione e k-nearest neighborsNella classificazione l'uscita $y$ è una categoria (con $C$ classi; $C=2$ è il caso binario). Il classificatore più semplice è il k-nearest neighbors: una nuova osservazione prende la classe più frequente (voto di maggioranza) tra i suoi $k$ vicini più prossimi nel training, con distanza euclidea $\sqrt{\sum(A_i-B_i)^2}$ o di Manhattan $\sum|A_i-B_i|$ (per la regressione si fa la media dei vicini). $k$ è un iperparametro: $k$ piccolo dà bordi frastagliati e overfitting, $k$ grande underfitting. È un metodo basato su istanze e «pigro» (nessun addestramento, costo alla predizione), sensibile a scala e feature irrilevanti e alla maledizione della dimensionalità; gli ingressi categorici si codificano con one-hot. Approfondimento: non nel programma di Telecomunicazioni.Classificazione e k-nearest neighbors →), che costano per confrontare tutte le coppie. La profondità è quella di un albero binario bilanciato con foglie (Alberi binariAlbero binario e albero binario proprio; interfaccia; relazioni tra nodi, foglie e altezza (m = n-m+1, h+1 <= m <= 2^h, 2h+1 <= n <= 2^(h+1)-1) con dimostrazioni; visita inorder; parse tree e valutazione di espressioni; heightSum come esempio di calcolo di un'informazione più ricca.Alberi binari →).
Esempio. Con : . Se un punto ha cammino medio (cioè «medio»), . Per : (quasi anomalo); per : ; per : . In generale: se (isolato subito: anomalia certa), se (punto «normale»), se è molto maggiore di (in zone molto dense).
Grafico interattivo: Anomaly score s = 2^(−E/c(n)) in funzione della lunghezza media del cammino E, con n = 256 (c = 10,25): cammini brevi danno score vicino a 1 (anomalie), E = c(n) dà 0,5
- Soglia. Un punto è dichiarato anomalo se . Un modo per ricavare è la contaminazione: una proporzione (tra e , di solito) che indica la frazione attesa di outlier nel dataset. La soglia è il percentile degli score di training: con contaminazione il dei punti con score più alto è dichiarato anomalo. La contaminazione è una manopola tra falsi positivi (punti normali dichiarati anomali) e falsi negativi (anomalie non segnalate).
Esempio (verificato con un'implementazione da zero). punti gaussiani standard in 2D più punti molto lontani (, , , , ). Con alberi e profondità massima i cammini medi dei cinque punti iniettati valgono tra e (contro per il punto mediano), e i loro score - superano quello di ogni punto normale (massimo , mediana ): i cinque punti sono i primi cinque nella classifica.
Correzione della profondità. Se si ferma un albero alla profondità massima con più punti nel nodo, la profondità si corregge sommando : . Il nodo con un solo punto ha . (Nel notebook, per comodità, è approssimata con , : per dà invece di , per piccoli è meno precisa: esatta e approssimata, e per si pone .)
Esempi e limiti
Nel laboratorio, sul dataset delle abitazioni della California con due variabili (MedInc, AveRooms), la foresta da zero segnala i punti con valori estremi. Per valutare senza etichette si possono iniettare anomalie sintetiche (per esempio punti a e dalla media) e vedere se vengono trovate. Un limite («bias» dell'isolation forest): lo score può essere incoerente con i dati, perché gli split casuali paralleli agli assi lasciano zone vuote, anche lontane dai cluster, con score basso (cioè «normali»), dove un punto anomalo non verrebbe rilevato. Nelle prove d'esame è stata proposta una variante «meno casuale» (per esempio non riusare una feature già usata nel ramo): non ci si aspetta che migliori, perché la casualità è un punto di forza dell'algoritmo.
Altri approcci
- PCA non è adatta al rilevamento di anomalie: cerca le direzioni di massima varianza assumendo che lì stia l'informazione, ma le anomalie sono rare e contribuiscono poco alla varianza, quindi la PCA tende a ignorarle (Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →). Esiste una variante, la PCA con sovracampionamento (osPCA): le direzioni principali rappresentano gli attributi «normali» e un outlier cambia la direzione delle componenti; per renderlo evidente si ripete il campione molte volte.
- Spiegare lo score. L'anomaly score avverte di una situazione potenzialmente anomala, ma tocca all'utente scoprire la causa: per l'analisi delle cause serve un'informazione aggiuntiva, come un ordinamento delle variabili. DIFFI (Depth-based Isolation Forest Feature Importance) è un metodo di intelligenza artificiale spiegabile (Explainable AI (XAI)approfondimento: non nel programma di Telecomunicazioni. L'interpretabilità è l'arte di produrre descrizioni di un modello abbastanza semplici da essere capite da un umano; la spiegabilità aggiunge la completezza (permettere di anticipare la previsione). I metodi si classificano in intrinseci o post-hoc, agnostici o specifici del modello, globali o locali. Modelli intrinsecamente interpretabili: regressione lineare (pesi $\beta_j$, intervalli di confidenza, LASSO per la sparsità), regressione logistica ($\log\frac y{1-y}=\beta_0+\sum\beta_jx_j$), alberi. Importanza nelle foreste: MDI $=\sum_{\text{nodi}}\frac{n_p}{n_{TOT}}\Delta Gini$ (con feature selection bias). Metodi agnostici: permutation importance (aumento dell'errore dopo aver mescolato una feature), PDP $\hat f_S(x_S)=\frac1n\sum_if(x_S,x_C^{(i)})$ (media delle curve ICE), LIME (modello semplice locale pesato sui punti perturbati), SHAP (valori di Shapley: media dei contributi marginali su tutti gli ordini, somma $=f(x)-f(\text{base})$). Per le reti profonde: mappe di salienza, Grad-CAM, occlusione. Valutazione: livello applicativo, umano, funzionale. Lab: cardiopatia AHD con logistica, LASSO, random forest, ICE, PDP, SHAP.Explainable AI (XAI) →) per l'isolation forest: una feature è «importante» se isola gli outlier a piccola profondità (vicino alla radice) e allo stesso tempo non contribuisce all'isolamento degli inlier; dà un ordinamento globale (variabili importanti per tutto il modello) e locale (per una singola previsione), non richiede etichette, ha basso costo e non richiede regolazioni.
- Carte di controllo contro anomaly score. Le informazioni, per consentire decisioni, devono essere complete, concise e interpretabili.
Valutare un sistema non supervisionato
È il vero svantaggio dei metodi non supervisionati: senza etichette, valutare è difficile. Se non si hanno etichette si cercano etichette approssimate: (i) chiedere a esperti di dominio di rivedere le prime anomalie segnalate: hanno senso? (ii) usare eventi noti (guasti, allarmi, anomalie nei log) come etichette parziali; (iii) iniezione sintetica: aggiungere anomalie note (rumore, punti fuori distribuzione) e controllare se il modello le trova.
Codice
import numpy as np
from scipy.stats import chi2
class HotellingT2:
def __init__(self, alpha=0.05): self.alpha = alpha
def fit(self, X):
self.mean = X.mean(axis=0)
self.inv_cov = np.linalg.inv(np.cov(X, rowvar=False))
def t2(self, X):
d = X - self.mean
return np.einsum("ij,jk,ik->i", d, self.inv_cov, d) # (x-m)^T S^-1 (x-m) per riga
def predict(self, X):
return self.t2(X) > chi2.ppf(1 - self.alpha, df=X.shape[1]) # True = anomalo
# isolation forest: from sklearn.ensemble import IsolationForest; IsolationForest(contamination=0.01).fit(X)
# nel laboratorio e nell'esame lo si implementa da zero (albero con split casuali, c(n), soglia a percentile)Errori tipici
- Togliere gli outlier per migliorare le metriche, o togliere proprio ciò che si vuole trovare.
- Applicare le carte di controllo variabile per variabile e credere di coprire le anomalie multivariate.
- Usare con soglia chi-quadro su dati non gaussiani o multimodali.
- Dimenticare di normalizzare con : il numero di campioni cambia la scala dei cammini.
- Scambiare il verso: score alto (cammino corto) = anomalia.
- Interpretare la contaminazione come una proprietà dei dati noti: è una scelta che regola il compromesso tra falsi positivi e falsi negativi.
Versione ripasso
Definizione (anomalia o outlier). Un'osservazione che si discosta tanto dalle altre da far sospettare che sia generata da un meccanismo diverso (Hawkins). In un dataset gli outlier dovrebbero essere pochi. È un compito non supervisionato: si hanno solo gli ingressi , senza etichette.
Esempio. Un sensore di temperatura che segna invece di per un guasto.
A cosa serve.
- Preprocessing. Togliere errori o rumore ha senso. Togliere i casi difficili dal test set per migliorare le metriche è barare (fuga di informazione), e togliere gli outlier quando sono proprio ciò che interessa (frodi, guasti) annulla lo scopo. Conviene tenere traccia delle scelte.
- Obiettivo finale: frodi, diagnostica industriale, cybersicurezza.
- Monitoraggio in produzione: se compaiono outlier, non fidarsi della singola previsione o riaddestrare (MLOps).
Metodi semplici
Carta di controllo univariata. e . Con e dati gaussiani (Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →) il dei dati cade dentro.
Esempio. , : , ; la misura è anomala.
Passaggi: con , (Funzione di distribuzioneLa funzione di distribuzione (FdD) F_X(x) = P(X ≤ x) è definita per ogni v.a., è crescente, continua a destra, va da 0 a 1 e determina la legge; per una v.a. discreta è a gradini, con salti in corrispondenza dei valori e di altezza pari alla densità.Funzione di distribuzione →). Il falso allarme ha probabilità , cioè circa punto normale su . Con la copertura scende a : più è piccolo, più falsi allarmi.
Limite. Le carte univariate non vedono le anomalie multivariate, in cui ogni variabile è nella norma ma la combinazione no.
Statistica di Hotelling
Formula (Hotelling). Con media e covarianza campionaria : . È uno z-score multivariato: tiene conto delle correlazioni. Anomalia se (dati gaussiani, con variabili).
Con una variabile ; con diagonale . Le correlazioni sono corrette dall'inversa (Matrice inversaL'inversa di una matrice quadrata A è la matrice A⁻¹ con A A⁻¹ = A⁻¹ A = I; esiste se e solo se rango(A) = n e si calcola con Gauss-Jordan riducendo (A | I) fino a (I | A⁻¹).Matrice inversa →, Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione →, Vettori gaussianiX = (X₁, ..., Xₙ) è un vettore gaussiano N(m, Σ) se ogni combinazione lineare a·X è gaussiana (equivalentemente X = m + AZ con Z gaussiane standard indipendenti); se Σ è invertibile ha densità exp(−½(x−m)ᵀΣ⁻¹(x−m)) / √((2π)ⁿ det Σ). Proprietà chiave: AX + b ~ N(Am + b, AΣAᵀ), le marginali sono gaussiane e componenti non correlate sono indipendenti.Vettori gaussiani →).
Quantili del chi-quadro. ; ; ; .
Esempio bidimensionale. Varianze , covarianza : , , . Per : . È un outlier, anche se ogni coordinata è entro , perché le due variabili sono molto correlate. Per : , dentro la regione.
Ellisse. La regione è un'ellisse con assi lungo gli autovettori di (Autovalori e autovettoriUn autovettore è un vettore non nullo che una funzione lineare manda in un suo multiplo; si trovano gli autovalori come radici del polinomio caratteristico det(A − λI) e gli autovettori come nucleo di A − λI. Matrici simili hanno gli stessi autovalori.Autovalori e autovettori →, Teorema spettrale e forme quadraticheUna funzione lineare è simmetrica se f(v)·w = v·f(w); in una base ortonormale ha matrice simmetrica. Teorema spettrale: f è simmetrica se e solo se esiste una base ortonormale di autovettori, cioè A simmetrica ⇔ PᵀAP diagonale con P ortogonale. Applicato alle forme quadratiche, permette di scriverle come somma di quadrati con gli autovalori come coefficienti.Teorema spettrale e forme quadratiche →). Qui (diagonale) e (antidiagonale). Lungo un autovettore il punto ha : la semilunghezza è , cioè lungo la diagonale e lungo l'antidiagonale. Per questo , a distanza dall'origine sull'antidiagonale, è fuori.
Limite. Richiede dati gaussiani e unimodali: con più gruppi o forme non ellittiche molte anomalie restano non rilevate.
Isolation forest
Un metodo multivariato non supervisionato produce un anomaly score. L'isolation forest (Liu et al.) si basa sull'idea che un punto anomalo, lontano dagli altri, si separa con pochi split casuali, mentre un punto in zona densa ne richiede molti. Lo score è la media della profondità su molti alberi (Metodi ensemble - bagging, random forest e boostingUn albero da solo ha varianza alta; un ensemble combina molti modelli deboli. Bagging: ogni albero è addestrato su un campione bootstrap (n estrazioni con rimpiazzo, circa il 63% di campioni distinti) e si vota o si fa la media: riduce la varianza, perché la media di $T$ stimatori con varianza $\sigma^2$ e correlazione $\rho$ ha varianza $\rho\sigma^2+(1-\rho)\sigma^2/T$. Random forest = bagging + a ogni split solo $\sqrt p$ feature casuali (alberi meno correlati); l'importanza di una feature è la somma delle riduzioni di Gini pesate sui nodi in cui è usata. Boosting: alberi in sequenza, ciascuno corregge gli errori dei precedenti, e si riduce il bias. Gradient boosting: $F\leftarrow F+\eta h$ con $h$ albero sui residui (gradiente negativo della perdita), $\eta$ piccolo; AdaBoost: stump e pesi sui campioni sbagliati; XGBoost: similarity score $\frac{(\sum r)^2}{N+\lambda}$, gain, potatura con $\gamma$, output $\frac{\sum r}{N+\lambda}$. Programma di Telecomunicazioni: Random Forests; boosting come approfondimento.Metodi ensemble - bagging, random forest e boosting →).
Esempio. Un inlier in mezzo ai dati richiede split; un outlier isolato in un angolo, .
Albero di isolamento. A ogni nodo: feature casuale e valore casuale tra minimo e massimo del nodo. Ci si ferma con un solo punto, o alla profondità , o se i punti sono uguali. La profondità della foglia misura quanto il punto è facile da isolare.
Esempio in una dimensione. , primo split in . Il punto è isolato al primo passo con probabilità . Il punto solo con probabilità . Su simulazioni la profondità media è per e circa per i punti centrali.
Passi.
- sottocampionare (per esempio punti);
- costruire un albero per sottocampione;
- ripetere per una foresta (tipicamente alberi);
- far scendere ogni punto in tutti gli alberi e registrare la profondità;
- calcolare lo score.
Formula (anomaly score). , dove è la profondità media su tutti gli alberi e , con .
è la lunghezza media di una ricerca senza successo in un albero binario di ricerca (Alberi binari di ricercaAlbero binario di ricerca come albero binario proprio con entry nei nodi interni e foglie vuote; inorder crescente; TreeSearch; get, put e remove (due casi, con predecessore inorder) in Theta(h); altezza fino a n-1; esempi di inserimenti; alberi aumentati con campi size e max e algoritmi di conteggio e interrogazione in O(h).Alberi binari di ricerca →) ed è un fattore di normalizzazione. Passaggi: cresce come (Serie notevoli - geometrica, telescopica, armonicaLe serie di cui si conosce il carattere e da usare come termine di paragone: geometrica (converge a 1/(1-q) se |q|<1), telescopiche (somma b_1 - lim b_n, come Mengoli), armonica generalizzata (1/n^alpha converge se e solo se alpha>1).Serie notevoli - geometrica, telescopica, armonica →). Controlli: , .
Esempio (). . Con si ha (punto normale); con si ha ; con si ha . Lo score tende a quando (anomalia certa) e a in zone molto dense.
Soglia. Un punto è anomalo se . Un modo di ricavare è la contaminazione, cioè la frazione attesa di outlier: è il percentile degli score di training. È una manopola tra falsi positivi e falsi negativi.
Esempio verificato. punti gaussiani in 2D più punti lontani: i cammini medi degli outlier stanno tra e (contro per il punto centrale), i loro score tra e , mentre il massimo tra i normali è .
Profondità corretta. Se un albero si ferma con più punti nel nodo, si aggiunge alla profondità.
Costo. Un albero costa con punti nel campione, quindi non dipende dal numero di punti del dataset (Notazione asintoticaDefinizioni di O, Omega, Theta e o piccolo con le costanti c ed n0; esempi con costanti esplicite; proprietà (polinomi, esponenziali, logaritmi, somme, implicazioni tra notazioni); sommatorie notevoli; terminologia (logaritmica, lineare, polinomiale, esponenziale).Notazione asintotica →), a differenza del k-NN.
Limite. Gli split paralleli agli assi lasciano zone vuote con score basso, dove un punto anomalo potrebbe non essere rilevato.
Altri approcci
- PCA non adatta: le anomalie contribuiscono poco alla varianza, quindi la PCA le ignora (Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →).
- DIFFI (Depth-based Isolation Forest Feature Importance) spiega lo score: una feature è importante se isola gli outlier a piccola profondità senza contribuire all'isolamento degli inlier (Explainable AI (XAI)approfondimento: non nel programma di Telecomunicazioni. L'interpretabilità è l'arte di produrre descrizioni di un modello abbastanza semplici da essere capite da un umano; la spiegabilità aggiunge la completezza (permettere di anticipare la previsione). I metodi si classificano in intrinseci o post-hoc, agnostici o specifici del modello, globali o locali. Modelli intrinsecamente interpretabili: regressione lineare (pesi $\beta_j$, intervalli di confidenza, LASSO per la sparsità), regressione logistica ($\log\frac y{1-y}=\beta_0+\sum\beta_jx_j$), alberi. Importanza nelle foreste: MDI $=\sum_{\text{nodi}}\frac{n_p}{n_{TOT}}\Delta Gini$ (con feature selection bias). Metodi agnostici: permutation importance (aumento dell'errore dopo aver mescolato una feature), PDP $\hat f_S(x_S)=\frac1n\sum_if(x_S,x_C^{(i)})$ (media delle curve ICE), LIME (modello semplice locale pesato sui punti perturbati), SHAP (valori di Shapley: media dei contributi marginali su tutti gli ordini, somma $=f(x)-f(\text{base})$). Per le reti profonde: mappe di salienza, Grad-CAM, occlusione. Valutazione: livello applicativo, umano, funzionale. Lab: cardiopatia AHD con logistica, LASSO, random forest, ICE, PDP, SHAP.Explainable AI (XAI) →). Non richiede etichette.
- Altri metodi: LOF e DBSCAN (densità), k-NN (distanza, Classificazione e k-nearest neighborsNella classificazione l'uscita $y$ è una categoria (con $C$ classi; $C=2$ è il caso binario). Il classificatore più semplice è il k-nearest neighbors: una nuova osservazione prende la classe più frequente (voto di maggioranza) tra i suoi $k$ vicini più prossimi nel training, con distanza euclidea $\sqrt{\sum(A_i-B_i)^2}$ o di Manhattan $\sum|A_i-B_i|$ (per la regressione si fa la media dei vicini). $k$ è un iperparametro: $k$ piccolo dà bordi frastagliati e overfitting, $k$ grande underfitting. È un metodo basato su istanze e «pigro» (nessun addestramento, costo alla predizione), sensibile a scala e feature irrilevanti e alla maledizione della dimensionalità; gli ingressi categorici si codificano con one-hot. Approfondimento: non nel programma di Telecomunicazioni.Classificazione e k-nearest neighbors →), CBLOF (clustering), Autoencoderapprofondimento: non nel programma di Telecomunicazioni. Un autoencoder è una rete non supervisionata che impara a ricostruire il proprio ingresso passando per un collo di bottiglia: encoder $z=e(x)$ (dimensione bassa), decoder $\hat x=d(z)$, loss $|x-d(e(x))|^2$. Con attivazioni lineari equivale alla PCA; con non linearità impara rappresentazioni latenti più ricche (ipotesi del manifold). Varianti: sparse (penalità $\ell_1$ sulle attivazioni), denoising (ingresso corrotto, bersaglio pulito), convolutivi (inpainting). Anomaly detection: si addestra su dati normali e si segnala come anomalo ciò che ha errore di ricostruzione sopra una soglia. VAE: l'encoder produce media e deviazione standard di una gaussiana, il campione si ottiene con il trucco di riparametrizzazione $z=\mu+\sigma\odot\zeta$, $\zeta\sim\mathcal N(0,I)$, e la loss è errore di ricostruzione più KL verso $\mathcal N(0,I)$, con $KL=\frac12\sum(\mu^2+\sigma^2-1-\ln\sigma^2)$; il $\beta$-VAE pesa il KL con $\beta>1$ per rappresentazioni disaccoppiate. Cenno ai GAN.Autoencoder → (reti neurali).
Valutare senza etichette
Si possono usare: esperti di dominio che rivedono le prime anomalie; eventi noti (guasti, allarmi) come etichette parziali; anomalie sintetiche iniettate (per esempio punti a e ) per vedere se vengono trovate.
Errori tipici:
- togliere gli outlier per migliorare le metriche, o togliere proprio ciò che si cerca;
- usare solo carte univariate e credere di coprire le anomalie multivariate;
- usare con soglia chi-quadro su dati non gaussiani o multimodali;
- dimenticare la normalizzazione con , perché il numero di campioni cambia la scala dei cammini;
- invertire il verso: score alto significa anomalia, cammino corto.
Esercizi su questo argomento
- Esercizio - Albero di isolamento passo per passo (laboratorio di ripasso)
- Esercizio - Autoencoder, anomaly detection e KL del VAE
- Esercizio - Isolation forest da zero e anomalie sul dataset delle abitazioni
- Esercizio - Statistica T2 di Hotelling e soglia chi quadro
- Esercizio - Test di esempio della parte teorica (simulazione d'esame)