Learning finite MixtureModels Giuseppe Manco Clustering La problematica del clustering è relativa al learning non supervisionato Abbiamo un dataset con istanze la cui etichetta è sconosciuta Obiettivo del clustering è individuare raggruppamenti delle istanze del dataset I raggruppamenti devono essere tali per cui ci sia alta similarità fra le istanze delle stesso cluster, mentre ci sia alta dissimilarità fra le istanze di cluster differenti Il clusterer deve ricostruire la struttura nascosta alla base dei dati a disposizione Model-based Clustering In questo approccio si suppone che le istanze del dataset siano state generate a partire da un mix di modelli probabilistici Per questa ragione si parla anche di Probabilistic Clustering Il clusterer, quindi, deve stimare quali siano i parametri delle distribuzioni che hanno più verosimilmente generato il dataset di training Stima per massima verosimiglianza (maximum likelihood) (1/2) Avendo i dati che provengono da una distribuzione di forma nota si vogliono stimare i parametri per cui è più verosimile osservare i dati che si hanno effettivamente a disposizione Sia X x1 , x2 , , xN il dataset a disposizione, si definisce la likelihood come: N L | X P X | p xi | i1 Dove rappresenta il vettore di tutti i parametri della distribuzione Stima per massima verosimiglianza (maximum likelihood) (2/2) Si devono quindi trovare quali siano i parametri della distribuzione che massimizzano la likelihood Spesso si massimizza il logaritmo della likelihood, la log-likelihood, perché si possono ottenere espressioni analitiche più semplici: N N log L | X log p xi | log p xi | i 1 i 1 Mixture-Model (1/5) Per il clustering si utilizza l’approccio a mixturemodel In questo contesto ogni istanza viene generata scegliendo prima, secondo una data probabilità, una particolare distribuzione e poi si genera l’istanza in accordo alla distribuzione scelta M La distribuzione per una istanza è: p x k pk x k 1 Dove k è la probabilità che venga scelta la k-ma distribuzione, e prende il nome di mixing probability, e pk x è la k-ma distribuzione Model-Based Clustering Clustering basato su modelli probabilistici Si assume che dati siano distribuiti secondo un mix di funzioni di densità Per ogni funzione i parametri non sono noti EM Bayesian clustering Finite Mixture Models K p (x) p(x, ck ) k 1 Finite Mixture Models K p (x) p (x, ck ) k 1 K p (x | ck ) p (ck ) k 1 Finite Mixture Models K p(x) p(x, ck ) k 1 K p(x | ck )p(ck ) k 1 K p(x | ck, k ) k k 1 Finite Mixture Models K p(x) p(x, ck ) k 1 K p(x | ck )p(ck ) k 1 K p(x | ck, k ) k k 1 Modellok Pesok Parametrik Esempio: Mistura di Gaussiane Gaussian mixtures: K p(x) p(x | ck, k ) k k 1 Esempio: Mistura di Gaussiane Gaussian mixtures: K p(x) p(x | ck, k ) k k 1 Ogni componente è una densità gaussiana con media mk covarianza Sk Example: Mixture of Gaussians Gaussian mixtures: K p(x) p(x | ck, k ) k k 1 Ogni componente è una densità gaussiana con media mk e covarianza Sk Esempio: K=2, 1-dim: {} = {m1 , s1 , m2 , s2 , 1, π2} 0.5 p(x) 0.4 Component 1 Component 2 0.3 0.2 0.1 0 -5 0 5 10 5 10 0.5 p(x) 0.4 Mixture Model 0.3 0.2 0.1 0 -5 0 x 0.5 p(x) 0.4 Component 1 Component 2 0.3 0.2 0.1 0 -5 0 5 10 5 10 0.5 p(x) 0.4 Mixture Model 0.3 0.2 0.1 0 -5 0 x 2 p(x) 1.5 Component Models 1 0.5 0 -5 0 5 10 5 10 0.5 p(x) 0.4 Mixture Model 0.3 0.2 0.1 0 -5 0 x Esempio: Mixture di Naïve Bayes K p(x) p(x | ck, k ) k k 1 Esempio: Mixture di Naïve Bayes K p(x) p(x | ck, k ) k k 1 d p(x | ck , k ) p( xj | ck ) j 1 Esempio: Mixture di Naïve Bayes K p(x) p(x | ck, k ) k k 1 d p(x | ck , k ) p( xj | ck ) j 1 Indipendenza condizionale per ogni componente Mixtures di Naïve Bayes Termini 1 1 1 1 1 1 1 1 1 1 Documenti 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Mixtures di Naïve Bayes Termini 1 1 1 1 1 1 1 1 1 1 Documenti 1 1 1 1 1 1 Componente 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Componente 2 Esempio: Mixtures di multinomiali Le distribuzioni multinomiali modellano il ripetersi di esperimenti indipendenti che possono portare a più risultati: come il lancio di un dado (“Qual è la probabilità che su 4 lanci esca due volte ‘1’ una volta ‘3’ ed una volta ‘6’?) Una multinomiale è caratterizzata dai parametri s c che indica qual è la probabilità che si verifichi un evento di classe c Poiché facciamo riferimento ad un mixture-model di k multinomiali, poniamo s c la probabilità che si verifichi l’evento di classe c nella multinomiale k Esempio: Mixtures di multinomiali Nel nostro caso, quindi, i dati che osserviamo sono 1 2 S c x n , n , , n n nella forma: i i i i , dove i è il numero di eventi di classe c per l’istanza i La probabilità di osservare una particolare istanza generata da una distribuzione multinomiale è: pk xi | yik 1, k S j ni ! j 1 S j n i! j 1 s S c 1 c n i k c Mixture-Model (2/5) La log-likelihood in questo caso vale: N log L | X log p xi | i 1 N M log k pk xi | k i 1 k 1 M log k pk xi | k i 1 k 1 N Sommatoria dentro il logaritmo! Questa funzione risulta molto complessa da ottimizzare… Mixture-Model (3/5) Si utilizza uno stratagemma: si suppone l’esistenza delle variabili yik che indicano se l’istanza i è stata generata dalla distribuzione k La variabile yik vale 1 se l’istanza i è stata generata dalla distribuzione k, vale 0 altrimenti. Queste variabili soddisfano la condizione: M y k 1 ik 1, i 1, ,N Mixture-Model (4/5) In questo caso la likelihood e quindi la log-likelihood valgono: N M L | X ,Y P X ,Y | yik pk xi , yik 1, k log L | X ,Y i1 k 1 N M log yik pk xi , yik 1, k i1 k 1 M log yik pk xi , yik 1, k k 1 i1 N Solo un termine della sommatoria è diverso da zero… Mixture-Model (5/5) Per quanto evidenziato possiamo semplificare l’espressione della log-likelihood: log L | X ,Y y N M i1 k 1 ik log pk xi , yik 1, k Questa espressione è aleatoria perché contiene le variabili aleatorie yik Si può soltanto massimizzarne il valore atteso Expectation-Maximization (1/11) Questo algoritmo di clustering viene utilizzato per stimare i parametri del mixture-model che è alla base di un dataset L’algoritmo migliora iterativamente il valore atteso della loglikelihood del mixture-model e con esso la stima dei parametri dei modelli È caratterizzato da due passi: Expectation: nel quale si effettua un assegnamento “soft” delle istanze ai cluster (si calcola la probabilità che un’istanza appartenga ad un cluster) Maximization: nel quale si utilizzano gli assegnamenti del passo precedente per stimare, in maniera pesata in base alla probabilità di appartenenza di un’istanza al cluster, i parametri dei modelli Si iterano Expectation e Maximization fino alla convergenza dei parametri che si stanno stimando Expectation-Maximization (2/11) Passo Expectation (g-ma iterazione) Si definisce la funzione: Q , g 1 g 1 E log L | X , Y | X , Questa è funzione dei parametri , ed il valore atteso è calcolato a partire dalle stime dell’iterazione precedente sui dati di training Expectation-Maximization (3/11) {Expectation} L’espressione della funzione Q può essere riscritta come: N M Q , g 1 g 1 E yik log pk xi | yik 1, k k | X , i1 k 1 N M g 1 E yik | xi , k log pk xi | yik 1, k k i1 k 1 per definizione di valore atteso E yik | xi , k g 1 1 p yik 1| xi ,k g 1 0 p yik 0 | xi , k g 1 p yik 1| xi ,k g 1 ik g Responsibility: è la probabilità che sia stata la distribuzione k a generare l’istanza i, considerando corretti i parametri stimati all’iterazione precedente Expectation-Maximization (4/11) {Expectation} Valendo la relazione P(A,B|C)=P(A|B,C)P(B|C) possiamo scrivere che: ik g E yik | xi , g 1 p xi , yik 1| g 1 p xi | g 1 p yik 1| M g 1 p x | y g 1 p y 1| ij j 1 Probabilità a priori che venga scelta la distribuzione k: la mixing probability pk xi | yik 1, j i ij g 1 1, g 1 k g 1 p yik 1| g 1 Expectation-Maximization (5/11) Passo Maximization (g-ma iterazione) Si devono individuare i valori di affinché venga massimizzata la funzione Q, ovvero: g arg max Q , g 1 Per far questo calcoliamo le derivate parziali della funzione Q rispetto a tutti i parametri e le poniamo a zero Expectation-Maximization (6/11) {Maximization di gaussiane} La massimizzazione deve rispettare i seguenti vincoli: M k 1 k 1 Utilizziamo, quindi, i moltiplicatori di Lagrange: M (g) f , Q , j 1 j 1 N M M (g) (g) ik log pk xi yik 1, k j 1 i 1 k 1 j 1 ( g 1) Expectation-Maximization (6/11) {Maximization di multinomiali} La massimizzazione deve rispettare i seguenti vincoli: M S k 1 k s j 1 k 1 k 1, ,M j 1 Utilizziamo, quindi, i moltiplicatori di Lagrange: M g M S p g f , Q , j 1 p s t 1 j 1 p 1 t 1 N M M g M S p g g ik log pk xi | yik 1, k j 1 p s t 1 i 1 k 1 j 1 p 1 t 1 g 1 Expectation-Maximization (7/11) {Maximization} Calcolo delle mixing probability: f , ... N M ik i 1 k 1 g M g M p xi , yik 1| k S p g log j 1 p s t 1 k j 1 p 1 t 1 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: N f , ir g ... g 0 r i 1 r r g 1 N i 1 N rg g i 1 N M g ij i 1 j 1 ir f , M g j 1 0 j 1 g ir M j 1 g ij M ... p yij 1| xi , g 1 1 j 1 r g 1 N N g ir i 1 Expectation-Maximization (9/11) {Maximization di gaussiane} Calcolo dei parametri delle gaussiane: f , ... x m i N M M 1 2 S 2 (g) (g) ik log e j 1 i 1 k 1 2 S j 1 Expectation-Maximization (10/11) {Maximization} Derivando l’espressione mostrata: f , (g) m k f , (g) k f , mk (g) ik (g) xi i k (g) ik (g) xi m k xi m k T i k (g) 1 N i (g) ik Expectation-Maximization (9/11) {Maximization di multinomiali} Calcolo dei parametri delle multinomiali: f , ... S j ni ! S N M j 1 g nc log s k g ik log S i c j i 1 k 1 c 1 ni ! j 1 M g M S p g j 1 p s t 1 j 1 p 1 t 1 Expectation-Maximization (10/11) {Maximization} Derivando l’espressione mostrata: f , N iz g nir z g z 0 z s r i 1 s r S f , 1 s tz g 0 z t 1 N s rz g g r iz ni i 1 N S g t iz ni i 1 t 1 Expectation-Maximization (11/11) Ricapitolando Expectation: ik g k g 1 pk xi | yik 1, g 1 M j 1 g 1 j p j xi | yij 1, g 1 ... k g 1 c 1 S g 1 M j 1 s S j k g 1 c s c 1 j g 1 c Maximization: N s kg c g c ik ni i 1 N S g t ik ni i 1 t 1 k g 1 N N g ik i 1 nic nic ANEMIA PATIENTS AND CONTROLS Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 EM ITERATION 1 Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 EM ITERATION 3 Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 EM ITERATION 5 Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 EM ITERATION 10 Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 EM ITERATION 15 Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 EM ITERATION 25 Red Blood Cell Hemoglobin Concentration 4.4 4.3 4.2 4.1 4 3.9 3.8 3.7 3.3 3.4 3.5 3.6 3.7 Red Blood Cell Volume 3.8 3.9 4 LOG-LIKELIHOOD AS A FUNCTION OF EM ITERATIONS 490 480 Log-Likelihood 470 460 450 440 430 420 410 400 0 5 10 15 EM Iteration 20 25 Inizializzazione (1/14) EM ha necessita di una inizializzazione Come in tutte le tecniche di hill climbing, il risultato dipende fortemente dalla scelta del punto iniziale Scelta del numero di cluster (1/12) EM, come altri algoritmi di clustering, richiede in input il numero di cluster in cui clusterizzare il dataset di training Si possono sfruttare tecniche per la stima del numero di cluster da utilizzare Ci sono vari approcci: Deterministici: come ad esempio i metodi basati sull’information theory tipo MML e MDL, ed altri; Stocastici: come ad esempio la cross-validazione, ed altri; Scelta del numero di cluster (2/12) L’approccio utilizzato in questo lavoro e quello della cross-validazione Di certo non si può utilizzare la sola likelihood sui dati di training per stimare il numero di cluster Infatti più cluster si utilizzano più i dati verranno fittati meglio (la log-likelihood dei dati di training è una funzione crescente nel numero di cluster utilizzati) Disponendo di un dataset indipendente da quello di training per effettuare solamente test, la sua loglikelihood potrebbe risultare utile Scelta del numero di cluster (3/12) train Supponiamo di avere un dataset X per il training, test X ed un altro dataset, , per effettuare il testing Supponiamo che sia p x la “vera” distribuzione alla base dei due dataset k k train x | X Poniamo p la distribuzione che EM ha ricavato a partire dal dataset di training utilizzando k cluster k X train indichiamo i parametri Con la notazione stimati da EM utilizzando k cluster Scelta del numero di cluster (4/12) La funzione L k X train | X train P X train | k X train indica la likelihood dei parametri stimati rispetto al dataset di training (è una funzione crescente di k) La funzione L k X train | X test P X test | k X train indica la likelihood dei parametri stimati rispetto al dataset di test; indica quanto verosimilmente le istanze del dataset di test provengano dalla k k train p x | X distribuzione stimata Scelta del numero di cluster (5/12) La log-likelihood relativa è: lktest log L k X train | X test che è una funzione di k fissati i restanti parametri ed il dataset di training Questa funzione, intuitivamente, dovrebbe risultare più utile nella stima del numero corretto di cluster. Mostriamo che ciò è vero… Scelta del numero di cluster (6/12) Poniamo opportunamente: test ik lk 1 log L k X train | X test Ntest Ntest che è l’opposto della log-likelihood per istanza Calcoliamone il valore atteso: E ik lktest 1 log P X test | k X train E ... E N Ntest test sono variabili aleatorie Ntest k 1 k train che provengono tutte E log p xi | X Ntest i 1 dalla stessa distribuzione p x , quella “vera” 1 Ntest k k train ... E log p x | X i Ntest i 1 Scelta del numero di cluster (7/12) Sostituiamo xi con x̂ ed otteniamo: 1 N log p k xˆ | k X train E E ik test N test i 1 1 N test E log p k xˆ | k X train N test p xˆ log p k xˆ | k X train dxˆ p xˆ ... p xˆ log k p xˆ | k X train è indipendente da k, e misura l’entropia della distribuzione p x dxˆ p xˆ log 1 dxˆ p xˆ distanza di Kullback-Leibler, misura la distanza fra due distribuzioni; è sempre positiva e vale zero quando le distribuzioni coincidono Scelta del numero di cluster (8/12) La log-likelihood del dataset di test, opportunamente scalata, è una stima della distanza fra le due distribuzioni, quella “vera” e quella ricavata da EM Quasi mai si dispone di un ampio dataset di test indipendente da quello di training Si utilizzano ripetutamente porzioni del dataset di training per effettuare il test: in questo caso si parla di cross-validazione Scelta del numero di cluster (9/12) {cross-validazione} Supponiamo che si effettui M volte la ripartizione del dataset di training e sia Si la porzione utilizzata per il calcolo della log-likelihood di test La log-likelihood di cross-validazione è: 1 cv lk M 1 M k train log L X \ Si | Si log P S | train X \ Si M i 1 M i 1 i k la media delle log-likelihood delle porzioni utilizzate per il test Scelta del numero di cluster (10/12) {Monte Carlo Cross-Validation} Ci sono vari approcci per fare cross-validazione, quello utilizzato è la Monte Carlo Cross-Validation Con questa metodologia il dataset di test viene ripetutamente suddiviso in due parti, una per il training l’altra per il testing Ad ogni iterazione di cross-validazione si provano tutti i clustering con numero di cluster da 1 ad un valore massimo fornito dall’utente b indica la porzione di dataset da utilizzare per il testing Sperimentalmente si è visto come valori di bpari a 0,5 ed M compreso tra 20 e 50, siano buoni nella maggior parte dei casi Riferimenti [1] Trevor Hastie, Robert Tibshirani, and Jerome Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction; Springer Series in Statistics. New York, NY: Springer Verlag, 2001. [2] Robert A. Adams, Calcolo Differenziale 2: Funzioni di più variabili; (seconda edizione). Milano, Italy: Casa Editrice Ambrosiana, 2000. [3] Padhraic Smyth, Clustering using Monte Carlo Cross-Validation, in E. Simoudis, J. Han, and U. M. Fayyad, Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96), Menlo Park, CA: AAAI Press, pp 126-133, 1996. [4] Padhraic Smyth, Model Selection for Probabilistic Clustering using Cross-Validated Likelihood, Technical Report UCI-ICS 98-09, Department of Information and Computer Science, University of California, Irvine, CA, 1998. [5] Thomas M. Cover, and Joy A. Thomas, Elements of Information Theory; Wiley Series in Telecommunications. New York, NY: John Wiley & Sons, 1991. [6] Pasquale Erto, Probabilità e Statistica per le scienze e l’ingegneria; collana di istruzione scientifica, serie di statistica. Milano, Italy, 1999. [7] Ian H. Witten, and Eibe Frank (2005), Data Mining: Practical machine learning tools and techniques, (2nd Edition). San Francisco, CA: Morgan Kaufmann, 2005.