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