introduzione al Machine Learning - Università degli Studi di Roma

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