INTRODUZIONE AI SISTEMI DI CLASSIFICAZIONE CON RETI

annuncio pubblicitario
INTRODUZIONE AI SISTEMI DI CLASSIFICAZIONE
CON RETI NEURALI di G. Masala
INTRODUZIONE
Sistema di classificazione o riconoscimento
Un sistema di classificazione [1][2] o di riconoscimento, considerato in senso
ampio, ha il compito di fornire ad un utente (uomo o calcolatore) una valutazione
della realtà fisica osservata e tale valutazione si avvale di una suddivisione della
realtà (costituita da oggetti detti campioni o “pattern”) in insiemi, aventi
caratteristiche omogenee, detti classi. Possiamo illustrare attraverso uno schema a
blocchi, nella prossima figura, un sistema di classificazione o riconoscimento.
Realtà Fisica
Schema a blocchi di un sistema di
classificazione o riconoscimento
Trasduttori
Pre-elaborazione
Estrazione parametri
Classificazione
Supervisore
Classi
Feedback
1
Il complesso sensori-trasduttori ha il compito di tradurre le grandezze fisiche
che caratterizzano la realtà fisica in esame (una scena, un’immagine ) in una forma
accessibile all’elaboratore (segnale elettrico). Il modulo di pre-eleborazione (“preprocessing”) ha il compito di esaltare ed adattare il segnale in funzione della finalità
del processo di classificazione/riconoscimento. Il modulo di estrazione dei parametri
(l’estrattore di “feature” che abbiamo
visto anche in figura 1 del precedente
paragrafo) applica una trasformazione al segnale che consente di ridurre la
complessità dell’informazione da elaborare e rende più efficiente il sistema; un
parametro estratto, deve essere ottenuto in maniera semplice ed allo stesso tempo
deve avere un alto potere discriminante. Il modulo di classificazione ha la finalità
descritta all’inizio e sarà oggetto dei prossimi paragrafi. Il risultato del processo di
classificazione / riconoscimento, durante la fase di sviluppo e messa a punto, viene
trasmesso al supervisore. La funzione del supervisore è quella di valutare il risultato
in funzione dell’applicazione a cui si riferisce; il criterio più semplice per valutare la
bontà di un risultato, per un operatore, è quello di misurare la probabilità d’errore. Se
il risultato non è ritenuto soddisfacente, può avvenire una modifica del riconoscitore
mediante retroazione (“Feedback”).
Classificazione supervisionata
La classificazione può essere di tipo supervisionato, nel qual caso l’insieme
delle classi è definito a priori, oppure non supervisionato, nel qual caso è il
classificatore che deve individuare le classi naturali presenti nei dati[1].
Un metodo supervisionato ha il compito di decidere a quale classe di
appartenenza (definita a priori) debba essere assegnato ciascun campione (“pattern”)
basandosi sul vettore delle misure (“feature”) fornito dai sensori.
2
Dovremo utilizzare, per i classificatori, un set di addestramento (“training-set”)
costituito da campioni di cui si conosce a priori la classe di appartenenza, curandoci
del fatto che tale insieme sia significativo e completo, cioè con un numero sufficiente
di campioni rappresentativi di tutte le classi.
Per la verifica di un metodo di riconoscimento ci si avvale di un set
(“validation-set”), anch’esso costituito da campioni la cui classe è nota, usato per
controllare la generalizzazione dei risultati; esso è costituito da un piccolo insieme
di campioni di caratteristiche uguale ai precedenti e sarà utilizzato in ausilio a
particolari situazioni legate all’addestramento dei meta-classificatori addestrabili
descritti in seguito.
Infine per esaminare l’accuratezza del metodo su esempi reali, è fornito al
classificatore un set di test (detto “testing-set”) le cui classi non sono note. In seguito
le notizie sulle classi di questo insieme vengono utilizzate, dopo la classificazione,
per determinare gli errori e quindi l’accuratezza reale del classificatore.
La classificazione supervisionata è fondamentalmente basata sulla teoria della
probabilità[2]: si utilizzano le densità di probabilità dei valori delle “feature”, per le
diverse classi, per determinare la più probabile. Le densità di probabilità possono
essere note a priori o stimate sulla base di un insieme di campioni (detto “trainingset”) la cui classe di appartenenza è nota. La maggior parte dei classificatori
supervisionati è implicitamente, o esplicitamente, basata su questo concetto.
Classi
In un metodo supervisionato, al fine della creazione del “training-set”, è
necessario rappresentare ogni “pattern” mediante un vettore di “feature”. L’insieme
dei vettori delle misure, riferibili a “pattern” di una classe, si dice “cluster”. Un
3
vincolo posto è quello di avere uno, ed uno solo, vettore per ogni oggetto in un
gruppo[1].
Sulla base di queste ipotesi, per ogni oggetto avrò un punto nello spazio delle
“feature”, cioè nello spazio dei valori assunti dagli elementi del vettore delle
osservazioni. Ad ogni “cluster” sarà associata la distribuzione dei punti
corrispondenti a tutti gli oggetti di una classe nello spazio delle “feature” .
Spesso si fa riferimento a spazi di dimensione due per poter rappresentare gli
oggetti su di un piano. Un esempio è riportato sotto, ω1 e ω2 sono le classi fisiche.
X2
X2
ω1
X2
ω2
ω1
ω1
ω2
(a)
X1
(b)
X1
(c)
X1
Le classi possono essere linearmente separate, come in figura (a) o non
separate come in figura (b). Per definizione, una classe si dice separata se esiste una
curva (chiusa o aperta, nello spazio in due dimensioni) percorrendo la quale, in una
direzione qualsiasi, tutti e soli gli elementi di una classe stanno da una parte della
curva. Nello spazio a più dimensioni si parlerà di ipersuperfici, invece che di curve.
Le classi possono essere separabili linearmente, nel qual caso la curva in due
dimensioni sarà una retta oppure separabili non linearmente, mediante curve più
complesse: usando curve più complesse è sempre possibile separare due o più classi.
Le tecniche statistiche funzionano bene nei casi come (a) e (c) mentre il caso
(b) risulta più complesso; a livello qualitativo si può dire che i metodi statistici
funzionino meglio con le classi distanti e raggruppate[1].
Le proprietà di una classe dipendono quindi anche dalla forma che il “cluster”
relativo assume nello spazio delle “feature”. In particolare, se i “cluster” sono
4
filiformi e non separati, molte regole statistiche vanno in crisi; diventa difficile, per
esempio, separare i campioni nella parte dello spazio dove i due “cluster”
si
intersecano.
RETI NEURALI
Le reti neurali [3] forniscono un metodo pratico per l’apprendimento
automatico di valori reali, discreti o funzioni vettoriali a partire da esempi. Inoltre,
per certi tipi di problemi, come l’interpretazione di complessi dati sensoriali
provenienti dal mondo reale, le reti artificiali neuronali sono fra i più significativi
metodi correntemente conosciuti.
Una rete neurale è composta da un certo numero di nodi, o "neuroni", connesse
da collegamenti a ognuno dei quali è associato un valore detto "peso" dal quale
dipende il comportamento della rete. Infatti sottoponendo alla rete un certo input,
tipicamente un vettore a valori reali, essa risponde fornendo un output1 in funzione
dei pesi e dell'input inserito. Ogni neurone ha inoltre collegamenti entranti ed
uscenti (da e verso gli altri neuroni) ed è caratterizzato da uno “stato di
attivazione”, determinato dai valori degli ingressi e dei pesi delle connessioni
corrispondenti tramite una funzione di attivazione.
Ogni neurone può essere visto come un circuito contenente un sommatore più un
filtro, in figura sotto . Il sommatore somma gli input s1,..sn (che possono essere gli
output degli altri neuroni precedenti o gli ingressi ) e passo questo dato Pi, come
input ad un filtro . Il filtro è una funzione , come per esempio una di quelle in figura,
che attraverso una soglia prefissata sulla base del valore di Pi, decide il valore di
uscita Si.
1
Alcuni neuroni sono connessi con l’esterno (unità di I/O).
5
s1
from other
neurons
s2
wi1
Σ
wi2
....
sn
neuron i
win
si
Pi
si
f
P i = Σ wij sj
s i = f (Pi )
si
Pi
threshold (step) function
Pi
sigmoid function
Possiamo essere interessati a far sì che la rete segua una certa condotta.
Associamo al nostro input una risposta desiderata dalla rete. Se sottoponiamo alla
rete l’input, quasi sicuramente la rete fornirà una risposta molto diversa da quella
desiderata. Possiamo però adattare i pesi della rete fino a che la sua risposta non sia
sufficientemente vicina a quella da noi auspicata. Questa fase viene indicata come
"di addestramento" o "di apprendimento" e il metodo correttivo dei pesi viene
chiamato "algoritmo di apprendimento". E' naturale pensare all'apprendimento
riferito a tanti input, detti per questo esempi, a ognuno dei quali sia associata una
risposta desiderata della rete.
Un fattore essenziale per un apprendimento corretto è dato dall'architettura
della rete, intesa come il numero di neuroni da usare e le relative connessioni: reti
troppo piccole (con pochi neuroni) non sono in grado di adattare il loro
comportamento a tutti gli esempi; invece reti troppo grandi tendono a specializzarsi
troppo sugli esempi, a memorizzarli, con lo svantaggio di gestirne male di nuovi.
Questa perdita della capacità di generalizzazione dovuta al sovraddestramento è detta
"overfitting". Non esiste una teoria ottima per scegliere il numero di neuroni da
utilizzare (volendo usarne uno minimo), ma diversi approcci come quello chiamato
6
del danno cerebrale ottimo (nel quale si eliminano progressivamente connessioni da
un modello inizialmente totalmente connesso) o l’algoritmo della pavimentazione
(nel quale vengono aggiunte gradualmente delle connessioni ad un insieme iniziale
per tenere conto degli esempi che, dal primo insieme, vengono mal gestiti).
Per quanto riguarda la struttura delle reti, la più grande distinzione si ha tra
quelle alimentate in avanti ("feedforward") e quelle ricorsive.
Nella rete alimentata in avanti i collegamenti sono unidirezionali e realizzano
un grafo aciclico diretto, ovvero possiamo individuare degli strati di neuroni: uno di
ingresso, uno o più strati intermedi detti per questo nascosti, uno strato di uscita, che
produce la risposta della rete. Nelle reti ricorsive possono esserci collegamenti tra
unità dello stesso strato, a unità di uno o più strati successivi o precedenti
("feedback"), al contrario delle reti alimentate in avanti dove si possono avere solo
collegamenti di un’unità con una dello strato successivo.
In figura abbiamo la
rappresentazione di una possibile rete
feed-forward multistrato
Chiaramente le reti ricorsive sono adatte ad implementare sistemi più
complessi, ma hanno lo svantaggio di poter divenire instabili, di oscillare e di
comportarsi in modo caotico.
7
Le reti MLP, acronimo di Multi Layer Perceptron (percettrone multi-strato),
sono reti “feed-forward” (alimentate in avanti) perché l'informazione si propaga dallo
strato di ingresso a quello di uscita, lungo una sola direzione.
Una rete “feed-forward” ad un solo strato e una sola uscita ( e più ingressi)
viene chiamata “perceptron”; è una rete molto semplice che riesce a rappresentare
solo le funzioni linearmente separabili (ovvero quelle funzioni booleane f tali che
gli ingressi per f=0 ed f=1 siano separabili da un iperpiano). Dato un perceptron ad n
ingressi x=(x1 ,..,xn ), se w1 ,.., wn sono i pesi delle connessioni, possiamo realizzare
una funzione :
S(x) = H(w1 x1 + w2 x2 +..+ wn xn – b)
dove abbiamo indicato con b la soglia di attivazione della funzione di attivazione (in
questo caso una step function) che deve essere determinata nella fase di
apprendimento, insieme ai pesi delle connessioni.
Perceptron
x1
w1
x2
w2
xn
wn
-1
I1
w13
H3
w35
O5
I2
w24
H4
w45
Rete alimentata in avanti, a due strati, con due
ingressi, due nodi nascosti ed un nodo di output.
Si dimostra che:
•
con un solo strato nascosto si può approssimare qualsiasi funzione continua;
•
con due strati nascosti si può approssimare qualsiasi funzione.
8
Fra gli algoritmi di addestramento usati, il più noto ed utilizzato è l'algoritmo
di Back Propagation per l'apprendimento: dopo aver calcolato l'uscita in
corrispondenza a un certo input, si calcola l'errore rispetto all'uscita desiderata per
quell'input, e si propaga la necessaria correzione dei pesi dallo strato d'uscita a quello
d’ ingresso (per questo si chiama "Back Propagation"). L’algoritmo funziona nel
seguente modo: vengono sottoposti alla rete degli esempi d’ingresso e se la rete
calcola un vettore d’uscita che corrisponde esattamente all’uscita, allora non si fa
nulla. Altrimenti si considera l’errore, dato dalla differenza tra l’uscita e l’obiettivo,
e si procede a modificare i pesi in modo da ridurre l’errore complessivo agendo sui
diversi pesi che vi contribuiscono: nelle reti multistrato ci sono molti pesi che
collegano ciascun ingresso ad un’uscita e ciascuno di questi pesi contribuisce a più di
un output.
Siano i e j rispettivamente i neuroni dello strato considerato e successivo
rispettivamente. In sintesi abbiamo che :
•
I pesi della rete sono inizializzati con valori casuali.
•
Nella fase di propagazione in avanti per ogni esempio p del training set sono
calcolate le uscite della rete Opi ed i corrispondenti errori (tpj - Opi) rispetto alle uscite
desiderate tpj.
•
Si calcola la funzione errore complessivo come somma quadratica degli errori
per ogni singolo esempio.
•
Nella fase di propagazione all’indietro sono aggiornati i pesi, a partire dallo
strato di uscita, con la regola:
∆p wij == η δpj Opi dove
δpj = (tpj - Opi)S’j(inpi)
per neuroni dello strato di
uscita
9
δpj = S’j(inpi) Σδpk wjk
per neuroni degli strati
nascosti
Si dimostra che l’algoritmo minimizza la funzione di errore complessivo, secondo
una strategia di discesa del gradiente.
E’ da notare che il modello del calcolo dell’errore attraverso lo scarto
quadratico è solo uno tra i possibili: spesso per problemi di classificazione si usa il
“Maximum Likelihood” (criterio della massima verosimiglianza) attraverso il quale
ad ogni possibile soluzione si da un peso pari alla sua verosimiglianza (dipendente da
quanto i dati supportano i diversi modelli di soluzione) e poi si sceglie la soluzione
che massimizza tale verosimiglianza [3].
BIBLIOGRAFIA
[1] S. Serpico, G. Vernazza “Teorie e tecniche del riconoscimento”, CUSL “Il
gabbiano” 1997.
[2] O. Duda, P. E. Hart, D. G. Stark, “Pattern Classification“, second edition, A
Wiley-Interscience Publication John Wiley & Sons.
[3] S.J.Russel, P.Norvig, “Artificial Intelligence. A modern approach”, UTET 1998.
10
Scarica