Elaborato Palermo Luigi N46001660

annuncio pubblicitario
Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
elaborato di laurea
Ensemble Learning
Anno Accademico 2015-2016
relatore
Ch.mo prof. Carlo Sansone
candidato
Luigi Palermo
matr. N46001660
Alla mia famiglia
e a chi mi ha donato molto piu’ di nome e cognome
Contents
1 Introduzione
1
2 Ensemble Learning
2.1 Generalita’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Metodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
4
3 Bagging
3.1 Bias e varianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
7
7
4 Randomization
9
4.1 Random forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Rotation forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Boosting
11
5.1 AdaBoostM1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 Vantaggi e svantaggi . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6 Stacking
15
6.1 Cross-validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.2 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7 Conclusioni
19
Bibliography
21
i
1 Introduzione
La creazione di macchine in grado di impossessarsi delle capacita’ cognitive e selettive proprie dell’uomo e’ senz’altro una sfida ambiziosa quanto affascinante di cui si
occupa l’intelligenza artificiale, la cui valutazione viene effettuata in relazione alle
capacita’ e alle prestazioni; non e’ dunque necessario simulare il comportamento del
cervello umano, bensi’ e’ richiesta un’emulazione selettiva nella produzione dei risultati . In sintesi, una macchina dotata di intelligenza artificiale mira utopisticamente
ad immedesimarsi in un essere umano. Su tale concetto si basa il Test di Turing,
ideato nel lontano 1950 e che ancora oggi non e’ stato superato consistentemente
da nessun calcolatore, il cui esempio viene espresso dal matematico britannico (da
cui prende il nome) attraverso il “gioco dell’imitazione”, ossia un paradigma che
ci permette di giudicare l’intelligenza di un calcolatore. Il test in questione pone
un terminale al centro, un interrogatore fisico da un lato e da quello opposto una
macchina ed un’altra persona fisica che forniscono alternativamente risposte a quesiti dell’interrogatore stesso; qualora quest’ultimo non dovesse essere in grado di
distinguere se tali risposte provengano da una mente umana oppure siano prodotte
da un’ intelligenza artificiale allora la macchina potra’ definirsi pensante.
L’intelligenza artificiale e’ dunque una disciplina che studia la riproducibilita’ di
complessi processi mentali mediante l’uso di calcolatori e rivolge particolare attenzione a come questi ultimi percepiscono l’ambiente esterno, a come interagiscono
con esso, in che modo sono in grado di apprendere e risolvere problemi, elaborare
informazioni e conseguire decisioni. Di grande rilievo risulta essere l’attivita’ di
apprendimento, che permette di accrescere le conoscenze della macchina e di apportare dei cambiamenti adattivi, affinche’ lo svolgimento del processo decisionale
in un epoca successiva risulti piu’ efficiente. Pertanto e’ importante la realizzazione
di un apprendimento di tipo induttivo oltre che deduttivo, ovvero un processo che
partendo da una collezione di esempi riguardanti una determinata sfera d’interesse
perviene alla formulazione di un’ipotesi in grado di predire esempi futuri. La difficolta’ concettuale nella formulazione di un’ ipotesi consiste nell’impossibilita’ di
stabilire se essa e’ una buona approssimazione della funzione che deve emulare o
meno, ma e’ possibile trarre considerazioni di tipo qualiitativo, per cui risultera’ efficiente un’ipotesi che sara’ in grado di effettuare una buona generalizzazione (quindi
sapra’ predire nel modo giusto esempi che non ha riscontrato ancora). Inoltre e’ possibile pervenire alla formulazione di piu’ ipotesi, con capacita’ predittiva simile, tutte
consistenti; in tal caso per decidere quale utilizzare si fa riferimento al rasoio di Occam, un principio metodologico che ci fa preferire come scelta ottimale la soluzione
(in questo contesto l’ipotesi) piu’ semplice.
1
Chapter 1
Introduzione
Una sostanziale differenza tra inferenza deduttiva e induttiva e’ che la prima garantisce correttezza logica, in quanto non altera la realta’ d’interesse, mentre la seconda puo’ tendere ad un’eccessiva generalizzazione e dunque compiere dei processi
selettivi errati. I sistemi di intelligenza artificiale trovano riscontro in un vasto
dominio di applicazioni riguardanti un’elevata quantita ed eterogeneita’ di settori,
dall’interpretazione del linguaggio naturale, ai giochi, alla dimostrazione di teoremi
matematici, alla robotica. Inoltre i programmi di apprenimento hanno grossa rilevanza per quanto concerne il Data Mining, ovvero l’estrazione di dati e conoscenze
a partire da un enorme patrimonio informativo mediante metodi automatizzati. Per
riprodurre attivita’ tipiche del cervello umano, quali il riconoscimento di forme e
figure, l’interpretazione del linguaggio e la percezione dell’ambiente in maniera sensoriale sono state create le reti neurali, con la finalita’ di simulare al calcolatore la
composizione del cervello animale.
Il primo percettrone, un modello in grado di accrescere la conoscenza tramite esempi, fu proposto da Rosenblatt poco piu di mezzo secolo fa; esso descriveva il
comportamento di un neurone, il quale elaborava la somma pesata dei suoi ingressi
producendo un uscita pari a 0 se tale somma era minore di una determinata soglia
(controllabile), in caso contrario presentava un uscita pari a 1. Di conseguenza il
processo di apprendimento consisteva nell’apportare delle modifiche ai pesi ed era
do tipo “supervisionato”, poiche’ al percettrone erano presentanti gli ingressi e le
risposte desiderate. Ma presto furono evidenziati i limiti di tale struttura, in quanto
fu dimostrata l’impossibilita’ di risolvere attraverso di essa problemi le cui soluzioni
non erano linearmente separabili, ragion per cui la ricerca in questo settore visse una
fase di stallo finche’ non fu teorizzato il percettrone multilivello (MLP, Multi-Layer
Perceptron), che faceva uso di algoritimi di apprendimento molto piu’ potenti (in
particolare quello di propagazione all’indietro). Questo tipo di architettura delle
reti neurali e’ detta connessionista, la quale consta di un gran numero di elementi di
elaborazione semplici (neuroni) e di connessioni pesate tra loro (sinapsi), per cui la
conoscenza della rete e’ codificata mediante dei pesi. Le reti neurali sono adeguate
a svolgere attivita’ di basso livello, come ad esempio il riconscimento del parlato, di
immagini e di tutto cio’ che puo’ avvenire tramite un metodo di classificazione; al
contrario comportamenti piu’ complessi come la progettazione o la diagnosi restano
afferenti al filone dell’intelligenza artificiale puramente simbolica.
Fin qui e’ stato descritto concettualmente un processo che ci consente di produrre
un’ipotesi a partire da una collezione di esempi, ma e’ lecito domandarsi cosa accadrebbe se avessimo piu’ ipotesi basate sullo stesso insieme di addestramento e se
le potessimo combinare tra loro; in termini di prestazioni, otterremmo una predizione migliore o peggiore? Questa aggregazione di ipotesi e’ alla base dell’ensemble
learning.
2
2 Ensemble Learning
I metodi di ensemble learning risultano essere tecniche molto potenti per ottenere
processi decisionali piu’ corretti, a discapito di una maggiore complessita’ e di una
perdita di interpretabilita’ rispetto ai sistemi di apprendimento basati su singole
ipotesi.
2.1 Generalita’
L’ensemble learning combina le predizioni di collezioni di ipotesi al fine di ottenere
una maggior efficienza prestazionale. Cosi’ come suggerito dalla sua traduzione in
italiano (letteralmente “apprendimento per comitato”) , e’ utile, per fini esplicativi,
paragonare tale tipo di apprendimento ad un consiglio (o appunto comitato) esecutivo di un’azienda, in cui piu’ persone con determinate competenze espongono le
proprie idee al fine di raggiungere una decisione finale.
E’ evidente che la conoscenza di un gruppo di persone puo’ portare ad una soluzione
piu’ ponderata rispetto alla decisione di un singolo consigliere, inoltre questo tipo di
analogia ci permettedi fare considerazioni di tipo qualitativo che risulteranno essere
applicabili nel dominio dell’intelligenza artificiale.
Infatti, e’ facile immaginare che se i consigliersi hanno tutti conoscenze molto simili
tra loro e dunque limitate ad uno stesso ambito, le analisi e le decisioni dei singoli
non saranno molto eterogenee e otterremo benefici in misura ridotta nell’utilizzo
dell’ensemble.
Se invece il sapere di ciascun consigliere risulta essere fortemente settorizzato, in
modo tale che ogni partecipante al comitato aggiunge conoscenze non replicate, la
decisione finale risultera’ essere piu’ adeguata. Se supponiamo che alla direzione
del consiglio vi sia un amministratore, il quale una volta presi in considerazione i
singoli pareri (voti) perviene ad una soluzione, e’ ragionevole pensare che egli si fidi
maggiormente di chi ha effettuato scelte piu’ corrette in passato, nel caso pratico
quindi di consiglieri che ritiene piu’ affidabili.
Analogamente, nell’apprendimento per comitato i voti delle singole ipotesi sono pesati in modo da enfatizzare le predizioni di quelle ritenute piu’ corrette. In conclusione, l’ensemble learning combina differenti modelli derivati da uno stesso insieme
di addestramento per produrre una combinazione di essi che allarghi lo spazio delle
ipotesi.
3
Chapter 2
Ensemble Learning
2.2 Metodi
I metodi di apprendimento ensemble piu’ comuni ed efficienti sono:
• bagging
• randomization
• boosting
• stacking
Per quanto essi possano migliorare le prestazioni effettive del sistema bisogna pero’
tener conto di una maggiore difficolta’ di analisi, poiche’ possono essere composti
da un consistente numero di singoli modelli, ragion per cui sara’ difficile comprendere intuitivamente quali fattori hanno contribuito al miglioramento e quali invece
possono essere considerati ridondanti o degradanti.
Ad esempio si potrebbero prendere in considerazione diversi alberi di decisione
generati sul medesimo dataset ed ottenere un voto da ciascuno di loro sulla classificazione di nuovi dati. La capacita’ predittiva finale facilmente risultera’ piu’ corretta
di quella dei singoli modelli e cio’ potrebbe essere influenzato in maniera consistente
anche solo da un sottoinsieme degli alberi coinvolti nella scelta, ma intutivamente
sara’ difficile riconoscere tale sottoinsieme.
La tecnica piu’ semplice per combinare le risposte di classificatori individuali in
un’unica predizione e’ quella dei voti pesati ed e’ utilizzata sia dal boosting che dal
bagging, la cui sostanziale differenza consiste nel modo in cui tali modelli vengono
generati.
4
3 Bagging
Il bagging prevede l’assegnazione di pesi identici per ciascun modello individuale
applicato ad un determinato insieme di addestramento. Si puo’ pensare che se si
estraggono piu’ insiemi di addestramento di pari cardinalita’ a partire dallo stesso
dominio di un problema e per ciascuno di essi si costruisce un albero di decisione (di
conseguenza si otterra’ una foresta), allora questi alberi saranno simili e perverranno
a predizioni identiche per un nuovo esempio di test.
Tale assunto risulta solitamente errato a causa dell’instabilita’ degli alberi di decisione, i quali a piccoli cambiamenti degli attributi di input possono far corrispondere
ingenti cambiamenti in termini di ramificazioni e dunque portare a classificazioni differenti.
E’ implicito che se a partire da uno stesso insieme di base si perviene a risultati
notevolmente diversi, allora gli output potranno essere sia corretti che sbagliati. In
un sistema in cui vi e’ un ipotesi per ciascun training set e la cui risposta ad un
nuovo esempio e’ determinata dai voti delle singole ipotesi (voto di maggioranza),
risultera’ piu’ occorrente una predizione corretta rispetto a quella che otterremmo
a partire da un singolo modello.
Ciononostante, sara’ sempre possibile riscontrare una risposta errata in quanto nessuno schema di apprendimento e’ inaffetto da errore. Una stima dell’errore atteso
nell’architettura sopra supposta puo’ essere calcolata come la media degli errori dei
singoli classificatori. Per comprendere meglio le caratteristiche del bagging e’ bene
analizzare prima gli errori di bias, di varianza e il bootstrap.
3.1 Bias e varianza
E’ possibile riconoscere due componenti di errore in un modello di apprendimento:
il primo dovuto al particolare algoritmo di learning utilizzato, chiamato bias, ed il
secondo relativo al peculiare set di addestramento utilizzato, indicato con il nome
di varianza.
Il bias (che potremmo tradurre come “scostamento”) non puo’ essere calcolato con
precisione ma puo’ essere soltanto approssimato, inoltre e’ indipendente dal numero
di training set utilizzati ed e’ un indicatore della persistenza dell’errore di uno specifico algoritmo.
5
Chapter 3
Bagging
La varianza invece e’ strettamente correlata al particolare set di addestramento
utilizzato ed e’ una misura della variabilita’ del modello di learning. In termini
pratici, se utilizziamo diversi training set per ripetere l’addestramento piu’ volte, la
varianza risultera’ essere la differenza tra i valori predetti da ciascun modello.
Una rappresentazione grafica di tale concetto ci permette una comprensione piu’
immediata del problema in questione.
Immaginiamo di avere un bersaglio il cui centro rappresenta il modello che predice
il valore corretto perfettamente; naturalmente, piu’ ci allontaneremo dal centro e
piu’ le predizioni si allontaneranno dai valori effettivi e risulteranno peggiori. Ogni
freccetta lanciata sul bersaglio (indicata in figura con una croce grigia) rappresenta la realizzazione di un singolo classificatore. Si puo’ notare che nel caso in
cui l’apprendimento ensemble sia affetto principalmente da bias, le freccette (i val-
6
3.2 Bootstrap
ori delle predizioni) risulteranno lontani dal centro ma molto vicine tra loro; al
contrario, qualora la componente principale dell’errore sia la varianza, le freccette
saranno tutte vicine al centro ma distanti tra di loro.
Se invece l’errore dovesse essere equamente ripartito ed il suo tasso molto basso,
allora avremo freccette tutte vicine al centro ed anche vicine tra di loro; ne consegue
che se il tasso di errore dovesse essere molto alto ci troveremo nel caso in cui le
freccette sarebbero contemporaneamente lontane dal centro e distanti tra loro.
3.2 Bootstrap
Uno dei metodi per misurare il tasso di errore e’ il bootstrap, la cui idea di base e’
quella di estrarre dall’intero dataset di volta in volta degli insiemi per formare un set
di addestramento, rimpiazzando le istanze che sono gia’ state prese in considerazione.
La variante piu’ comune prevede di campionare N volte un dataset di N istanze , con
la tecnica del rimpiazzo degli elementi, per generare un nuovo dataset di N istanze.
La probabilita’ che una determinata istanza non venga inclusa e’ pari ad 1/N e di
conseguenza la probabilita’ che essa venga invece scelta vale 1 - 1/N. Moltiplicando
tali probabilita’ per le N volte in cui prendiamo dei campioni, otterremo dunque
che la probabilita’ di un istanza di non appartenere ad un set di addestramento
sara’ (1 − 1/N )N = e−1 = 0.368 (36,8%), mentre la complentare probabilita’ di
appartenenza sara’ pari al 63,2% . Per questo motivo la tecnica a cui facciamo
riferimento prende il nome di “bootstrap 0.632”.
3.3 Funzionamento
Il bagging, il cui termine deriva da “Bootstrap Aggregating”, anziche’ campionare
ogni volta un set di addestramento diverso (come nel caso del bootstrap semplice)
altera il dataset di partenza cancellando e rimpiazzando di volta in volta le varie
istanze, in modo da creare molteplici training set di pari cardinalita’.
Di conseguenza tale metodo di ensemble applica allo schema di learning utilizzato
ciascuno dei sottoinsiemi di istanze generati a partire dallo stesso set di partenza,
su cui poi verra’ formulata un’ipotesi finale che classifichera’ l’uscita con un voto in
favore della classe a cui apparterra’ il valore predetto.
Il bagging puo’ essere anche applicato nel caso di predizione numerica, in cui gli
attributi di input anziche’ discreti vengono definiti continui, poiche’ essi non sono
dei valori nominali ma numerici. Tuttavia l’uso del termine “continuo” e’ abusato in
questo contesto in quanto va in contrasto con la defizione di continuita’ matematica.
In uscita di un singolo classificatore numerico non verra’ fornito un voto bensi’ verra’
presentato un valore intero, pertanto la risposta di un modello ensemble in cui viene
utilizzato il bagging sara’ la media delle predizioni individuali.
7
Chapter 3
Bagging
Questa tecnica di aggregazione di bootstrap tende a neutralizzare l’instabilita’ degli
algoritmi di apprendimento e risulta essere piu’ utile proprio negli schemi diapprendimento in cui vi e’ un’elevata instabilita’, in quanto cio’ implica una maggiore
diversita’ ottenibile con piccole variazioni di input. Conseguentemente, quando viene
utilizzato il bagging si tenta di rendere l’algoritmo di apprendimento il piu’ instabile
possibile.
Si puo’ sintetizzare il funzionamento di tale metodo in due passi: la generazione dei
modelli individuali, in cui vengono selezionate N istanze dall’ insieme di training e
viene applicato l’ algoritmo di learning, e la combinazione di essi per produrre una
classificazione.
Contestualmente al metodo ensemble in questione, l’errore dovuto al bias risulta
essere lo scarto quadratico medio ottenuto facendo la media delle classificazioni numeriche dei singoli modelli, mentre la varianza e’ la distanza tra le predizioni dei
singoli modelli e dipende dal training set utilizzato. Bias e varianza sono strettamente correlati alla complessita’ del modello di learning, per cui all’aumentare
dei parametri aggiunti ad esso la componente di bias andra’ a decadere mentre la
componente di varianza aumentera’ esponenzialmente.
8
4 Randomization
Le tecniche di randomization sono anch’esse utilizzate, al pari del bagging, per aumentare la diversita’ nei modelli di learning, introducendo casualita’ nei dati di input. Bisogna pero’ tener conto che cio’ avviene a discapito della precisione dei singoli
modelli, ragion per cui e’ necessaria una valutazione della giusta dose di casualita’
con cui manipolare i dati di input che risulta quantificabile solo empiricamente.
Bagging e randomization, sebbene propongano degli effetti molto simili, risultano essere complementari tra loro in quanto apportano casualita’ agli algoritmi di learning
in modo differente; pertanto, risulta spesso utile combinare i due metodi insieme.
4.1 Random forest
Una “foresta” permette di costruire un classificatore formato da molteplici alberi di
decisione e che presenti in output un risultato generato dalle predizioni dei singoli
alberi. Come gia’ discusso, essa e’ conseguibile anche mediante bagging, costruendo
un albero di decisione sulla base di ciascun sottoinsieme di addestramento derivato
dall’aggregazione di bootstrap.
La differenza sostanziale che qualifica la foresta come “random” e’ che ciascun albero
opera su un sottoinsieme di istanze estratte casualmente dal training set di partenza
(tale metodo di estrazione di features prende il nome di random subspace).
Le fasi da seguire per addestrare un sistema random forest sono le seguenti:
• selezionare N istanze con rimpiazzo (come previsto dal bagging) in modo
casuale, creando un training subset, che per garantire massima efficienza
dovrebbe essere circa 32 dell’insieme di partenza.
Poi, per ciascun nodo, sia K la cardinalita’ scelta del subset che si desidera ottenere:
• selezionare casualmente K features dall’intero training set
• selezionare tra le K features quella che consente la migliore suddivisione dell’albero
• iterare tale procedimento per i nodi successivi, selezionando dunque altre K
features e scegliendo la migliore per “splittare” l’albero di decisione.
E’ rilevante notare il rapporto tra il set di features scelto e la bonta’ della predizione
che si produrra’ in output. Infatti, maggiore sara’ la correlazione tra gli alberi e
9
Chapter 4
Randomization
maggiore risultera’ il tasso di errore, per cui un obiettivo notevole sara’ quello di
selezionare features indipendenti in modo da ottenere alberi con bassa correlazione.
noltre, e’ importante scegliere un’ adeguata cardinalita’ K del subset scelto al fine di
ottenere predizioni migliori, poiche’ per un numero K basso otterremo ovviamente
una correlazione ridotta ma risultera’ ridotta anche l’accuratezza delle risposte dei
singoli alberi.
4.2 Rotation forest
Introdurre casualita’ negli algoritmi di learning secondo le tecniche fin qui analizzate
aumenta la diversita’ a discapito di una minore accuratezza dei singoli classificatori.
Tuttavia, esiste un metodo di ensemble, il Rotation Forest, che ha la finalita’ di
creare diversita’ senza sacrificare l’accuratezza dei modelli individuali, combinando
bagging e random subspace. Di conseguenza, il training set con cui addestrare
un singolo classificatore viene composto suddividendo l’intero set di features in un
numero K di sottoinsiemi.
Successivamente, su ciascun subset generato operera’ il PCA (Principal Component
Analysis) per creare combinazioni lineari di attributi nel subset preso in considerazione, le quali rappresenteranno rotazioni dell’asse originale.
Tale metodo garantisce diversita’ grazie all’estrazione delle features e preserva l’accuratezza
dei singoli modelli poiche’ utilizza l’intero set di dati di partenza per addestrare ciascun classificatore. E’ inoltre in grado di garantire prestazioni simili a quelle prodotte
dal Random Forest utilizzando un numero inferiore di alberi.
10
5 Boosting
Il piu’ potente metodo ensemble risulta essere il boosting, e’ ottenuto mediante una
procedura iterativa, in cui ciascun modello individuale non e’ costruito indipendentemente dagli altri (come nel caso del bagging), bensi’ e’ influenzato dai classificatori
gia’ generati in precedenza. Cosi’ come per le altre tecniche ensemble, combinare
piu’ modelli risulta particolarmente efficace quando essi conseguono un’alta percentuale di predizioni corrette e sono abbastanza diversi tra loro (vi e’ un elevato
tasso di variabilita’).
La situazione ideale a cui vuol tendere il boosting e’ la settorizzazione massima
dei modelli, in modo tale che ciascuno di essi risulti specialista in una parte del
dominio in cui gli altri classificatori non riescono a pervenire a previsioni accurate.
Dunque il boosting attribuisce pesi maggiori alle istanze che non sono state predette
correttamente, in modo da costruire degli alti modelli, nelle successive iterazioni, in
grado di colmare questa lacuna.
In analogia col bagging, vengono combinati solo algoritmi di learning della stessa
tipologia e le loro uscite sono combinate per voto o facendo la media delle singole
risposte, nel caso in cui si tratti rispettivamente di classificazione oppure predizione
numerica.
5.1 AdaBoostM1
Una delle varianti piu’ utilizzate del boosting e’ l’algoritmo AdaBoostM1, il quale
e’ particolarmente indicato nel caso in cui il nostro insieme di input risulti essere
discreto e dunque si voglia risolvere un problema di classificazione. Tale algoritmo
addestra in maniera sequenziale i modelli individuali, incentivandoli ad ogni iterazione a fornire delle predizioni corrette riguardo le istanze “piu’ importanti”, ossia
quelle a cui e’ attribuito il peso maggiore.
AdaBoostM1 inizialmente assegna ad ognuna delle istanze dell’insieme di addestramento lo stesso peso, dopodiche’ viene applicato lo specifico algoritmo di learning
scelto per generare un classificatore e vengono attribuiti dei nuovi pesi, che risulteranno essere decrementati per quanto riguarda le istanze del training set predette
correttamente ed incrementati per quelle che non lo sono. Anche il modo in cui
viene calcolato l’errore e’ strettamente correlato ai pesi delle varie istanze; se lo
indichiamo con err, esso risulta essere per ciascuno degli m classificatori:
11
Chapter 5
Boosting
errm =
I
X
(m)
wi
f (yi ! = hm (xi ))
i=1
in cui
(m)
• wi
e’ il peso dell’osservazione i-esima
• f (yi ! = hm (xi )) e’ la funzione che ci indica la diversita’ tra l’ipotesi hm (xi )
(cioe’ la predizione fatta dal classificatore) e il valore effettivo della classe
predetta, rappresentato da yi
Dal momento che ad ogni iterazione dell’algoritmo di learning viene effettuata una
re-distribuzione dei pesi, di volta in volta si otterranno dei set di istanze che possono essere definite piu’ “facili” ed altre piu’ “difficili” (cioe’ non ancora classificate
correttamente), sulla cui base verranno costruiti i successivi classificatori.
Tenendo conto dell’errore sopra discusso, il quale e’ un valore compreso tra 0 ed 1,
ad ogni iterazione (t) i nuovi pesi vengono aggiornati solo per le istanze classificate
correttamente come descritto di seguito:
peso(t+1) = peso(t) ∗
err
(1 − err)
mentre il peso delle istanze non classificate resta inizialmente invariato. Successivamente vengono normalizzati i pesi distribuiti, in modo tale che la loro somma totale
resti inalterata; cio’ viene realizzato moltiplicando e dividendo il peso di ciascuna
istanza rispettivamente per la somma dei vecchi pesi e quella dei nuovi.
Come anticipato prima, tale operazione incrementa effettivamente l’importanza delle
features non ancora classificate.
Stabilita la costruzione iterativa dei modelli individuali, e’ necessario comprendere
come combinarli insieme per ottenere una predizione, per cui anche le singole risposte
dei classificatori verrano pesate, attribuendo maggiore enfasi a quelli che si ritiene
effettuino predizioni migliori.
La stima che ci permette di valutare le prestazioni di ciascun elemento appartenente
all’ensemble e’ l’errore di predizione, il quale, se risulta essere prossimo allo zero e’
un indicatore di alta accuratezza.
AdaBoostM1 permette inoltre la cancellazione dei classificatori ritenuti di scarsa
efficienza, per cui vengono cancellati durante le singole iterazioni quelli che restituiscono un errore pari o maggiore a 0,5 e quelli con errore pari precisamente a 0, in
quanto i pesi delle singole istanze diverrebbero anch’essi 0.
Il peso attribuito a ciascun modello individuale e’:
12
5.2 Vantaggi e svantaggi
peso = −log
err
(1 − err)
da cui si evince facilmente la ragione per cui un classificatore che effettua predizioni
perfette sull’insieme di addestramento e restituisce errore nullo viene scartato (il suo
peso risulterebbe indefinito).
Per giungere ad una predizione conclusiva, vengono sommati i voti pesati in favore
di ogni classe di output e la piu’ quotata viene scelta.
5.2 Vantaggi e svantaggi
Con questo metodo di boosting puo’ essere potenziato qualsiasi algoritmo di learning
per incrementarne le prestazioni, sebbene in contrapposizione ai benefici apportati
vi siano anche degli svantaggi di cui tener conto. Infatti, dal momento che le features
definite “facili” vengono prese in considerazione un numero minore di volte in quanto
non sono replicate nei dataset generati nelle successive iterazioni del metodo, vi e’
una perdita di informazioni che precede l’applicazione dello specifico algoritmo di
learning utilizzato.
Tuttavia, gli effetti negativi del boosting possono essere notevolmente ridimensionati
se si considera che ogni volta che un classificatore riscontra un errore maggiore di
0,5 viene scartato ed uno nuovo viene generato su un set differente di istanze.
Col boosting inoltre l’errore di addestramento dei singoli modelli raggiunge molto
rapidamente lo zero al crescere del numero di iterazioni, ma cio’ non sempre e’ indice
di elevate prestazioni, poiche’ non sempre implica necessariamente che il metodo
funzioni bene per i nuovi dati (ossia per gli esempi da predire che non sono ancora stati riscontrati). Pertanto e’ possibile ottenere una bassa capacita’ predittiva
dell’ensemble, la quale puo’ essere imputata a due fattori:
• elevata complessita’ dei singoli classificatori
• errore di addestramento che tende velocemente a diventare grande
Anche in questo caso, come nei precedenti metodi di ensemble descritti, va ricercato
il giusto compromesso tra la complessita’ dei modelli individuali e la loro accuratezza,
al fine di scongiurare un decadimento delle prestazioni.
Inoltre, osservazioni empiriche hanno evidenziato una caratteristica sorprendente
del boosting. Infatti, secondo la visione tradizionale dell’intelligenza artificiale, in
accordo con il principio del rasoio di Ocamm, e’ preferibile scegliere, tra piu’ ipotesi
che pervengono allo stesso risultato, quella meno complessa; sarebbe dunque lecito
attendersi che una volta azzerato l’errore con cui viene effettuata la predizione finale
(dopo aver combinato le singole scelte pesate dei vari modelli), le iterazioni possano
concludersi.
13
Chapter 5
Boosting
Invece, in contraddizione con quanto appena detto, e’ conveniente aggiungere successive iterazioni, le quali sebbene non influenzino l’errore generato e aggiungano
complessita’ all’ ensemble, permettono di ottenere prestazioni ancor piu’ soddisfacenti sui nuovi esempi da classificare.
14
6 Stacking
Lo stacked generalization, dalla cui abbreviazione deriva il termine stacking,
e’ la tecnica di ensemble piu’ recente tra quelle analizzate e fu proposta nel 1992
dall’americano Wolpert, nel tentativo di generare uno schema che riducesse al minimo il tasso di errore dei classificatori.
Lo stacking, in virtu’ del suo funzionamento, puo’ essere considerato come un processo che evolve il comportamento del cross-validation per combinare in modo piu’
efficiente i diversi modelli individuali; dunque, prima di procedere all’illustrazione di
tale metodo, e’ necessario descrivere i punti salienti della tecnica di base per stimare
l’errore atteso.
6.1 Cross-validation
Per valutare le prestazioni di un classificatore rispetto ad esempi ancora non riscontrati va analizzato il suo tasso d’errore sul test set, ossia su un sottoinsieme del set
di dati che non viene utilizzato per l’addestramento.
Solitamente, ad una maggiore quantita’ di dati con cui addestrare e testare un
sistema corrisponde una maggiore accuratezza e correttezza nelle predizioni, per cui
nel caso si disponga di dati in eccesso non risulta problematica la suddivisione in
training set e test set.
Al contrario, ovviamente, nel caso in cui si opera con una limitata quantita’ di
esempi, e’ necessario prestare attenzione a come si seziona l’insieme di dati.
Comunemente si suole dividerlo etichettando i due terzi di esso come insieme di
addestramento ed il restante terzo come insieme di test, ma cio’ non garantisce
prestazioni affidabili, poiche’ ci si potrebbe ritrovare nell’inauspicata situazione in cui
tale distribuzione del data set assegna esempi rappresentativi per l’addestramento
al test set ed esempi significativi per il test al training set.
Dal momento in cui non vi e’ possibilita’ di riconoscere se a un dato afferisca una
maggiore efficacia di training o di test, bisogna ricorrere a metodi che ci garantiscano
un’adeguata rappresentazione degli esempi all’interno dei due sottoinsiemi.
Un modo primitivo per avvicinarci a tale risultato e’ la stratified holdout, la
quale introduce casualita’ nella collezione degli esempi aumentando le possibilita’ di
ottenere una ripartizione migliore rispetto alla semplice suddivisione in due/terzi.
15
Chapter 6
Stacking
Una piu’ elaborata tecnica, chiamata repeated holdout, prevede invece di ripetere
gli interi processi di addestramento e verifica su differenti set di esempi scelti in
maniera casuale, al fine di diminuire la componente dell’errore identificata dal bias.
Sui tassi di errori prodotti da ciascuna iterazione della tecnica in questione viene
poi effettuata la media che ci restituisce il valore complessivo dell’errore.
Il cross-validation puo’ essere considerato una particolare variante del repeated
holdout, in cui viene selezionato un determinato numero N di partizioni (“folds”)
e dunque si suddivide il data set in N sottoinsiemi, di cui a ciascuna iterazione se
ne utilizza uno per il test e le restanti per l’addestramento.
Il modo piu’ utilizzato per calcolare l’errore atteso di un metodo di learning applicato ad un singolo dataset iniziale e’ quello del tenfold cross-validation, in cui
appunto il numero di partizioni (e conseguentemente anche quello di iterazioni) e’
pari a dieci, ma esistono anche altre tecniche adoperate per la stessa finalita’ quali il
bootstrap, descritto in precedenza, e il leave-one-out cross-validation, che presenta
molte analogie con la procedura appena illustrata ma si differenzia in quanto a turno
ciascuna istanza e’ lasciata fuori dall’insieme di addestramento.
Il leave-one-out cross-validation risulta essere una tecnica deterministica, di conseguenza replicarla un’unica volta oppure per piu’ volte non produce effetti differenti, comporta pero’ lo svantaggio (comune per quanto riguarda la procedura di
cross-validation) di realizzare costi molto elevati dovuti alle N ripetizioni del processo, dettaglio molto importante di cui tener conto soprattutto nel caso di set di
dati molto copiosi, i quali rallentano notevolmente tale processo .
6.2 Funzionamento
Lo stacking implementa un modo diverso di combinare singoli classificatori rispetto
a quelli descritti in precedenza ed e’ utilizzato con minor frequenza, principalmente a
causa della perdita’ di interpretabilita’ dovuta al metodo. Tuttavia, al contrario del
boosting e del bagging, esso puo’ combinare anche modelli differenti introducendo
il concetto di meta-learner in sostituzione della procedura di votazione.
E’ possibile schematizzare cosi’ la tecnica di stacking:
• suddividere il set di addestramento in due insiemi disgiunti
• addestrare ciascun classificatore individuale su uno dei due insiemi
• testare ciascun classificatore individuale sull’insieme non ancora utilizzato
• utilizzare le predizioni ottenute dal testing come input, le risposte corrette
come output e dunque addestrare un livello di “learner” piu’ alto
Prima di descrivere nel dettaglio i singoli passi, si puo’ notare che la prima parte
di questo metodo e’ analoga al cross-validation, da cui si differenzia in maniera
sostanziale nell’ultima operazione che introduce i livelli di learner.
16
6.2 Funzionamento
Dunque supponiamo di avere molteplici algoritmi di learning e di volerli combinare
tra loro con la tecnica di bagging (di conseguenza affidandoci ai rispettivi voti non
pesati); tale ipotesi funzionerebbe bene nel caso in cui i modelli individuali offrissero
prestazioni molto simili.
Cio’ potrebbe verificarsi nel caso in cui si prendessero in considerazione tre classificatori, di cui due restituissero predizioni non corrette ed uno solo garantisse buone
prestazioni; tale combinazione sarebbe disastrosa, poiche’ ad influenzare maggiormente l’output del sistema sarebbero le risposte affette da errore.
Pertanto, si rimpiazza la votazione con il meta-learner, il quale e’ un algoritmo per
ricercare la migliore combinazione dei singoli modelli che garantiscono un’adeguata
correttezza.
Il meta-modello che si andra’ a costruire avra’ due livelli: il livello 0, che riceve
in ingresso da un classificatore individuale un’istanza ed in uscita presenta una
predizione del valore della classe dell’istanza, e il livello 1, che riceve in input le
singole risposte dei livelli-0 per formulare una predizione conclusiva.
A questo punto il problema da risolvere e’ l’addestramento del livello-1, il quale deve
trasformare i training set del livello-0 in un nuovo insieme di training adeguato;
merita pero’ di essere evidenziato il fatto che non sempre un modello altamente
prestazionale su un insieme di addestramento risulta funzionare in maniera performante anche con un insieme di test.
Questa situazione indesiderata e’ dovuta principalmente a problemi di overfitting,
ossia il sistema tende a preferire decisioni piu’ aderenti al training set che al reale
valore da predire, riducendo cosi’ la propria capacita’ di generalizzazione.
Per questa ragione lo stacking non trasforma semplicemente gli insiemi di addestramento, bensi’ vengono riservate delle istanze dal training set del livello-0 per il
livello-1; ovviamente, i classificatori individuali sono inizialmente costruiti sul set del
livello-0, ma sono successivamente adoperati per classificare le istanze riservate in
precedenza in quello che prende il nome di holdout set, dando cosi’ origine all’insieme
di addestramento di livello-1.
Questa soluzione supera il problema dell’overfitting in quanto i classificatori non
sono stati addestrati sull’ holdout set e di conseguenza non possono far altro che
predire una classe appellandosi alla propria capacita’ di generalizzare.
In seguito alla formazione del training set di livello-1, i vari modelli individuali
vengono ri-addestrati sull’intero insieme di dati, in modo tale da eliminare anche
la perdita delle informazioni che si sarebbe ottenuta scartando delle istanze per
riservarle ad altri utilizzi.
E’ comunque vero che l’accuratezza dei singoli classificatori viene implementata a
discapito del training set del livello-1, il quale viene formato non tenendo conto
dell’intero insieme di addestramento ma soltanto una partizione di esso.
Lo stacking puo’ essere applicato anche in casi in cui gli attributi di input non
risultano essere discreti ma continui, quindi nei casi di predizione numerica, in cui
17
Chapter 6
Stacking
il metodo resta inalterato eccezion fatta per la diversa natura dei valori trattati, i
quali non saranno classi ma istanze quantificabili numericamente.
18
7 Conclusioni
In questo lavoro di tesi sono stati descritti i differenti metodi di apprendimento ensemble ai fini di migliorare le prestazioni in termini di capacita’ di predizione dei
sistemi, a discapito di una perdita di interpretabilita’ imputabile all’ aumendo della
complessita’ degli schemi utilizzati. Da quanto analizzato e’ evidente che non esistono soluzioni perfette quando si va alla ricerca di un modello efficiente di apprendimento, bensi’ sono necessari dei compromessi su vari aspetti peculiari dell’azione di
learning che devono indirizzare le prestazioni complessive della macchina verso l’alto.
Per tale motivo, dopo aver introdotto inizialmente i punti salienti dell’apprendimento
in generale e come esso e’ disciplinato dall’intelligenza artificiale, si e’ proceduto con
l’illustrazione delle tecniche di ensemble da cui e’ emersa l’esigenza di pervenire a
vari trade-off.
Un primo bilanciamento, infatti, e’ relativo al tasso di errore atteso, in quanto
costituito da due componenti, una imputabile al bias, un’altra alla varianza. Dal
momento che un metro di valutazione delle prestazioni di un sistema e’ proprio
l’errore atteso, tale compromesso risulta di particolare rilievo e qualora si operi con
set di dati molto grandi diventa fondamentale contenere la varianza, viceversa ci si
puo’ focalizzare maggiormente nel diminuire la componente di bias.
Un secondo trade-off proposto riguarda la variabilita’ dei dati negli insiemi di addestramento: infatti, aumentare la diversita’ presente in questi ultimi vuol dire
fornire al sistema una maggiore capacita’ di generalizzazione e dunque essere maggiormente prestazionale in relazione ai futuri esempi. Tuttavia, cio’ si verifica solo
se non si degrada eccessivamente l’accuratezza dei modelli individuali, i quali altrimenti fornirebbero predizioni singole poco attendibili. Le tecniche di bagging e
randomization implementano tale aumento di variabilita’ in sistemi in cui gli algoritmi di learning sono tutti dello stesso tipo e ad ogni istanza e’ assegnato lo stesso
peso. Cio’ non accade nel boosting, che assegna pesi differenti, e che propone un
ulteriore compromesso tra la perdita di informazioni dovuta alle cosiddette istanze
“facili” e la velocita’ con cui tende a zero l’errore di addestramento.
Inoltre, l’attivita’ di verifica della bonta’ degli algoritmi prevede un adeguato partizionamento tra insieme di test e di training, per cui e’ necessario suddividere nel
modo piu’ ottimale possibile i due set (ed in particolare va tenuto conto delle istanze
che devono appartenervi).
Anche quando si utilizza la tecnica di stacking bisogna tener conto che il livello
piu’ alto del meta-learner non e’ addestrato sull’intero set di dati bensi’ su una
19
Chapter 7
Conclusioni
partizione di essi, ragion per cui viene conferita al sistema una maggior capacita’ di
generalizzazione ma non e’ garantita la massima accuratezza delle singole predizioni.
Di particolare rilevanza e’ il fatto che essa e’ l’unica di quelle proposte ad essere
applicabile anche ad algoritmi di learning di tipologie differenti.
In conclusione, la dicotomia che meglio sintetizza l’ensemble learning e’ sintetizzabile
in una sola domanda: quanto si e’ disposti a spendere in termini di complessita’ per
migliorare le prestazioni?
20
Bibliography
[1] IEEE, Rotation Forest:
A New Classifier Ensemble Method,
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1677518&url=http%3
A%2F%2Fieeexplore.ieee.org%2Fiel5%2F34%2F35279%2F01677518.pdf%3Far
number%3D1677518
[2] Mathworks, Ensemble Methods, http:/mathworks.com/help/stats/ensemblemethods.html#bsw8aue
[3] Martin Sewell, Ensemble Learning, Department of Computer Science University
College London, 2008
[4] J.A.Michael, S.Berry Gordon, Data Mining, Apogeo Editore, 2001
[5] P.Norvig, S.J.Russel , Intelligenza artificiale. Un approccio moderno, Volume 1,
2005
[6] P.Tan, M.Steinbach, V.Kumar, Introduction to Data Mining, Pearson International, 2006.
[7] A. M. Turing, Computing Machinery and Intelligence, 1950
[8] D.Walpert, Neural Networks, volume 5, 1992
[9] I.H.Witten, E.Frank, M.A.Hall, Data Mining, 3rd edition, Morgan Kaufmann,2011
21
Scarica