Apprendimento Automatico e IR: introduzione al Machine Learning MGRI a.a. 2007/8 A. Moschitti, R. Basili Dipartimento di Informatica Sistemi e produzione Università di Roma “Tor Vergata” Email: {moschitti,basili}@info.uniroma2.it 1 Sommario • Apprendimento automatico (ML): motivazioni • Definizione di ML – Supervised vs. unsupervised learning • Algoritmi di Apprendmento Automatico – Alberi di Decisione – Naive Bayes • Addestramento e Stima dei parametri in NB 2 Perché apprendere automaticamente delle funzioni • Le interazioni tra gli oggetti del mondo si possono esprimere con funzioni – Dal moto di pianeti (interazioni gravitazionali) – Alla relazione tra input/output negli algoritmi • Apprendere tali funzioni automaticamente… 3 Perché apprendere automaticamente delle funzioni • Le interazioni tra gli oggetti del mondo si possono esprimere con funzioni – Dal moto di pianeti (interazioni gravitazionali) – Alla relazione tra input/output negli algoritmi • Apprendere tali funzioni automaticamente… risolverebbe molti problemi – Progetto – Complessità – Accuracy 4 Avete già visto esempi di learning di funzioni 5 Regressione Lineare 6 Polinomi di grado 2 7 Polinomi di grado 3 8 Distribuzioni di probabilità 9 Motivazioni • Un programma è una funzione di riscrittura – La stringa di input è riscritta in quella di output • Scrivere un programma per una ditta che: – data una gerarchia di livelli (organigramma) – dato un impiegato e le sue caratteristiche ⇒ determini il suo livello nella gerarchia. • Supponiamo che le caratteristiche siano migliaia, quanti if devo scrivere nel mio programma? – Esempio: Se è stato assunto prima del 2000, è laureato, ha avuto esperienze all’estero … allora ha un livello x. 10 Motivazioni (cont) • Per scrivere tale programma: – Dobbiamo studiare la gerarchia (spesso non documentata esplicitamente) – Dobbiamo tenere conto di tutte le combinazioni: • Caratteristiche/livello gerarchico • Soluzione: – Apprendere tale funzione automaticamente da esempi. – Si accede al DB e si estraggono per ogni impiegato le caratteristiche ed il suo livello. 11 Apprendimento Automatico • (Langley, 2000): l’Apprendimento Automatico si occupa dei meccanismi attraverso i quali un agente intelligente migliora nel tempo le sue prestazioni P nell’effettuare un compito C. La prova del successo dell’apprendimento è quindi nella capacità di misurare l’incremento ∆P delle prestazioni sulla base delle esperienze E che l’agente è in grado di raccogliere durante il suo ciclo di vita. • La natura dell’apprendimento è quindi tutta nella caratterizzazione delle nozioni qui primitive di compito, prestazione ed esperienza. 12 Esperienza ed Apprendimento • L'esperienza, per esempio, nel gioco degli scacchi può essere interpretata in diversi modi: – i dati sulle vittorie (e sconfitte) pregresse per valutare la bontà (o la inadeguatezza) di strategie e mosse eseguite rispetto all'avversario. – valutazione fornita sulle mosse da un docente esterno (oracolo, guida). – Adeguatezza dei comportamenti derivata dalla autoosservazione, cioè dalla capacità di analizzare partite dell'agente contro se stesso secondo un modello esplicito del processo (partita) e della sua evoluzione (comportamento, vantaggi, …). 13 Esperienza ed Apprendimento (2) • Possiamo quindi parlare nei tre casi di: – apprendimento per esperienza, o induttivo, (partite eseguite e valutate in base al loro successo finale), – apprendimento supervisionato (cioè partite, strategie e mosse giudicate in base all'oracolo) – apprendimento basato sulla conoscenza relativa al task, che guida la formazione di modelli del processo e modelli di comportamento adeguato. 14 Apprendimento senza supervisione • In assenza dell’oracolo e di conoscenza sul task esitono ancora molti modi di migliorare le proprie prestazioni, ad es. – Migliorando il proprio modello del mondo (acquisizione di conoscenza) – Migliorando le proprie prestazioni computazionali (ottimizzazione) 15 Apprendimento senza supervisione • Esempio: – una collezione Mp3 può essere organizzata in generi (clustering): tale organizzazione è naturalmente gerarchica – Il miglioramento avviene quindi rispetto agli algoritmi di ricerca: la organizzazione gerarchica consente di esaminare solo i membri dell’insieme in alcune classi (i generi). 16 L’apprendimento automatico • Apprendere la funzione da esempi: – a valori reali, regression – a valori interi finiti, classification • Supponiamo di volere apprendere una funzione intera: – 2 classi, gatto e cane – f(x) Æ {gatto,cane} • Dato un insieme di esempi per le due classi – Si estraggono le features (altezza, baffi, tipo di dentatura, numero di zampe). • Si applica l’algoritmo di learning per generare f 17 Algoritmi di Apprendimento • Funzioni logiche booleane, (ad es., alberi di decisione). • Funzione di Probabilità, (ad es., classificatore Bayesiano). • Funzioni di separazione in spazi vettoriali – Non lineari: KNN, reti neurali multi-strato,… – Lineari, percettroni, Support Vector Machines,… 18 Alberi di decisione (tra le classi Gatti/Cani) E’ alto + di 50 cm? Si No Ha il pelo corto? Output: Cane No Ha i baffi? No Output: Cane Si .. . Output: Gatto 19 Selezione delle features con l’Entropia • L’entropia di una distribuzione di classi P(Ci) è la seguente: Misura quanto una distribuzione è uniforme (stato dell’entropia) per insiemi S1…Sn partizionati con gli attributi di una feature: 20 Definizione di Probabilità (1) • Sia Ω uno spazio e sia β una famiglia di sottoinsiemi di Ω • β rappresenta la famiglia degli eventi • Si definisce allora la probabilità P nel seguente modo: P : β → [0,1] 21 Definizione di Probabilità (2) P è una funzione che associa ad ogni evento E un numero P(E) detto probabilità di E nel seguente modo: 1) 0 ≤ P ( E ) ≤ 1 2) P (Ω ) = 1 3) P( E1 ∨ E2 ∨ ... ∨ En ∨ ...) = ∞ = ∑ P( Ei ) se Ei ∧ E j = 0 , ∀i ≠ j i =1 22 Partizioni finite ed Equiprobabili • Si consideri una partizione di Ω in n eventi equiprobabili Ei (con probabilità 1/n). • Dato un evento generico E, la sua probabilità è data da : P( E ) = P( E ∧ Etot ) = P( E ∧ ( E1 ∨ E2 ∨ ... ∨ En )) = 1 ∑i P( E ∧ Ei ) = E∑⊂ EP( Ei ) = E∑⊂ E n = i i 1 1 Casi Favorevoli 1 = ( {i : Ei ⊂ E}) = ∑ Casi Possibili n Ei ⊂ E n 23 Probabilità condizionata • P(A | B) la probabilità di A dato B • B è l’informazione che conosciamo. • Si ha: P( A ∧ B) P( A | B) = P( B) A A∧ B B 24 Indipendenza • A e B sono indipendenti iff: P ( A | B ) = P ( A) P ( B | A) = P ( B ) • Se A e B sono indipendenti: P( A ∧ B) P ( A) = P ( A | B ) = P(B) P ( A ∧ B ) = P ( A) P ( B ) 25 Teorema di Bayes P(E | H )P(H ) P(H | E ) = P(E ) Dimostrazione P(H ∧ E ) P(H | E ) = P(E ) (Def. prob. Cond.) P(H ∧ E ) (Def. prob. Cond.) P(H ) P(H ∧ E ) = P(E | H )P(H ) P(E | H ) = 26 Categorizzatore Bayesiano • Dato un insieme di categorie {c1, c2,…cn} • Sia E una descrizione di un esempio da classificare. • La categoria di E si calcola determinando per ogni ci P ( ci ) P ( E | ci ) P ( ci | E ) = P(E ) n n ∑ P (c i =1 i | E) = ∑ i =1 P ( ci ) P ( E | ci ) =1 P(E ) n P ( E ) = ∑ P ( ci ) P ( E | ci ) i =1 27 Categorizzatore Bayesiano (cont) • Dobbiamo calcolare: – Le probabilità a posteriori: P(ci) – e le condizionate: P(E | ci) • P(ci) si stimano dai dati di training D. – se ci sono ni esempi in D di tipo ci,allora P(ci) = ni /|D| • Supponiamo che un esempio è rappresentato da m features: E = e1 ∧ e2 ∧ L ∧ em • Troppe rappresentazioni (esponenziale in m); dati di 28 training non disponibili per stimare P(E |ci) Categorizzatore Naïve Bayes • Assumiamo che le features siano indipendenti data la categoria (ci). m P ( E | ci ) = P ( e1 ∧ e2 ∧ L ∧ em | ci ) = ∏ P ( e j | ci ) j =1 • Quindi dobbiamo stimare solo P(ej | ci) per ogni feature e categoria. 29 Esempio di classificatore Naïve Bayes • C = {allergy, cold, well} • e1 = sneeze; e2 = cough; e3 = fever • E = {sneeze, cough, ¬fever} Prob P(ci) P(sneeze|ci) P(cough|ci) P(fever|ci) Well 0.9 0.1 0.1 0.01 Cold 0.05 0.9 0.8 0.7 Allergy 0.05 0.9 0.7 0.4 30 Esempio di classificatore – Naïve Bayes (cont.) Probability Well Cold Allergy P(ci) 0.9 0.05 0.05 P(sneeze | ci) 0.1 0.9 0.9 P(cough | ci) 0.1 0.8 0.7 P(fever | ci) 0.01 0.7 0.4 E={sneeze, cough, ¬fever} P(well | E) = (0.9)(0.1)(0.1)(0.99)/P(E)=0.0089/P(E) P(cold | E) = (0.05)(0.9)(0.8)(0.3)/P(E)=0.01/P(E) P(allergy | E) = (0.05)(0.9)(0.7)(0.6)/P(E)=0.019/P(E) La categoria più probabile è allergy infatti: P(E) = 0.0089 + 0.01 + 0.019 = 0.0379 P(well | E) = 0.23, P(cold | E) = 0.26, P(allergy | E) = 0.50 31 Stima delle probabilità • Frequenze stimate dai dati di apprendimento. • Se D contiene ni esempi nella categoria ci, e nij di ni contengono la feature ej, allora: nij P ( e j | ci ) = ni • Problemi: un corpus troppo piccolo. • Una feature rara, ek, ∀ci :P(ek | ci) ≈ 0. 32 Smoothing • Le probabilità debbono essere aggiustate perché il campione è insufficiente in modo da riflettere meglio la natura del problema. • Laplace smoothing – ogni feature ha almeno una probabilità a priori, p, – si assume che sia stata osservata in un esempio virtuale di taglia m. P ( e j | ci ) = nij + mp ni + m 33 Naïve Bayes per la classificazione di documenti • Modello a “bag of words” – Generato per i documenti in una categoria – Campionamento da un vocabolario V = {w1, w2,…wm} con probabilità P(wj | ci). • Lo smoothing di Laplace – Si assume una distribuzione uniforme su tutte le parole (p = 1/|V|) and m = |V| – Equivalente a osservare ogni parola in una categoria esattamente una volta. 34 Training (version 1) V è il vocabolario di tutte le parole dei documenti di training D Per ogni categoria ci ∈ C Sia Di il sotto-insieme dei documenti di D in ci ⇒ P(ci) = |Di| / |D| ni è il numero totale di parole in Di per ogni wj ∈ V, nij è il numero di occorrenze di wj in ci ⇒ P(wj | ci) = (nij + 1) / (ni + |V|) 35 Training (version 2) V è il vocabolario di tutte le parole dei documenti di training D Per ogni categoria ci ∈ C Sia Di il sotto-insieme dei documenti di D in ci ⇒ P(ci) = |Di| / |D| ni è il numero totale di coppie <w,d>, d ∈ Di e w ∈ V. Per ogni parola wj ∈ V, nij è il numero di documenti di ci che contengono wj cioè il numero delle coppie <wj,d> tale che d ∈ Di ⇒ P(wj | ci) = (nij + 1) / (ni + |V|) 36 Testing o Classificazione Dato un documento di test X Sia n il numero di parole che occorrono in X Restituisci la categoria: n argmax P ( ci )∏ P ( a j | ci ) ci ∈C j =1 dove aj è la parola che occorre nella jesima posizione in X 37 Sommario • Apprendere Automaticamente significa sviluppare un algoritmo o una risorsa per milgiorare le proprie prestazioni • Esistono diversi paradigmi di ML orientati alla soluzione di problemi e di domini diversi • Nell’apprendimento induttivo l’agente deriva un algoritmo (in genere di classificazione) da un pool di esempi etichettati – Supervised vs. unsupervised learning • Nell’apprendimento basato su conoscenza l’algoritmo apprende una nuova formulazione algoritmica usando un modello del task e del dominio 38 Sommario (2) • Un tipo di apprendimento di base è quello probabilistico dove apprendere significa – Descrivere il problema mediante un modello generativo che mette in relazione le variabili in input (e.g. sintomi) e quelle in output (e.g. diagnosi) – Determinare i corretto parametri del problema (i.e. le distribuzioni analitiche o la stima delle probabilità discrete) • Un esempio: clasificazione NB (caso discreto) • Nella stima dei parametri in NB un ruolo centrale è svolto dalle tecniche di smoothing: a parità di modello infatti stimatori errati producono risultati 39 insoddisfacenti