Apprendimento Automatico
Tecniche ‘classiche’ di apprendimento
Stefano Cagnoni
In sostanza …..
 La capacità di apprendimento è fondamentale in un
sistema intelligente per:
 Risolvere nuovi problemi (e includere la scoperta nella propria
base di conoscenza)
 Non ripetere gli errori fatti in passato.
 Risolvere problemi in modo migliore o più efficiente.
 Avere autonomia nell’affrontare e risolvere problemi.
 Adattarsi ai cambiamenti dell’ambiente circostante.
 Un sistema senza queste caratteristiche difficilmente
potrebbe essere considerato intelligente.
2
Dinamica dell’apprendimento
“Apprendere significa migliorare le prestazioni in un determinato
ambiente acquisendo conoscenza derivante dall’esperienza in tale
ambiente”.
Prestazioni
Ambiente
Conoscenza
Apprendimento
3
Definizione e Obiettivi
 Estrarre conoscenza dal ripetersi di situazioni
 esperienza stato comportamento
 Partendo da un minimo livello di conoscenza, utilizzare
un metodo di apprendimento generale per acquisire, via
via, nuova conoscenza.
 Partendo da un sistema che include già conoscenza
strutturata si cerca di incrementarla o strutturarla
ulteriormente.
4
Apprendimento Induttivo
 Viene utilizzato per apprendere dei concetti espressi in
genere con delle regole la cui forma è: «nella situazione
X esegui l’azione Y».
situazione1

azione1

azionen
...
situazionen
situazionegen

azionegen
5
Apprendimento Induttivo
oggetto1 è un corvo 
...
oggetton è un corvo 
oggetto1 è nero
?x è un corvo

oggetton è nero
?x è nero
 Più in generale un algoritmo di apprendimento induttivo esegue il
seguente compito: «dato un insieme di esempi (campioni) di f,
definisci una funzione h (ipotesi) che approssima f».
 Problema: trovare il giusto livello di approssimazione (le
osservazioni possono essere contraddittorie)
6
Apprendimento da Esempi: problemi
• Gli esempi devono costituire un campione rappresentativo del problema
• Numero di esempi (ho abbastanza campioni ?)
• Distribuzione degli esempi (ho campioni distribuiti in modo tale da
rappresentare ogni regione distinta dello spazio che descrivono ?)
In generale, problema non rimediabile e, soprattutto, non verificabile prima
dell’apprendimento
• Gli esempi devono essere ‘corretti’
• Bisogna evitare contraddizioni o esempi palesemente errati
Non sempre possibile (es. segnale con rumore) ma rimediabile
7
Apprendimento da Esempi: suddivisione degli esempi
• Per ovviare a tali problemi, gli esempi devono essere suddivisi in
modo opportuno in insiemi ‘diversi’
• Training set, su cui avviene l’apprendimento
• Test set, contenente esempi non inclusi nel training set, su cui si verifica ciò
che si è appreso
Se l’(algoritmo di) apprendimento dipende da parametri empirici
• Validation set, con funzioni simili al test set, ma finalizzato alla ricerca dei
migliori parametri per l’algoritmo di apprendimento
8
Apprendimento da Esempi: analisi
• Il confronto fra le prestazioni sul training set e sul test set serve a
valutare il livello di generalizzazione dell’apprendimento.
• Una significativa differenza di prestazioni fra training set e test set
può significare:
• Overfitting (l’algoritmo di apprendimento ha ‘imparato a memoria’ il training
set e non le regole generali del processo di cui è un campionamento)
• La distribuzione statistica degli esempi nei due insiemi non è omogenea
• La percentuale di esempi errati è troppo elevata
• I valori dei parametri dell’algoritmo di apprendimento non sono corrretti
9
Apprendimento da Esempi: suddivisione degli esempi
Training Set
Apprendimento
Validation
Set
Test Set
10
Alberi di Decisione
 Strutture ad albero in cui:
 I nodi rappresentano gli attributi su cui deve basarsi la
decisione
 I rami rappresentano i valori dell’attributo da cui originano
 Le foglie rappresentano le decisioni
Es. giocare o no a golf ?
Tempo
Pioggia
Nuvoloso
Sole
Gioca
>75%
Non Giocare
Umidità
Vento
sì
no
Non Giocare
Gioca
<=75%
Gioca
11
Alberi di Decisione
 Come si opera per imparare dagli esempi la funzione di decisione
basata sul valore degli attributi disponibili ?
 Usare l’attributo che meglio separa esempi positivi e negativi.
 Se l’attributo divide tutti gli esempi negativi da quelli positivi, allora abbiamo
trovato la funzione.
 Altrimenti bisogna applicare il primo punto ricorsivamente sui sottoinsiemi
generati fino a quel punto dall’algoritmo.
 L’iterazione termina anche nel caso in cui non sia stata trovata la funzione,
