Tecniche di Apprendimento Automatico Evelina Lamma Fabrizio Riguzzi Sergio Storari Giacomo Gamberoni
Definizione di AA Definizione 1: Learning is constructing or modifying representations of what is being experienced [Michalski 1986], pag. 10 Definizione 2: Learning denotes changes in the system that are adaptive in the sense that they enable the system to do the same task or tasks drawn from the same population more efficiently and more effectively the next time [Simon 1984], pag. 28 Def 1: si intende che la rappresentazione sia comprensibile agli esseri umani La conoscenza viene poi utilizzata per svolgere delle funzioni Def 2: Si considera anche il caso in cui l’apprendimento mette in grado il sistema di svolgere una funzione che prima non era in grado di svolgere La def 2 include la def 1 poiche’ considera anche il caso in cui i cambiamenti nel sistema abbiano la forma di nuova conoscenza inserita nel sistema e comprensibile agli esseri umani
Impieghi dell’AA A) estrazione di conoscenza da utilizzare per il funzionamento di sistemi basati su conoscenza (ad esempio, sistemi per la classificazione) a fini scientifici, ovvero scoperta di nuovi fatti e teorie attraverso l’osservazione e la sperimentazione B) miglioramento delle performance di una macchina ad esempio, miglioramento delle capacità motrici e cognitive di un robot Osservare che le due definizioni non si riferiscono direttamente ai due impieghi: A: fa riferimento alla def 1 e indirettamente alla 2 (solo primo punto) B: fa riferimento alla def 2 e indirettamente alla def 1
Tecniche di AA Tecniche simboliche (impieghi A e B) diversi tipi di rappresentazione rappresentazione attributo valore rappresentazione del primo ordine (regole) Tecniche statistiche (impiego B) Reti neurali (impiego B) L’apprendimento automatico può essere supervisionato (a partire da esempi) oppure non supervisionato.
Tecniche di AA Alberi decisionali (supervisionato) Support Vector Machine (“ “) Regole associative Reti bayesiane Clustering
Apprendimento di alberi di decisione Problemi appropriati: le istanze sono rappresentate da coppie attributo valore la funzione target ha valori discreti descrizioni disgiuntive di concetti possono essere richieste l’insieme dei dati di training può contenere errori l’insieme dei dati di training può contenere dati mancanti Sistemi che apprendono alberi di decisione: CLS, IDR, C4, ASSISTANT, ID5, CART, ID3 etc.
Alberi di decisione: c4.5 c4.5 [Qui93b,Qui96] Evoluzione di ID3, altro sistema del medesimo autore, J.R. Quinlan Ispirato ad uno dei primi sistemi di questo genere, CLS (Concept Learning Systems) di E.B. Hunt Continuo studio ed aggiornamento (release 8): rimane uno dei punti di riferimento nella propria classe di algoritmi. Algoritmo scritto in C per Unix: disponibile da http://www.cse.unsw.edu.au/~quinlan/c4.5r8.tar.gz
Algoritmo di determinazione dell’albero T: insieme degli esempi; {C1,C2,…,Ck}: insieme delle classi; Considera l’insieme T: T contiene uno o più esempi, tutti appartenenti alla medesima classe => singola foglia con etichetta la classe T non contiene nessun esempio (insieme vuoto)=> singola foglia con etichetta la classe piu’ frequente nell’insieme padre T contiene casi che appartengono a più classi => partizionamento di T in piu’ sottoinsiemi T1,T2,…,Tn secondo un test su un attributo=> nodo associato al test, con un sottoalbero per ogni possibile risultato del test stesso. Richiama l’algoritmo su ogni ramo/sottoinsieme
Esempio Istanze: sabati mattina Concetti: sabato adatto a giocare a tennis e sabato non adatto a giocare a tennis Attributi: outlook, con valori {sunny,overcast,rain} temperature, con valori numerici humidity, con valori numerici windy, con valori {true, false}
Esempio: No Outlook Temp (°F) Humid (%) Windy Class D1 sunny 75 70 T P D2 sunny 80 90 T N D3 sunny 85 85 F N D4 sunny 72 95 F N D5 sunny 69 70 F P D6 overcast 72 90 T P D7 overcast 83 78 F P D8 overcast 64 65 T P D9 overcast 81 75 F P D10 rain 71 80 T N D11 rain 65 70 T N D12 rain 75 80 F P D13 rain 68 80 F P D14 rain 70 96 F P
Albero di decisione Outlook sunny rain overcast Humidity 75 Windy true false true false P N P N P
Outlook=overcast Class=P Regole associative Descrivono correlazioni di eventi (attributo-valore) e possono essere viste come regole probabilistiche. Due eventi sono correlati quando sono osservati frequentemente insieme. Una regola associativa è un’implicazione della forma X Y, dove X e Y sono insiemi di eventi disgiunti Esempio: Outlook=overcast Class=P
Esempio No Outlook Temp (°F) Humid (%) Windy Class D1 sunny 75 70 T P D2 sunny 80 90 T N D3 sunny 85 85 F N D4 sunny 72 95 F N D5 sunny 69 70 F P D6 overcast 72 90 T P D7 overcast 83 78 F P D8 overcast 64 65 T P D9 overcast 81 75 F P D10 rain 71 80 T N D11 rain 65 70 T N D12 rain 75 80 F P D13 rain 68 80 F P D14 rain 70 96 F P
Supporto e confidenza X Y ha supporto s nel database D se e solo se una frazione pari ad s delle transazioni in D contengono X Y: s(Outlook=overcast Class=P) = 4/14 X Y ha confidenza c nel database D, se e solo se, tra tutte le transazioni che contengono X, ce n’e’ una frazione c che contiene anche Y: c(Outlook=overcast Class=P) = 1
Regole associative Il problema della scoperta di regole associative può essere espresso come segue Sia I = {i1, i2, ..., im} un insieme di letterali chiamati oggetti (o items). Una transazione T è un insieme di oggetti tali che TI. Un database di transazioni D è un insieme di transazioni ed è solitamente memorizzato in una tabella della forma Un itemset X è un set di oggetti tali che X I. Si dice che una transazione T contiene un itemset X se X T. Identificativo della transazione Item
Regole associative Il supporto di un itemset X (supporto(X)) è la frazione di transazioni in D che contiene X supporto(X)=transazioni che contengono X numero totale di transazioni Una regola associativa è una implicazione della forma X Y, dove X e Y sono itemsets e X Y .
Confidenza e supporto X Y ha supporto s nel database D se e solo se una frazione pari ad s delle transazioni in D contengono X Y: s=supporto(X Y)=supporto(X Y) X Y ha confidenza c nel database D, se e solo se, tra tutte le transazioni che contengono X, ce n’e’ una frazione c che contiene anche Y: c=confidenza(X Y)=supporto(X Y) supporto(X) Confidenza e supporto possono essere indicati anche in forma percentuale
Esempi 1 &2 => 3 ha il 90% di confidenza se, quando un cliente ha comperato gli oggetti 1 e 2, nel 90% dei casi has comperato anche 3 1 &2 => 3 ha il 20% di supporto se il 20% delle transazioni contiene 1, 2 e 3. Indica la frazione dei casi nei quali la regola si applica
Esempio Per supporto minimo 50% e confidenza minima 50% abbiamo le seguenti regole 1=>3 con supporto 50% e confidenza 66% 3=>1 con supporto 50% e confidenza 100%
Regole associative Dato un database D, il compito di scoprire le regole associative può essere riformulato come segue: scoprire tutte le regole associative con almeno un minimo supporto (chimato minsup) e una minima confidenza (chiamata minconf), dove minsup e minconf sono valori specificati dall’utente Il compito di scoprire regole associative può essere decomposto in due sottoproblemi: Trovare tutti gli itemset che hanno supporto sopra il minimo. Tali itemset sono chiamati itemset grandi. Questo sottoproblema è risolto dall’algoritmo APRIORI Generare tutte le regole associative con almeno la confidenza minima dall’insieme degli itemset grandi
Bayesian Networks Appropriate tool for modeling uncertainty Directed acyclic graph G: Nodes=random variables Arcs=dependence relations: Each node is conditionally independent from any node that is not its descendant given its parents Conditional Probability Tables (CPTs) GPr
Bayesian Networks Tampering Smoke Fire Alarm Leaving Report
Clustering Raggruppare le istanze di un dominio in cluster tali che gli oggetti nello stesso cluster mostrino un alto grado di similarità e gli oggetti in cluster diversi un alto grado di dissimilarità Misure di distanza e dissimilarità Distanze per punti in Rn: distanza euclidea
Esempio (K-means) Punti iniziali Centri dei cluster Membri del primo cluster Membri del secondo cluster Dopo la seconda iterazione
Clustering gerarchico Ogni istanza è considerata come un gruppo separato I gruppi più simili sono raggruppati in un nuovo gruppo di livello superiore nella gerarchia
Misure di distanza o dissimilarita’ Distanze per punti in Rn: distanza euclidea E’ un caso particolare, con p=2, della metrica di Minkowski
Misure di similarita’ Funzione coseno Coefficiente di Dice Similarita’ esponente
Relazione tra le misure di similarita’ e dissimilarita’ Un esempio:
K-means (versione di Forgy) Si applica a istanze appartenenti a Rn Sia k il numero dei cluster che si vogliono trovare Si scelgono k punti a caso in Rn come centri dei cluster Le istanze sono assegnate al cluster avente il centro piu’ vicino Si calcola il centroide (la media) dei punti in ogni cluster: questo rappresenta il nuovo centro del cluster Si riparte dal passo 2 finche’ tutte le istanze non sono assegnate allo stesso cluster in due iterazioni successive
K-means (versione di MacQueen) In questo caso i centroidi vengono ricalcolati dopo l’assegnazione di ogni pattern e non alla fine di un ciclo di riallocazione: Si scelgono k punti a caso in Rn come centri dei cluster Ciascuna istanza e’ assegnata al cluster avente il centro piu’ vicino. Dopo ogni assegnamento si deve ricalcolare il centroide del cluster che ha guadagnato l’elemento Si riparte dal passo 2 finche’ tutte le istanze non sono assegnate allo stesso cluster in due iterazioni successive
Risultato del clustering Il k-means cerca di minimizzare la funzione obiettivo
Scelta dei punti iniziali Sono possibili varie scelte: Le prime k istanze nel dataset Etichetta le istanze con i numeri da 1 a m (numero delle istanze) e scegli quelle con numeri m/k,2m/k,…,(k-1)m/k e m Scegliere a caso k istanze Generare k punti scegliendo a caso i valori di ciascun coordinata nel range della coordinata Genera un partizione del dataset in k sottoinsiemi mutuamente esclusivi e considera i centroidi dei sottoinsiemi
Esempio (K-means) Punti iniziali Centri dei cluster Membri del primo cluster Membri del secondo cluster Dopo la seconda iterazione