Classificazione non supervisionata (Clustering) Classificazione Non Supervisionata (Clustering) Con il termine Clustering [Jain99] [Duda01] (in italiano “addensamento”, “raggruppamento”) si denota un famiglia di metodi non supervisionati (il training set non è etichettato) in grado di individuare raggruppamenti intrinseci (cluster) tra i dati nello spazio multidimensonale, e di creare in corrispondenza di tali raggruppamenti le classi (incognite). Non solo le classi del problema sono sconosciute, ma spesso nemmeno il loro numero (s) è noto; ciò rende il problema molto complesso (NP hard). Pur assumendo di conoscere s, il numero di soluzioni possibili è circa sn/(s!), dove n è il numero di pattern (es: per n=100, s=5, soluzioni 1067). D’altro canto il problema del clustering ha molteplici applicazioni in diverse discipline (non solo PR, ma anche machine learning, data mining, data base, ...) e pertanto ha sempre ricevuto un notevole interesse da parte della comunità scientifica; la maggior parte delle soluzioni proposte possono essere ricondotte alle due famiglie: Clustering gerarchico: attraverso operazioni spesso di tipo “bottomup” organizza i dati in una sequenza innestata di gruppi che possono essere visualizzati come un dendogramma (albero). Clustering partizionale: individua solitamente attraverso algoritmi euristici iterativi partizioni che minimizzano un dato criterio di clustering: ad esempio la somma dei quadrati degli errori. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 1 Classificazione non supervisionata (Clustering) Criteri di clustering I Criteri di clustering e algoritmi di clustering sono due cose ben distinte: i primi descrivono cosa si vuol ottenere specificano il grado di ottimalità di ogni soluzione ammissibile; i secondi, dato un criterio di clustering, forniscono una procedura algoritmica per determinare soluzioni che lo ottimizzano. La maggior parte dei criteri di clustering sono definiti sulla base delle due osservazioni seguenti: 1) i pattern all’interno dello stesso cluster devono essere tra loro più simili rispetto a pattern appartenenti a cluster diversi; 2) i cluster sono costituiti da nuvole di punti a densità relativamente elevata separate da zone dove la densità e più bassa. Tra i diversi criteri possibili: somma dei quadrati degli errori: minimizza i quadrati delle distanze dai centri delle classi (detto anche criterio di minima varianza). s J e x xi , 2 i 1 xPi xi 1 ni x xPi altri criteri basati su varianza intraclasse: si tratta di una famiglia di metodi tutti tesi a minimizzare la varianza all’interno delle classi: 1 s J e ni si , 2 i 1 si f s x,x' , n2 1 i xPi x'Pi ad esempio f s x , x' x x' 2 criteri basati su scattering: come nel caso di DA tendono a minimizzare la varianza intra-classe e allo stesso tempo a massimizzare quella inter-classe. La massimizzazione del funzionale J1 descritto precedentemente (vedi DA) è considerato un buon criterio di clustering. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 2 Classificazione non supervisionata (Clustering) Clustering gerarchico Simile al modo di eseguire classificazione in tassonomia biologica, dove ad esempio gli insetti vengono gerarchicamente classificati specializzandone le specie a partire da famiglie molto ampie fino a famiglie molto più ridotte. Gli algoritmi possono essere bottom-up (agglomerativi) o top-down (divisivi). Nel primo caso si parte cercando di aggregare singoli elementi e ad ogni passo (livello) si aggregano in cluster gli elementi o i sotto-cluster che sono tra loro più simili rispetto a una soglia (che dipende dal livello). Nel secondo (più complesso e quindi meno utilizzato) si parte con un singolo cluster e ad ogni livello si suddividono in sotto-cluster gli elementi più diversi. In entrambi i casi il risultato può essere rappresentato attraverso un dendogramma: I metodi gerarchici (i più noti sono Single-Link e Complete-Link [Duda01]) sono nella pratica utilizzati soprattutto quando i pattern sono discretizzati e non appartengono a uno spazio metrico. In tal caso infatti criteri di somiglianza “ad-hoc” possono essere implementati per controllare l’aggregazione e la divisione. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 3 Classificazione non supervisionata (Clustering) Clustering partizionale iterativo Gli algoritmi più comunemente utilizzati sono K-means (o la sua variante Fuzzy K-means) e Expectation-Maximizaztion (EM). K-means (K-centri) Si tratta di un metodo molto semplice computazionalmente e altrettanto semplice da implementare, che ottimizza il criterio “somma dei quadrati degli errori” : Richiede in input il numero di cluster (s) e una soluzione iniziale (partizione ). Fornisce buoni risultati a patto di fornire una ragionevole soluzione di partenza e un numero adeguato di classi. Il tipo di ottimizzazione è iterativa e locale; pertanto il metodo può convergere a massimi locali della soluzione. La convergenza si ottiene solitamente in pochi passi: < 10). Identifica cluster iper-sferici nel caso in cui venga utilizzata la distanza euclidea come misura di distanza tra i pattern o cluster iperellissoidali nel caso di distanza di Mahalanobis. Nella sua versione base, l’algoritmo può essere così descritto: Inizializza n, s, ={P1,...Ps} do { calcola i centri dei cluster x1 , x 2 ,...x s ricalcola la partizione riassegnando ogni pattern al cluster per cui è minima la distanza dal centro. } while (i cluster sono stati modificati) I cluster vengono dunque iterativamente modificati a seguito del ricalcolo del loro centro. L’algoritmo termina (converge) quando i centri sono stabili e quindi le partizioni non cambiano. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 4 Classificazione non supervisionata (Clustering) K-means: un esempio (s = 3, n = 86) soluzione iniziale iterazione 1 iterazione 2 iterazione 4 iterazione 6 iter. 7 (convergenza) (generato tramite l’applet: http://www.cs.mcgill.ca/~bonnef/project.html ) V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 5 Classificazione non supervisionata (Clustering) K-means: altri esempi (generati tramite VA Lab) 3 classi – 8 iteraz. Minimizzando semplicemente le distanze dai centri, K-means non è in grado di identificare cluster dalla forma non sferica. 11 classi – 31 iteraz. anche in questo caso non tutti i cluster hanno forma sferica ... V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 6 Classificazione non supervisionata (Clustering) K-means: varianti Diverse varianti sono state proposte per risolvere il problema di generare buone soluzioni iniziali e di determinare il numero di classi (clustering validation). Per minimizzare il rischio di convergenza verso minimi locali, l’algoritmo può essere eseguito tante volte a partire da soluzioni iniziali diverse: random, prodotte da un diverso euristico o magari da un metodo evoluzionistico (algoritmo genetico). Le tecniche di validazione tendono a valutare a posteriori la bontà delle soluzioni prodotte per diversi valori di s, e a sceglierne una sulla base di un criterio di validazione che tenga conto sia della bontà della soluzione sia della sua complessità. La variante Fuzzy del K-means consente a un pattern di appartenere con un certo grado di probabilità a diverse classi. Pertanto, il criterio di ottimizzazione diviene: s n J fuz P̂ wi | x j , i 1 j 1 b x j xi 2 dove P̂wi | x j , è la probabilità che dato il pattern xj e l’insieme di centri che definiscono la soluzione attuale, la classe di appartenenza sia wi; b è un parametro che definisce quanto l’appartenenza ai diversi cluster debba essere sfumata. Per dettagli implementativi si veda [Duda01]. Tale variante fornisce a volte una convergenza più robusta verso la soluzione finale. D’altro canto uno svantaggio è legato al fatto che l’appartenenza di un pattern a un cluster dipende implicitamente dal numero di cluster, e se questo è specificato in modo incorretto si possono ottenere cattive soluzioni. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 7 Classificazione non supervisionata (Clustering) Expectation Maximization (EM) [Bilm98] Si ipotizza che i dati nello spazio siano stati generati da un mix di distribuzioni (“mixture” in inglese): ogni classe ha generato dati in accordo con una specifica distribuzione, ma al termine della generazione i pattern appaiono come prodotti da un’unica distribuzione multi-modale. Obiettivo del clustering attraverso EM è quello di risalire (a partire dai pattern del training set) ai parametri delle singole distribuzioni che li hanno generati. A tal fine si ipotizza nota la forma delle distribuzioni e si assume, per semplicità, che esse siano tutte dello stesso tipo. Il caso più frequente è quello di mix di s distribuzioni multinormali (gaussiane), di cui si vogliono stimare dai dati i parametri di definizione (s vettori medi + s matrici di covarianza + s coefficienti ). s px | i pi x | i i 1 i μ i , i dove ={1, 2,...s, 1, 2,...s} è il vettore di parametri che definisce il mix di distribuzioni. EM è un particolare tipo di algoritmo che stima i parametri secondo il criterio generale del maximum likelihood (in italiano “massima verosimiglianza”). V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 8 Classificazione non supervisionata (Clustering) EM: Maximum likelihood Si assume che i pattern del training set X={x1,x2,...xn} siano indipendenti e distribuiti con distribuzione p(.) controllata dal vettore di parametri . Allora, la probabilità di aver ottenuto il training set X dal vettore di parametri è: n pX | pxi | L | X i 1 La funzione L(|X) è detta likelihood dei parametri noti i dati. Il likelihood è dunque visto come una funzione dei parametri a dati fissati; il problema del maximum likelihood è quello di determinare il valore di parametri che massimizza il likelihood: * arg max L | X Spesso invece di massimizzare L(|X) viene massimizzato il logaritmo del likelihood logL(|X) in quanto questo risulta più semplice dal punto di vista numerico. D’altro canto essendo il logaritmo una funzione monotona crescente, il risultato ottenuto è identico... Ad esempio se p(.) è una distribuzione normale, il logaritmo del likelihood assume la forma: formula distribuzione normale n n log L | X log px log px i 1 i 1 px 1 2π d/2 1/ 2 1 exp x μ t 1 x μ 2 e può essere massimizzato direttamente eguagliando a 0 le derivate rispetto ai parametri incogniti (, ). Il valore ottenuto dalla massimizzazione è quello atteso: ovvero è la media dei vettori in X e la loro matrice di covarianza. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 9 Classificazione non supervisionata (Clustering) EM: Idea generale Purtroppo la massimizzazione del likelihood non è sempre semplice come nell’esempio precedente e tecniche particolari (come EM) devono essere utilizzate per ottenere soluzioni al problema. Expectation Maximization è un algoritmo nato per il calcolo del maximum likelihood nel caso in cui i dati a disposizione X={x1,x2,...xn} siano incompleti a causa della mancanza di alcuni valori y={y1,y2,...yn}. Pertanto ogni pattern completo zi=[xi, yi], i=1..n è costituito da due parti di cui solo la prima è nota. In realtà, nel caso di interesse (derivare i parametri di un mix di distribuzioni gaussiane) i dati sono completi ma le potenzialità di EM vengono utilizzate per rendere trattabile la complessità della massimizzazione. Obiettivo di EM è la massimizzazione del log-likelihood dei dati completi o log-likelihood-completo = log L(|Z) = log L(|X,Y) = log p(X,Y | ). A tal fine vengono eseguiti iterativamente (fino a convergenza) due passi: Expectation: viene calcolato il valore atteso E(.) del log-likelihoodcompleto, dati il training set X e una stima di parametri i-1 all’iterazione corrente: Q | i 1 E log pX ,y | | X ,i 1 Il valor atteso (media) è calcolato rispetto alla variabile aleatoriaY governata dalla distribuzione f(y|X, i-1) : log pX ,y | f y | X, dy E log pX ,y | | X ,i 1 i 1 y Maximization: determina il valore dei parametri che massimizzano il valore atteso calcolato al passo di “Expectation”. i arg max Q ,i 1 V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 10 Classificazione non supervisionata (Clustering) EM: Mix di distribuzioni gaussiane Il log-likelihood dei dati incompleti X è: s log L | X log pxi | log j p j xi | j j 1 i 1 i 1 n n la cui massimizzazione diretta è molto difficile a causa della sommatoria dentro al logaritmo. Sfruttando le peculiarità di EM, si assume l’esistenza di una componente nascosta yi (per ogni pattern) che indica quale delle s distribuzioni gaussiane ha generato il pattern xi. Assumendo di conoscere i valori di yi, i=1..n, il log-likelihood-completo assume la forma: n log L | X,y log yi p yi xi | yi i 1 sebbene gli yi non siano noti, una loro stima (o meglio una stima della loro distribuzione) può essere derivata (teorema di Bayes) dai parametri g e gi disponibili all’iterazione corrente: (1) p y | x , g i i gy p yi x i | gy i s g k 1 k i pk x i | kg p y | X , g p y | x , n g i i 1 i a questo punto, il valore atteso del log-likelihood-completo può essere espresso come: log L | X ,y py | X , Q | i 1 g y n n log yi p yi xi | yi p yi | xi , g y i 1 j 1 V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 11 Classificazione non supervisionata (Clustering) EM: Mix di distribuzioni gaussiane (2) A seguito di alcuni passaggi (piuttosto ostici) durante i quali l’ottimizzazione è eseguita eguagliando a 0 le derivate parziali rispetto ai parametri incogniti si ottengono le seguenti formule per l’aggiornamento incrementale dei parametri: new (2) l 1 n p l | xi , g n i 1 g x p l | x , i i new i 1 μl n i1 pl | xi , g n (3) (4) lnew n i 1 pl | x , p l | x i , g x i μ lnew x i μ lnew n i 1 T g i In pratica, l’implementazione di EM può essere schematizzata come segue: (esempio di implementazione: http://www-cse.ucsd.edu/users/ibayrakt/java/em/index.html) Inizializza s, i (i=1..s), i={i, i} (i=1..s) do { Expectation: calcola p(l| xi, g) per l=1..s, i=1..n // formula (1) Maximization: calcola newl, newl , newl per l=1..s // formule (2,3,4) } while (i parametri i o i sono variati sostanzialmente) L’algoritmo si dimostra convergere sempre, anche se per alcune soluzioni iniziali la convergenza non è verso la soluzione ottima ma verso un minimo locale. Come per k-means: alcune soluzioni iniziali possono dare cattivi risultati non è semplice determinare il numero ottimale di cluster V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 12 Classificazione non supervisionata (Clustering) EM: Esempio generato attraverso l’applet: [ http://www.etl.go.jp/~akaho/MixtureEM.html ] [ http://diwww.epfl.ch/mantra/tutorial/english/gaussian/html/ ] iter =1 iter =2 iter =4 iter =6 iter =8 iter =12 V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 13 Classificazione non supervisionata (Clustering) EM: altri esempi (1) (generato tramite VA Lab) 3 classi – 40 iterazioni circa A differenza di K-means, EM è in grado di identificare nuvole gaussiane di punti a scale diverse V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 14 Classificazione non supervisionata (Clustering) EM: altri esempi (2) (generato tramite VA Lab) 11 classi – 200 iterazioni circa V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 15 Classificazione non supervisionata (Clustering) Bibliografia [Bilm98] J. A. Bilmes, “A Gentle Tutorial of the EM Algorithm and its Application for Gaussian Mixture and Hidden Markov Models”, International Computer Science Institute, TR ICSI-TR-97-021, 1998. [Duda01] R.O. Duda, P.E. Hart e D.G. Stock, Pattern Classification, Wiley 2001. [Jain99] A. K. Jain, M. M. Murth e P. J. Flynn, “Data Clustering: A Review”, ACM Computing Reviews, Novembre 1999. V&R prof. Raffaele Cappelli – Ingegneria e Scienze Informatiche - Università di Bologna 16