Clustering spettrale


Nell'apprendimento automatico e nella statistica multivariata, le tecniche di clustering spettrale [1][2] utilizzano lo spettro (gli autovalori) della matrice di similarità dei dati per effettuare la riduzione della dimensionalità prima di raggruppare i dati rappresentati usando un ridotto numero di dimensioni. La matrice da fornire in input deve contenere una valutazione quantitativa della similarità per ciascuna coppia di istanze nel dataset.
Definizioni
[modifica | modifica wikitesto]Dato un insieme di istanze, la matrice di similarità corrisponde alla matrice delle adiacenze di un grafo pesato, con nodi corrispondenti alle istanze e archi pesati con le misure di similarità dei nodi collegati. Essa può essere definita come una matrice simmetrica , in cui per tutte le coppie di istanze genericamente indicate con gli indici e . L'approccio generale al clustering spettrale consiste nell'utilizzare un metodo di clustering standard fra i molti disponibili, come ad esempio k-means, applicato agli autovettori rilevanti di una matrice laplaciana di . Esistono molti modi diversi per definire una laplaciana , ognuno con una distinta interpretazione matematica cosicché anche il partizionamento risultante avrà interpretazioni diverse. Gli autovettori rilevanti sono quelli che corrispondono ai più piccoli autovalori di diversi da zero. Per una maggiore efficienza computazionale, tali autovettori vengono spesso calcolati come gli autovettori corrispondenti ai più grandi autovalori di una matrice calcolata in funzione di .
Matrice laplaciana
[modifica | modifica wikitesto]
Il clustering spettrale è correlato alla partizione di un sistema di masse e molle come quello in figura, in cui ogni massa sia associata a un'istanza e ogni molla abbia una rigidità che corrisponde al peso dell'arco che collega due istanze, quantificandone la similarità. In particolare, si può mostrare che il problema agli autovalori che descrive le modalità di vibrazione trasversali di un sistema di masse e molle corrisponde proprio al problema agli autovalori sopra menzionato per una laplaciana di grafo definita come segue
- ,
dove è la matrice diagonale con
e è la matrice delle adiacenze del grafo.[3]
Nel sistema fisico in figura, masse collegate strettamente dalle molle si muovono insieme dalla posizione di equilibrio nelle modalità di vibrazione a bassa frequenza, in modo che le componenti degli autovettori corrispondenti agli autovalori più piccoli della laplaciana di grafo possano essere utilizzate per raggruppare le masse in modo significativo. Ad esempio, supponendo che tutte le molle e le masse siano identiche nel sistema bidimensionale raffigurato, ci si aspetterebbe intuitivamente che, quando il sistema viene scosso, masse collegate in modo più lasco sul lato destro del sistema si muovano con ampiezza maggiore e nella direzione opposta rispetto alle altre masse. Tale aspettativa è confermata dall'analisi delle componenti degli autovettori della laplaciana del grafo corrispondenti agli autovalori più piccoli, ovvero alle frequenze di vibrazione più basse.
Normalizzazione della matrice laplaciana
[modifica | modifica wikitesto]L'obiettivo della normalizzazione è quello di rendere unitari tutti gli elementi diagonali della matrice laplaciana, il che richiede quindi di scalare anche gli elementi della matrice al di fuori fuori della diagonale. In un grafo pesato, un nodo può avere un grado elevato a causa di un numero ridotto di archi connessi ma con pesi elevati, ma anche per un numero elevato di archi connessi con pesi unitari.
Una popolare tecnica di clustering spettrale è l'algoritmo dei tagli normalizzati o algoritmo di Shi-Malik introdotto da Jianbo Shi e Jitendra Malik, comunemente utilizzato per la segmentazione delle immagini.[4] Esso partiziona le istanze in due insiemi in base all'autovettore corrispondente al secondo autovalore più piccolo della laplaciana normalizzata simmetrica definita come
Il vettore è anche l'autovettore corrispondente al secondo più grande autovalore della matrice di adiacenza normalizzata simmetrica
La laplaciana normalizzata a sinistra, detta anche della passeggiata aleatoria, può essere utilizzata per il clustering spettrale ed è definita come
Un algoritmo matematicamente equivalente a quello precedentemente descritto considera l'autovettore che corrisponde all'autovalore più grande della matrice di adiacenza normalizzata della passeggiata aleatoria .[5]
L'autovettore della laplaciana normalizzata simmetrica e l'autovettore della laplaciana normalizzata a sinistra sono correlati dall'identità
Analisi dei cluster tramite embedding spettrale
[modifica | modifica wikitesto]Data la matrice degli autovettori selezionati come sopra descritto, la mappatura, detta embedding spettrale, delle istanze originarie viene effettuata proiettandole su uno spazio vettoriale -dimensionale utilizzando le righe di . A questo punto basterà raggruppare i vettori in componenti, cosa può essere fatta in vari modi.
Nel caso più semplice (), l'autovettore singolo selezionato , detto vettore di Fiedler, corrisponde al secondo più piccolo autovalore della laplaciana. Utilizzando le componenti di , si possono associare tutte le istanze la cui componente in sia positiva all'insieme e il resto a , suddividendo così il grafo in due partizioni ed etichettando le istanze con due diverse etichette.
Tale approccio basato sul segno segue la spiegazione intuitiva del clustering spettrale tramite il modello masse-molle: nella modalità di vibrazione a bassa frequenza, rappresentata dal vettore di Fiedler , le istanze di un cluster identificate con masse fra loro fortemente connesse si muoverebbero insieme in una verta direzione, mentre nell'altro cluster le istanze identificate con le masse rimanenti si muoverebbero insieme nella direzione opposta.
Questo algoritmo può essere esteso per effettuare il clustering gerarchico: occorrerà continuare a partizionare ricorsivamente i sottoinsiemi nello stesso modo.
Nel caso generale è possibile utilizzare qualsiasi tecnica di clustering vettoriale come, ad esempio, DBSCAN.
Algoritmo
[modifica | modifica wikitesto]L'algoritmo di base per il clustering spettrale può essere riassunto in quattro passaggi:
- Si calcola la laplaciana (anche in versione normalizzata);
- Si ottengono i primi autovettori (corrispondenti ai autovalori più piccoli di );
- Considerata la matrice formata dai primi autovettori; la riga -esima definisce le feature del nodo del grafo;
- Si raggruppano i nodi del grafo in base a tali feature (ad esempio, utilizzando k-means).
Se la matrice di similarità non è già stata esplicitamente costruita, si può migliorare l'efficienza del clustering spettrale risolvendo il corrispondente problema agli autovalori senza manipolare esplicitamente, o addirittura senza calcolare tale matrice, come nell'algoritmo di Lanczos.
Per grafi di grandi dimensioni, il secondo autovalore della matrice laplaciana del grafo (normalizzata) è spesso mal condizionato, il che porta a una lenta convergenza degli algoritmi iterativi atti a determinare gli autovalori. Una tecnica utile ad accelerare la convergenza quella del precondizionamento, sfruttata, ad esempio, nel metodo LOBPCG. Il clustering spettrale è stato applicato con successo su grafi di grandi dimensioni identificando prima la struttura di comunità sottesa e poi partizionando le comunità identificate.[6]
Il clustering spettrale è strettamente correlato alla riduzione non lineare della dimensionalità (detto anche manifold learning) e si possono utilizzare altre tecniche di riduzione come l'immersione localmente lineare per evitare errori dovuti al rumore o agli outlier.[7]
Software
[modifica | modifica wikitesto]Numerose librerie e software implementano il clustering spettrale. Tra i progetti open source si evidenziano:
- scikit-learn: utilizza ARPACK o LOBPCG [8] con precondizionamento multigriglia;[9][10]
- MLlib per il clustering pseudo-autovettoriale che usa il metodo di iterazione della potenza;[11]
- R.[12]
Note
[modifica | modifica wikitesto]- ↑ Kevin P. Murphy, 19. Clustering, in Probabilistic machine learning: an introduction, collana Adaptive computation and machine learning, Third printing, The MIT Press, 2025, ISBN 978-0-262-04682-4.
- ↑ Ethem Alpaydın, 7. Clustering, in Introduction to machine learning, collana Adaptive computation and machine learning, Fourth edition, The MIT Press, 2020, ISBN 978-0-262-04379-3.
- ↑ Demmel, J., CS267: Notes for Lecture 23, April 9, 1999, Graph Partitioning, Part 2, su people.eecs.berkeley.edu.
- ↑ (EN) Jianbo Shi e J. Malik, Normalized cuts and image segmentation, in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, n. 8, 2000-08, pp. 888–905, DOI:10.1109/34.868688.
- ↑ Marina Meila e Jianbo Shi, Learning Segmentation by Random Walks, in Advances in Neural Information Processing Systems, vol. 13, MIT Press, 2000.
- ↑ (EN) Habil Zare, Parisa Shooshtari e Arvind Gupta, Data reduction for spectral clustering to analyze high throughput flow cytometry data, in BMC Bioinformatics, vol. 11, n. 1, 28 luglio 2010, pp. 403, DOI:10.1186/1471-2105-11-403.
- ↑ Ery Arias-Castro, Guangliang Chen e Gilad Lerman, Spectral clustering based on local linear approximations, in Electronic Journal of Statistics, vol. 5, none, 1º gennaio 2011, DOI:10.1214/11-EJS651.
- ↑ (EN) A. V. Knyazev, Modern Preconditioned Eigensolvers for Spectral Image Segmentation and Graph Bisection, a cura di Boley, Dhillon & Ghosh, Kogan, Conference: Workshop on Clustering Large Data Sets Third IEEE International Conference on Data Mining (ICDM 2003), IEEE Computer Society, 2003, pp. 59–62.
- ↑ 2.3. Clustering, su scikit-learn.org.
- ↑ (EN) Andrew Knyazev, Multiscale Spectral Image Segmentation Multiscale preconditioning for computing eigenvalues of graph Laplacians in image segmentation, 2006, DOI:10.13140/RG.2.2.35280.02565.
- ↑ Clustering - RDD-based API - Spark 3.2.0 Documentation, su spark.apache.org.
- ↑ Kernlab: Kernel-Based Machine Learning Lab, su cran.r-project.org, 12 Novembre 2019.