ma non abbiamo più attributi da utilizzare per suddividere gli esempi. Questo
può accadere se abbiamo:
 Dati scorretti / conoscenza incerta
 Informazioni insufficienti.
(vedi anche http://www2.cs.uregina.ca/~hamilton/courses/831/notes/ml/dtrees/4_dtrees1.html)
12
Alberi di Decisione
 Se troviamo una funzione che non usa tutti gli attributi ci
possono essere problemi?
 Possibile sottoutilizzo delle informazioni disponibili
 L’albero creato è l’unico possibile? Se non lo è, è il migliore possibile?
 Se troviamo una funzione che usa tutti gli attributi ci
possono essere problemi?
 Tutti gli attributi sono utilizzati per il loro effettivo contenuto informativo o
‘per far tornare le cose’ (overfitting) ?
 Come si scelgono gli attributi?
13
Alberi di Decisione
Approccio basato sulla teoria dell’informazione
 Bisogna scegliere prima quelli che hanno un valore informativo maggiore, ossia
il migliore guadagno informativo:
Gain(A) = I(p/(p+n),n/(p+n)) - ipi+ni)/(p+n) I(pi/(pi+ni),ni/(pi+ni))
i=1..N possibili valori di A
[ p/(p+n)  P(p), n/(p+n)  P(n) ]
dove
I(P(p),P(n)) = -P(n)log2P(n) - P(p)log2P(p)
è il contenuto informativo (risoluzione di incertezza) di una corretta risposta
yes/no con probabilità P(p) e P(n) rispettivamente.
14
Alberi di Decisione
Esempio del ristorante: vale la pena attendere
la disponibilità di un tavolo ?
Alt
Bar
Fri/ Sa
Hu n
Patr
Rain
Re s
Wtim e Go al
yes
yes
no
yes
yes
no
no
no
no
yes
no
no
yes
yes
no
no
no
yes
yes
no
no
yes
yes
no
yes
no
yes
no
so m e
fu ll
so m e
fu ll
fu ll
so m e
n on e
no
no
no
no
no
yes
yes
yes
no
no
no
yes
yes
no
0 -1 0
3 0 -6 0
0 -1 0
1 0 -3 0
>6 0
0 -1 0
0 -1 0
YES
NO
YES
YES
NO
YES
NO
no
no
no
yes
so m e
yes
yes
0 -1 0
YES
no
yes
yes
no
fu ll
yes
no
>6 0
NO
yes
yes
yes
yes
fu ll
no
yes
1 0 -3 0 NO
no
no
no
no
n on e
no
no
0 -1 0
yes
yes
yes
yes
fu ll
no
no
3 0 -6 0 YES
NO
15
Alberi di Decisione
Costruzione albero per il problema del ristorante
Passo 1 (scelta della radice dell’albero):
I(p/(n+p),n/(n+p))=1
ho 6 esempi positivi e 6 negativi => max. incertezza
R(Pat) = 0.45915
R(Bar) = R(Alt) = R(Rain) = 1
R(Fri/Sat) = 0.97928
R(WTime) = 0.79248
R(Hun) = 0.80429
G(Patr) = 0.54085
G(Bar) = G(Alt) = G(Rain) = 0
G(Fri/Sat) = 0.02072
G(WTime) = 0.20752
G(Hun) = 0.19571
Patrons è l’attributo che offre il maggior guadagno
….. e così via ricorsivamente per i livelli successivi
16
Il “rasoio di Occam”
“Entia non sunt moltiplicanda praeter necessitatem”
(principio di parsimonia)
Adattando il principio,
“la descrizione più semplice è anche la più efficace”
Per gli alberi di decisione
“L’albero di decisione più piccolo che sia consistente con gli esempi
ha la massima probabilità di identificare correttamente istanze del
problema non incluse negli esempi”
Non sempre vero (spesso per colpa del training set), ma principio
importante quando si deve ottenere una buona generalizzazione.
17
Alberi di Decisione
Albero ‘ragionevole’ ma non
derivabile dagli esempi col criterio
di parsimonia
Patrons
none
full
some
No
Yes
>60
WaitTime
30-60
No
Alternate
no
No
yes
no
Bar
Yes
No
yes
Yes
Yes
yes
Yes
Yes
yes
no
Fri/Sat
no
0-10
Hungry
yes
Reservation
no
10-30
Alternate
no
Yes
yes
Raining
no
No
yes
Yes
18
Alberi di Decisione
Albero minimale derivabile dagli
esempi ma meno ragionevole
Patrons
none
No
full
some
Yes
>60
WaitTime
30-60
No
10-30
Fri/Sat
no
no
yes
No
Yes
0-10
Hungry
Yes
yes
no
Yes
Bar
no
Yes
yes
No
19
Alberi di Decisione
per Informazione Incerta
 I valori di un training set possono essere soggetti a
rumore:
 Un insieme di attributi può essere erroneamente considerato
insufficiente.
 Si genera un albero inutilmente complesso.
 Se si sa che il training set può contenere degli errori,
