• Non ci sono risultati.

Apprendimento Automatico

N/A
N/A
Protected

Academic year: 2023

Condividi "Apprendimento Automatico"

Copied!
29
0
0

Testo completo

(1)

Apprendimento Automatico

Tecniche ‘classiche’ di apprendimento

Stefano Cagnoni

(2)

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

(3)

Dinamica dell’apprendimento

Ambiente Conoscenza

Prestazioni

Apprendimento

“Apprendere significa migliorare le prestazioni in un determinato ambiente acquisendo conoscenza derivante dall’esperienza in tale ambiente”.

(4)

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

(5)

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

...

situazionen  azionen

situazionegen  azionegen

(6)

oggetto1 è un corvo  oggetto1 è nero ...

oggetton è un corvo oggetton è nero

?x è un corvo ?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».

Apprendimento Induttivo

(7)

• 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

Apprendimento da Esempi: problemi

(8)

• 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

Apprendimento da Esempi: suddivisione degli esempi

(9)

• 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

Apprendimento da Esempi: analisi

(10)

Apprendimento da Esempi: suddivisione degli esempi

Training Set Apprendimento Validation Set

Test Set

(11)

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

Nuvoloso

Sole Pioggia

Vento Umidità

Gioca

Gioca Non Giocare

>75%

<=75%

no

(12)

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.

(13)

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?

(14)

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)

(15)

Alberi di Decisione

Esempio del ristorante: vale la pena attendere la disponibilità di un tavolo ?

(16)

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 G(Patr) = 0.54085

R(Bar) = R(Alt) = R(Rain) = 1 G(Bar) = G(Alt) = G(Rain) = 0 R(Fri/Sat) = 0.97928 G(Fri/Sat) = 0.02072

R(WTime) = 0.79248 G(WTime) = 0.20752

R(Hun) = 0.80429 G(Hun) = 0.19571

Patrons è l’attributo che offre il maggior guadagno

(17)

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.

(18)

Alberi di Decisione

Yes

No WaitTime

Patrons

No Alternate Hungry Reservation Fri/Sat

Bar

Yes

Yes No Yes

Yes Alternate Yes Raining

none

yes

some full

>60 30-60 10-30 0-10

no no

no no

no no

no

yes yes

yes yes yes

yes

Albero ‘ragionevole’ ma non derivabile dagli esempi col criterio

di parsimonia

(19)

Alberi di Decisione

Yes

No WaitTime

Patrons

No Fri/Sat Hungry Yes

Yes

No

Yes Bar

none some full

>60 30-60 10-30 0-10

no no no

no yes yes

No

yes

Albero minimale derivabile dagli esempi ma meno ragionevole

Yes

(20)

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.

(21)

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.

(22)

C4.5

 Programma freeware per la costruzione di alberi di decisione

 Composto da 4 eseguibili

 C4.5 genera un albero binario

 C4.5rules genera regole derivate dall’albero

 Consult classifica usando l’albero

 Consultr classifica usando le regole

(23)

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

(24)

C4.5

 Utilizza vari file

 xxxxx.names definizione degli attributi

 xxxxx.data dati per la costruzione dell’albero (training set)

 xxxxx.test dati per la verifica delle prestazioni (test set)

 xxxxx.rules regole derivate dall’albero corrispondente

 xxxxx.tree miglior albero in forma binaria

 xxxxx.unpruned albero generato dall’algoritmo prima della potatura

(25)

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!!!)

(26)

C4.5

 xxxxx.data training set

 xxxxx.test test set

| attr1, attr2, attr3, ……., attrm

valattr1, valattr2, valattr3, …. valattrm, decisione | esempio1 valattr1, valattr2, valattr3, …. valattrm, decisione | esempio2 valattr1, valattr2, valattr3, …. valattrm, decisione | esempio3

…..

valattr1, valattr2, valattr3, …. valattrm, decisione | esempioN

(27)

C4.5

 Esempio (golf.names) Play, Don't Play.

outlook: sunny, overcast, rain.

temperature: continuous.

humidity: continuous.

windy: true, false.

(28)

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

(29)

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 After Pruning

--- ---

Size Errors Size Errors Estimate

8 0( 0.0%) 8 0( 0.0%) (38.5%) <<

Riferimenti

Documenti correlati

Quale delle seguenti sequenze ordina i dispositivi di memoria dal più veloce al più lento come tempo di accesso ai dati.. nastro, memoria cache, hard disk, CD-ROM

Se si vuole aprire una memoria di traduzione già esistente il passo è molto semplice; cliccare su File nella finestra di Translator’s Workbench, cliccare poi su Open e scegliere

ðgli array (mono e bidimensionali) sono una soluzione per rappresentare molti dati tutti dello stesso tipo. m In altri

❖ È permesso a più processi di ottenere il lock in modalità lettura, ma un solo processo alla volta può acquisire il lock in modalità scrittura. ❖ Lock di

explore(Goal1 and Goal2, Trace, Answer):. explore(Goal1 and Goal2, Trace, Answer):- -!, !,

/* I primi due parametri sono legati alla linea di comando e */. /* vengono attivati dall'esecuzione del comando stesso

somma e moltiplicazione per uno scalare. Combinazioni lineari di matrici. Prodotto righe per colonne, tra matrici e tra matrici e vettori. Composizione di trasformazioni lineari

Parco “Villa Narducci” - Impianto sportivo Calcio attrezzato con Spogliatoi – Uffici – Centro Anziani con area verde dedicata – Sala Cittadina nel Parco – Palestra