Learning finite MixtureModels Giuseppe Manco giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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 il dataset a disposizione, si definisce la likelihood come: Dove θ rappresenta il vettore di tutti i parametri della distribuzione giovedì 26 novembre 2009 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: giovedì 26 novembre 2009 Mixture-Model (1/5) Per il clustering si utilizza l’approccio a mixture-model 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 La distribuzione per una istanza è: Dove è la probabilità che venga scelta la k-ma distribuzione, e prende il nome di mixing probability, e è la k-ma distribuzione giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 Finite Mixture Models giovedì 26 novembre 2009 Finite Mixture Models giovedì 26 novembre 2009 Finite Mixture Models giovedì 26 novembre 2009 Finite Mixture Models Pesok Modellok giovedì 26 novembre 2009 Parametrik Esempio: Mistura di Gaussiane Gaussian mixtures: giovedì 26 novembre 2009 Esempio: Mistura di Gaussiane Gaussian mixtures: Ogni componente è una densità gaussiana con media µk covarianza Σk giovedì 26 novembre 2009 Example: Mixture of Gaussians Gaussian mixtures: Ogni componente è una densità gaussiana con media µk e covarianza Σk Esempio: K=2, 1-dim: {θ, α} = {µ1 , σ1 , µ2 , σ2 , α1 , α2} giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 Esempio: Mixture di Naïve Bayes giovedì 26 novembre 2009 Esempio: Mixture di Naïve Bayes giovedì 26 novembre 2009 Esempio: Mixture di Naïve Bayes Indipendenza condizionale per ogni componente giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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 che indica qual è la probabilità che si verifichi un evento di classe c Poiché facciamo riferimento ad un mixture-model di multinomiali, poniamo la probabilità che si verifichi l’evento di classe c nella multinomiale k giovedì 26 novembre 2009 Esempio: Mixtures di multinomiali Nel nostro caso, quindi, i dati che osserviamo sono nella forma: , dove è il numero di eventi di classe c per l’istanza i giovedì 26 novembre 2009 Esempio: Mixtures di multinomiali Nel nostro caso, quindi, i dati che osserviamo sono nella forma: , dove è il numero di eventi di classe c per l’istanza i La probabilità di osservare una particolare istanza generata da una distribuzione multinomiale è: giovedì 26 novembre 2009 Mixture-Model (2/5) La log-likelihood in questo caso vale: giovedì 26 novembre 2009 Mixture-Model (2/5) La log-likelihood in questo caso vale: Sommatoria dentro il logaritmo! giovedì 26 novembre 2009 Mixture-Model (2/5) La log-likelihood in questo caso vale: Sommatoria dentro il logaritmo! Questa funzione risulta molto complessa da ottimizzare… giovedì 26 novembre 2009 Mixture-Model (3/5) Si utilizza uno stratagemma: si suppone l’esistenza delle variabili che indicano se l’istanza i è stata generata dalla distribuzione k La variabile vale 1 se l’istanza i è stata generata dalla distribuzione k, vale 0 altrimenti. giovedì 26 novembre 2009 Mixture-Model (3/5) Si utilizza uno stratagemma: si suppone l’esistenza delle variabili che indicano se l’istanza i è stata generata dalla distribuzione k La variabile vale 1 se l’istanza i è stata generata dalla distribuzione k, vale 0 altrimenti. Queste variabili soddisfano la condizione: giovedì 26 novembre 2009 Mixture-Model (4/5) In questo caso la likelihood e quindi la log-likelihood valgono: giovedì 26 novembre 2009 Mixture-Model (4/5) In questo caso la likelihood e quindi la log-likelihood valgono: giovedì 26 novembre 2009 Mixture-Model (4/5) In questo caso la likelihood e quindi la log-likelihood valgono: giovedì 26 novembre 2009 Mixture-Model (4/5) In questo caso la likelihood e quindi la log-likelihood valgono: Solo un termine della sommatoria è diverso da zero… giovedì 26 novembre 2009 Mixture-Model (5/5) Per quanto evidenziato possiamo semplificare l’espressione della log-likelihood: giovedì 26 novembre 2009 Mixture-Model (5/5) Per quanto evidenziato possiamo semplificare l’espressione della log-likelihood: Questa espressione è aleatoria perché contiene le variabili aleatorie Si può soltanto massimizzarne il valore atteso giovedì 26 novembre 2009 Expectation-Maximization (1/11) giovedì 26 novembre 2009 Expectation-Maximization (1/11) Questo algoritmo di clustering viene utilizzato per stimare i parametri del mixture-model che è alla base di un dataset giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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: giovedì 26 novembre 2009 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) giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 Expectation-Maximization (2/11) Passo Expectation (g-ma iterazione) Si definisce la funzione: giovedì 26 novembre 2009 Expectation-Maximization (2/11) Passo Expectation (g-ma iterazione) Si definisce la funzione: Questa è funzione dei parametri θ, ed il valore atteso è calcolato a partire dalle stime dell’iterazione precedente sui dati di training giovedì 26 novembre 2009 Expectation-Maximization (3/11) {Expectation} L’espressione della funzione Q può essere riscritta come: giovedì 26 novembre 2009 Expectation-Maximization (3/11) {Expectation} L’espressione della funzione Q può essere riscritta come: giovedì 26 novembre 2009 Expectation-Maximization (3/11) {Expectation} L’espressione della funzione Q può essere riscritta come: per definizione di valore atteso giovedì 26 novembre 2009 Expectation-Maximization (3/11) {Expectation} L’espressione della funzione Q può essere riscritta come: per definizione di valore atteso Responsibility: è la probabilità che sia stata la distribuzione k a generare l’istanza i, considerando corretti i parametri stimati all’iterazione precedente giovedì 26 novembre 2009 Expectation-Maximization (4/11) {Expectation} Valendo la relazione P(A,B|C)=P(A|B,C)P(B|C) possiamo scrivere che: giovedì 26 novembre 2009 Expectation-Maximization (4/11) {Expectation} Valendo la relazione P(A,B|C)=P(A|B,C)P(B|C) possiamo scrivere che: Probabilità a priori che venga scelta la distribuzione k: la mixing probability giovedì 26 novembre 2009 Expectation-Maximization (4/11) {Expectation} Valendo la relazione P(A,B|C)=P(A|B,C)P(B|C) possiamo scrivere che: Probabilità a priori che venga scelta la distribuzione k: la mixing probability giovedì 26 novembre 2009 Expectation-Maximization (5/11) Passo Maximization (g-ma iterazione) Si devono individuare i valori di θ affinché venga massimizzata la funzione Q, ovvero: Per far questo calcoliamo le derivate parziali della funzione Q rispetto a tutti i parametri θ e le poniamo a zero giovedì 26 novembre 2009 Expectation-Maximization (6/11) {Maximization di gaussiane} La massimizzazione deve rispettare i seguenti vincoli: Utilizziamo, quindi, i moltiplicatori di Lagrange: giovedì 26 novembre 2009 Expectation-Maximization (6/11) {Maximization di multinomiali} La massimizzazione deve rispettare i seguenti vincoli: Utilizziamo, quindi, i moltiplicatori di Lagrange: giovedì 26 novembre 2009 Expectation-Maximization (6/11) {Maximization di multinomiali} La massimizzazione deve rispettare i seguenti vincoli: Utilizziamo, quindi, i moltiplicatori di Lagrange: giovedì 26 novembre 2009 Expectation-Maximization (6/11) {Maximization di multinomiali} La massimizzazione deve rispettare i seguenti vincoli: Utilizziamo, quindi, i moltiplicatori di Lagrange: giovedì 26 novembre 2009 Expectation-Maximization (6/11) {Maximization di multinomiali} La massimizzazione deve rispettare i seguenti vincoli: Utilizziamo, quindi, i moltiplicatori di Lagrange: giovedì 26 novembre 2009 Expectation-Maximization (7/11) {Maximization} Calcolo delle mixing probability: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (8/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (9/11) {Maximization di gaussiane} Calcolo dei parametri delle gaussiane: giovedì 26 novembre 2009 Expectation-Maximization (10/11) Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (9/11) {Maximization di multinomiali} Calcolo dei parametri delle multinomiali: giovedì 26 novembre 2009 Expectation-Maximization (10/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (10/11) {Maximization} Derivando l’espressione mostrata: giovedì 26 novembre 2009 Expectation-Maximization (11/11) Ricapitolando Expectation: Maximization: giovedì 26 novembre 2009 Expectation-Maximization (11/11) Ricapitolando Expectation: Maximization: giovedì 26 novembre 2009 Expectation-Maximization (11/11) Ricapitolando Expectation: Maximization: giovedì 26 novembre 2009 Expectation-Maximization (11/11) Ricapitolando Expectation: Maximization: giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 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; giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 Scelta del numero di cluster (3/12) Supponiamo di avere un dataset per il training, ed un altro dataset, , per effettuare il testing Supponiamo che sia la “vera” distribuzione alla base dei due dataset giovedì 26 novembre 2009 Scelta del numero di cluster (3/12) Supponiamo di avere un dataset per il training, ed un altro dataset, , per effettuare il testing Supponiamo che sia la “vera” distribuzione alla base dei due dataset Poniamo la distribuzione che EM ha ricavato a partire dal dataset di training utilizzando k cluster Con la notazione indichiamo i parametri stimati da EM utilizzando k cluster giovedì 26 novembre 2009 Scelta del numero di cluster (4/12) La funzione indica la likelihood dei parametri stimati rispetto al dataset di training (è una funzione crescente di k) giovedì 26 novembre 2009 Scelta del numero di cluster (4/12) La funzione indica la likelihood dei parametri stimati rispetto al dataset di training (è una funzione crescente di k) La funzione indica la likelihood dei parametri stimati rispetto al dataset di test; indica quanto verosimilmente le istanze del dataset di test provengano dalla distribuzione stimata giovedì 26 novembre 2009 Scelta del numero di cluster (5/12) La log-likelihood relativa è: 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… giovedì 26 novembre 2009 Scelta del numero di cluster (6/12) Poniamo opportunamente: che è l’opposto della log-likelihood per istanza Calcoliamone il valore atteso: giovedì 26 novembre 2009 Scelta del numero di cluster (6/12) Poniamo opportunamente: che è l’opposto della log-likelihood per istanza Calcoliamone il valore atteso: sono variabili aleatorie che provengono tutte dalla stessa distribuzione , quella “vera” giovedì 26 novembre 2009 Scelta del numero di cluster (7/12) Sostituiamo giovedì 26 novembre 2009 con ed otteniamo: Scelta del numero di cluster (7/12) Sostituiamo con ed otteniamo: è indipendente da k, e misura l’entropia della distribuzione giovedì 26 novembre 2009 Scelta del numero di cluster (7/12) Sostituiamo con ed otteniamo: è indipendente da k, e misura l’entropia della distribuzione distanza di Kullback-Leibler, misura la distanza fra due distribuzioni; è sempre positiva e vale zero quando le distribuzioni coincidono giovedì 26 novembre 2009 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 giovedì 26 novembre 2009 Scelta del numero di cluster (9/12) {cross-validazione} Supponiamo che si effettui M volte la ripartizione del dataset di training e sia la porzione utilizzata per il calcolo della log-likelihood di test La log-likelihood di cross-validazione è: la media delle log-likelihood delle porzioni utilizzate per il test giovedì 26 novembre 2009 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 β indica la porzione di dataset da utilizzare per il testing Sperimentalmente si è visto come valori di β pari a 0,5 ed M compreso tra 20 e 50, siano buoni nella maggior parte dei casi giovedì 26 novembre 2009 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. giovedì 26 novembre 2009