Introduzione al Pattern Recognition Statistico Roberto Tagliaferri Dipartimento di Informatica Università di Salerno ( Sa ) 84084 Fisciano e-mail robtag@unisa.it
Statistical Pattern Recognition Introduzione Regressione e classificazione Alcuni esempi Pre-processing, post-processing ed estrazione delle caratteristiche Interpolazione polinomiale Problemi di overfitting e di complessità dei modelli
Introduzione: il problema della generalizzazione " I Problema: numero enorme di possibili esempi " Esempio: Riconoscimento di caratteri: se uso 8 bit per immagini 256 x 256 " ho bisogno di 256 x 256 x 8 bits per codificare un'immagine ed ho 256 x 256 x 8 10158000 possibili immagini diverse ( esempi " II Problema: numero di esempi reali piccolo (in assoluto o relativamente ai possibili " Necessità: ricerca delle regolarità nei dati " III Problema: dati con alta dimensionalità e basso numero di esempi " Necessità: estrazione delle corrette caratteristiche (features) input per poter discriminare tra le classi " " IV Problema: intersezione non vuota (overlap) tra le classi
Introduzione: l'incertezza nei dati ( noisy ) I dati reali sono rumorosi Trattamento quantitativo dei dati trattare in modo corretto l'incertezza Il formalismo ottimo per trattare l'inferenza è la teoria della probabilità Assumiamo la presenza di una regolarità soggiacente i dati per fare predizioni Esempio: l'elenco telefonico non è predittibile
Regressione Predizione di una o più quantità continue Punto di vista statistico: modellare la distribuzione di probabilità condizionale gaussiana p(t x) della variabile target t data la variabile input x, con media data dalla funzione polinomiale y(x, w). Esempi: predizione di serie temporali, di segnali nel tempo
Classificazione L'output è una variabile discreta con un basso numero di valori ("classi"). Nel caso di reti neurali c'è un neurone output per ogni classe Scopo del problema di classificazione è quello di assegnare gli input alle classi Esempi: riconoscimento di caratteri, di stelle e galassie, ecc.
Un esempio: riconoscimento di pesci
Un esempio: riconoscimento di pesci
Un esempio: riconoscimento di pesci
Un esempio: riconoscimento di pesci
Un esempio: DNA microarray
Un esempio: DNA microarray
Un esempio: DNA microarray
Un esempio: DNA microarray
Un esempio: DNA microarray
Un esempio: DNA microarray
Un esempio: DNA microarray Geni tumorali Nei tessuti normali i geni contengono informazioni corrette, mentre nel tumore insorgono dei cambiamenti a livello del DNA. Alcuni dei geni, e di conseguenza le proteine da loro prodotte, non sono assemblati in modo corretto. Ad esempio, una proteina può non essere prodotta, essere prodotta in misura troppo elevata, contenere un numero diverso di aminoacidi o presentare delle alterazioni. Tali alterazioni possono contribuire ad una crescita incontrollata ed allo sviluppo di un tumore.
Un esempio: DNA microarray Scopo: Analizzare le variazioni del profilo di espressione genica in seguito ad un trattamento antitumorale. Per far ciò viene utilizzata la tecnica dei microarrays. Questo procedimento è costituito da diverse fasi: 1) isolamento dell mrna 2) conversione dell mrna in cdna 3) analisi del cdna con microarrays
Un esempio: DNA microarray
Un esempio: DNA microarray 2) Conversione dell mrna in cdna Il passo successivo consiste nel convertire nuovamente l mrna in DNA. Ciò viene effettuato invertendo la trasformazione avvenuta a livello cellulare, quando il DNA di un gene è stato convertito in mrna tramite il processo di appaiamento delle basi. Inizialmente l mrna viene affiancato ad un insieme di basi di DNA; queste si accoppiano alle loro complementari sull mrna, dando origine ad un doppio filamento mrna-dna. In seguito, l mrna viene rimosso ed il filamento di DNA rimanente viene utilizzato come stampo per costruire un doppio filamento, chiamato cdna. Ciascun cdna corrisponde quindi ad uno specifico mrna prodotto a livello cellulare.
Un esempio: DNA microarray Tessuto della prostata, normale Tessuto della prostata, tumorale I microarrays In questo esempio i cdna sono stati posizionati su di un vetrino, simile ai normali vetrini usati per l istologia. Un microarray è un supporto solido sul quale sono stati posizionati diverse migliaia di cdna in spot separati. Ciascuno spot rappresenta un gene, in quanto contiene numerose copie di un cdna corrispondente a tale gene. L utilizzo dei microarrays può aiutarci a capire quali geni sono attivati o disattivati in un tessuto, oppure come varia la loro espressione in risposta ad un trattamento specifico.
Un esempio: DNA microarray Tessuto della prostata, normale Tessuto della prostata, tumorale 3) utilizzo dei microarrays In un generico esperimento si confrontano i profili di espressione genica di due campioni differenti, come ad esempio cellule normali e tumorali di uno stesso organo oppure cellule tumorali analizzate prima e dopo il trattamento. E necessario estrarre le molecole di mrna dai due campioni ed eseguire delle procedure che ne permettano la distinzione, la misura ed il confronto.
Estrazione dell mrna dai 2 campioni di cellule che si vogliono confrontare Un esempio: DNA microarray Confronto dei profili di espressione genica in due campioni cellulari diversi (1) Conversione in cdna Marcatura con 2 fluorocromi diversi (2) (3) Riconoscimento tra i cdna provenienti dai 2 campioni e quelli già presenti sul microarray (6) (4) (5) Immagine a colori raffigurante il microarray Eccitazione della fluorescenza tramite laser
Un esempio: DNA microarray Confronto dei profili di espressione genica in due campioni cellulari diversi I puntini gialli corrispondono a geni che sono espressi in uguale quantit à nei due campioni. I puntini verdi corrispondono a geni maggiormente espressi nel campione marcato col fluorocromo che emette fluorescenza verde (ad esempio nelle cellule tumorali prima del trattamento). I puntini rossi corrispondono a geni che sono maggiormente espressi nel campione marcato col fluorocromo che emette fluorescenza rossa (ad esempio nelle cellule tumorali dopo il trattamento).
Un esempio: DNA microarray Utilizzo dei microarrays nella classificazione dei tumori Paziente A Diagnosi: linfoma Profilo di espressione: sottotipo A Terapia: trattamento standard Paziente B Diagnosi: linfoma Profilo di espressione: sottotipo B Terapia: sviluppo di nuove strategie per migliorare la risposta Recentemente i microarrays sono stati utilizzati per ottenere informazioni utili nella classificazione dei tumori. Si è scoperto che alcuni tumori possono essere caratterizzati, a livello molecolare, da più sottotipi di cellule tumorali, che rispondono in maniera diversa ai trattamenti standard.
Un esempio: DNA microarray
Pre-processing, Post-processing e Feature Extraction Normalizzazione e codifica degli input e degli output Missing data Feature extraction and selection Principal component analysis Independent component analysis y1,..., yc y1,..., yc
Pre-processing, Post-processing e Feature Extraction: Sistemi di Pattern Recognition
Pre-processing, Post-processing e Feature Extraction: Progettazione di un sistema di Pattern Recognition
Un esempio di esperimento Classificazione di email in spam e ham
Un esempio di esperimento Classificazione di email in spam e ham Come fare? Seguiamo il workflow precedente 1. Collezionare i dati https://github.com/johnmyleswhite/ml_for_hackers/tree/master/03- Classification/data
Un esempio di esperimento Classificazione di email in spam e ham Come fare? Seguiamo il workflow precedente 2. Selezionare le caratteristiche Cosa scelgo come caratteristiche? -Lunghezza della mail -Numero di caratteri maiuscoli -Numero di caratteri speciali -Frequenza di parole -Combinazioni delle precedenti
Un esempio di esperimento Classificazione di email in spam e ham Come fare? Seguiamo il workflow precedente 2. Selezionare le caratteristiche Le parole più significative che caratterizzano lo spam html occorrenze 33,4% body occorrenze 29,8% table occorrenze 28,4%
Un esempio di esperimento Classificazione di email in spam e ham Come fare? Seguiamo il workflow precedente 3. Selezionare il modello di classificatore K-nearest neighboor Classificatore naive bayesiano Classificatore lineare Percettrone
Un esempio di esperimento Classificazione di email in spam e ham Come fare? Seguiamo il workflow precedente 4. addestrare il modello di classificatore Apprendere dai dati a classificare le mail in due classi
Un esempio di esperimento Classificazione di email in spam e ham Scatter plot delle 5 feature più significative
Un esempio di esperimento Classificazione di email in spam e ham Come fare? Seguiamo il workflow precedente 5. Valutare il modello di classificatore Training set Easy ham & Spam1 Test set easy ham & Spam2 Probabilità di appartenenza alle classi Dove corrisponde al prodotto delle probabilità di ogni parola che compone di appartenere alla classe c (dipendente dal training set), con e sono le probabilità a priori, che in questo caso valgono entrambe 0.5 Percentuale di mail correttamente classificate con le 5 caratterististiche più significative e Matrice di confusione Mail Type % Classified as Ham Easy ham 0,70 0,30 Spam2 0,20 0,80 % Classified as Spam
Un esempio di esperimento Classificazione di email in spam e ham
Interpolazione polinomiale Problema: trovare il polinomio che meglio approssima un insieme di N punti con tecniche di minimizzazione di una funzione errore Consideriamo il polinomio di ordine M: Può essere considerato una funzione non lineare con input x ed output y Per analogia con le reti neurali, possiamo scrivere y = y(x ; w) con w vettore dei parametri Consideriamo N dati input x n e i corrispondenti target t n Le procedure standard di interpolazione minimizzano In questo modo E è funzione di w con minimo w*, ed è una forma quadratica di w. Come conseguenza, se vediamo y come funzione lineare di w, allora il minimo di E può essere trovato come soluzione di un insieme di equazioni algebriche lineari
Interpolazione polinomiale La funzione di errore Corrisponde alla (metà della) somma dei quadrati delle distanze (mostrate dalle barre verdi verticali) di ciascun punto dalla funzione y(x, w)
Interpolazione polinomiale: un esempio Consideriamo l'insieme di dati generato dalla funzione sin (2 π x), campionata ad intervalli uguali e sommati a rumore casuale con distribuzione gaussiana con deviazione standard s = 0.05 Nell'esempio generiamo un secondo insieme di test per verificare la capacità di generalizzazione e predizione vediamo tre esempi sul training set di N =10 esempi con M = 0, 1, 3, 9 vediamo nelle figure seguenti come la rappresentazione con M = 0 e 1 sia insufficiente e quella con M = 9 sia affetta da over-fitting
Interpolazione polinomiale: un esempio Esempio del training set con N=10 punti (cerchi blu). La curva verde mostra la funzione sin (2 π x), campionata uniformemente.
Interpolazione polinomiale: un esempio
Interpolazione polinomiale: un esempio
Interpolazione polinomiale: un esempio
Interpolazione polinomiale: un esempio
Interpolazione polinomiale: un esempio Per valutare la capacità di generalizzare con nuovi dati usiamo la funzione di errore ( root-mean-square ) radice dei minimi quadrati Dove w* rappresenta il vettore corrispondente al minimo della funzione di errore e y =y (x n ; w*) rappresenta il polinomio interpolatore
Interpolazione polinomiale: un esempio Grafico dell errore RMS valutato sul training e sul test set per i differenti valori di M compresi tra 0 e 9.
Interpolazione polinomiale: un esempio Tabella dei coefficienti w* per i polinomi di differente ordine M con valori di M compresi tra 0 e 9. Il risultato per 9 è che la funzione polinomiale ottiene i valori esatti per i punti di training ma ha un comportamento molto oscillatorio tra i punti.
Interpolazione polinomiale: un esempio Grafici delle soluzioni ottenute minimizzando la funzione di errore somma di quadrati per il polinomio di ordine 9 per N=15 punti e per N=100 punti. Si vede che incrementando la taglia del data set di training si riduce il problema dell over-fitting.
Interpolazione polinomiale: un esempio Per controllare l over-fitting una tecnica è quella della regolarizzazione che comporta l aggiunta di un termine di penalità alla funzione di errore per scoraggiare i coefficienti a raggiungere valori grandi. Il più semplice di tali termini porta alla nuova funzione di errore dove w w T w = w 2 0 + w 12 + + w 2 M e λ controlla l importanza relativa del termine di regolarizzazione rispetto al termine somma di quadrati. La funzione di errore può essere minimizzata in modo esatto in forma chiusa. Tali tecniche sono note come metodi di shrinkage. Il caso di regolarizzatore quadratico è detto ridge regression. Nel contesto delle reti neurali l approccio è noto come weight decay.
Interpolazione polinomiale: un esempio Grafici delle soluzioni per il polinomio di ordine 9 usando la funzione di errore regolarizzata per N=10 per valori di λ corrispondenti a ln λ = -18 e ln λ = 0. Nel caso λ= 0, i.e. ln λ= -, il risultato è uguale a quello non regolarizzato mostrato precedentemente.
Interpolazione polinomiale: un esempio Tabella dei coefficienti w* per i polinomi di ordine M = 9 con differenti valori del parametro di regolarizzazione. Il caso ln λ= - corrisponde al modello senza regolarizzazione, mostrato nella tabella precedente
Interpolazione polinomiale: un esempio Grafico dell errore RMS valutato sul test set verso ln λ per il polinomio di ordine M = 9.
Overfitting nella classificazione Vediamo un semplice esempio di classificazione di patter bi-dimensionali con gli stessi problemi considerati per l'interpolazione
Overfitting: riconoscimento di pesci