possiamo limitarne la complessità usando due strategie:
 Potatura in avanti.
 Potatura all’indietro.
20
Alberi di Decisione
per Informazione Incerta
 La potatura in avanti può decidere di non espandere un nodo in
più nodi in base:
 al numero di istanze contenute nell’insieme corrispondente al nodo.
 alla loro ripartizione tra le classi corrispondenti ai possibili nodi figli, in
funzione dei diversi attributi su cui basare la partizione.
 Esempio:
 Se abbiamo 100 istanze e l’unico attributo disponibile le divide in due classi
di 99 e 1 elementi, possiamo decidere di non espandere il nodo ritenendo
generata da un errore l’unica istanza della seconda classe.
 La potatura all’indietro genera tutto l’albero e poi decide quali nodi
eliminare in base ad una stima empirica dell’errore di
classificazione.
21
C4.5
 Programma freeware per la costruzione di alberi di
decisione
 Composto da 4 eseguibili




C4.5
C4.5rules
Consult
Consultr
genera un albero binario
genera regole derivate dall’albero
classifica usando l’albero
classifica usando le regole
 Scaricabile dal sito http://www.rulequest.com/Personal/
22
C4.5
 Basato sull’algoritmo ID3 con alcune estensioni (gestione di attributi continui e
pruning)
(http://www2.cs.uregina.ca/~hamilton/courses/831/notes/ml/dtrees/c4.5/tutorial.html)
 Basato sul guadagno di informazione
 Insieme finito di classi.
 A seconda che l’attributo sia simbolico o numerico i nodi generano
 un successore per ogni possibile valore
 una serie di successori divisi in base al confronto con una costante o all’appartenenza ad
intervalli prefissati
 L’algoritmo inizia con tutti gli esempi, un insieme di possibili nodi test e la radice
come nodo attuale. Finché gli esempi assegnati ad un certo nodo non appartengono
alla stessa classe e ci sono attributi disponibili
 si sceglie il nodo col max guadagno informativo
 si genera l’insieme dei successori
 ogni esempio è assegnato al successore determinato dall’attributo scelto
 si applica ID3 ricorsivamente ai successori.
23
C4.5
 Utilizza vari file




xxxxx.names
xxxxx.data
xxxxx.test
xxxxx.rules
definizione degli attributi
dati per la costruzione dell’albero (training set)
dati per la verifica delle prestazioni (test set)
regole derivate dall’albero corrispondente
 xxxxx.tree
 xxxxx.unpruned
miglior albero in forma binaria
albero generato dall’algoritmo prima della
potatura
24
C4.5
 xxxxx.names definizione degli attributi
class1, class2, ….. classn.
| classi
attr1: val1attr1,val2attr1,….valmattr1.
attr2: continuous.
….
attrk: val1attrk,val2attrk,….valmattrk.
(NB INSERIRE un <cr> dopo l’ultima riga!!!)
25
C4.5
 xxxxx.data training set
 xxxxx.test test set
| attr1, attr2, attr3, ……., attrm
valattr1, valattr2, valattr3, …. valattrm, decisione
valattr1, valattr2, valattr3, …. valattrm, decisione
valattr1, valattr2, valattr3, …. valattrm, decisione
…..
valattr1, valattr2, valattr3, …. valattrm, decisione
| esempio1
| esempio2
| esempio3
| esempioN
26
C4.5
 Esempio (golf.names)
Play, Don't Play.
outlook: sunny, overcast, rain.
temperature: continuous.
humidity: continuous.
windy: true, false.
27
C4.5
 Esempio (golf.data)
sunny, 85, 85, false, Don't Play
sunny, 80, 90, true, Don't Play
overcast, 83, 78, false, Play
rain, 70, 96, false, Play
rain, 68, 80, false, Play
rain, 65, 70, true, Don't Play
overcast, 64, 65, true, Play
sunny, 72, 95, false, Don't Play
sunny, 69, 70, false, Play
rain, 75, 80, false, Play
sunny, 75, 70, true, Play
overcast, 72, 90, true, Play
overcast, 81, 75, false, Play
rain, 71, 80, true, Don't Play
28
C4.5
 Output del programma
C4.5 [release 8] decision tree generator Tue May 11 15:37:34 2004
---------------------------------------Options:
File stem <golf>
Read 14 cases (4 attributes) from golf.data
Decision Tree:
outlook = overcast: Play (4.0)
outlook = sunny:
| humidity <= 75 : Play (2.0)
| humidity > 75 : Don't Play (3.0)
outlook = rain:
| windy = true: Don't Play (2.0)
| windy = false: Play (3.0)
Evaluation on training data (14 items):
Before Pruning
---------------Size
Errors
8
0( 0.0%)
After Pruning
--------------------------Size
Errors
Estimate
8
0( 0.0%)
(38.5%) <<
29
Scarica

No - Università degli Studi di Parma