Sistema ibrido per l`apprendimento continuo di reti neurali
Transcript
Sistema ibrido per l`apprendimento continuo di reti neurali
Università Politecnica delle Marche FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica Sistema ibrido per l’apprendimento continuo di reti neurali Relatore: Chiar.mo Prof. Aldo Franco Dragoni Tesi di Laurea di: Pasquale Sconciafurno Correlatore: Ing. Germano Vallesi Anno Accademico 2009/2010 Indice Indice iv Introduzione v Struttura Tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Sistemi Biometrici vi 1 1.1 Generalità sulla biometria . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Autenticazioni Biometriche . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Categorie di Biometriche . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Fasi di funzionamento di un sistema biometrico . . . . . . . . . . . . 7 1.5 Tipi di Biometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5.1 Biometrie di tipo comportamentale . . . . . . . . . . . . . . . 8 1.5.2 Biometrie di tipo fisiologico . . . . . . . . . . . . . . . . . . . 9 2 Riconoscimento del volto 16 2.1 Generalità sul riconoscimento del volto . . . . . . . . . . . . . . . . . 16 2.2 Principal Components Analysis (PCA) . . . . . . . . . . . . . . . . . 18 2.3 Elastic Bunch Graph Matching (EBGM) . . . . . . . . . . . . . . . . 20 2.4 Linear Discriminant Analysis (LDA) . . . . . . . . . . . . . . . . . . 25 2.5 Hidden Markov Model (HMM) . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Riconoscimento Attraverso Reti Neurali . . . . . . . . . . . . . . . . . 29 3 Reti Neurali 30 3.1 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2 Affinità biologiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Neurone artificiale 3.4 Strutture della rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.4.1 reti feedforward . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.2 reti ricorrenti . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ii INDICE iii 3.5 Tipi di addestramento . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.6 Tipi di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.7 3.6.1 Percettrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.6.2 SOM di Kohonen . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.6.3 GNG - Growing Neural Gas . . . . . . . . . . . . . . . . . . . 40 3.6.4 LVQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Reti Neurali Modulari . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.7.1 Decomposizione di problemi . . . . . . . . . . . . . . . . . . . 49 3.7.2 Hieratchial Mixure of Expert . . . . . . . . . . . . . . . . . . . 50 4 Belief Revision 52 4.1 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.2 Approccio AGM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2.1 Revisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.2 Contrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.3 Approccio Probabilistico . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.4 Approccio con la teoria delle possibilità . . . . . . . . . . . . . . . . . 59 4.5 Belief Revision in sistemi multi agenti . . . . . . . . . . . . . . . . . . 61 5 Sintesi di soluzioni per DES 67 5.1 Sistemi esperti distribuiti . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.2 Il problema della sintesi . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.3 Potenziali casi di sintesi . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.4 Classificazione dei DES . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.5 Relazioni fra casi di sintesi e tipologia di DES . . . . . . . . . . . . . 73 5.6 Condizioni necessarie per tutte le strategie di sintesi . . . . . . . . . . 74 5.7 Strategie di sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.8 Principali metodologie . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.8.1 Metodi Analitici 5.8.2 Metodi induttivi . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.8.3 Confronto tra le due metodologie . . . . . . . . . . . . . . . . 79 6 Face Recognition System . . . . . . . . . . . . . . . . . . . . . . . . . 77 80 6.1 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.2 Architettura sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.3 Estrazione feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 Reti neurali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 INDICE iv 6.5 Condizionamento Bayesiano . . . . . . . . . . . . . . . . . . . . . . . 86 6.6 Funzioni di sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.6.1 Inclusion based e ottimizzazioni . . . . . . . . . . . . . . . . . 91 6.6.2 Algoritmo pesato . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.7 Numero delle risposte . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.8 Modulo per la retroazione . . . . . . . . . . . . . . . . . . . . . . . . 96 6.9 Schema finale del sistema . . . . . . . . . . . . . . . . . . . . . . . . . 98 7 Risultati Sperimentali 7.1 7.2 100 Database ”ORL” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 7.1.1 Caratteristiche Database . . . . . . . . . . . . . . . . . . . . . 100 7.1.2 Training delle reti . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.1.3 Test delle singole reti . . . . . . . . . . . . . . . . . . . . . . . 102 7.1.4 Test del sistema con il database ”ORL” . . . . . . . . . . . . . 105 Database ”ORL” modificato . . . . . . . . . . . . . . . . . . . . . . . 107 7.2.1 Test delle reti con il database ”ORL” modificato . . . . . . . . 108 7.2.2 Test del sistema con il database ORL modificato . . . . . . . . 109 7.3 Andamento delle affidabilità con il sistema retroazionato . . . . . . . 113 7.4 Analisi dei risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Conclusioni 117 Sviluppi Futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 A Schema Software 120 A.1 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 A.2 GreyBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 A.3 FaceClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 A.4 Cartella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 A.5 LVQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 A.6 SysRiconoscimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Ringraziamenti 126 Bibliografia 129 Introduzione I sistemi di riconoscimento facciale possono offrire ottime performance nel riconoscimento dei soggetti attraverso l’analisi di immagini del volto, ma le loro prestazioni non sono prevedibili se nei soggetti da riconoscere qualche caratteristica evolve nel tempo. Se il soggetto cambia con regolarità si arriverà sicuramente ad un punto in cui la conoscenza iniziale non sarà più sufficiente per completare una corretta identificazione, ed il soggetto verrà confuso con un altro individuo. Questo comportamento è molto poco adatto nel caso in cui il riconoscimento facciale sia usato per l’accesso ad aree riservate o per consentire l’utilizzo di dati sensibili. In questo lavoro di tesi si propone un sistema di riconoscimento facciale ibrido, basato su reti neurali multiple e su di un livello logico per la supervisione dello strato neuronale. Ogni rete neurale è addestrata a riconoscere una particolare caratteristica del volto. Le risposte delle singole reti sono usate per stabilire quale è l’identità più probabile per il soggetto. Sulla base dell’identità individuata dal sistema si condiziona l’apprendimento delle reti che hanno fornito risposte contraddittorie con quella del gruppo. E’ importante sottolineare che ogni rete neurale, che fa parte del sistema di riconoscimento, è indipendente dalle altre ed analizza l’immagine di una singola caratteristica del volto (naso, bocca . . . ). La sua risposta rappresenta l’identità del soggetto che lei ritiene la più probabile. Può, evidentemente, presentarsi il caso in cui le singole risposte delle reti non siano concordi su di un solo individuo. Per risolvere questo tipo di conflitto fra le risposte viene, quindi, usato un approccio simbolico, basato sul condizionamento Bayesiano: in base ai conflitti fra le risposte ed alle affidabilità a priori delle singole reti, vengono ricalcolate le affidabilità a posteriori per ogni rete. Si usano le nuove affidabilità delle reti e gli insiemi delle risposte concordi per decidere la risposta del gruppo. Il sistema cosi configurato risulta essere efficace nell’identificare i soggetti, anche se gli individui hanno subı̀to dei cambiamenti limitati del volto: la forza del gruppo prevale sulle reti che sbagliano nell’identificare le nuove e mutate caratteristiche. v INDICE In base al soggetto identificato dal gruppo, si aggiorna la conoscenza per la rete (o le reti) che non lo hanno correttamente identificato. Se una caratteristica non viene riconosciuta per un tempo sufficientemente lungo si riaddestra la singola rete neurale associata a quella feature, per evitare che in futuro quella stessa rete continui a commettere errori nell’identificare quello specifico individuo. In questo modo si ha un sistema che evolve indipendentemente dal controllo umano e mantiene aggiornata la sua conoscenza. Grazie a questi accorgimenti si è, quindi, in grado di riconoscere soggetti che evolvono nel tempo, modificando le loro caratteristiche. Struttura Tesi Dopo una prima analisi generale del problema della biometria e del suo uso nei sistemi di identificazione e di autenticazione (Capitolo 1) si passa all’analisi del caso più specifico del riconoscimento facciale (Capitolo 2). Nel capitolo 3 vengono introdotte le reti neurali ed il loro possibile utilizzo nell’ambito del riconoscimento facciale. Ad ogni rete neurale è associato un livello di affidabilità a priori, che deve essere revisionata confrontando le convinzioni del gruppo con quelle del singolo esperto (la rete neurale nel nostro caso). Questo tipo di teorie sono esplorate nel capitolo 4. E’ stato sviluppato, in questa tesi, un sistema di reti neurali multiple, che rispondono ad uno stesso problema a partire dall’analisi di dati differenti: nel capitolo 5 vengono descritte alcune possibili tecniche per far collaborare produttivamente sistemi esperti distribuiti. Infine nel capitolo 6 si analizza la struttura modulare del sistema di riconoscimento facciale e nel capitolo 7 sono presentati alcuni risultati dei test del funzionamento del sistema. vi Capitolo 1 Sistemi Biometrici 1.1 Generalità sulla biometria Con il termine ”biometria” si fa riferimento a tutta una classe di tecnologie e tecniche per l’identificazione univoca degli esseri umani attraverso l’uso di caratteristiche fisiche per identificare l’identità dei soggetti. La parola Biometria, infatti, deriva dalle parole greche bı́os = ”vita” e metros = ”misura”. Anche se le tecnologie biometriche sono adatte a vari usi, il loro scopo primario è quello di fornire un’alternativa più sicura per i sistemi tradizionali di controllo degli accessi, utilizzati dalle persone per quelle attività che richiedono la loro identificazione preventiva. Molti dei problemi che la biometria tenta di risolvere sono i punti deboli degli attuali sistemi di accesso: • Debolezza delle password: L’utilizzo di password deboli è purtroppo un problema molto comune, inoltre é spesso poco sentito da parte degli utenti che tendono a ignorare e sottovalutare il problema. Queste due caratteristiche rendono tale problema molto delicato ai fini della sicurezza di un sistema di accesso. L’utilizzo di password facilmente individuabili può consentire infatti ad una terza persona di assumere l’identità di un altro soggetto agli occhi del sistema, permettendo a quest’ultimo di operare con gli stessi privilegi del soggetto realmente autorizzato. Ciò può implicare rischi per la sicurezza sia per il sistema informatico in sé, sia per la sicurezza personale e delle comunicazioni del soggetto originale. • Credenziali di accesso condivise:Questo è un altro caso molto comune, infatti capita spesso che in piccole e grandi organizzazioni, si possano trovare gruppi di utenti che condividono credenziali di autenticazione tra di loro. Ciò, sebbene sia spesso vietato dai regolamenti interni relativi alla sicurezza, non 1 CAPITOLO 1. SISTEMI BIOMETRICI è raro che succeda. Ad esempio potrebbe succedere per aiutare un collega in difficoltà oppure per saltare le pratiche di registrazione da parte di un utente senza credenziali. In questo modo oltre, che trasgredire il regolamento interno, si perde di vista il motivo per cui quel regolamento è entrato in vigore, mettendo a rischio la sicurezza dei dati che sarebbero dovuti essere protetti. • Perdita delle credenziali: è sempre possibile perdere le credenziali se queste sono indipendenti dal soggetto che servono ad autenticare, siano esse password oppure oggetti come badge e tesserini magnetici o RFID. La biometria può risolvere tutti questi problemi attraverso una credenziale aggiuntiva, qualcosa che sia associato con il corpo della persona stessa e che sia univoco. Un sistema di controllo degli accessi che utilizza la biometria includerà un dispositivo elettronico o informatico per verificare la caratteristica fisica specifica del corpo della persona o per verificare un comportamento tipico che consenta di identificare univocamente l’identità della persona. Per molti aspetti, i dati biometrici possono essere considerati come delle vere e proprie chiavi; il sistema li considera, infatti, come sequenze univoche di bit. Ciò è spesso ignorato dai progettisti che affidano la sicurezza del loro sistema informatico alla biometria. I progettisti possono essere portati a credere che, essendo difficile da replicare la sorgente della misura biometrica (l’impronta, la voce ecc...), il sistema risulta essere ”più sicuro”. Questa è una considerazione molto superficiale in quanto dal punto di vista di sistema, il dato biometrico è solo una stringa di bit e non è diversa da qualsiasi altra chiave. Ad esempio, è noto che il sistema di accesso basato su password per l’identificazione è insicuro, ad esempio causa del rischio di attacco di replay: un utente malintenzionato può spiare il processo di login di un utente valido e poi semplicemente riutilizzare la password che ha osservato per accedere al sistema. Questo non vuol dire che se due soggetti non hanno lo stesso profilo biometrico non è possibile avere un attacco di tipo replay, l’utente malintenzionato potrebbe,infatti, semplicemente evitare la fase della misura biometrica e inviare direttamente una stringa di bit al sistema. E’ fondamentale da considerare nel caso in cui i dati biometrici servano per l’identificazione essi devono essere mantenuti con la stessa cura degli altri tipi di chiavi: devono essere protetti! 2 CAPITOLO 1. SISTEMI BIOMETRICI 1.2 Autenticazioni Biometriche L’idea che sia possibile identificare una persona attraverso la biometria nasce sia dalla conoscenza acquisita a proposito delle caratteristiche fisiche degli individui (ad esempio la conoscenza del fatto che ogni persona possegga impronte digitali o DNA unico) sia dall’esperienza personale di ciascuno (è abbastanza raro, se non impossibile, che uno sconosciuto venga scambiato per un amico o un parente). Se ci può essere una ragionevole certezza che le impronte digitali, il DNA, siano misure univoche, una grande incertezza può risiedere nel processo di misurazione di questi dati biometrici. Ciò rende possibile il verificarsi di un cosiddetto falso positivo (un impostore usa le credenziali di un altro soggetto effettivamente autorizzato). Questo evento non dovrebbe essere considerato raro. I sistemi biometrici sono utilizzati principalmente per due scopi: verificare che un utente sia realmente chi dice di essere (si confronta la sua misura biometrica solo con quella dell’identità indicata) o per identificare una persona (in questo caso si deve confrontare il suo dato biometrico con tutti quelli presenti in un database di molte misure e di molti soggetti differenti). I sistemi biometrici sono sempre formati da quattro moduli: un sensore, che cattura i dati biometrici, alcuni software applicativi per l’estrazione dell’informazione dal dato biometrico, un modulo software che esegue funzioni base di corrispondenza e un modulo decisionale finale. Le prestazioni di un sistema biometrico dipendono innanzitutto da una corretta acquisizione delle caratteristiche biometriche dell’utente reale nel momento in cui il sistema deve apprendere le caratteristiche di quello specifico utente. Non farlo a regola d’arte pregiudicherebbe il comportamento del sistema nel riconoscere quello specifico utente. Una volta che un utente è conosciuto dal sistema, siamo nella fase in cui egli può essere riconosciuto nuovamente dal sistema biometrico eseguendo una nuova misurazione della stessa caratteristica con cui il sistema è stato addestrato a riconoscerlo in precedenza. Indipendentemente dal tipo di tecnologia di rilevamento biometrico che stiamo utilizzando è necessario sapere che si presenteranno delle naturali variazioni rispetto alla misura memorizzata per ogni utente. Con i lettori di impronte digitali, ad esempio, può accadere che un utente non metta il dito in una posizione corretta sullo scanner o potrebbe esserci della polvere che altererebbe la qualità ottica della scansione o essere presenti dei tagli, del grasso sul dito, tutto ciò potrebbe modificare la 3 CAPITOLO 1. SISTEMI BIOMETRICI misurazione che stiamo effettuando. Ma potrebbe succedere anche che l’utente stia applicando una diversa pressione durante la scansione rispetto a quella applicata nella prima misurazione, cosicchè le impronte digitali risulterebbero deformate. In effetti, la probabilità che due differenti misurazioni per una data caratteristica prodotte da un utente diano lo stesso risultato è quasi nulla. Ma per quanto riguarda questo aspetto non esistono sensori che possano assicurare questa omogeneità fra misurazioni effettuate a distanza di tempo fra di loro. L’importante è essere coscienti del fatto che non è possibile ottenere la medesima misura per una data grandezza biometrica. Per fornire comunque una risposta che sia quella giusta con la più alta probabilità, in genere, viene assegnato un punteggio in base alla somiglianza tra le due misurazioni. Più alto risulta il punteggio di similarità, maggiore è la probabilità che le due impronte digitali corrispondano a uno stesso soggetto. In questo modo, però, non si eviterebbe che un soggetto non conosciuto al sistema possa essere identificato per errore, questi sarebbe infatti identificato come il soggetto con la misurazione a lui più somigliante. Per evitare questo spiacevole inconveniente possono essere previste delle soglie sui valori di similarità per escludere le semplici somiglianze. Se il punteggio di similarità s è maggiore o uguale a quello della soglia t allora l’impronta dell’utente è considerata un match rispetto a quella memorizzata nel database. Se in vece il punteggio è minore di quello della soglia t allora il sistema considera le due misurazioni come appartenenti a due soggetti distinti. Nel tempo si accumulano diverse misurazioni, che potranno essere sia sopra il valore di soglia che sotto. Si fa riferimento alla distribuzione, rispetto al tempo, dei punteggi relativi ai casi in cui il nuovo campione risulta sotto la soglia t col nome di ”impostor distribution”. Allo stesso modo si può definire la curva della distribuzione dei casi in cui le misure siano sopra il valore di soglia, e che quindi ci sia la presenza di un match, in questo caso si definisce una ”genuine distribution”. Un dispositivo biometrico è tipicamente caratterizzato da una percentuale di errore. Ci sono due tassi di errore che sono importanti per valutare le prestazioni di un sistema biometrico: • FRR - percentuale di volte che misurazioni di uno stesso soggetto appaiono differenti tra di loro, e che quindi portano un soggetto autorizzato a non essere riconosciuto dal sistema biometrico. • FAR - percentuale di volte in cui una misurazione di un impostore è considerata come quella di un soggetto valido. 4 CAPITOLO 1. SISTEMI BIOMETRICI Queste due percentuali sono fortemente dipendenti dal valore di soglia di similarità che si usa nel sistema biometrico, infatti spostando la soglia cambiamo i valori di FAR e FRR, al diminuire dell’uno cresce l’altro. Impostare una soglia piccola porta ad avere più falsi positivi e meno falsi negativi. Se il sistema opera in un ambiente molto variabile e rumoroso relativamente all’acquisizione delle misure, si potrebbe essere portati ad abbassare la soglia di similarità, ma questo rende il sistema meno sicuro in quanto saranno più frequenti i casi di falsi positivi. Se invece si desidera una grande sicurezza, allora ci saranno meno falsi positivi ma più falsi negativi, rendendo necessari nuovi tentativi per l’autenticazione di un utente. In generale le curve ”impostor distribution” e ”genuine distribution” mostrano una distribuzione dei valori di tipo gaussiano, in cui la probabilità decresce con la distanza da un valore medio ma non raggiunge mai veramente lo zero. Per questo motivo nessun sistema biometrico riuscirà a separare completamente gli utenti genuini dagli impostori, ovvero ci saranno sempre delle percentuali di FRR e FAR. Come si può vedere dalla Figura 1.1 la posizione della soglia t determina le aree sottese alle due gaussiane. I campioni della curva degli impostori sopra t saranno accettati come match dal sistema, mentre i campioni della curva dei soggetti autentici, che si troveranno sotto il valore di soglia t, saranno rifiutati dal sistema e considerati, erroneamente, degli impostori. Il tipo di sistema biometrico che si utilizza implica una diversa forma delle distribuzioni, l’applicazione per cui il sistema biometrico è utilizzato, invece, obbliga ad una scelta sul valore della soglia t. Il grafico evidenzia che più selettivo è il riconoscimento per ragioni di sicurezza, maggiore è la probabilità che una persona autorizzata venga respinta. Il punto di intersezione tra le due curve corrisponde all’Equal Error Rate (ERR), in quel punto si verifica che i due tassi sono uguali. 1.3 Categorie di Biometriche Sebbene esistano molte tipologie di Biometrie esse ricadono tutte in due macrocategorie: • Fisiologiche • Comportamentali Il tipo di biometria definito fisiologico si basa su misurazioni di parti corporee o sull’analisi delle sue forme. Come esempi di questo tipo possiamo riportare: Im- 5 CAPITOLO 1. SISTEMI BIOMETRICI Figura 1.1: Valore di soglia Figura 1.2: Categorie di biometrie pronte digitali, scansioni delle mani, scansioni delle vene, scansioni dell’iride oculare, scansioni della retina, riconoscimento facciale. Queste diverse analisi biometriche hanno in comune che sono tutte basate su misurazioni ”statiche” di specifiche parti del corpo. Il tipo di biometria comportamentale ha il suo focus maggiormente su qualcosa che il soggetto deve fare, piuttosto che una semplice misurazione di una parte del corpo; l’utente è chiamato a verificare la sua identità replicando una sua azione specifica. Sono di questo tipo i riconoscimenti della scrittura, del keystroke, il riconoscimento vocale o del modo di camminare. 6 CAPITOLO 1. SISTEMI BIOMETRICI 1.4 Fasi di funzionamento di un sistema biometrico Ogni sistema biometrico è caratterizzato nel corso della sua vita di utilizzo da tre distinte fasi obbligatorie: • Enrollment: Prima che un utente possa utilizzare un sistema biometrico deve essere conosciuto; per questo bisogna istruire il sistema a riconoscere quello specifico utente. Il sistema potrebbe avere bisogno di più misurazioni della stessa grandezza per avere una buona confidenza rispetto al dato che ha collezionato e mantenere traccia anche della varianza tra i diversi campioni. • Usage: In questa fase l’utente prova ad accedere al sistema mediante nuove misurazioni della grandezza che si valuta attraverso il sistema biometrico. Il sistema confronta la nuova misura con quelle che ha memorizzate nella fase precedente per valutare la somiglianza tra campioni, per consentire l’accesso in caso di match positivo. • Update: In base al tipo di analisi biometrica il dato cambia con maggiore o minore velocità e il sistema biometrico potrebbe avere bisogno di aggiornare la conoscenza accumulata nella fase di enrollment. Ci sono vari criteri per eseguire l’update ed è compito del progettista stabilirne uno congruo con l’applicazione per cui è usato il sistema. Un sistema biometrico puà essere usato principalmente in due modalità: Autenticazione o Identificazione. L’autenticazione è l’atto di autenticare qualcuno, l’atto cioè di verificare che l’utente è chi dice di essere. Per questo motivo il nuovo campione biometrico acquisito è confrontato solo con il campione che in precedenza era stato acquisito per quel determinato soggetto. L’atto di identificare un soggetto senza che questi abbia asserito la sua identità è chiamato appunto identificazione e consiste nel confrontare il nuovo campione biometrico con tutti quelli che il sistema conosce sin dalla fase di enrollment. Questo secondo caso è ovviamente molto più complicato di quello precedente. L’asserzione sull’identità che un soggetto afferma di essere può essere acquisita in un vasto numero di modi, con una smart card elettronica, con un codice utente o, nel caso specifico del riconoscimento vocale, dicendo il proprio nome. Queste modalità di autenticazione sono conosciute per essere multifactor, nel senso che spesso l’utente 7 CAPITOLO 1. SISTEMI BIOMETRICI deve dimostrare la sua identità o con qualcosa in suo possesso o con qualcosa che conosce o con qualcosa che è (know-have-are). Nei sistemi biometrici si utilizza il terzo tipo di fattore: quello che uno è. 1.5 Tipi di Biometrie In questo paragrafo analizzeremo i tipi più comuni di biometrie, discutendo le idee che stanno alle loro basi, analizzando i loro punti di forza e le loro debolezze. 1.5.1 Biometrie di tipo comportamentale Firma La firma è lo strumento più comune per l’autenticazione di documenti all’interno della nostra società. Sono state usate fin dall’antichità per l’identificazione e, a differenza di altri metodi biometrici, questo garantisce l’intenzione da parte del soggetto di farsi autenticare. Nonostante le prestazioni dei sistemi biometrici che usano questo approccio siano inferiori a molti altri questo metodo è ampiamente usato per il fatto che si ottiene anche una dichiarazione di volontà insieme alla misura biometrica. Attualmente l’uso che se ne fa di questo tipo di biometria non è per identificare una persona ma è per autenticare la sua identità, confrontando le forme della nuova firma con la sua firma memorizzata in origine. Un sistema biometrico basato sulla firma potrebbe non solo confrontare le immagini delle due firme, ma confrontare mentre si sta scrivendo la firma se il percorso della penna è più o meno simile tra le due misurazioni. La sola analisi visuale della firma è la più semplice analisi che si possa fare, ma ci sono molte altre caratteristiche che si potrebbero analizzare direttamente nell’atto dell’acquisizione della firma, come le sfumature, la pressione della penna, il percorso che si compie per scrivere determinate lettere e la firma nella sua completezza, la velocità di scrittura. Keystroke La modalità con cui si digita su una tastiera può essere oggetto di analisi biometrica, ognuno ha una diversa abilità nel compiere questo semplice gesto. Sono state identificate due misure per compiere analisi biometriche sul keystroke: il tempo intracarattere e il dwell-time (il tempo che un tasto rimane premuto). Con questa coppia di valori è stato possibile identificare ottime percentuali di utenti. 8 CAPITOLO 1. SISTEMI BIOMETRICI Questo tipo di tecnologia biometrica è una delle più comode da analizzare e da far utilizzare in quanto necessita solamente di una tastiera e di un calcolatore e non ha bisogno di altri tipi di sensori. Potrebbe essere usata all’interno di web browser per l’identificazione degli utenti mentre digitano le loro password, oppure per mantenere un controllo continuo dell’autenticazione di un utente mentre naviga in un sito web o utilizza un computer. 1.5.2 Biometrie di tipo fisiologico Impronte digitali La superficie interna delle mani e dei piedi è ricoperta da impronte digitali o dermatoglifo, esse sono formate da sequenze di creste e valli. L´identificazione attraverso l´utilizzo delle impronte digitali è basata su due concetti: la persistenza e l’individualità. Secondo il primo concetto l’impronta è invariante nel tempo, per il secondo l’impronta è unica per ogni individuo. In vari studi fra cui quello di Osterburg et al.1 è stato dimostrato che per un sistema che analizza 12 delle più importanti caratteristiche dell’impronta, la probabilità di trovare un match tra due persone diverse è meno di 10−20 ; diminuendo il numero delle caratteristiche analizzate tale probabilità aumenta ma la maggior parte degli scanner per impronte opera con almeno 12 caratteristiche. La formazione delle impronte digitali avviene per ogni individuo nel grembo materno, e dipende solo in parte dal bagaglio genetico di ognuno. Con questa più che affidabile unicità è facile capire perché le impronte digitali siano uno degli strumenti più comuni in ambito biometrico per l’identificazione. Come campione biometrico è necessario catturare un’immagine dell’impronta quando siamo sicuri dell’identità del soggetto e, dopo si può confrontare ogni nuova immagine per verificarne l’identità. Nonostante le dimensioni delle impronte cambino col crescere del soggetto, la struttura base della loro immagine non cambia nel tempo, eccetto il caso in cui intervengano modificazioni meccaniche come tagli e cicatrici, che sono comunque facilmente identificabili. Storicamente le impronte sono state divise in cinque classi per facilitare la loro classificazione. Queste classi sono chiamate Right Loop, Left Loop, Arch , Tented Arch 1 J.Osterburg, et al., ”Development of a Mathematical Formula for the Calculation of Fingerprint Probabilities Based on Individual Characteristics”, Journal of the American Statistical Association, Vol. 72, No. 360, 1977, pp.772-778. 1977 9 CAPITOLO 1. SISTEMI BIOMETRICI e infine, Whorl . Il maggior contenuto informativo dell’immagine dell’impronta a livello locale è dato dalle minuzie, le terminazioni e le biforcazioni delle creste. Palmo della mano Le stesse caratteristiche delle impronte digitali possono essere ritrovate anche nel palmo di mani e piedi. Però le mani hanno delle altre feature che le impronte dei piedi non hanno, come ad esempio le pieghe della pelle dovute alla flessione della mano. In genere queste pieghe della pella sono tre, ma ci sono anche altre pieghe minori che creano complessivamente un pattern che è molto caratteristico del soggetto a cui la mano appartiene. Le linee principali si formano due o tre mesi dopo il concepimento, mentre le altre pieghe cominciano a formarsi in tenerissima età, dai quattro mesi di vita in poi. Quando si fa riferimento a impronte dei palmi si intende la duplice informazione caratterizzata sia da impronte digitali che da pieghe della pelle. Generalmente i risultati che si ottengono con il riconoscimento biometrico attraverso l’analisi dell’immagine del palmo della mano sono migliori di quelli che si ottengono con la sola analisi delle impronte digitali. Consentono di avere meno falsi positivi e meno falsi negativi. Anche perché posizionare la mano intera su uno scanner obbliga a mantenere quasi la medesima posizione ogni volta, cosa che con le impronte digitali è molto più difficile da ottenere. Il più grande numero di punti informativi collezionati in una scansione della mano significa, però, anche avere una più alta probabilità di modificazioni dovute a tagli, sporco e rumore in genere rispetto al campione originale. Grazie a un significativo numero di feature che sono presenti nel palmo della mano è possibile ottenere percentuali di FAR e FRR generalmente molto basse. Le tecnologie di acquisizione sono le stesse di quelle usate per le impronte digitali. Vene della mano Diversamente dal tipo precedente di biometria, questo non si concentra sulle caratteristiche che sono proprie di ogni mano(o piede), ma sulle vene e sui capillari, che sono presenti in tutto il corpo. Sebbene sia possibile usare quelle delle vene di qualsiasi parte del corpo in genere si usano quelle nella mano per questioni di praticità. Un altro importante fattore è che i tessuti nella mano sono abbastanza sottili da lasciar passare la luce di una certa intesità, rendendo più facile il compito di catturare l’immagine della disposizione delle vene. Questo metodo è migliore rispetto sia alle impronte digitali sia rispetto alla scansio- 10 CAPITOLO 1. SISTEMI BIOMETRICI ne della intera mano, infatti presenta dei valori di FAR e FRR migliori. Il fatto che le vene siano contenute all’interno dei tessuti consente di avere delle immagini con molto meno rumore dovuto a tagli, o sporco che si trova sulla superficie, rispetto a quello che si ottiene con le due tecniche precedenti. Inoltre per la scansione si usano degli scanner a luce intensa o a raggi infrarossi, che consentono di ottenere immagini in soli due colori e ad alto contrasto: il sangue nelle vene risulta infatti di colore nero, mentre tutto il contorno appare bianco. Queste immagini a grande contrasto risultano facilmente confrontabili fra loro per le successive autenticazioni o identificazioni. Inoltre rispetto all’analisi delle impronte o alla superficie della mano è anche molto più sicuro in quanto l’immagine che serve ad identificare la nostra identità non è facilmente accessibile a chiunque si trovi intorno a noi come capita con le impronte delle mani e ancora di più con le impronte digitali. Retina Psicologicamente si tende spesso ad associare le caratteristiche vicine al volto con l’identificazione dei soggetti, sicuramente molto di più rispetto ad analisi che coinvolgono altri parti del corpo come le mani. Sin da piccoli infatti impariamo ad associare le caratteristiche facciali con gli individui ed a ricordare caratteristiche come il colore degli occhi, la forma delle orecchie, la pettinatura ed anche la forma del naso. La scansione della retina consiste nel catturare un’immagine dello strato nervoso che si trova sul fondo di ogni occhio. La retina è infatti uno strato di celle nervose che si trova dietro l’occhio e funziona come uno schermo in cui vengono proiettate le immagini che filtrano attraverso la cornea, l’iride e il cristallino. I nervi della retina sono collegati attraverso il nervo ottico al cervello, permettendo a quest’ultimo di interpretare i segnali elettrici come visione. Siccome l’iride deve essere aperta per permettere alla luce di entrare e, considerando che la cornea e il cristallino fanno passare la luce in entrambe le direzioni, è possibile vedere la retina semplicemente mandando una luce nell’occhio e guardando il riflesso della retina. In ambito biometrico è importante sapere che i nervi della retina hanno bisogno di un supporto di vasi sanguigni, che risultano più facili da fotografare rispetto ai nervi. Dai primi anni del novecento è noto che la forma che assumono questi vasi sanguigni è unica per ogni persona: possono quindi essere usati per identificare i soggetti. A quel tempo però non esistevano gli strumenti per catturare questo tipo di immagini e si è quindi dovuto attendere fino agli anni ottanta per avere a disposizione delle 11 CAPITOLO 1. SISTEMI BIOMETRICI tecnologie che lo consentissero. Con le tecnologie attuali è molto semplice fare una foto digitale di questa parte dell’occhio, indirizzando lo sguardo soggetto su di una fonte luminosa da mettere a fuoco, ed usando poi un elaboratore per confrontare le immagini ottenute. La retina, trovandosi all’interno dell’occhio, è inoltre protetta da sporco e rumore sull’immagine, cause che inficiano altri sistemi biometrici (la scansione dell’impronta digitale, ecc.). La retina è poi anche stabile nel tempo e non cambia molto con il passare del tempo. L’unico aspetto negativo della scansione della retina riguarda il fatto che per acquisire le immagini c’è bisogno che il soggetto resti con lo sguardo fisso in uno scanner, focalizzando lo sguardo su di un punto standard, lo scanner è poi posizionato a breve distanza dall’occhio, a meno di 10 cm, schermando la luce naturale circostante.Ciò risulta alquanto macchinoso, soprattutto pensando al fatto che, il riconoscimento dell’iride consente di catturare l’immagine dell’occhio con una classica macchina fotografica e in un ambiente con luce naturale. Nonostante riesca a fornire ottime prestazioni (il sistema presenta valori molto bassi di FAR e FRR) l’uso della scansione della retina non è molto diffuso in ambito pubblico, sia per il suo elevato costo di implementazione che per le evidenti difficoltà di utilizzo (soprattutto per il fatto di dover mettere la faccia ”dentro” lo scanner). Si può affermare che questo sistema è adatto ad impianti in cui sia richiesta una elevata sicurezza, ma risulta poco adatto per identificazioni di largo utilizzo o per il mercato consumer. Scansione dell’iride L’iride è la parte colorata dell’occhio che si espande e si contrae per permettere alla luce di entrare nella giusta quantità permettendo una visione ottimale. Per la maggior parte delle persone questa è la parte dell’occhio che ricordiamo maggiormente di ciascuno, ed è anche spesso indicata come caratteristica sui documenti personali come carta d’identità e passaporto, in un certo senso una forma storica di identificazione biometrica. Non molto tempo dopo che fu scoperta l’unicità per ogni soggetto della retina, un oftalmologo, Frank Burch, propose l’idea che anche l’iride contenesse abbastanza informazioni per identificare univocamente una persona. Come per la scansione della retina, anche in questo caso, si è dovuto aspettare qualche decennio per avere tecnologie che rendessero utilizzabile questa idea. Le strutture e le caratteristiche che si possono analizzare nell’iride si formano du- 12 CAPITOLO 1. SISTEMI BIOMETRICI rante la gravidanza e si stabilizzano durante i primi anni di vita dopo la nascita. Il concetto che sta alla base del riconoscimento biometrico attraverso l’analisi dell’immagine dell’iride è semplice: le strutture complesse dell’iride sono uniche per ogni individuo e possono essere acquisite con una semplice macchina fotografica. Il soggetto si posiziona davanti alla fotocamera che cattura un’immagine dell’iride; tale immagine, opportunamente processata, viene confrontata con quelle conosciute dal sistema. L’iride contiene informazioni relative sia alla pigmentazione che sulla superficie dei suoi tessuti; risulta inoltre abbastanza stabile col passare del tempo, a meno che non ci siano problemi nella fisica dell’occhio. Le immagini possono essere acquisite da fotocamere standard, ad una distanza anche di qualche metro ed, al limite anche se il soggetto indossa gli occhiali o le lenti a contatto. Alcune implementazioni di questo sistema possono prevedere anche un test di risposta a stimoli luminosi da parte dell’iride, questo per aumentare la sicurezza del sistema, discriminando tra soggetti reali che, quindi, reagiscono agli stimoli e semplici riproduzioni fotografiche. La unicità, la varietà e la stabilità di delle caratteristiche dell’iride consentono di avere FAR e FRR molto bassi e, come per le impronte digitali nei gemelli, esse sono differenti per ogni soggetto. Impronta vocale L’impronta vocale usa specifiche caratteristiche della voce delle persone per poterne accertare l’identità (al contrario, il riconoscimento vocale cerca di capire cosa si stia dicendo, indipendentemente dal soggetto che sta pronunciando le parole). L’impronta vocale è un altro tipo di riconoscimento che è innato in ciascuno di noi sin dall’infanzia. Ognuno di noi ha molti conoscenti di cui è possibile riconoscere l’identità ascoltandone solamente la voce. L’uso dell’impronta vocale, ai fini dell’identificazione, richiede che la voce venga digitalizzata e trasformata in un campione vocale per poter essere confrontato con dei precedenti segnali vocali campionati. L’impronta vocale è uno dei pochi sistemi biometrici che utilizza sia caratteristiche fisiche(la laringe, la bocca, la lingua, il naso, le labbra ...) che comportamentali (la pronuncia, l’accento ...). Ognuna di queste caratteristiche potrebbe essere una metrica per delle analisi biometriche se considerate indipendentemente le une dalle altre ma, considerandole insieme, forniscono un alto livello di accuratezza. Per facilitare il compito di riconoscimento all’elaboratore e renderlo più accurato si usa fare il training con delle frasi standard comuni a tutti i soggetti. 13 CAPITOLO 1. SISTEMI BIOMETRICI Per evitare la possibilità che la voce di un soggetto sia registrata mentre dice la frase di accesso e, quindi, possa garantire l’autenticazione con la sua semplice riproduzione, il sistema può prevedere di pronunciare una serie di parole in un ordine casuale che cambia ad ogni tentativo di autenticazione. In questo caso, durante la fase di enrollment, il sistema deve essere addestrato a riconoscere un certo numero di parole. Il rumore può influenzare le percentuali di FAR e FRR di questo tipo di riconoscimento, in alcuni casi questa tecnologia può essere usata in combinazione con altri sistemi di identificazione, come ad esempio un RFID, una smart card, o un altro sistema biometrico per poter ridurre il FAR e FRR. DNA come tecnica di riconoscimento biometrica Il DNA o acido deossiribonucleico, è contenuto in ogni cellula di tutti gli organismi viventi. A partire dalla fine del 1800 gli scienziati hanno investigato molto sulla natura del DNA e sulla sua struttura, fino ad arrivare ad un suo dettagliato modello nel 1953 da parte di Watson e Cric. Il DNA è quindi un codice univoco per ogni soggetto, con l’eccezione dei gemelli omozigoti. In teoria il DNA è lo strumento migliore per attuare il riconoscimento biometrico: è noto per essere unico inoltre il processo di comparazione di due DNA è noto e poco suscettibile di errori, come invece sono gli altri metodi di confronto tra immagini. In teoria si può confrontare il DNA di una persona analizzando ogni singolo componente per verificare se due campioni sono uguali o no. Il DNA si può estrarre da qualsiasi cellula di un soggetto che, dapprima deve essere identificato, per essere sicuri della sua identità, poi si confrontano i nuovi campioni collezionati con quello acquisito all’inizio. Praticamente questo tipo di analisi è però utile solo nel caso in cui si è disposti ad attendere ore o giorni per rendere possibili le analisi chimiche dei campioni. Un altro aspetto del confronto basato sul DNA è che i metodi attuali non usano nemmeno tutto il codice contenuto nel DNA per fare il confronto, infatti il metodo più comune è l’analisi STR(short tandem repeat), che cerca e confronta solo varie sequenze di coppie base che si ripetono diversamente tra individui che hanno un bagaglio genetico differente tra loro. 14 CAPITOLO 1. SISTEMI BIOMETRICI Riconoscimento facciale Il riconoscimento facciale consiste nell’usare il volto umano per scopi di identificazione o autenticazione dei soggetti. Esistono molte tecniche che sono divisibili in tre macrocategorie: analisi olistiche, analisi delle feature, sistemi ibridi. Nelle analisi olistiche l’intera immagine del volto è usata come pattern di ingresso del sistema di riconoscimento, in quella delle feature, invece, si analizzano separatamente le caratteristiche del volto(naso, bocca, occhi . . . ). Nel tipo di analisi ibrida si usano vari mezzi per raggiungere il riconoscimento del volto, come ad esempio reti neurali e logica applicata. Nel capitolo successivo saranno presentate vari tipi di analisi che sono disponibili in letteratura per quanto riguarda l’analisi di questa caratteristica biometrica. 15 Capitolo 2 Riconoscimento del volto 2.1 Generalità sul riconoscimento del volto Una delle prime cose che imparano gli esseri umani è riconoscere le persone a partire dai loro volti, questo in genere accade a cominciare dal papà e della mamma, sin dai primi sguardi che il neonato rivolge loro. Questo tipo di identificazione è insita negli umani ormai da milioni di anni e, con l’evoluzione, i meccanismi che il nostro cervello mette in atto si sono sempre più affinati: ad esempio riusciamo a riconoscere un soggetto a noi noto, anche se questi è camuffato, oppure riusciamo a riconoscere soggetti che appaiono in foto che sono scattate prima della nostra nascita e che, quindi, non abbiamo mai conosciuto con quell’aspetto. Riusciamo anche ad interpretare le emozioni di un soggetto semplicemente osservando il suo volto, oppure ci ricordiamo di aver visto una persona anche a distanza di molti anni; tipico in questo senso è il detto ”quella faccia non mi è nuova”, importante è notare che molte volte quando abbiamo l’impressione di riconoscere un volto visto molti anni fa, spesso non ci ricordiamo né dove né quando lo abbiamo visto l’ultima volta, a maggior riprova del fatto che il cervello umano è maggiormente focalizzato sul memorizzare i volti rispetto agli altri eventi. I computer non hanno tutta questa esperienza dettata dalla lunga evoluzione che ha interessato l’uomo in questo campo e, per questo, i risultati del riconoscimento facciale non sono ottimali, come il riconoscimento eseguito dagli essere umani. In genere si può affermare che il riconoscimento biometrico facciale è basato sul confronto di due immagini del volto, ma per realizzare questo confronto non basta analizzare le immagini pixel per pixel, ciò sia per il fatto che le immagini potrebbero avere inquadrature differenti dei soggetti sia perché i soggetti potrebbero assumere espressioni del viso differenti nelle immagini. Per questo motivo sono stati pensati 16 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO diversi algoritmi per estrarre il contenuto delle foto e confrontarne i volti, illustreremo alcuni dei più importanti nei paragrafi seguenti. Ci sono essenzialmente due tipi di approccio ai fini dell’estrazione delle feature per il riconoscimento facciale nell’ambito di ricerca della computer vision: il template matching olistico, la ricerca locale di feature basata su schemi e variazioni [31]. Nel tipo olistico (dal greco holon, cioè tutto) l’analisi biometrica è svolta sull’intera faccia, direttamente sotto forma di immagine in scala di grigio che viene poi trasformata in un pattern di ingresso, o attraverso l’uso di un vettore generato da una qualche fase di preprocessing a partire dalle immagini dell’intera faccia. Le rappresentazioni in poche dimensioni sono preferibili per la facilità di gestione e per la loro buona generalizzazione. Esistono inoltre tecniche ibride che usano alcuni concetti dell’una e alcuni concetti dell’altra, ad esempio possono usare delle funzioni per l’estrazione delle feature di un volto e poi analizzare singolarmente in modo olistico quelle parti. Sulla base di questi bisogni vari studi sono stati svolti per trovare un buon compromesso sul numero di colori di grigio da usare per la rappresentazione delle immagini [26]. La riduzione della dimensione dell’analisi può essere raggiunta anche attraverso l’uso di opportuni algoritmi come quello PCA [19]. Nell’altro tipo di approccio, quello geometrico, si tenta invece di individuare le componenti più importanti del volto nell’immagine. A quel punto sono computate le distanze relative e le grandezze delle feature. L’insieme di queste misure costituisce il vettore rappresentativo di quella immagine. Questo tipo di metodo è maggiormente adatto a grandi variazioni in scala delle immagini ed è più robusto, ma è generalmente più complesso, ed ha bisogno di un numero maggiore di passi per raggiungere il suo scopo. Un esempio è EBGM. Il compito del riconoscimento attraverso immagini del volto soffre del problema della grande variabilità che può aversi all’interno di diverse immagini dello stesso soggetto. Per risolvere il problema della variabilità sono possibili vari approcci: • Per ogni soggetto si conservano più template, uno per ogni espressione facciale fondamentale, o orientamento della testa. (sistemi view-based) • Si usano template deformabili in un modello tridimensionale del volto umano • Si considerano tali variazioni nel processo di estrazione delle feature. 17 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO 2.2 Principal Components Analysis (PCA) La tecnica PCA usa l’algebra lineare per ridurre le informazioni del volto in un subset più piccolo di componenti non correlate fra loro. Una volta applicata questa trasformazione alle immagini dei volti si confrontano le distanze tra le caratteristiche dei due set di immagini facciali ridotte alle loro componenti principali. In [19] viene presentato un metodo che consente di applicare una trasformazione alle immagini originali del dataset e codificarle in un insieme ristretto di immagini con le loro componenti caratteristiche fondamentali. Queste nuove immagini sono chiamate Autofacce e contengono solo le informazioni che caratterizzano quella specifica faccia rispetto al gruppo di immagini usate per il training del sistema. In questo modo è possibile ottenere le informazioni necessarie ad eseguire confronti tra volti mantenendo solo le informazioni strettamente necessarie e, ciò, nel caso in cui siano presenti molti soggetti nel sistema, è un evidente vantaggio. Il riconoscimento a questo punto è ottenuto proiettando la nuova immagine nel sub-spazio formato dalle Autofacce, il cosiddetto face-space e la classificazione si ottiene comparando la posizione della nuova immagine rispetto a quelle dei soggetti noti. Calcolo delle Autofacce Per il calcolo delle Autofacce, si consideri una generica immagine di un volto I(xy). Essa può essere rappresentata come un vettore di valori di intensità avente dimensioni N × N . Una immagine delle dimensioni di 256 × 256 descrive un vettore di dimensioni pari a 65536 o, in maniera equivalente, un punto in uno spazio a 65536 dimensioni. Un insieme di immagini rappresenta, quindi, un insieme di punti in questo enorme spazio multidimensionale. Dal momento che le immagini dei volti sono tutte abbastanza simili fra di loro, avremo che i valori in questo spazio non saranno distribuiti casualmente e quindi possiamo pensare di descriverle attraverso l’uso di un sub-spazio con minori dimensioni. L’idea chiave che sta dietro all’analisi PCA risulta il trovare i vettori che meglio descrivono la distribuzione delle immagini dei volti all’interno dell’intero spazio delle immagini. Questi vettori descrivono quindi un nuovo spazio, che definiamo ”space-face”. Ogni vettore in questo nuovo sotto-spazio è di una lunghezza N 2 , e descrive un’immagine di dimensioni N × N , ed è una combinazione lineare dell’immagine originale. Alcuni esempi di Autofacce sono in Figura 2.1. Definiamo Γ1 , Γ2 , Γ3 . . . ΓM l’insieme delle immagini di training set. Il valore PM medio per una faccia del training set è definito da Ψ = M1 n=1 Γn . Ogni faccia 18 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO Figura 2.1: Esempio di Autofaccia differisce dalla media per un vettore Φi = Γi − Ψ. Un esempio di training set è visibile in figura 2.2(a), mentre in figura 2.2(b) è possibile vedere la faccia media Ψ. A questo punto questo grande set di vettori è sottoposto a PCA, che cerca un insieme di M vettori ortonormali un e i loro autovalori λk che descrivono al meglio la distribuzione dei dati originali. I vettori uk e gli scalari λk sono rispettivamente gli autovettori e gli autovalori della matrice della covarianza C= M 1 X Φn ΦTn = AAT M n=1 Dove la matrice A = [Φ1 Φ2 . . . ΦM ]. La matrice C, ha dimensioni N 2 per N 2 e determinare gli N 2 autovettori e gli autovalori è un compito troppo complesso per immagini di dimensioni comuni. Fortunatamente possiamo determinare gli autovettori risolvendo una matrice più piccola M × M , e passando da un problema con dimensioni dell’ordine del numero dei pixel dell’immagine (N 2 ) ad un ordine pari al numero delle immagini del training set (M ). Ciò rappresenta un enorme vantaggio perché nei casi reali il numero di immagini del training set è molto minore dei pixel di una singola immagine. Uso delle Autofacce per la classificazione Una volta che le Autofacce sono create il problema diventa un task di pattern recognition all’interno del sub-spazio M 0 invece che nel sub-spazion N-dimensionale originale. M 0 rappresenta i soli autovettori significativi e questo numero è sempre minore o, al limite, uguale a M . I pesi formano un vettore ΩT = [ω1 ω2 . . . ωM 0 ] che descrive il contributo di ogni autofaccia rispetto alla faccia in ingresso, trattando la eagenface come un valor medio 19 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO (a) Esempio di Training Set 20 (b) Faccia Media Figura 2.2: Esempio Training PCA per le facce in ingresso. Il vettore a questo punto è usato per identificare la faccia di appartenenza in base a criteri di distanza come, ad esempio, il calcolo della distanza euclidea. Per assegnare una classe bisogna cercare il vettore che minimizza la distanza con il vettore di ingresso relativo alla nuova immagine da identificare. Se non c’è nessuna classe che si trova sotto soglia per un dato input si può scegliere se creare una nuova classe o scartare quella immagine come non classificabile. Questo approccio ha vantaggi rispetto ad altri sistemi di riconoscimento per la sua velocità e semplicità, per la sua capacità di imparare nuovi soggetti velocemente e la sua relativa insensibilità a piccoli cambiamenti che avvengono gradualmente. Uno svantaggio pratico di questo sistema è il fatto che le immagini prima di essere processate debbano essere normalizzate alla stessa dimensione e allineate rispetto ai margini. 2.3 Elastic Bunch Graph Matching (EBGM) La tecnica EBGM, introdotta in [27] si focalizza sul compito di riconoscimento facciale a partire da una singola immagine per persona contenuta nel training set. Il problema principale di questo approccio è modellare le variazioni possibili dovute, ad esempio, alle espressioni, alla posizione della testa od alle dimensioni della foto. Per fare questo considera che immagini coerenti fra di loro, che appartengono a uno CAPITOLO 2. RICONOSCIMENTO DEL VOLTO stesso dominio, come lo sono quelle dei volti, tendono ad essere tutte simili tra loro, a meno che siano traslate, scalate, ruotate o deformate sul piano dell’immagine. Per rappresentare i volti si usa quindi un grafo etichettato, i rami sono etichettati con le distanze, e i nodi sono etichettati con le risposte wavelet associate all’immagine in quei punti, queste risposte sono chiamate col termine di jets. L’immagine del training set processata con questo modello può cosi essere usata come confronto per le nuove immagini da analizzare dopo che queste sono state a loro volta processate con lo stesso modello. Le nuove immagini potranno essere a loro volta integrate nel modello conservato dal sistema usando anche la loro informazione. La trasformazione wavelet che usa questo sistema è in grado di gestire cambiamenti moderati di luminosità nelle immagini e piccoli scostamenti e deformazioni. Il grafo che descrive un volto può essere traslato, scalato, orientato o deformato durante il processo di riconoscimento per compensare la varianza che si ha tra le diverse immagini. Per effettuare un riconoscimento all’interno di immagini dello stesso tipo, come lo sono i volti, è necessario avere informazioni specifiche per quanto riguarda il dominio di interesse della classe. In questo sistema le informazioni relative alla classe di appartenenza delle immagini è modellato attraverso l’uso dei bunch-graphs, associati ad ogni immagine. Ogni immagine è campionata attraverso i jets in un insieme di punti fiduciali (posizionati sugli occhi, sulla bocca, sui contorni . . . ). I bunch-graphs sono delle entità combinatorie, in cui, per ogni punto fiduciale, può essere selezionato un jet da una differente immagine campione, per creare un modello altamente adattabile. Questo modello è poi confrontato con una nuova immagine facciale per trovare i punti fiduciali in quella nuova immagine. I jets a questo punto sono estratti dalla nuova immagine, con le loro posizioni relative, e sono combinati in una nuovo grafo di immagine, una rappresentazione della faccia senza variazioni per quanto riguarda la dimensione o la posizione. Un bunch-graph è creato in due passi. La sua struttura come grafo (i nodi e i rami) ed i valori assegnati alle etichette (le distanze e i jets) per le immagini iniziali sono impostati dal progettista, mentre per le nuove immagini sono ricavate semiautomaticamente a partire da quello impostato andando a modificare di volta in volta la posizione dei punti fiduciali finchè non trovano un match. In questo modo il sistema è anche abbastanza robusto a fronte delle piccole rotazioni della testa nell’immagine. Questo tipo di grafi contengono tutte le informazioni che ci consentono di rispondere al compito del riconoscimento facciale. Per questo compito, infatti, basterà confrontare il grafo di una immagine a quelli contenuti nel modello iniziale, consentendo di risparmiare potenza computazionale, in quanto bisognerà 21 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO confrontare solo la similarità tra i vari jets. Funzionamento di EBGM Per rappresentare le caratteristiche locali questo sistema fa uso del filtro di Gabor. Un esempio delle wavelet di Gabor è riportato in figura 2.3. L’insieme di coefficienti di kernel di differenti orientamenti e frequenze Figura 2.3: Rappresentazione attraverso un grafo di un volto basato sulla transformata wavelet di Gabor usate per la convoluzione è chiamato jet. Un jet descrive una piccola porzione di valori di grigio nell’immagine I(~x) nell’intorno di un dato pixel ~x = (x, y). Si basa sulla trasformata wavelet definita dalla convoluzione dell’immagine con i cosiddetti Gabor Kernel Z Jj (~x) = I(~x0 )ψj (~x − ~x0 )d2~x0 dove i Gabor Kernel sono famiglie del tipo: ψj (~x) = k 2 x2 h 2 i kj2 j ~kj ~x) − exp − σ exp − exp(i σ2 2σ 2 2 che sono onde sul piano con un vettore di onda ~kj , limitato da una funzione gaussiana di inviluppo. Questo modo di campionare l’immagine permette di conservare anche informazioni in frequenza contenute nell’immagine stessa. Un jet J è definito come uno del set Jj ottenuti a partire da un punto dell’immagine. Jj = aj exp (iφj ) con il modulo aj (~x) che cambia lentamente al variare della posizione e la fase φj (~x) che ruota con una velocità che dipende dalla frequenza spaziale o, fattore d’onda, ~kj dei kernel (vedi figura 2.3). Le wavelets di Gabor sono state scelte perché hanno la proprietà di essere robuste e non considerano i valori medi (nell’analizzare un’immagine ciò consiste nel non valutare i valori di luminosità ambientale). Una volta che 22 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO Figura 2.4: Grafo elastico adattato per differenti pose di un volto abbiamo i jet per tutti i punti fiduciali dell’immagine dobbiamo confrontarli con una funzione di similarità; ne esistono due, la prima non considera la fase per valutare la similarità: P 0 Sa (J, J ) = qP j j aj a0j P 2 aj j a0j 2 la seconda invece considera anche questa caratteristica: P 0 0 ~~ j aj aj cos(φj − φj − dkj ) 0 qP Sa (J, J ) = P 02 2 j aj j aj Tener conto anche della fase consente di discriminare tra pattern con la stesso modulo, semmai dovessero capitare; consente, inoltre, anche di localizzare con precisione i jet in una immagine a causa della rapida variazione che subisce la fase anche con piccoli spostamenti. Per computare la funzione di similarità con la fase, bisogna ~ massimizzando Sφ nella sua espansione di Taylor, come riportato da [9]. stimare d, Per rappresentare le singole facce si devono definire i punti fiduciali che identificano zone chiave all’interno dell’immagine del volto. Sono esempi di punti fiduciali: gli occhi, gli angoli della bocca, la punta del naso, e cosi via. Un grafo etichettato G che rappresenta un volto, avrà N nodi corrispondenti ai punti fiduciali alle posizioni ~xn , n = 1, 2, . . . , N e E rami, che li collegano. Un esempio è visibile in figura 2.4: si può notare come differenti posizioni del soggetto obbligano a diverse posizioni dei nodi. Tuttavia i nodi fanno riferimento sempre ai medesimi punti fiduciali. Per ottenere questo risultato si usa un modello a pila di grafi, chiamato col nome di face bunch graph o FBG (Figura 2.5). Ogni modello ha la stessa struttura a griglia e i nodi fanno riferimento a medesimi punti fiduciali. Un set di jets associato a un punto fiduciale si chiama bunch. Un bunch relativo a un punto fiduciale ”occhio” 23 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO Figura 2.5: Face Bunch Graph - FBG conterrà jets derivati da occhi chiusi, aperti, di uomo, di donna ecc. . . , per coprire tutte queste variazioni locali. Durante la valutazione di una faccia nuova, si confronterà il jet calcolato sulla nuova immagine con tutti quelli di quel bunch, per trovare quello che è più simile. I passi attraverso cui avviene tale valutazione sono i seguenti: • Passo 1 - Trovare una posizione approssimata: si condensa FGB in un grafo medio, si ricava l’ampiezza media dei jets di ogni bunch dell’FGB, infine si usa questo grafo medio per valutare la similarità con l’immagine in ingresso, riducendo via via la grandezza dell’intorno per i punti fiduciali (prima 4 pixel, poi 1). In questo passo si adopera la funzione di similarità che non fa uso della fase. Le posizioni migliori trovate a questo passo sono utili per avviare il passo successivo. • Passo 2 - Raffinare la posizione e la grandezza: si utilizza l’FGB senza fare le medie, variando la posizione dei pixel nell’intorno delle posizioni trovate al passo 1. Si seleziona il jet che risulta il migliore per ogni punto fiduciale e si scala o si ingrandisce fino al 18% della dimensione standard dell’FBG medio. • Passo 3 - Raffinare la dimensione e trovare le proporzioni: si rilassano le coordinate lungo le dimensioni x e y. • Passo 4 - Distorsione locale: si usa una sequenza pseudo random per variare la posizione di ogni immagine sui nodi, per vedere se aumenta la similarità 24 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO all’FBG. Il grafo ottenuto con questi passi è chiamato image graph ed è conservato come rappresentazione del volto contenuto nell’immagine. Dopo avere ottenuto tutti i model graph dalle nuove immagini e gli image graph dalle immagini da testare, il riconoscimento è possibile con uno sforzo computazionale relativamente piccolo. Se definiamo con GT l’image graph e con GM il model graph, e il nodo nn0 nel model graph in modo che corrisponda al nodo n0 nell’image graph, possiamo definire la similarità di due grafi con: 1 X SG (GT , GM ) = 0 Sa (JnT , JnMn0 ) N n0 dove la sommatoria è data dagli N 0 nodi nell’imagegraph con una corrispondenza nel model graph. Sa è la funzione discriminante senza la valutazione della fase (si è rivelata migliore negli esperimenti in [27]) 2.4 Linear Discriminant Analysis (LDA) Questo tipo di analisi utilizza la Linear Discriminant Analysis applicata a varie parti del viso, sia nel dominio dello spazio sia in quello wavelet. La LDA consente di usare le sole informazioni che sono obiettivamente discriminanti ai fini del riconoscimento facciale [8]. Questo risultato si ottiene con l’analisi di autovettori delle matrici degli scarti, ponendo come obiettivo dell’analisi quello di massimizzare le variazioni tra le classi diverse e minimizzare le variazioni all’interno di una singola classe. Per fare questo si definiscono le matrici degli scarti intra-classe e inter-classe: Sw(V ) = L X Pr (Ct )Σt t=1 (V ) Sb = L X Pr (Ct )(µ − µt )(µ − µt )T t=1 dove Sw è la matrice di scarto intra-classe e Σt è lo scarto medio dei vettori campione (V ) di diverse classi Ct , cosi definita: Σt = E[(V − µi ) × (V − µi )T |C = Ci ] Sb è la matrice degli scarti tra classi diverse e Pr (Ci ) è la probabilità della i-esima classe. Per valutare la bontà discriminatoria di una rappresentazione si usa la matrice di separazione S (V ) = Sw−1 Sb 25 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO Il metodo LDA usa un metodo simile a quello di PCA per analizzare le immagini, basandosi sempre sulle autofacce, la differenza è che l’analisi degli autovalori non è eseguita sulla matrice di covarianza, ma sulla matrice di separazione. Questa idea viene dal fatto che i volti umani hanno molto in comune e lo spettro delle loro immagini è abbastanza simile. Per questo analizzando la faccia nella sua interezza, ci si aspetta che piccole caratteristiche, che però sono discriminanti, abbiano poca energia. Queste potrebbero essere perse in uno schema basato sulla compressione delle feature come PCA. Come già detto, si calcolano gli autovalori della matrice di similarità: eig{S φ } = {(λi , ui ), i = 1, . . . , NS − 1, λi > λi+1 } Per ridurre il costo computazionale in caso di grandi data-set può essere usata la Sb ui = λi Sw ui , si possono quindi ricavare i λi dalla radice del polinomio caratteristico |Sb − λi Sw | = 0, gli ui possono essere ottenuti risolvendo (Sb − λi Sw )ui = 0 solo per i più grandi autovettori scelti. Una volta ottenuti gli autovalori e gli autovettori definiamo Λ(m) = {λi , i = 1, . . . , m < NS − 1} U (m) = {ui , i = 1, . . . , m < NS − 1} e quindi Λ(m) e U (m) rappresentano rispettivamente l’insieme degli m puù grandi autovettori e autovalori di S (φ) . Se si considera U (m) come una delle possibili trasformazioni lineari da Rn a Rm con m < n. In [8] si afferma che la riduzione lineare cosi ottenuta è quella che garantisce la più grande separazione nello spazio delle features, e in questo modo si è ridotto con una trasformazione lineare lo spazio della rappresentazione iniziale da Rn in un più piccolo spazio delle feature Rm , ottenuto proiettando i vettori di input φ lungo m autovettori corrispondenti ai più grandi autovalori della matrice S (φ) . 2.5 Hidden Markov Model (HMM) Questo modello, inizialmente usato per l’analisi ed il riconoscimento di segnali vocali e di testo, è stato applicato al dominio dei volti umani in [21]. I modelli HMM sono usati per caratterizzare le proprietà statistiche di un segnale; per fare questo il modello HMM è costituito da due processi indipendenti: una catena di Markov a stati finiti, un insieme di densità di probabilità associate ad ogni stato della catena. 26 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO Con l’uso delle catene di Markov per il processing delle immagini come fatto in [18], si è visto che le stesse possono essere utili per processare anche immagini di volti umani, il tutto abbastanza velocemente. Ogni catena di Markov è costituita da una serie di elementi: N numero degli stati del modello, S è l’insieme degli stati, S = {S1 , S2 , . . . , SN }, M è il numero di simboli osservati. Se V è l’insieme di tutti i possibili simboli (il codebook ) allora V = {v1 , v2 , . . . , vm }. Possiamo esprimere una catena di Markov attraverso una tripla: λ = (A, B, Π) dove A = {aij } è la matrice delle probabilità di transizione ed ogni suo elemento aij indica la probabilità, per un certo istante, di passare dallo stato i, nell’istante successivo, nello stato j. aij = P [qt = Sj |qt−1 = Si ]1 ≤ i, j ≤ N con il vincolo che 0 ≤ ai,j ≤ 1 e che PN j=1 aij = 1, 1 ≤ i ≤ N . B = {bj (k)} è la matrice delle probabilità dei simboli osservati, in cui bj (k) = P |[Ot = vk |qt = Sj ] con vincoli 1 ≤ j ≤ N , 1 ≤ k ≤ M , dove Ot è il simbolo osservato al tempo t. Π è la distribuzione iniziale degli stati, Π = {πi }. dove πi = P [q1 = Si ], 1 ≤ i ≤ N Per le immagini frontali possiamo individuare cinque regioni facciali che sono significative: i capelli, la fronte, gli occhi, il naso e la bocca. Esse appaiono in quest’ordine analizzando un’immagine dall’alto in basso, ma appaiono sempre in quest’ordine anche se l’immagine è ruotata. Ognuna di queste regioni è assegnata ad uno stato di una catena di Markov monodimensionale. La struttura di questa catena è visibile in figura 2.6 Estrazione feature In considerazione del fatto che ogni immagine ha una larghezza W , e un’altezza H, per l’estrazione delle feature si divide l’intera immagine in blocchi di altezza L e larghezza W . I blocchi saranno sovrapposti di una grandezza P (vedi immagine 2.7). Il numero di blocchi estratti da ogni singola immagine è pari a T = H −L +1 L−P 27 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO Figura 2.6: HMM per il riconoscimento facciale Figura 2.7: Estrazione feature per per il riconoscimento facciale con HMM e la scelta di parametri P e L va fatta con molta attenzione perché influiscono pesantemente sulla velocità di estrazione. Training del modello Ogni elemento nel database iniziale di immagini è rappresentato da un modello HMM associato(λ = (A, B, Π)) ed è inizializzato opportunamente. Si cercano i coefficienti della catena massimizzando P (O|λ) finchè un certo valore di soglia C risulta accettabile, |P (O|λ(k+1) ) − P (O|λ(k) )| < C Test Riconoscimento con HMM Per associare un’identità ad una nuova immagine, su cui non è stato addestrato il sistema in precedenza, si deve valutare l’equazione P (O(t) |λk ) = maxn P (O(t) |λn dove t è la nuova immagine, e k è la faccia identificata. 28 CAPITOLO 2. RICONOSCIMENTO DEL VOLTO 2.6 Riconoscimento Attraverso Reti Neurali Una rete neurale è formata da una serie di unità parallele di elaborazione, detti neuroni, questi nodi sono interconnessi con dei rami che mutuano il funzionamento del cervello degli esseri viventi, infatti i neuroni biologici sono interconnessi attraverso le sinapsi. Nel caso dei neuroni artificiali, ad ogni connessione è associato un coefficiente, un peso, per il quale viene moltiplicato il valore che attraversa quella connessione. Il riconoscimento facciale attraverso reti neurali è stata una delle prime dimostrazioni dell’impiego pratico di reti neurali, in [17] si dimostra come una semplice rete neurale poteva essere addestrata a riconoscere un volto contenuto in un’immagine normalizzata ed allineata. Il tipo di rete adoperata in quell’esempio ha analizzato una faccia a partire da una sua rappresentazione compressa, attraverso cioè l’uso degli autovettori della matrice di autocorrelazione dell’immagine. Tale modalità di rappresentare un’immagine in forma sintetizzata è stata adoperata in altre analisi, che non coinvolgevano per forza le reti neurali. Questi autovettori, infatti, sono conosciuti col nome di ”eigenface” o autofacce, nella versione italiana del termine, sono usati da algortmi come il PCA O LDA. Il sistema di Kohonen, applicato a questo dominio, non ha avuto un successo pratico immediato, a causa della necessità di quella implementazione di dover allineare l’immagine per normalizzarla. Nel capitolo successivo si analizzeranno varie tipologie di reti neurali e, per questo, se ne rinvia a quelle pagine, una descrizione più approfondita. 29 Capitolo 3 Reti Neurali 3.1 Generalità I sistemi di elaborazione dell’informazione hanno portato l’automazione nei processi che sono stati per molti anni di esclusiva pertinenza degli umani, ad esempio la conservazione di documenti o il calcolo matematico. Con l’intelligenza artificiale si tende a spingere oltre i limiti delle sole operazioni ripetitive, rendendo possibile l’automazione del ragionamento simbolico e la creazione di sistemi esperti, che sono in grado, cioè, di sostituirsi a provati esperti del settore nel caso in cui si debba risolvere un problema. Nonostante queste interessanti applicazioni, ancora molto deve essere fatto affinché le macchine esprimano un comportamente paragonabile a quello di un umano. La mente umana è infatti il frutto di un processo evolutivo durato migliaia di secoli e, replicare l’esatto funzionamento del cervello, usando modelli matematici di calcolo simbolico, è abbastanza difficile. Ci sono una serie di casi in cui l’uso di algoritmi classici, basati sull’elaborazione simbolica, risultano poco adatti. Pensiamo, ad esempio, al riconoscimento del testo o all’estrazione automatica di semantica da un documento. Per questi ed altri problemi non è facile associare, attraverso un algoritmo, un significato e, quindi, una caratterizzazione simbolica ad un particolare ingresso. Per questo, sono stati introdotti modelli di calcolo che non sono necessariamente basati sul concetto di algoritmo, come sequenza di elaborazione simbolica degli ingressi. Per alcuni compiti specifici questo approccio classico risulta complicato da realizzare, se non impossibile. 30 CAPITOLO 3. RETI NEURALI 3.2 Affinità biologiche Per l’architettura delle reti neurali artificiali si è preso spunto dalla natura, dove l’unità base che costituisce il sistema nervoso centrale di un essere vivente è il neurone (Figura 3.1). Sebbene il funzionamento del cervello nel suo insieme ancora sia Figura 3.1: Un Neurone e le sue parti costitutive oggetto di studi, anatomicamente si conosce già la struttura dell’encefalo. Il componente fondamentale è appunto il neurone che, attraverso dei processi elettrochimici è in grado di generare segnali elettrici. Il neurone è composto da un corpo principale, detto soma, e due rami, i dentriti e l’assone. In un cervello umano ci sono più di 100 miliardi di neuroni, ciascuno connesso a circa altri 10.000. Nelle interconnessioni che ogni cellula neuronale ha avviene la sinapsi, che è un processo elettrochimico che rinforza o inibisce l’interazione cellulare tra i due neuroni che la condividono. Questi segnali elettrici sono perfettamente rilevabili e misurabili attraverso l’uso di opportune strumentazioni e, secondo molti studiosi di scienze cognitive, sarebbero proprio questi segnali il segreto della capacità cognitiva. Inoltre, vari esperimenti hanno evidenziato come le strutture cerebrali e le sinapsi siano influenzate dalle esperienze del soggetto e dall’ambiente in cui vive: è quindi la particolare architettura dei legami e delle interconnessioni tra le cellule cerebrali che definisce le capacità funzionali di porzioni del cervello. 3.3 Neurone artificiale In Figura 3.2 è rappresentato un nodo della rete neurale aritificiale. Questo elemento base esegue un semplice compito: riceve i segnali in ingresso, ha dei pesi associati 31 CAPITOLO 3. RETI NEURALI 32 Figura 3.2: Un Neurone, o nodo, della rete neurale ad ogni ingresso; la sommatoria dei valori di ingresso pesati rappresenterà i valore di potenziale di attivazione e poi, una funzione di soglia interna trasferisce valori alle uscite. L’operazione si svolge in due fasi: nella prima, la componente lineare (la funzione di attivazione) calcola la somma pesata dei valori in ingresso al neurone; nella seconda la funzione di attivazione, che non è lineare, trasforma la somma ottenuta al passo precedente nel valore finale, che è trasmesso attraverso le uscite. Una rete neurale è, in genere, formata da neuroni tutti dello stesso tipo, che hanno le stesse funzioni di attivazione. L’ingresso totale I è quindi dato dalla sommatoria degli ingressi xi pesati opportunamente dai loro rispettivi wi : I= n X w i xi i=1 Successivamente ogni unità della rete calcola il suo valore di attivazione attraverso la sua funzione dedicata. Esistono molte funzioni di attivazione, in figura 3.3 ne Figura 3.3: Esempi di funzioni di attivazione sono riportate tre fra le più usate. ( gradino(x) = ( segno(x) = 1 (x ≥ t) 0 (x < t) +1 (x ≥ 0) −1 (x < 0) CAPITOLO 3. RETI NEURALI sigmoide(x) = 33 1 1 + e−I Figura 3.4: Una rete neurale In Figura 3.4 si può vedere uno schema di interconnessione di nodi, ciascun collegamento ha associato un peso. I pesi sono il fondamentale mezzo per la memorizzazione delle reti neurali. L’addestramento della rete consiste nel trovare il giusto insieme di pesi per tutte le connessioni in modo tale che essa risponda come noi desideriamo, in base al tipo di ingresso che le proponiamo. I nodi possono essere di ingresso e di uscita e, in questo caso, sono collegati col mondo esterno mentre i nodi interni non sono accessibili. Ogni nodo della rete è collegato ad un insieme di altri nodi. Una variabile di progetto consiste nello stabilire il numero di unità che formano la rete neurale e ciò dipende sia dalla grandezza dei pattern in ingresso sia da quello in uscita. 3.4 Strutture della rete Sono possibili varie configurazioni di interconnessioni fra i nodi di una rete, ognuna di queste consente di avere un comportamento diverso per la rete. 3.4.1 reti feedforward In questi tipi di reti i collegamenti tra le unità sono unidirezionali e non sono presenti cicli, la rete ha quindi la forma di un grafo diretto aciclico. Visto che, in genere, CAPITOLO 3. RETI NEURALI le reti sono organizzate in strati, in questo tipo di reti le connessioni saranno solo con neuroni dello strato successivo e non sono presenti connessioni fra neuroni del medesimo strato, con strati precedenti; non è nemmeno possibile, inoltre, ”saltare” il collegamento con uno strato di neuroni successivo. Una rete di questo tipo si limita a calcolare una funzione di uscita in base al tipo di ingresso ed al tipo di pesi che collegano i nodi. Se la rete ha più di due strati, vuol dire che esistono strati interni non direttamente osservabili, monitorando ingressi e uscite del sistema. Con reti con un solo strato nascosto è possibile approssimare ogni funzione continua, se gli strati nascosti sono almeno due, è possibile approssimare una funzione qualsiasi. Esistono altresı̀ reti più semplici, i percettroni, che non hanno unità nascoste. Ciò se da un lato semplifica l’apprendimento, dall’altro non ci consente di avere una rete avanzata che possa rappresentare problemi complessi: in figura 3.4 c’è un esempio di rete di tipo feedforward. Con una funzione di attivazione fissa ed una struttura di tipo feedforward i tipi di funzioni rappresentabili dalla rete sono limitate ad una specifica struttura. Dal momento che le funzioni di attivazioni sono non-lineari si può associare il comportamento globale della rete ad una complessa funzione non-lineare, dove i pesi dei collegamenti rappresentano una sorta di parametri di questa funzione non lineare. Il processo di apprendimento consiste, quindi, in una regolazione dei pesi dei collegamenti per far corrispondere le uscite che si ottengono a quelle che si vorrebbero ottenere (a parità di input). 3.4.2 reti ricorrenti In questa topologia esistono dei collegamenti all’indietro che consentono di avere un meccanismo di retroazione. Rispetto alle reti feedforward le reti retroazionate sono dei sistemi dinamici, in base ad un dato input le uscite dei nodi dipendono anche dai cammini di reazione e, quindi, non si può dire a priori quale sarà la risposta della rete, essa non ha il comportamento di funzione che, invece, assume la rete feedforward. Esempi di reti retrozionate sono le reti di Hopfield e le macchine di Boltzmann. 3.5 Tipi di addestramento Addestrare una rete neurale, significa regolare i pesi sui rami in modo che essa possa rispondere nella maniera desiderata per ogni input. In questa fase vengono 34 CAPITOLO 3. RETI NEURALI presentati alla rete dei pattern noti, che andranno ad influire sui pesi attraverso delle regole di apprendimento. Tali regole modificheranno, quindi, in maniera graduale, i pesi iniziali associati di default ai rami della rete. I tipi principali di apprendimento sono: • apprendimento supervisionato:i valori associati alle connessioni sono modificati considerando lo scostamento (errore) tra la risposta della rete e la risposta che si desidera. In questo modo le risposte si avvicinano sempre di più a quelle desiderate. Per questo tipo di addestramento sono necessarie un gruppo di coppie di valori, quelli in ingresso e le rispettive uscite desiderate. • apprendimento non supervisionato: con questo tipo di apprendimento non esiste una risposta desiderata e, quindi, la rete si auto organizza i pesi in modo indipendente, col solo scopo di differenziare i pattern di ingresso. Per questo tipo di apprendimento non sono necessarie coppie di valori, ma solo pattern di ingresso. Tale apprendimento è utile nel caso in cui non si conosca bene la natura degli ingressi oppure si voglia cotruire un classificatore. • apprendimento basato sul rinforzo: non sono presenti coppie input output, come nel caso dell’apprendimento supervisionato, ma il sistema riceve comunque un feedback dall’ambiente esterno. Ogni scelta influisce sull’ambiente e l’ambiente produce una reazione: è questa reazione che va a guidare l’addestramento. Si cerca di massimizzare gli incentivi ricevuti dall’ambiente nel corso dell’apprendimento stesso. • apprendimento hebbiano: si valuta la risposta di due neuroni che sono in una relazione di vicinato fra loro, se si attivano contemporaneamente va aumentato il peso del ramo che li collega, altrimenti si indebolisce il collegamento. Tutti questi tipi di apprendimento possono a loro volta avere due modalità di funzionamento, la modalità online e quella offline. Nella prima i pattern di ingresso sono presentati alla rete uno alla volta, nella seconda modalità i pattern in ingresso sono invece presentati in una sequenza. I pesi wt che si ottengono ad un tempo t saranno ottenuti da una combinazione lineare dei pesi wt−1 al tempo t − 1 e dalla modifica calcolata al tempo t, che indichiamo con ∆wt . Si può quindi scrivere che wt = wt−1 + ∆wt 35 CAPITOLO 3. RETI NEURALI 3.6 Tipi di rete 3.6.1 Percettrone Questo tipo di rete è il più semplice ed è stato studiato sin dagli anni ’50. In sostanza il percettrone è una rete stratificata, alimentata in avanti, senza feedback. Col passare del tempo il termine percettrone ha assunto il sinonimo di rete alimentata in avanti senza unità nascoste, una rete che ha quindi un singolo strato. In questo tipo di rete ogni uscita è indipendente dalle altre e ciascun peso influenza solo una determinata uscita, non esistono quindi degli archi che rendano non indipendenti il calcolo di due uscite diverse. In Figura 3.5 è possibile vedere l’assenza di archi Figura 3.5: Rete di Percettroni e un singolo Percettrone e, quindi, di pesi che colleghino le uscite. Dato che la funzione di trasferimento dei nodi in questa rete sono delle funzioni a gradino, ogni singolo percettrone produce in uscita un valore che può essere solo 0 o 1. Con un singolo percettrone si possono modellare le funzioni booleane di AND OR e NOT, ma non è possibile modellare lo XOR; ciò perché lo XOR non rientra in quel tipo di funzioni che sono linearmente separabili e che sono, inoltre, le uniche funzioni rappresentabili da un solo percettrone. Per poter elaborare funzioni più complesse, un singolo percettrone non è sufficiente, ma bisogna affidarsi ad una rete multistrato ottenuta mettendo in cascata più percettroni. 36 CAPITOLO 3. RETI NEURALI 37 Apprendimento di un Percettrone L’apprendimento di un percettrone è di tipo supervisionato, quindi si ha bisogno di una sere di coppie di input con i relativi output desiderati. La rete all’inizio ha dei pesi pre-assegnati con un qualche criterio, essi vengono poi aggiornati per rendere le risposte ottenute sempre più vicine a quelle desiderate. In questo modo la fase di apprendimento deve essere ripetuta più volte per convergere alla soluzione corretta. Il processo di apprendimento è quindi diviso in epoche. In ogni epoca si aggiornano tutti i pesi tenendo conto degli input forniti, delle loro risposte e delle loro risposte desiderate. Si calcola, quindi, per ogni pattern in ingresso, l’errore tra l’uscita che si ottiene ed il valore auspicato E =T −O (errore = valore corretto desiderato - output reale del percettrone). Se l’errore E è positivo, l’algoritmo di apprendimento provvede a far crescere O, se E è negativo deve farlo decrescere. In questo modo l’output del percettrone converge verso il risultato corretto in un numero finito di epoche. Backpropagation Il termine Backpropagation è una abbreviazione per ”backwards propagation of errors”, propagazione all’indietro degli errori ed è l’algoritmo di apprendimento supervisionato più diffuso per i percettroni multistrato, è stato proposto inizialmente in [3] e successivamente sviluppato in [25]. In questo metodo di apprendimento supervisionato si implementa la Delta rule. C’è bisogno di un componente (un Teacher) che conosca o possa calcolare la risposta corretta per ogni input. L’apprendimento è diviso in due fasi: • Propagazione: si propone il pattern d’ingresso attraverso la rete neurale per generare gli output rispetto al pattern in ingresso. Successivamente si propaga all’indietro la risposta, per generare i delta di tutte le uscite dei neuroni. • Aggiornamento dei pesi: per ogni arco si moltiplica il suo delta e la sua attivazione per ottenere il gradiente del peso, si porta, poi, il peso verso la direzione del gradiente, aggiungendo una frazione del peso. L’errore che si propaga è l’errore quadratico medio N E= L 1 X X (k) (k) (y − ti )2 2 k=1 i=1 i CAPITOLO 3. RETI NEURALI 38 (k) con N numero di coppie ingresso-uscita, yi è l’uscita corrispondente al i-esimo (k) (k) neurone in corrispondenza dell’ingresso x . L’uscita desiderata è ti , L è il numero di neuroni dello strato di uscita. L’errore cosi calcolato rappresenta la distanza tra le uscite desiderate e quelle realmente ottenute, minimizzando questa funzione (con l’uso del metodo del gradiente) ci avvicineremo alle risposte desiderate. Ogni peso wij si modificherà di una quantità pari al gradiente dell’errore, ∆wij = −η δE δwij L’algoritmo, nel caso di una rete a tre strati con uno nascosto, funziona in questo modo: 1. Inizializza i pesi della rete (spesso in maniera random) 2. Per ogni campione ingresso xk nel training set calcola l’output dello strato PT P k k k nascosto hkz = f ( M z=0 wzj hz ). i=0 viz xi ), e dei nodi di uscita yj = f ( 3. Si calcola l’errore quadratico medio e si computa il ∆wij per tutti i pesi dei rami che vanno dai nodi dello strato nascosto a quello di uscita; si computa il ∆viz per tutti i pesi dei rami che vanno dai nodi dello strato di ingresso allo strato nascosto. 4. Si aggiornano i pesi dei rami. 5. si riparte dal secondo passo finché un criterio di arresto non è soddisfatto 3.6.2 SOM di Kohonen Le self organizing map (SOM) sono un tipo di rete neurale sviluppata da T.Kohonen [15]. Le SOM sono utili per clusterizzare dati in ingresso. Dal momento che l’apprendimento è non supervisionato, non bisogna conoscere a priori le classi di uscita, a ciò provvederà la rete, dopo essere stata addestrata, ci dirà a quale cluster appartiene l’input. Topologicamente questa rete si caratterizza per uno schema a due strati, uno di input ed uno di output, quest’ultimo chiamato comunemente strato di Kohonen. I neuroni dei due strati sono completamente connessi fra loro, mentre i neuroni dello strato di output sono connessi ciascuno con un ”vicinato” di neuroni, secondo un sistema di inibizione laterale definito a ”cappello messicano”(Figura 3.7). Le interazioni laterali intorno al neurone vincitore sono funzione della distanza: si eccitano i neuroni più vicini, si inibiscono quelli più lontani. CAPITOLO 3. RETI NEURALI Figura 3.6: SOM di Kohonen Figura 3.7: Cappello Messicano. Anche se esistono versioni più complesse, nella versione più semplice c’è un solo vincitore e l’apprendimento è di tipo competitivo. Il vincitore è il nodo che risulta avere il suo vettore dei pesi più simile al vettore in ingresso, questa modalità di scegliere il nodo vincitore è nota col nome di winner takes all. Nella fase di addestramento, una volta scelto il vincitore, si regolano i pesi per avvicinarli ancora di più al vettore in ingresso. Le SOM a differenza delle altre reti, adottano una funzione di contorno per preservare le proprietà topologiche dello spazio dei dati input. La SOM definisce un mapping dallo spazio dei dati di input x1 . . . xn ad un array monodimensionale o bidimensionale di nodi (Figura 3.6). Il mapping è eseguito in modo che la relazione topologica nello spazio n-dimensionale di ingresso si mantiene costante quando associata alla SOM. Inoltre, la densità locale dei dati in ingresso si riflette anche sulla mappa: le zone dello spazio dei dati in input che sono rappresentati da più informazioni vengono mappati su una maggiore superficie della SOM. Ogni nodo sulla mappa è definito da un vettore di pesi wij che è modificato durante la fase di training, che è molto semplice e si riduce ai seguenti passi: 39 CAPITOLO 3. RETI NEURALI 40 1. si seleziona un oggetto dal training-set 2. si trova il nodo che è più vicino ai dati, ad esempio usando la distanza tra il wij e il vettore in ingresso 3. si regolano i vettori dei pesi del nodo vincitore e dei nodi che rientrano nel suo vicinato, in modo che il suo wij si muova verso il dato in ingresso 4. si ripete dal passo 1 per un numero prefissato di passi. In ogni passo però si riduce sia il tasso di apprendimento sia la dimensione del vicinato (Bolla). 3.6.3 GNG - Growing Neural Gas Le GNG [10] sono una evoluzione delle Neural Gas (NG) ma, a differenza di queste le GNG sono un tipo di rete neurale in cui il numero di nodi può cambiare durante il processo di apprendimento (non supervisionato e competitivo), in genere il numero delle unità aumenta con l’aumentare delle epoche di apprendimento. Il meccanismo di crescita è ripreso da growing cell structure[11] e la generazione della topologia da [20]. A partire da poche unità altre se ne aggiungono durante il processo di adattamento. Ogni nuova unità è inserita vicino ad un nodo che ha accumulato la maggior parte dell’errore. L’algoritmo di apprendimento per una GNG è il seguente: 1. Si inizializza un insieme A che contiene due sole unità, c1 e c2 A = {c1 , c2 } con i vettori di riferimento istanziati ad un valore random. Si impostano anche le connessioni ed il connection set C, C ⊂ A × A, ad un valore vuoto C=∅ 2. Si genera un segnale random di ingresso ξ 3. Si determina il vincitore s1 ed il secondo nodo più vicino s2 , (s1 , s2 ∈ A) con una misura di distanza 4. Se non esiste già una connessione tra s1 e s2 la si crea, C = (s1 , s2 ) Si setta l’età della connessione tra s1 e s2 a zero age(s1 ,s2 ) = 0 CAPITOLO 3. RETI NEURALI 41 5. Si calcola un errore locale come il quadrato della distanza tra segnale di input ed il vincitore ∆Es1 = ||2 ξ − ws1 || 6. Si adattano i vettori di riferimento del nodo vincitore e del suo primo vicino di una quantità proporzionale alla distanza totale dal vettore di input ∆ws1 = εb (ξ − ws1 ) ∆wsi = εn (ξ − ws1 )(∀i ∈ Ns1 ) Ns1 rappresenta l’insieme del vicinato del nodo s1 7. Si incrementa l’età di tutti i rami che partono da s1 : age(s1 ,i) = age(s1 ,i) + 1 (∀i ∈ Ns1 ) 8. si rimuovono i rami che superano una certa età massima, se dopo aver rimosso l’arco, le unità che erano a lui collegate rimangono senza archi residui, si rimuovono anche i nodi. 9. se il numero di segnali di input è un multiplo di un parametro intero λ, si inserisce un nuovo nodo cercando quello col massimo errore accumulato q = arg maxc∈A Ec per quel nodo si cerca il vicino con l’errore più grande f = arg maxc∈Nq Ec viene aggiunta un’unità r alla rete neurale e si interpola il suo vettore a partire da quelli di q e f . (wq + wf ) 2 si inserisce un ramo di connessione tra la nuova unità r e q e f rimuovendo il A = A ∪ {r} wr = ramo originale che connetteva q e f . C = C ∪ {(r, q), (r, f )} C = C\{(q, f )} diminuiamo il valore dell’errore di q e f di una frazione α ∆Eq = −αEq , ∆Ef = −αEf l’errore locale di r è l’interpolazione degli errori locali di q e f Er = Eq + Er 2 CAPITOLO 3. RETI NEURALI 42 10. Si diminuisce la variabile dell’errore di tutte le unità di una quatità β ∆Ec = −βEc , (∀c ∈ A) 11. Si verifica il criterio di arresto e, se non è completamente soddisfatto, si ricomincia con il passo 2. Un criterio di arresto può essere, ad esempio, la grandezza della rete o una misura di prestazione. 3.6.4 LVQ Il Learning Vector Quantization (LVQ) è un algoritmo ad apprendimento competitivo e supervisionato, potrebbe essere definito come la versione ad apprendimento supervisionato delle SOM di Kohonen, ma è in effetti la versione supervisionata dello Vector Quantization, un algoritmo non supervisionato che può essere usato per la compressione lossy di un segnale [12]. Obiettivo dell’algoritmo LVQ è quello di approssimare la distribuzione delle classi, usando un numero ridotto di vettori codebook, con i quali l’algoritmo cerca di minimizzare l’errore di classificazione [16]. I vettori codebook diventano i rappresentanti di una particolare classe ma ne rappresentano anche i limiti. Per approssimare i vettori in ingresso con i codebook, associati alle classi di uscita, viene usata la regola K-nearest-neighbor (KNN). L’algoritmo non costruisce una mappa topologica come nel caso delle SOM, in quanto non esiste un esplicito ordinamento del vicinato come in quel caso. Questo algoritmo di classificazione è stato proposto da Kohonen come miglioramento del precedente Labeled Vector Quantization. L’algoritmo appartiene alla classe degli algoritmi di apprendimento con reti neurali, anche se funziona in maniera abbastanza differente se comparato con le reti tradizionali feed-forward, dove si usa la back propagation. La fase di apprendimento delle LVQ è, come detto in precedenza, di tipo competitivo, vige cioè il concetto del winner takes all, WTA: solo il codebook vincitore viene regolato per avvicinarsi al vettore in ingresso. In questa fase vengono presentati alla rete sia dei vettori in ingresso sia le rispettive classi di appartenenza. Sarà nella successiva fase di testing che verrà sfruttata la capacità delle LVQ di rappresentare input complessi sotto forma di semplici codebook. Nella fase di testing, infatti, saranno presentati alla rete dei nuovi ingressi, non usati durante il training e la rete sarà in grado di classificare i campioni in accordo con quanto appreso nella fase di learning. Il principio base delle LVQ è la quantizzazione vettoriale, usata per la codifica di segnali. Con la quantizzazione vettoriale si trova un’approssimazione ad una funzione CAPITOLO 3. RETI NEURALI 43 densità di probabilità p(x), di una variabile continua stocastica x ∈ Rn , usando un numero finito di vettori, definiti codebook, mi ∈ Rm i = 1, . . . , k. Assegnare una classe ad un nuovo vettore in ingresso significa confrontarlo con tutti i codebook, la classe gli è assegnata in base alla distanza che lo separa dal codebook di quella classe, il codebook a lui più vicino sarà quello che gli assegna la classe. Nella fase di training vengono presentati tutti i segnali di input del training set X = {x1 , x2 , . . . , xn } di variabili continue in Rn , ad essi sono associate un numero finito di codebook, che avranno le stesse dimensioni dei vettori di ingresso. Si itera poi il processo di training, presentando alla rete nuovi vettori in ingresso e confrontandoli con i codebook definiti nei passi precedenti, avvicinandoli ai vettori di input se possibile. L’architettura di una LVQ, visibile in figura 3.8, è basata su tre strati, uno di ingresso, uno di uscita ed uno strato intermedio fra i due precedenti, chiamato strato di Kohonen . Il numero di nodi di ingresso dipende dal numero di componenti di Figura 3.8: Architettura a tre strati di una LVQ. ognuno dei pattern di ingresso che appartengono all’insieme X = {x1 , x2 , . . . , xk }. Lo strato di ingresso semplicemente trasforma il pattern in ingresso in un vettore di valori. Lo strato intermedio di Kohonen non ha un numero fisso di nodi, ma è un parametro che dipende dal progettista. Infatti, ogni nodo dello strato intermedio rappresenta per la LVQ un codebook, ed i valori che assume rappresentano le connessione che quel dato nodo intrattiene con i nodi di ingresso. Indichiamo con mi il generico nodo, con i = 1, 2, . . . , n. Per calcolare quale degli M nodi si attiva, per un dato input, CAPITOLO 3. RETI NEURALI 44 si calcola ad ogni passo la distanza vettoriale euclidea tra il vettore dei pattern in ingresso ed il vettore dei pesi del i-esimo nodo, ciò è quello che succede nella versione più comune della LVQ. Lo strato di uscita O è formato da un numero predefinito di nodi C, pari al numero di classi attese. Il generico nodo di uscita si indica con Oz con z = 1, 2, . . . , C. Nella formulazione base della LVQ si stabilisce il nodo vincitore, tra quelli di uscita, come il nodo che è connesso col nodo dello strato di Kohonen che ha sperimentato l’attivazione più bassa, cioè è quello che ha il suo codebook più simile al vettore di pattern in ingresso. La LVQ è un tipo di rete alimentata in avanti, non esistono connessioni ricorrenti e lo strato intermedio è totalmente connesso con lo strato di ingresso, è come dire che esistono n × k pesi sui rispettivi rami di connessione. Alcuni vantaggi di LVQ rispetto ad altri tipi di rete neurale risiedono nella velocità con cui la rete esegue la fase di training, nella abilità di comprimere o riassumere grandi quantità di dati contenuti nel training set in un più piccolo insieme di vettore codebook, che sono adatti per la classificazione o per la data visualization. LVQ può approssimare qualsiasi problema di classificazione a patto che i vettori delle feature possano essere confrontati con misure di distanze. Addestramento LVQ1 La prima cosa di cui bisogna occuparsi in questo tipo di LVQ è stabilire il numero di nodi di ingresso(valutando gli input) ed il numero di nodi dello strato intermedio(stabilendo quanti codebook vogliamo per le classi). Fatto questo, abbiamo da definire gli N × K valori dei pesi sui rami di connessione. Questi pesi si possono inizializzare in maniera random, ma spesso si preferisce inizializzarli con valori che possano portare più velocemente ad una convergenza dell’algoritmo di addestramento. Una volta che abbiamo l’insieme di codebook che contiene vari vettori mi con i = 1, 2, . . . , n, per ogni vettore di dati in ingresso xj con j = 1, 2, . . . , k andiamo a cercare il nodo vincitore i, che è quello che presenta la più piccola distanza euclidea tra il singolo vettore in ingresso xj ed il suo codebook mi : c = argmini {||xj − mi ||} i = [1, . . . , N ], xj f isso Abbiamo cosi trovato l’indice i del più vicino mi a xj . E’ importante notare che l’assegnazione della classe c dipende sia dall’ingresso in quell’istante xj sia da tutti CAPITOLO 3. RETI NEURALI 45 i codebook mi . Siccome i vettori in ingresso hanno una distribuzione stocastica a valori continui, non si considera il caso in cui abbiamo minimi multipli in quanto è nulla la probabilità di avere ||x − mi || = ||x − mj || per i 6= j. Si aggiornano tutti i codebook per la successiva epoca di apprendimento in base a una delle seguenti regole: mc (t + 1) = mc (t) + α(t)[x(t) − mc (t)] se x e mc appartengono alla stessa classe; mc (t + 1) = mc (t) − α(t)[x(t) − mc (t)] se x e mc se x e mc appartengono a classi differenti; mc (t + 1) = mc (t) per i 6= c. Il parametro α(t) è il learning rate (tasso di apprendimento), varia tra 0 e 1, ed è una funzione che decresce monotonicamente a zero col passare del tempo. Sono esempi di funzioni di apprendimento: α(t) = ηt−1/β α(t) = η/(1 + βt) α(t) = ηe−βt α(t) = αi (αf /αi )f /tmax Nelle prime tre formule η e β sono opportuni parametri di progettazione, nella quarta formula αi denota il valore iniziale al tempo t = 0 del parametro e αf il suo valore finale, quando t = tmax , valori tipici di η sono compresi tra 0.1 e 0.25, valori tipici per β sono dell’ordine di 0.001 (in generale occorre che la diminuzione del parametro di apprendimento sia molto lenta). L’addestramento termina quando una qualsiasi condizione di arresto risulta verificata. Condizioni tipiche di arresto sono quelle che verificano il tasso di errore, il numero delle epoche o il tasso di apprendimento sotto una certa soglia. Dopo aver addestrato la rete, essa è in grado di classificare nuovi pattern in ingresso, associandoli ad una delle classi per cui è stato addestrata, cercando sempre di minimizzare la distanza tra pattern di ingresso e codebook dello strato intermedio di Kohonen. L’addestramento del solo vincitore non consente una rapida convergenza dell’algortitmo e, per questo, sono state introdotte diverse versioni dell’algortimo di apprendimento originale dell’LVQ per modificare i vettori codebook non solo quando appartengono alla classe vincitrice. CAPITOLO 3. RETI NEURALI 46 LVQ2 / LVQ2.1 In questo tipo di LVQ l’algoritmo di classificazione del vincitore è lo stesso di LVQ1 (Winner Takes All), ma durante la fase di training della rete sono due i codebook che vengono aggiornati contemporaneamente: mi e mj , che sono i due più vicini al pattern in ingresso x. Uno dei due deve appartenere alla classe giusta e l’altro alla classe sbagliata. Sia in LVQ2 che in LVQ2.1 l’input x deve ricadere in una distanza, una finestra, che è definita a partire dai semipiani che contengono mi e mj . Se indichiamo con di e dj le distanze euclidee tra x e i vettori codebook mi , mj , si dovrà verificare che: min di dj , dj di >s , s= 1−w 1+w E’ consigliata una finestra di larghezza w tra 0.2 e 0.3. La differenza tra LVQ2 e LVQ2.1 consiste nel fatto che nella LVQ2 si permette solo a mi di essere il nodo vincitore, mentre in LVQ2.1, l’importante è che sia uno dei due, non importa quale. LVQ2.1 Nel caso di LVQ2.1 i due codebook selezionati sono cosi modificati: mi (t + 1) = mi (t) − α(t)[x(t) − mi (t)] mj (t + 1) = mi (t) + α(t)[x(t) − mi (t)] dove mj appartiene alla stessa classe di x e mi appartiene a una diversa classe, in questo caso bisogna che sia verificata anche la condizione della finestra w. LVQ3 In LVQ3 vengono considerati i due codebook più vicini al pattern in ingresso ed i pesi vengono cosi modificati: mi (t + 1) = mi (t) − α(t)[x(t) − mi (t)] mj (t + 1) = mi (t) + α(t)[x(t) − mi (t)] Dove mj e x appartengono alla medesima classe e mi e x a classi diverse. Anche in questo caso si deve verificare che x ricada nell’intervallo. mk (t + 1) = mk (t) + α(t)[x(t) − mk (t)] per k ∈ {i, j} se xi , mi e mj appartengono alla stessa classe. varia tra 0.1 e 0.5, con una finestra w tra 0.2 e 0.3. Il valore ottimale di dipende da w, una finestra stretta implica un più piccolo. CAPITOLO 3. RETI NEURALI 3.7 Reti Neurali Modulari L’ispirazione per i modelli modulari di reti neurali è dovuta a ragioni che sono principalmente biologiche e fisiologiche. Si è scoperto, ormai da molti anni, che la chiave del funzionamento efficiente di un sistema nervoso risiede anche nella sua modularità. All’inizio del capitolo abbiamo scritto che il cervello lavora come una black-box: elabora gli stimoli ambientali e fornisce le risposte adatte per raggiungere un obiettivo o una risposta; inoltre la conoscenza dell’ambiente è integrata nel sistema nervoso grazie ai collegamenti neurali che si formano nel processo di sviluppo. Se da un lato possiamo considerare, quindi, un cervello come un’entità elaborativa centralizzata, sappiamo che in realtà non è proprio cosı̀: molti esperimenti in neuropsicologia indicano che un cervello con lesioni circoscritte può portare ad avere specifici problemi, come una disfunzione del linguaggio ma lasciare intatte le altre funzioni cognitive. Ciò ci suggerisce che il cervello è organizzato in moduli funzionali, in cui ogni regione svolge specifici compiti. In generale si può definire come ”modulare” un sistema che può essere separato in due o più parti, nelle quali possono essere identificati gli input e gli output che sono relativi solo a quel sottosistema. La risposta complessiva del sistema modulare dipende da come le risposte dei singoli sottosistemi sono combinate. Un sistema modulare offre rispetto ad uno centralizzato, vari vantaggi: una maggiore semplicità progettuale, una più elevata efficienza computazionale, una certa tolleranza agli errori ed una maggiore possibilità di espansione. Un altro grande vantaggio dei sistemi modulari è che permettono di risolvere problemi complessi, dividendoli in diversi sotto-problemi di più facile soluzione. I sotto-problemi sono elaborati da moduli diversi, specializzati ognuno su quello specifico ambito e, quindi, ogni modello computazionale locale risulta di molto semplificato rispetto al modello globale e centralizzato. Grazie a queste sue caratteristiche il paradigma della modularità di reti neurali è adatto al problema del riconoscimento biometrico [28]. I singoli moduli presentano sempre le seguenti caratteristiche: • i moduli hanno un loro dominio specifico, che ne detta l’architettura per rispondere ad un dato compito, che è solo una parte di quello generale; • ogni modulo è indipendente dagli altri per il suo funzionamento e non è influenzato dagli altri moduli; 47 CAPITOLO 3. RETI NEURALI • l’architettura dei singoli moduli è in genere più semplice di quella del sistema globale ed anche grazie a questa caratteristica, la risposta di un singolo modulo è più veloce rispetto a quella di un singolo sistema monolitico; • le risposte dei singoli moduli sono semplici ma devono essere combinate da un qualche meccanismo di coordinamento, per formulare una risposta del sistema nel suo insieme. Ci sono una serie di motivazioni che rendono lo schema modulare di reti neurali più apprezzato rispetto a un tradizionale sistema monolitico con una rete neurale globale: 1. Riduzione della complessità del modello: la complessità di una rete neurale globale aumenta molto velocemente con l’aumentare della complessità del compito per cui è addestrata. 2. Robustezza: il funzionamento indipendente dei moduli rende un danno ad uno di loro meno problematico di quanto possa essere un problema ad un sistema monolitico. Inoltre è più facile identificare il problema. 3. Scalabilità: la scalabilità è uno dei vantaggi maggiori di un sistema modulare di reti neurali. In un sistema monolitico e globale aggiungere conoscenza impone il retraining di tutta la rete neurale, con un sistema modulare si può aggiornare solo il modulo che ha bisogno di essere aggiornato, con evidenti risparmi di tempo e di potenza di calcolo. 4. Addestramento: i moduli possono usare un qualsiasi paradigma di addestramento durante il loro training sullo specifico compito che gli è richiesto. Possono anche essere addestrati tutti i moduli indipendentemente uno dall’altro, per poi integrare i risultati solo durante la fase di testing, oppure può essere supervisionato il loro addestramento da un modulo integratore a monte. 5. Efficienza computazionale: se si divide il compito principale in molti sottoproblemi, che possono essere anche elaborati in parallelo, allora lo sforzo computazionale si riduce, cosi come si riducono i tempi di analisi e di addesstramento. 6. Capacità di apprendimento: grazie alla divisione del problema è possibile operare su problemi che altrimenti sarebbero di difficile gestione per una classica rete neurale globale e monolitica. 48 CAPITOLO 3. RETI NEURALI 7. Economia dell’apprendimento: se le condizioni operative cambiano sarà più facile adattare il sistema modulare, modificando solo le parti che non sono più compatibili con l’ambiente di esecuzione attuale. Inoltre sarà anche possibile usare più volte i moduli addestrandoli, di volta in volta, su compiti diversi. 8. Integrazione della conoscenza: la modularità è un modo per integrare una conoscenza a priori del problema per cui una rete neurale è progettata. Il progettista sarà in grado di adattare l’architettura del sistema modulare ai dati di training su cui il sistema deve essere addestrato, con tutte le scelte progettuali possibili, rispetto al tipo di reti, di addestramento o dell’integrazione delle risposte. 9. Immunità al crosstalk: le reti monolitiche soffrono di problemi legati all’interferenza o al pericolo di perdere tutta la loro conoscenza se esposte ad una nuova. Fortunatamente questi problemi non coinvolgono anche le reti modulari. Ci sono due tipi di interferenze: temporali e spaziali. Il primo consiste nella perdita di conoscenza che era stata acquisita in seguito all’aggiunta di nuova conoscenza. Il secondo tipo si presenta se una stessa rete monolitica effettua il training contemporaneamente su due problemi diversi. Questi due tipi di interferenze possono essere evitati usando architetture modulari. 10. Controllo preciso del modello: avere dei moduli separati per analizzare un problema consente di monitorare le singole risposte delle reti. In questo modo c’è la possibilità di controllare e gestire il comportamento di un singolo modulo. 11. Analogie biologiche: il concetto di modularità si può giustificare con lo schema funzionale del sistema nervoso centrale dei vertebrati, in cui le funzioni sono separate in moduli indipendenti. 3.7.1 Decomposizione di problemi Per poter essere analizzato dai moduli facenti parte dell’architettura della rete neurale, qualunque problema deve essere preventivamente scomposto in n sottoproblemi. Per fare ciò esistono quattro approcci [28]: • Decomposizione esplicita: bisogna avere una profonda conoscenza del problema per poter proporre una decomposizione esplicita dello stesso. Si stabili- 49 CAPITOLO 3. RETI NEURALI sce un numero di blocchi a priori, basandosi sulla conoscenza che si ha del problema. Questo deve chiaramente avvenire prima della fase di addestramento dei singoli moduli. • Decomposizione per classi: prima di far partire la fase di training, il problema è diviso in base alle relazioni tra le classi cui appartengono i dati nel training set. In questo metodo non è richiesta la conoscenza del problema ma è necessario conoscere solo le relazioni tra le classi nei dati del training, in modo da assegnare un modulo per ogni classe del dato in input. • Decomposizione automatica: durante la fase dell’addestramento, il problema è diviso in sotto-problemi in maniera automatica. In questo modo non è necessario conoscere la composizione delle classi nel training-set o la struttura del problema in generale. Questo metodo è però poco efficiente dal punto di vista computazionale. • Decomposizione basata sulle relazioni tra classi: in questa strategia è necessario che ogni vettore in ingresso appartenga ad una classe diversa. Con questo metodo si divide, quindi, il problema di classificare K classi in K × (K − 1)/2 problemi di classificazione di sole due classi. In questo modo si bilanciano anche i dati in ingresso tra i vari sotto-problemi. 3.7.2 Hieratchial Mixure of Expert Questa architettura consiste in moduli organizzati gerarchicamente di reti neurali ed è stata presentata per la prima volta in [13]. I moduli sono relativamente semplici e consistono in reti neurali. Essi sono organizzati in una struttura ad albero come quella in figura 3.9. Il principio funzionale che sta alla base di questa architettura è il classico dividi e conquista, in cui problemi complessi vengono divisi in problemi la cui soluzione può facilmente essere ottenuta. Le singole soluzioni dei moduli sono poi integrate per portare ad una soluzione globale al problema principale. Nello schema ad albero di figura 3.9 le foglie rappresentano le reti esperte. Il loro output è gerarchicamente combinato nei nodi interni dell’albero fino a formare la soluzione complessiva. Al livello intermedio sono le gating network che si occupano di ricombinare le risposte delle reti esperte. Ogni rete esperta fornirà un output yij in risposta all’ingresso xt secondo la matrice dei pesi propria di quella rete esperta. Le reti di gating sono invece spesso lineari e il 50 CAPITOLO 3. RETI NEURALI 51 Figura 3.9: Architettura di Hieratchial Mixure of Expert. loro output è calcolato da eζi gi = P ζ k ke con ζi = ViT xt , dove Vi è la matrice dei pesi associata alla rete di gating gi . La funzione di output di ogni nodo intermedio è pesata con le uscite delle funzioni di gating di quel livello: yi = X gj|i yij j e la stessa operazione è fatta per l’uscita dell’ultimo livello, che rappresenta l’uscita del sistema: y (t) = X i gi yi Capitolo 4 Belief Revision 4.1 Generalità La Belief Revision (revisione della conoscenza) è il processo con cui si cambia la conoscenza pregressa grazie ad una nuova che si acquisisce. E’, questa, una definizione alquanto generica ed, infatti, il tema è approfondito in varie discipline che vanno dalla filosofia all’intelligenza artificiale. Se in filosofia questo è un argomento su cui si è riflettuto sin dall’antichità, nel campo informatico le prime ricerche in questo campo hanno riguardato il mantenimento di una base di verità nel processo di update di database [5]. La possibilità che un agente intelligente possa modificare le proprie credenze in base alle nuove informazioni che acquisisce dall’ambiente è di fondamentale importanza per avere un sistema flessibile e dinamico. Una importante distinzione sulle operazioni che si possono compiere su di un database è quella tra update e revision [14]. La prima fa riferimento all’inserimento di nuove informazioni nel database che vanno a rendere obsolete quelle che vi erano presenti. La seconda operazione riguarda l’inserimento di nuove verità in un database che, non necessariamente, rendono false le conoscenze che si avevano prima. Nella logica della Belief Revision, uno stato di conoscenza è rappresentato da un insieme di affermazioni. Le operazioni di cambiamento che possono riguardare la base di conoscenza sono operazioni di rimozione o di aggiunta di nuove affermazioni. In entrambi i casi questi cambiamenti possono influenzare altre affermazioni che sono contenute nella base della conoscenza. Relativamente al criterio di razionalità, se per un dato momento, lo stato di conoscenza di un individuo diviene inconsistente, il soggetto modificherà le proprie conoscenze in modo che l’insieme rimanga consistente. Per fare ciò se ne dovranno rimuovere o modificare alcune, queste modifiche saranno compiute utilizzando il principio dei minimi cambiamenti. Questi sono al52 CAPITOLO 4. BELIEF REVISION cuni dei concetti del modello AGM [1], che è una delle pietre miliari nel campo della revisione della conoscenza. 4.2 Approccio AGM Nel modello AGM, cosi chiamato per i nomi dei tre autori Carlos Alchourrón, Peter Gärdenfors e David Makinson, le conoscenze di un sistema K sono rappresentate da frasi in un qualche linguaggio formale L. Nel framework AGM sono previsti tre tipi di cambio di conoscenza: • contrazione: con questa operazione, una proposizione p è rimossa da K, ed il nuovo K sarà costituito da tutte le conoscenze pregresse, meno quella legata a p, che si indica con K ÷ p; • espansione: si vuole inserire una nuova formula p (espressa nel linguaggio L)in una conoscenza K che esiste già. La nuova conoscenza dovrà produrre una nuova versione di K che si indica con K + p; • revisione: una affermazione p è introdotta in K ma, allo stesso tempo, altre affermazioni sono rimosse, ciò per mantenere la consistenza dentro K, la nuova base di conoscenza, che si ottiene dopo la revisione, si indica con K ∗ p. L’operazione di revisione è la più interessante e rappresenta il caso in cui non si può integrare nuova conoscenza senza mandare in contraddizione l’intera base di dati di un agente. Per gestire tale eventualità, il metodo AGM si basa su tre principi di razionalità, con cui gestisce questo cambiamento: • Consistenza: K ∗ p deve essere consistente, introdurre p in K non deve provocare conflitti; • Minimi cambiamenti: K deve cambiare il meno possibile nel passaggio a K ∗ p, mantenendo però la consistenza; • Priorità alle informazioni in arrivo: p deve appartenere a K ∗ p, quindi, in caso di contraddizione, deve essere una delle vecchie conoscenze ad essere eliminata per farci entrare p. 53 CAPITOLO 4. BELIEF REVISION 4.2.1 54 Revisione I due compiti più importanti per questo operatore sono di aggiungere nuova conoscenza al belief-set K ed assicurarsi che la nuova base di conoscenza K ∗ p sia consistente se p è consistente. Dai tre principi di razionalità della teoria AGM, per quanto riguarda l’operazione della revisione, sono derivati otto postulati. Queste proprietà devono essere soddisfatte da un operatore che effettua la revisione per essere considerato razionale: 1. Chiusura: se la teoria originale è espressa in un linguaggio L, la nuova che si ottiene, dopo un’operazione di revisione, deve anch’essa essere una teoria espressa nello stesso linguaggio L: ∀p ∈ L ∧ K ∈ TL ⇒ K ∗ p ∈ TL 2. Successo:la nuova formula deve appartenere alla nuova teoria: p ∈ K ∗p 3. Limite Superiore: la teoria che deriva dall’operazione di revisione dovrà essere un sottoinsieme di quella estesa, che si otterrebbe semplicemente aggiungendo la nuova formula alla vecchia teoria (in questo caso non si considera la possibilità che ci siano contraddizioni che porterebbero ad eliminare informazioni) K ∗p ⊆ K +p 4. Limite Inferiore: se la vecchia teoria non consente di ricavare la negazione della nuova informazione, allora vuol dire che la nuova informazione non contraddice le formule contenute nella vecchia teoria, essa può, quindi, mantenere le vecchie formule ed aggiungerci semplicemente anche la nuova Se ¬p 6∈ K ⇒ K + p ⊆ K ∗ p 5. Superficialità: la nuova teoria è inconsistente solo se anche la nuova formula è inconsistente e viceversa K ∗ p è inconsistente ⇐⇒ p è inconsistente 6. Estensibilità: due formule, che sono equivalenti, producono due nuove teorie che sono anch’esse equivalenti Se p ≡ q ⇒ K ∗ p ≡ K ∗ q CAPITOLO 4. BELIEF REVISION 55 7. Se la formula deriva dalla congiunzione di altre due: se la nuova formula è la congiunzioni di due proposizioni p ∧ q, per prima cosa, si revisiona la nuova teoria attraverso la sola p, in tal modo si giunge ad una teoria intermedia. A questo punto si procede ad espandere la teoria intermedia con l’aggiunta della formula q K ∗ (p ∧ q) ⊆ (K ∗ p)+ q 8. Se la formula deriva dalla congiunzione di altre due, ma la seconda è in forma negata e non può essere derivata dalla teoria intermedia: se la nuova formula è p ∧ q e ¬q non è derivabile dalla teoria intermedia prodotta a partire da p, allora la nuova teoria sarà composta da tutte le formule ottenute includendo p alla vecchia teoria con l’aggiunta di q Se ¬q 6∈ K ∗ p ⇒ (K ∗ p)+ q ⊆ K ∗ (p ∧ q) Gli assiomi devono essere rispettati da qualunque funzione che voglia svolgere la revisione, mantenendo la razionalità in accordo con quanto stabilito dalle AGM. Sono però solo indicazioni di massima e non consentono di realizzare effettivamente una funzione di revisione. Un aiuto pratico viene dall’identità di Levi : K ∗ p = (K − ¬p)+ p Grazie a questa identità, è possibile definire l’operazione di revisione sfruttando la contrazione e l’espansione. 4.2.2 Contrazione Il risultato di una operazione di contrazione di K per p è un subset di K da cui non è più possibile derivare p, ma nessun elemento di K deve essere rimosso se non è necessario allo scopo. Anche per la contrazione esistono otto postulati [1].: 1. Chiusura: ∀p ∈ L ∧ K ∈ TL ⇒ K − p ∈ TL 2. Successo: Se 6` p ⇒ p 6∈ K − p 3. Inclusion(Inclusione): K −p ⊆ K CAPITOLO 4. BELIEF REVISION 56 4. Nullità: Se p 6∈ K ⇒ K = K − p 5. Estensionalità: Se ` p ≡ q ⇒ K − p = K − q 6. Recupero: Se p ∈ K ⇒ K ⊆ (K − p)+ p 7. Minima congiunzione: ((K − p) ∩ (K − q)) ⊆ K − (p ∧ q) 8. Massima congiunzione: Se q 6∈ K − (p ∧ q) ⇒ K − (p ∧ q) ⊆ (K − p) Ci sono molte teorie che soddisfano questi otto postulati, che possono essere usate per ottenere la contrazione. Con l’identità di Levi non si definisce univocamente come ottenere la contrazione e, quindi, risulta non univoca anche la definizione dell’operazione di revisione. Per questo motivo sono stati introdotti dei meccanismi che non si limitano ad usare gli otto postulati, ma usano anche altri tipi di informazioni per scegliere la funzione di contrazione. Esempi di questi meccanismi possono essere quelli che usano insiemi massimamente consistenti rispetto a K e p, funzioni di scelta o ordinamenti preferenziali sulle parole. 4.3 Approccio Probabilistico Con l’approccio probabilistico ogni regola del linguaggio presenta un certo grado di affidabilità. In questo modo ogni stato della conoscenza è formato sia da una proposizione sia da un valore di probabilità, che misura il grado di affidabilità di quella proposizione. La teoria formale delle probabilità fa affidamento sui seguenti tre assiomi: • assioma 1: 0 ≤ P (E) ≤ 1 questo assioma afferma che la probabilità P di un evento E è un numero reale compreso nell’intervallo chiuso [0, 1]. Con P (E) = 1 si indica l’evento certo, con P (E) = 0 l’evento impossibile. CAPITOLO 4. BELIEF REVISION • assioma 2: X P (Ei ) − 1, E1 ∪ E2 ∪ . . . ∪ Ek − U, U La somma delle probabilità di tutti gli eventi mutualmente esclusivi, che coprono tutto lo spazio del problema U, è 1. A questo assioma è legato anche il corollario P (E)+P (¬E) = 1. ¬E è l’evento complementare di E. Nel corollario si mostra che la probabilità di un evento di accadere o quella di non accadere è pari a uno. Questa regola è infranta nei sistemi non probabilistici ed in quelli che sfruttano la teoria fuzzy. • assioma 3: P (E1 ∨ E2 ) = P (E1 ) + P (E2 ) dove E1 e E2 sono eventi mutualmente esclusivi. Questo assioma indica che se gli eventi non possono capitare contemporaneamente, la probabilità che avvenga l’uno o l’altro, è la somma delle loro probabilità. E’ ragionevole poter assumere che ogni sistema basato su regole sia una variante del seguente modello: bel(h, {e1 , . . . , en }) = C(bel(h), bel(h, e1 ), . . . , bel(h, en )) Il grado di affidabilità bel(h), rappresenta una conoscenza a priori, una ipotesi, che non è supportata da nessuna prova. Il grado di affidabilità bel(h, ei ) misura il grado di supporto che l’indizio ei porta all’ipotesi h. In base al tipo di linguaggio usato per modellare la conoscenza questo tipo di relazione sulle prove può avere due forme. Se si usa un modo diagnostico di inferenze allora bel(h, e) parametrizza la regola (IF e THEN h) e rappresenta la probabilità della correttezza della credenza dell’esperto(h) alla luce della prova e. Con una interpretazione causale bel(h, e) parametrizza la regola (IF h THEN e) e rappresenta il grado di affidabilità di avvenimento dell’effetto e a partire dalla sua causa h. La direzione dell’inferenza varia in base al tipo di linguaggio usato per rappresentare la conoscenza. Dato un insieme di prove E = {e1 , . . . , en }, la probabilità a posteriori in h alla luce di E è computata da un operatore C, di sintesi delle credenze. In base alle proprietà di C, è possibile definire la funzione per il grado di affidabilità in modo ricorsivo: bel(h, ∅) = bel(h) bel(h, {e1 , . . . , en }) = C 0 (bel(h, {e1 , . . . , en−1 }), bel(h, en )) 57 CAPITOLO 4. BELIEF REVISION Si può anche assumere che valgano le proprietà commutativa: bel(h, {e1 , e2 }) = bel(h, {e2 , e1 }); e associativa: bel(h, {e1 , {e2 , e3 }}) = bel(h, {{e1 , e2 }, e3 }). Con il termine di inferenza si fa riferimento ad un insieme ordinato di proposizioni, (h, e1 , . . . , en ), nelle quali h sono le ipotesi e le e sono le prove. Con queste definizioni la soluzione di un problema di inferenza rappresenta il calcolo della affidabilità Bayesiana di h alla luce di e1 , . . . , en . Da un punto di vista probabilistico {h, e1 , . . . , en } è visto come uno spazio di variabili aleatorie discrete, caratterizzate da una distribuzione discreta di probabilità P : W → [0, 1], dove W è è l’insieme delle 2n+1 permutazioni definite sullo spazio. Secondo questa interpretazione obiettivo finale di un processo di inferenza è il trovare la probabilità a posteriori P (h|e1 , . . . , en ). Ricavare questa probabilità a posteriori da tentativi di bruteforce sulla probabilità congiunta P (h, e1 , . . . , en ) ha la complessità che tende al limite ad en . Inoltre non si ha la completa e certa conoscenza della probabilità congiunta, per via dei dati parziali e delle informazioni soggettive che possono essere contenute nei vari ei . La probabilità P (h|E) è, quindi, definita per un insieme di proposizioni, una per ogni elemento di e. Con il valore della probabilità, si esprime il grado di confidenza nei confronti delle varie preposizioni. La razionalità nei cambiamenti della conoscenza, modellata con una funzione statistica, è governata attraverso restrizioni di coerenza. Per il mantenimento della coerenza, si richiede che un nuovo assegnamento delle probabilità, a seguito di cambiamenti della conoscenza, sia fatto attraverso una funzione classica di probabilità, che dovrà operare sulla vecchia distribuzione di probabilità per generare la nuova versione della stessa. Se indichiamo con τ la funzione di aggiornamento delle probabilità e P r una funzione di probabilità, allora τ P r è una nuova funzione di probabilità che aggiorna la vecchia basata sulle informazioni fornite da P r usando le nuove codificate da τ . Uno dei modi per fare ciò è quello di usare il condizionamento Bayesiano per aggiornare la funzione di probabilità: P (H|E) = P (H ∩ E) P (E|H)P (H) = P (E) P (E) in cui P (H) è la probabilità a priori,P (H|E) la probabilità a posteriori. L’uso del teorema di Bayes ha delle difficoltà, principalmente riguardo la valutazione 58 CAPITOLO 4. BELIEF REVISION delle probabilità a priori P (H), P (E) e P (E|H). Nella pratica, quest’ultima si considera distribuita come una gaussiana. 4.4 Approccio con la teoria delle possibilità Questa tecnica per modellare la conoscenza è un approccio al problema che attinge sia dalla teoria delle probabilità che da quella degli insiemi fuzzy. Uno stato della conoscenza è rappresentato sia semanticamente che sintatticamente. Per rappresentare la semantica di uno stato si fa uso della distribuzione delle possibilità π, che è una funzione che ha dominio nelle interpretazioni nel mondo Ω e codominio in un intervallo reale tra [0, 1]. Ogni π(ω) definisce il grado di confidenza di quella possibile rappresentazione del mondo ω con |K|, che consiste nell’insieme di tutte le possibili rappresentazioni del mondo, in cui tutte le proposizioni sono simultaneamente vere. Se π(ω) vale zero allora l’interpretazione del mondo attraverso ω è impossibile, se invece π(ω) vale uno allora ω è la migliore rappresentazione del mondo ed è definita ”situazione preferita rispetto a π”. Per confrontare due rappresentazioni è sufficiente valutare la loro distribuzione di possibilità, la rappresentazione con il valore più vicino all’unità è quella che meglio approssima il mondo fra le due. La distribuzione π consente di usare due metodologie sintattiche differenti per classificare le preposizioni del linguaggio: • Misura della possibilità: si valuta quanto φ è consistente con la conoscenza rappresentata da π. Π(φ) = max{π(ω) : ω |= φ} con il vincolo che: ∀φ∀ψ Π(φ ∧ ψ) = max(Π(φ)Π(ψ)) • Misura della necessità: valuta quanto sia derivabile φ dalla conoscenza attuale, rappresentata da π. N (φ) = inf {1 − π(ω) : ω |= ¬φ} = 1 − Π(¬φ) soggetto a: ∀φ∀ψ N (φ ∧ ψ) = min(Π(φ)Π(ψ)) Le misure Π e N sono modelli ordinali di gradi di incertezza [24] ed è questa la loro principale caratteristica. L’intervallo unitario è usato per classificare le varie 59 CAPITOLO 4. BELIEF REVISION possibili situazioni in Ω, in termini di compatibilità con la conoscenza attuale. Questa visione contrasta con il metodo probabilistico di esprimere la conoscenza, che si affida ad assunzioni aggiuntive. Nella logica classica una base di conoscenza è costituita da un insieme di proposizioni o asserzioni e le deduzioni possono essere effettuate col metodo della refutazione o dell’inferenza. Nella logica della teoria delle possibilità, una base di conoscenza è formata da una coppia (φi ; ai ) con φi che è una formula proposizionale o di first-order-logic, ed ai è visto come il suo minimo livello di certezza. Quando N (φ) = 1, φ è assunto come un’affermazione totalmente vera. Tuttavia se N (φ) = N (¬φ) = 0 questa esprime totale ignoranza a proposito della verità o falsità di φ. I soli vincoli che agiscono su N (.) sono N (tautologia) = 1 e N (contraddizione) = 0. In generale N (¬φ) = 1 − Π(φ) esprime la dualità fra la possibilità e l’incertezza. Il maggior vantaggio della logica delle possibilità è l’ordinamento assoluto delle formule che rende il concetto dell’incosistenza più flessibile, in pratica si introduce il concetto di grado di inconsistenza. Due affermazioni in contraddizione non generano un assoluto conflitto quando sono tutte e due incerte. Il principio di risoluzione può essere esteso al caso delle clausole pesato: (φ, a), (ψ, b) ` (Res(φ, ψ), min(a, b)) dove Res(φ, ψ) è il risolvente delle due clausole φ e ψ (il risolvente si ottiene eliminando dalle due clausole i letterali che risultano complementari tra le due clausole e disgiungendo le clausole cosi modificate). Per provare (φ, a) da K (K ` (φ, a))si procede cosi: 1. si aggiunge (¬φ, 1) a K o le clausole che corrispondono a ¬φ; si ottiene cosi una nuova base di conoscenza: K ∪ {(¬φ, 1)} 2. si prova a derivare la contraddizione ⊥ da K ∪ {(¬φ, 1)} usando il principio di risoluzione per le clausole pesate. Ad esempio si dà K ∪ {(¬φ, 1)} ` (⊥, b), con b > a, allora si può provare che N (φ) ≥ b. Una base di conoscenza K è totalmente consistente se non è vero che K ` (⊥, a) per a > 0 per varie prove del principio di risoluzione per le clausole pesate. Si indica con Inc(K) = sup{a, K ` (⊥, a)} 60 CAPITOLO 4. BELIEF REVISION il grado di inconsistenza di K. In una base di conoscenza possibilistica, una formula φ è definita deduzione non banale di K, ed è indicata con K `π ϕ se e solo se: K ` (ϕ, a) con a > Inc(K) K `π ϕ sta a significare che solo la parte consistente di K è stata usata per derivare ϕ. Il meccanismo della revisione, nel caso di basi di conoscenza possibilistiche, non è nient’altro che la distribuzione di possibilità condizionale π(.|a) che deriva dall’equazione di Hisdal Π(α ∧ β) = min(Π(β|α), Π(α)), definendo la possibilità condizionale come la più grande soluzione a questa equazione, cioè π(ω|a) = 1 se π(ω) = Π(α), e π(ω|α) = π(ω) altrimenti [7]. Se si definisce N (β|α) = 1 − Π(¬β|α), si può dire che: β ∈ K ∗ α ↔ N (β|α) > 0 ↔ K ∪ {α} `π β Con questo approccio si eliminano dalla base di conoscenza tutte le credenze che non sono abbastanza forti. Per risolvere il problema sono stati pensati vari metodi per recuperare conoscenza che non è coinvolta dal conflitto. Un esempio è quello di Dubois, Lang e Prade che considera sottoinsieme massimamente consistenti di K e candidati alla revisione solo questi sottoinsiemi di K ∪ {α} 4.5 Belief Revision in sistemi multi agenti La revisione della conoscenza in un contesto ad agenti multipli rende necessario soddisfare alcuni requisiti preliminari [6]: • Capacità di scartare nuove informazioni in entrata: La classica impostazione usata negli altri approcci per il mantenimento della conoscenza, in cui la nuova informazione ha priorità più alta di quella vecchia, non può valere in un contesto multiagente, in quanto non esiste un legame rigoroso tra l’ordine cronologico di arrivo delle informazioni e la correttezza del loro contenuto. Per questo motivo è preferibile trattare le informazioni tutte allo stesso modo indipendentemente dal loro istante di arrivo. • Capacità di recupero di conoscenza scartata: Gli agenti devono essere in grado di recuperare informazioni che erano state scartate, ma che sono tornate utili alla luce di nuove informazioni sia direttamente che indirettamente, se la nuova informazione è in contraddizione con la causa della vecchia esclusione. 61 CAPITOLO 4. BELIEF REVISION Formalmente: sia K ∗ q lo stato cognitivo K rivisto in seguito all’ingresso q. Per il principio di recuperabilità, ogni conoscenza posseduta in precedenza deve appartenere anche all’attuale spazio cognitivo per poter essere consistente. Cioè per ogni K e ogni p e q per cui valgono sia K ` p che K ∗ q 0 p, potrebbe esserci una vecchia informazione r per cui (K ∗ q)∗ ` p, anche se r 0 p. Quindi se una informazione del passato non ha motivi per essere considerata inaffidabile, ma affidabile. Nel corso dell’evoluzione dello stato della conoscenza una informazione può essere reputata inaffidabile per delle cause che sopraggiungono. Nel caso dovessero decadere queste nuove cause allora bisognerebbe tornare a considerare affidabile l’informazione originale. • Capacità di combinare informazioni contraddittorie e concomitanti: Il sistema cambia lo stato cognitivo ad ogni nuova informazione che riceve. Questo accade sia in presenza di informazioni contraddittorie che di informazioni non contraddittorie. Nel primo caso si abbassa la credibilità delle informazioni che gli agenti avevano a causa del conflitto che le nuove informazioni introducono nello stato della conoscenza. Anche in caso di informazioni non contraddittorie si modificano le credibilità delle informazioni in possesso degli agenti in quanto il loro grado di confidenza aumenta: sono ora più sicuri delle loro credenze. • Capacità di operare con la coppia < sorgente, inf ormazione >: conoscere le sorgenti di ogni informazione consente al sistema di mantenere un ordinamento di credibilità delle fonti. Per assegnare una affidabilità alle fonti bisogna conoscere chi, tra gli agenti, ha generato quella informazione. • Capacità di mantenere e confrontare tra loro diversi stati cognitivi : Il sistema multi agente deve essere in grado di ricostruire vari scenari cognitivi e non limitarsi al solo confronto delle singole informazioni gestite indipendentemente dagli agenti. • Sensibilità alla sintassi : Il modo in cui sono aggregate le informazioni differenti riflette l’organizzazione del sistema, il modo in cui giudica l’affidabilità delle fonti o assegna una credibilità alle informazioni che gli comunicano. In un contesto multi agente bisogna quindi trattare le inconsistenze e le incertezze. Gli stati cognitivi, rappresentati dalle teorie K e le nuove informazioni, rappresentate dalle formule p, possono essere rappresentati attraverso l’uso di opportuni modelli pesati o di insiemi di frasi pesate. Questi pesi possono essere usati sia per il semplice 62 CAPITOLO 4. BELIEF REVISION ordinamento delle frasi e dei modelli, svolgendo quindi un compito di pura ordinalità o possono, altresı̀, essere numeri reali, per rappresentare esplicitamente la credibilità delle informazioni di quelle frasi o di quei modelli, in genere i pesi usati in questo modo variano tra 0 e 1. In seguito ad una operazione di revisione si andranno a modificare questi pesi, aumentandoli o diminuendoli in base alla qualità dell’informazione stessa. Per le caratteristiche descritte prima, il sistema multi-agente si basa, quindi, su di un modulo per il mantenimento delle verità, basato sulle assunzioni o ATMS [4], per mantenere attivi diversi scenari contemporaneamente, e sulla probabilità Bayesiana per il calcolo delle affidabilità a posteriori delle fonti informative. Per tenere traccia delle conoscenze acquisite e per non perdere quelle storiche sono quindi necessarie due distinte basi per la conoscenza : • Conoscenza complessiva KB, in essa sono contenute tutte le preposizioni usate dagli agenti nel corso dell’evoluzione della loro conoscenza. Ovviamente le informazioni contenute col passare del tempo potrebbero diventare inconsistenti; • Conoscenza di base Bi ⊆ KB, in tale sottoinsieme si tengono solo le informazioni che gli consentono di essere massimamente consistente, questa base di conoscenza è usata per il reasoning e per il supporto alle decisioni da parte del sistema. Con l’uso di queste due basi ad ogni arrivo di una nuova informazione p, fornita dalla sorgente U , si analizzano le inconsistenze che p causa per formare le nuove basi di conoscenza. Una possibile sequenza di passi per permettere la revisione delle conoscenze attuali è la seguente: 1. si trovano tutti i sottoinsiemi delle minime inconsistenze di KB ∪ {p}, questo è definito come insieme ”nogood”; 2. vengono generati i sottoinsiemi delle massime consistenze di KB ∪ {p}, per trovare l’insieme ”good”; 3. i pesi associati alle frasi di KB ∪ {p} sono aggiornati ; 4. viene scelto un sottoinsieme delle massime consistenze KB ∪ {p} come nuova conoscenza di base Bi0 . 63 CAPITOLO 4. BELIEF REVISION 64 Le prime due fasi derivano dall’approccio ATMS [4] e si occupano del mantenimento della consistenza all’interno delle basi di conoscenza, usando la parte simbolica dell’informazione per trovare gli insiemi dei goods e dei nogoods. Le seconde due fasi analizzano l’incertezza dell’informazione e si preoccupano di aggiornare i pesi relativi alle informazioni. E’ importante notare che la nuova informazione p viene confrontata con l’intera base di conoscenza KB invece che con la sola conoscenza di base Bi . In questa maniera si possono comunque recuperare informazioni da KB, se fanno parte di un qualche insieme massimamente consistente. In linea teorica, la nuova conoscenza di base potrebbe anche essere uguale a quella precendente all’introduzione di p, ma è una eventualità abbastanza rara che p sia rifiutata e, quindi, la nuova conoscenza di base Bi0 risulta sintatticamente differente da quella di prima Bi . Indichiamo con S = {s1 , . . . , sn } l’insieme delle fonti, tra di loro tutte indipendenti e con kbi il sottoinsieme di KB usato dalla fonte si . Ad ogni fonte associamo una affidabilità R(si ) che rappresenta la probabilità ”a priori” che quella fonte sia credibile. L’idea che sta alla base di questo modo di gestire le sorgenti informative è quella di privilegiare le fonti che sono più affidabili e che, quindi, presumibilmente, ci daranno informazioni più corrette di quelle provenienti da sorgenti poco credibili. La fonte si è affidabile solo per i modelli contenuti in kbi , per tutti gli altri modelli Ω, del linguaggio adottato per la rappresentazione della conoscenza in KB, vale l’ipotesi che la fonte si è inaffidabile. Ogni sorgente si ha associato una probabilità Pi (.) su 2Ω : se X = [kbi ] R(si ) Pi (X) = 1 − R(si ) se X = Ω 0 altrimenti Tutte le probabilità delle singole fonti sono poi combinate con la regola di Dempster: P Xi ∩Xj =X P1 (Xi )P2 (Xj ) Xi ∩Xj =∅ P1 (Xi )P2 (Xj ) P (X) = P Con questa espressione le probabilità delle fonti che concordano si rinforzano, si indeboliscono, invece, quelle delle fonti che vanno in conflitto. Tale regola si può applicare solo nel caso in cui i pezzi di informazione siano indipendenti e ci sia un modello condiviso, che in questo caso è Ω. Si usa infine in condizionamento Bayesiano per la stima del grado di affidabilità di ciascuna fonte. Dato un sottoinsieme CAPITOLO 4. BELIEF REVISION 65 S 0 delle fonti S (S 0 ⊆ S), la probabilità a priori che solo fonti contenute in S 0 siano affidabili è pari a: R(S 0 ) = Y R(s) s∈S 0 Y (1 − R(s)) s6∈S 0 soggetta al vincolo: X R(S 0 ) = 1 S 0 ∈2S Nel caso in cui le fonti che appartengono a S 0 forniscano informazioni contraddittorie fra di loro R(S 0 ) deve essere impostato a zero e si ridistribuisce il valore che aveva prima alle restanti affidabilità, mantenendo sempre rispettato il precedente vincolo. L’affidabilità a posteriori è definita da: R∗ (s) = R∗ ({s}) = X R(S 0 ) S 0 ⊇{s} Se una fonte informativa ha fornito informazioni che hanno introdotto contraddizione con quelle date da un’altra fonte allora la nuova affidabilità R∗ (s) sarà minore della R(s), altrimenti R∗ (s) = R(s). Un sistema di questo tipo, oltre a consentire il recupero delle informazioni, come gli altri metodi classici, consente di iterare il processo di revisione della conoscenza. L’uso di nuove informazioni inconsistenti nella base della conoscenza non consente che questa diventi inconsistente a sua volta ed inoltre si rende più flessibile la revisione. CAPITOLO 4. BELIEF REVISION Figura 4.1: Schema belief revision per sistemi multi agente 66 Capitolo 5 Sintesi di soluzioni per DES 5.1 Sistemi esperti distribuiti Un sistema esperto distribuito (DES) è una particolare configurazione all’interno dell’ambito più generale del problem solving distribuito. Esso consiste nella presenza contemporanea di diversi ES indipendenti connessi fra di loro attraverso una rete computazionale. I singoli sistemi esperti (ES) sono sistemi basati sulla conoscenza e, per definizione, possiedono una esperienza simile a quella di provati esperti di settore. Un sistema esperto è formato dai seguenti blocchi funzionali principali: base di conoscenza, database, motore di inferenza, modulo esplicativo, interfaccia utente e modulo di acquisizione della conoscenza (figura 5.1). Figura 5.1: Architettura di un sistema esperto 67 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES I vari moduli hanno le seguenti funzioni: • Base di conoscenza: questo è il modulo in cui risiede il problema della conoscenza, in base al sistema esperto potrebbe essere una rete neurale addestrata opportunamente o un insieme di regole fuzzy in un sistema fuzzy; • Database: questo modulo contiene i fatti correnti o lo storico dei dati. In alcune architetture questo modulo, che contiene dati storici, potrebbe anche contenere fonti di conoscenza in aggiunta alla knowledge base. • Motore di inferenza: è un programma che controlla il funzionamento del sistema nella sua interezza. Contiene meccanismi di inferenza, come il forward chaining, il backward chaining o una combinazione dei due. • Modulo esplicativo: è il modulo che tiene traccia dell’esecuzione del sistema esperto ed accumula le informazioni nel corso del processo di reasoning. Alla fine di questo processo le informazioni sono trasferite all’utente. Questo perché un sistema esperto deve essere in grado di motivare le sue azioni ed il suo comportamento, spiegando perché effettua le sue scelte e come è giunto alle sue conclusioni. • Interfaccia utente: il ruolo di questo modulo è di comunicare con l’ambiente esterno e interagire con l’utente. • Modulo acquisizione della conoscenza: questo componente è progettato per accumulare nuova conoscenza per andare a costruire o integrare la knowledge base. In una configurazione DES ogni ES può lavorare in modo autonomo, per risolvere un certo problema o può collaborare con gli altri ES per affrontare un problema complesso. A causa delle limitazioni della conoscenza, la capacità di risolvere problemi dei singoli ES, e le caratteristiche proprie di ogni problema, alcuni compiti possono essere risolti da più di un ES per aumentare l’affidabilità della soluzione. In questo caso ogni ES otterrà una soluzione con un certo grado di confidenza, si dovranno poi sintetizzare le singole risposte in una unica con il relativo grado di confidenza. La strategia di sintesi si occupa di raggiungere un accordo tra i vari ES e di produrre un valore di incertezza per quella soluzione comune. La soluzione di sintesi non sarà basata solo sul grado di incertezza delle risposte dei singoli ES, ma sarà anche basata sulle relazioni tra le prove della soluzione. 68 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES 69 Se diversi ES giungono a differenti conclusioni usando le stesse prove, allora la soluzione di sintesi sarà un compromesso tra le due. Al contrario, se due ES usano prove diverse per risolvere lo stesso problema, la soluzione di sintesi in questo caso sarà maggiore delle singole probabilità, in quanto deriva da un maggior numero di informazioni iniziali. Una scelta sbagliata sulla strategia di sintesi può portare ad una soluzione sbagliata per il gruppo di ES. Il tipo di scelta per la strategia di sintesi è di fondamentale importanza ed è un’area critica di ricerca [29]. 5.2 Il problema della sintesi Si supponga che ci siano n ES in un sistema DES che debba stimare i valori per un attributo di un oggetto. La soluzione dello i-esimo ES può essere rappresentata come: (< object >< attribute > (V1 CFi1 Ai ) (V2 CFi2 Ai ) . . . (Vm CFim Ai )) dove Vj (1 ≤ j ≤ m) rappresenta il j-esimo possibile valore, CFij (1 ≤ i ≤ n, 1 ≤ j ≤ m) rappresenta l’incertezza per il j-esimo valore dell’ i-esimo ES, Ai è l’autorità di ESi e m indica che ci sono m possibili valori per questo attributo dell’oggetto. L’autorità di ogni ES è un numero compreso tra 0 e 1 ed indica quanto è affidabile la risposta per ogni ES. Questo valore può essere assegnato ai diversi sistemi secondo vari criteri, come, ad esempio, utilizzando lo storico sul funzionamento di un ES. Tutti gli ES si riferiscono allo stesso attributo di un oggetto, per questo teniamo traccia solo dei valori di quell’attributo, delle incertezze e delle autorità nella rappresentazione. Una rappresentazione per gli m possibili valori con le incertezze di n ES: CF11 CF12 · · · CF21 CF22 · · · . .. .. . ··· CFn1 CFn2 · · · CF1m A1 CF2m A2 .. .. . . CFnm An La strategia di sintesi è responsabile della definizione delle incertezze finali (CF∗1 CF∗2 · · · CF∗m ) a partire dalla matrice precedente, in cui l’asterisco indica il risultato di sintesi dai corrispettivi valori dello i-esimo ES. CAPITOLO 5. SINTESI DI SOLUZIONI PER DES 5.3 Potenziali casi di sintesi In base alle modalità di sintesi dei risultati per i diversi ES, si possono avere differenti soluzioni complessive. Sono possibili quattro diversi tipi di relazione tra le soluzioni fornite dai diversi ES. Esse possono essere: identiche, le une inclusiva delle altre, sovrapposte e disgiunte. Usiamo le proposizioni per rappresentare le prove e le conclusioni per rappresentare le soluzioni. Per semplificare, siano P l’insieme delle proposizioni, R un insieme di regole, CF rappresenta l’incertezza di una proposizione in un ES. Definizione 5.1 (rete di inferenze). Una rete di inferenze G in un ES è definita come un grafo aciclico orientato, nel quale i nodi rappresentano le proposizioni di P e gli archi corrispondono a regole di attivazione di R (una regola viene rappresentata come A → B). Il nodo radice del grafo corrisponde a quella proposizione in P che non è la premessa di nessuna regola di R. Le foglie, invece, sono quelle che non sono la conclusione di nessuna regola di R. Definizione 5.2 (catena di regole). Una catena di regole è definita come qualsiasi sequenza di regole tra un nodo A e un nodo B nella rete di inferenze G. Definizione 5.3 (catena di regole generale). Una catena di regole generale è una catena di regole che va da una foglia al nodo radice della rete di inferenze. Definizione 5.4 (insieme di prove originali). L’insieme di prove originali di una proposizione B, rappresentato da E(B), è l’unico insieme dei nodi foglia della rete di inferenze che soddisfano la condizione che esista una catena di regole che connette questa foglia alla proposizione B. Ad esempio, a partire dalla seguente rete di inferenze: D → C → A → B, F → E → B, T → A → C → B abbiamo che Ei (B) = D, F, T Le prossime quattro definizioni riguardano i possibili casi di sintesi e sono considerati solo elementi nell’insieme di prove originali, per un’analisi più obiettiva: Definizione 5.5 (caso di sintesi con conflitto). Si ha una sintesi con conflitto quando gli insiemi delle prove originali di una proposizione da differenti ES producono la stessa soluzione con diversi livelli di incertezza. Vale a dire che per una proposizione B, se esiste Ei (B) = Ej (B) in cui Ei (B) è in ESi , Ej (B) è in ESj , CFi 6= CFj , dove CFi è l’incertezza della proposizione B da ESi e CFj quella da ESj . Per esempio, se c’è una rete di inferenza Gi in ESi e Gj in ESj , con: 70 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES Gi = D → C → A → B, F → H → B e Gj = D → H → B, F → J → B allora Ei (B) = {D, F } e Ej (B) = {D, F } sono equivalenti. Definizione 5.6 (caso di sintesi con inclusione). Si ha una sintesi con inclusione quando il set delle prove originali di una proposizione di un ES è un sottoinsieme di un altro set di prove originali di una altro ES. Formalmente, per una proposizione B, EBi ⊂ EBj , dove EBi è in ESi , e EBj è in ESj . Definizione 5.7 (caso di sintesi con sovrapposizione). Si ha sintesi con sovrapposizione quando l’insieme delle prove originali di diversi ES non sono equivalenti ma l’intersezione degli insiemi delle prove originali non è vuoto. Formalmente: per una proposizione B, Ei (B) ∩ Ej (B) 6= ∅ e Ei (B) ∩ Ej (B) 6= Ei (B) o Ei (B) ∩ Ej (B) 6= Ej (B) dove Ei (B) è in ESi , e Ej (B) è in ESj . Definizione 5.8 (caso di sintesi con disgiunzione). Si ha una sintesi con disgiunzione quando l’intersezione degli insiemi delle prove originali di diversi ES è un insieme vuoto. Formalmente: per una proposizione B, Ei (B) ∩ Ej (B) = ∅ dove Ei (B) è in ESi , e Ej (B) è in ESj L’analisi fatta finora riguardava sistemi nei quali erano presenti soltanto due ES. L’estensione di queste definizioni per sistemi con n ES sono le seguenti: Definizione 5.9 (caso di sintesi con conflitto tra n ES). Si ha questo caso quando gli insiemi delle prove originali degli n ES sono equivalenti, ma differenti, anche se vari ES producono la stessa soluzione con differenti valori di incertezza. Se per una proposizione B esistono E1 (B) = E2 (B) = . . . = En (B) dove E1 (B) è in ES1 ,E2 (B) è in ES2 ,. . . e En (B) è in ESn e ∃i, j (1 ≤ i, j ≤ n, i 6= j), CFi 6= CFj , dove CFi è l’incertezza della proposizione B da ESi e CFj è l’incertezza della proposizione B da ESj Definizione 5.10 (caso di sintesi con inclusione tra n ES). Si ha questo caso se esiste un insieme di prove originali di una proposizione di ESi (Ei (B)) in cui Ei (B) include tutti gli altri Ej (B). Formalmente: per una proposizione B, ∀j(1 ≤ j ≤ n, j 6= i), Ei (B) ⊃ Ej (B) dove E1 (B) è in ES1 , E2 (B) è in ES2 , . . ., e En (B) è in ESn . Definizione 5.11 (caso di sintesi con disgiunzione tra n ES). Si ha quando l’intersezione di ogni coppia di insiemi di prove originali di una proposizione dagli n ES è vuoto. Formalmente: per una proposizione B, ∀i, j(1 ≤ i, j ≤ n, j 6= i), Ei (B) ∩ Ej (B) = ∅, dove E1 (B) è in ES1 , E2 (B) è in ES2 , . . ., e En (B) è in ESn . 71 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES Se il numero di ES in un DES è maggiore di due, per prima cosa, si identifica il tipo di conflitto di sintesi di cui siamo in presenza, se non appartiene a nessun caso di sintesi delle precedenti tre definizioni allora siamo in un caso di sintesi con sovrapposizione. 5.4 Classificazione dei DES In un DES possono esserci due possibili classificazioni per come sono configurati gli ES: la prima relativa al tipo di base di conoscenza usata dall’ES, la seconda in relativa al tipo di informazioni (DATA) un ES usa per calcolare la sua risposta. La relazione che lega fra loro l’insieme delle prove di una affermazione B, i dati usati per il calcolo della risposta del DES e l’insieme globale delle affermazioni si può sintetizzare in E(B) ⊆ DAT A ⊆ P . Si definiscono identici due ES (ESi = ESj ) che condividono lo stesso insieme P di proposizioni e le stesse R regole di inferenza. Se una di queste due condizioni non risulta verificata, allora si ha che (ESi 6= ESj ). Con queste dovute precisazioni è possibile identificare quattro categorie per i DES: • DES omogenei: fanno parte di questa categoria i DES formati da ES che utilizzano la stessa base di conoscenza e possono accedere ai medesimi dati. ∀i, j ESi = ESj 1 ≤ i, j ≤ n ∀i, j DAT Ai = DAT Aj 1 ≤ i, j ≤ n • DES parzialmente omogenei: tutti gli ES utilizzano la stessa base di conoscenza, ma almeno uno di essi può accedere a dei dati diversi. ∀i, j ESi = ESj 1 ≤ i, j ≤ n ∃i, j DAT Ai 6= DAT Aj 1 ≤ i, j ≤ n • DES parzialmente eterogenei: almeno un ES utilizza una base di conoscenza differente dagli altri. Tutti gli ES però accedono agli stessi dati. ∃i, j ESi 6= ESj 1 ≤ i, j ≤ n ∀i, j DAT Ai = DAT Aj 1 ≤ i, j ≤ n • DES eterogenei:almeno un ES si appoggia ad una base di conoscenza che è diversa da quella degli altri ES ed almeno un ES accede a dei dati diversi dagli altri. ∃i, j ESi 6= ESj 1 ≤ i, j ≤ n ∃i, j DAT Ai 6= DAT Aj 1 ≤ i, j ≤ n 72 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES 5.5 Relazioni fra casi di sintesi e tipologia di DES In base alle varie tipologie di DES, elencate in precedenza, sono possibili solo alcuni tipi di relazioni tra ES. Teorema 5.5.1 (sintesi conflittuale). Un caso di sintesi conflittuale non può verificarsi in sistemi omogenei o parzialmente omogenei, mentre può verificarsi in sistemi eterogenei o parzialmente eterogenei. Dimostrazione. Per DES omogenei o parzialmente omogenei vale la relazione ESi = ESj , inoltre essi operano sullo stesso insieme di prove, per cui essi avranno le stesse soluzioni. Nelle altre configurazioni di DES, la base di conoscenza usata dai singoli ES è diversa e, quindi, essi potrebbero usare prove differenti per giungere alle stesse conclusioni, ma avendo, in questo caso, incertezze disomogenee sul risultato finale. Teorema 5.5.2 (sintesi con inclusione). Un caso di inclusione di sintesi non può verificarsi in sistemi omogenei. Potrebbe verificarsi in sistemi parzialmente omogenei, parzialmente eterogenei ed eterogenei. Dimostrazione. Per DES omogenei tutti gli ES hanno la stessa base di conoscenza e sceglieranno, quindi, gli stessi dati per trovare la soluzione finale. Nei sistemi parzialmente omogenei ed eterogenei i dati iniziali sono differenti e può accadere che un ES utilizzi un sottoinsieme di dati già adoperato da un altro ES per trovare la stessa soluzione. Anche in un sistema parzialmente eterogeneo si può verificare un caso di sintesi con inclusione, visto che gli ES condividono gli stessi dati iniziali. Se ad esempio abbiamo in ESi le seguenti regole: A → B, C → B, D → B mentre in ESj : A → B, D → B avremo che per la proposizione B Ei (B) = {A, C, D} e Ej (B) = {A, D}, risultando quindi che Ej (B) ⊂ Ei (B) Teorema 5.5.3 (sintesi con sovrapposizione). Un caso di sintesi con sovrapposizione non può verificarsi in sistemi DES omogenei, ma può verificarsi in sistemi parzialmente omogenei, parzialmente eterogenei ed eterogenei. Dimostrazione. Nei sistemi omogenei è impossibile che si verifichi un caso di sintesi con sovrapposizione, dato che tutti gli ES utilizzano la stessa base di conoscenza e 73 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES gli stessi dati iniziali per calcolare la soluzione. Per sistemi parzialmente omogenei ed eterogenei, invece, i dati iniziali sono differenti e, quindi, potrebbe verificarsi il caso in cui l’intersezione fra gli insiemi dei dati, utilizzati da diversi moduli, non sia vuota. In sistemi parzialmente eterogenei, ogni ES utilizza una base di conoscenza diversa per trovare la soluzione, anche se i dati iniziali sono gli stessi. Per esempio, se in ESi sono presenti le seguenti regole: A → B, C → B mentre in ESj : A → B, D → B avremo che i dati iniziali per entrambi gli ES risultano {A, B, C} e, quindi, in questo caso due sistemi parzialmente eterogenei possono presentare un caso di sintesi con sovrapposizione. Teorema 5.5.4 (sintesi con disgiunzione). Un caso di sintesi con disgiunzione non può verificarsi in sistemi omogenei, ma può verificarsi in tutte le altre tipologie di DES. Dimostrazione. Per i sistemi parzialmente omogenei ed eterogenei ogni ES utilizza insiemi di dati iniziali diversi, per questo la loro intersezione potrebbe essere un insieme vuoto. Per i sistemi parzialmente eterogenei potrebbe accadere un caso come il seguente: se in ESi sono presenti le seguenti regole: A → B, C → B mentre in ESj : D → B, E → B e per entrambi i sistemi i dati iniziali sono {A, B, C, D}, allora potrebbe presentrsi un caso di sintesi con disgiunzione. 5.6 Condizioni necessarie per tutte le strategie di sintesi Indichiamo con S(CFi , CFj ) una qualsiasi strategia di sintesi, dove CFi e CFj rappresentano le incertezze di una proposizione B rispettivamente da ESi e ESJ . S potrebbe essere in una qualsiasi delle quattro differenti situazioni di sintesi (conflitto, sovrapposizione, inclusione e disgiunzione). Le seguenti proprietà devono valere sempre, per una qualsiasi strategia di sintesi, che sia accettabile: 74 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES 75 • sia X l’insieme delle incertezze delle proposizioni in un modello di ragionamento inesatto. Se ∀i, j CFi ∈ X e CFj ∈ X allora S(CFi , CFj ) ∈ X. Ciò equivale a dire che il valore dell’incertezza dopo la sintesi deve rimanere nello stesso range dei valori di incertezza iniziali, perché la funzione di sintesi abbia senso. • La funzione di sintesi S deve rispettare la regola associativa. La soluzione finale deve essere basata sulle prove che sono usate per ottenere le soluzioni e non sull’ordine del loro utilizzo. S(S(CFi , CFj ), CFk ) = S(CFi , S(CFj , CFk )) • La funzione di sintesi S deve rispettare la regola commutativa per le stesse ragioni del punto precedente. Esistono poi delle condizioni necessarie per le specifiche situazioni di sintesi: • Sintesi in caso di conflitto: condizione necessaria in questo caso è che min(CFi , CFj ) ≤ Sconf lict ≤ max(CFi , CFj ) dove Sconf lict è la funzione di sintesi. Nel caso di conflitto le incertezze CFi e CFj vengono dallo stesso insieme di prove (Ei (B) = Ej (B)). La differente valutazione quindi proviene da diverse interpretazioni degli ES sullo stesso insieme di prove. Visto che nessuno degli ES ha delle prove aggiuntive, ogni opinione degli ES deve essere considerata in modo uguale dal DES. • Sintesi in caso di disgiunzione: in questo caso non c’è sovrapposizione tra EBi e EBj ed ognuno di loro può contribuire positivamente o negativamente all’incertezza della proposizione B in maniera indipendente. Per questo, se entrambi gli ES favoriscono il fatto che la proposizione B sia vera (CFi > 0 e CFj > 0) la condizione necessaria per la funzione di sintesi deve essere che Sdisjoint (CFi , CFj ) > max{CFi , CFj } con Sdisjoint funzione di sintesi per il caso di disgiunzione. Se invece entrambi gli ES sono contro il fatto che la proposizione B sia vera (CFi < 0 e CFj < 0) allora Sdisjoint (CFi , CFj ) < min{CFi , CFj }. In tutti gli altri casi dovrebbe essere min{CFi , CFj } ≤ Sdisjoint (CFi , CFj ) ≤ max{CFi , CFj } • Sintesi in caso di inclusione: se Ei (B) è subset di Ej (B) la condizione necessaria per la funzione di sintesi è che Sinclusion (CFi , CFj ) = CFj , dove Sinclusion è la funzione di sintesi in caso di inclusione. La funzione di sintesi risulta essere tale perché ESi trova la soluzione, basandosi su meno prove di ESj e le prove CAPITOLO 5. SINTESI DI SOLUZIONI PER DES 76 usate da ESi sono adoperate anche da ESj , per questo ESi non contribuisce alla soluzione complessiva. • Sintesi in caso di sovrapposizione: In questo caso ci sono delle prove aggiuntive tra EBi e EBj . La condizione necessaria in questo caso è che Soverlap (CFi , CFj ) ≥ Sconf lict (CFi , CFj ) se (CFi > 0 e CFj > 0); oppure Soverlap (CFi , CFj ) < Sconf lict (CFi , CFj ) se (CFi < 0 e CFj < 0); dove Soverlap è la funzione di sintesi in caso di sovrapposizione. Sia il caso di conflitto che quello di disgiunzione sono casi estremi, mentre il caso di inclusione e quello di sovrapposizione si trovano in una situazione intermedia fra i due. 5.7 Strategie di sintesi Se con Xi indichiamo la matrice di n∗(m+1) elementi delle soluzioni multiple di differenti ES, con Yi un vettore lungo m delle soluzioni finali desiderate dopo la sintesi di Xi , e con f la funzione di sintesi perfetta che leghi Xi a Yi , possiamo definire la funzione di sintesi delle soluzioni in un caso generale come f (Xi ) = Yi i = 1, 2, 3, . . . Gli Xi sono sempre noti, ma bisogna stabilire un modo per definire gli Yi per ogni Xi . A questo scopo è ragionevole definire gli Yi come la soluzione fornita da un esperto umano ad ogni Xi . Come un soggetto che ascolta vari pareri provenienti da diversi esperti, il DES deve arrivare a formulare una decisione finale, dopo aver analizzato le proposte dei vari ES. C’è anche un’altra domanda che ci si può porre: per quanti Xi conosciamo la risposta Yi ? se la corrispondenza è uno a uno allora lo studio della funzione di sintesi perde interesse, se invece non conosciamo con esattezza l’Yi per ogni Xi potrebbe essere difficile valutare la qualità della funzione di sintesi, perché non sappiamo se i risultati siano giusti o no. Infatti solo per un numero limitato di Xi siamo certi della corrispondenza con un Yi , e la funzione f è definita come una pseudo funzione che mappa perfettamente solo questi Xi ai rispettivi Yi . Obiettivo della sintesi di soluzioni è, quindi, quello di trovare una funzione di mapping f 0 (Xi ) = Yi0 che sia molto vicina alla funzione ottima f (Xi ) = Yi per ogni Xi . Definiamo per questo scopo la funzione δ(Xi ) = f (Xi ) − f 0 (Xi ) = Yi − Yi0 = {δi1 , δi2 , . . . , δim } che può essere usata per misurare la differenza tra la soluzione finale desiderata (Yi ) e la soluzione reale Yi0 dalla funzione di sintesi. m è invece il numero dei possibili valori di un attributo. Indichiamo con δ¯i l’errore medio, e con δ max i CAPITOLO 5. SINTESI DI SOLUZIONI PER DES l’errore massimo degli output di f 0 , esse sono cosi definite: |δ 1 | + |δi2 | + . . . + |δim | δ¯i = i m δimax = max{|δi1 | + |δi2 | + . . . + |δim |} Generalmente ci sono due metodologie per definire f 0 . La prima usa l’analisi delle caratteristiche dell’input Xi per definire la f 0 (metodi analitici), l’altro metodo usa le corrispondenze note fra Xi ed i veri Yi per definire le corrispondenze mancanti(metodi induttivi). 5.8 Principali metodologie 5.8.1 Metodi Analitici Il principio base di questo metodo consiste nel definire la funzione di sintesi f attraverso l’analisi delle caratteristiche dell’input Xi . Esse possono consistere nelle relazioni tra l’insieme delle prove originali degli ES da cui deriva la matrice in ingresso o i fattori che influenzano la soluzione finale o il considerare i vari ingressi in maniera pesata. Questo metodo richiede delle precondizioni che, se soddisfatte, garantiscono buoni risultati [29]. In questo metodo si analizza solo l’input. Esempi tipici, per un utilizzo di tale modalità di sintesi, sono quelli della gestione dell’incertezza nei quali la soluzione finale è basata non solo sui valori delle incertezze delle singole risposte degli ES, ma anche dalla uniformità delle risposte tra i vari ES. Le teorie matematiche da usate per implementare un modello analitico, possono essere la ”teoria delle decisioni”, la ”teoria delle prove” o la ”teoria delle probabilità”. Generalmente esistono, per il metodo analitico, cinque livelli di analisi: 1. analisi delle caratteristiche delle prove per derivare una matrice di input Xi ; 2. analisi dell’input Xi stesso, per vedere il tipo di risposta dei singoli ES facenti parte del DES, se sono tutte risposte positive, tutte negative o la combinazione di diversi tipi di risposte; 3. analisi dei fattori che influenzano Yi , la media delle risposte dei singoli ES, la confidenza sui vari tipi di risposta; 4. come pesare ogni fattore; 5. come combinare i differenti fattori. 77 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES Per questo metodo i pattern non sono strettamente necessari. Se sono presenti dei pattern, è possibile utilizzarli per testare le strategie, prendendo spunto per sviluppare varie soluzioni che possono migliorare la sintesi. Nel caso fosse difficile ottenere dei pattern o se ne abbiano a disposizione troppo pochi, una modolità per testare la strategia è quella di verificare se la funzione soddisfi delle condizioni necessarie. Ad esempio, una condizione tipica è che la soluzione finale, dopo la sintesi, non dovrebbe risultare non negativa se tutti gli ES hanno dato una soluzione positiva. 5.8.2 Metodi induttivi Un metodo induttivo può essere usato per trovare una relazione generale tra X e Y, sulla base di un numero sufficiente di pattern per il confronto. Con questo metodo si immagina il funzionamento generale della f sulla base di un funzionamento locale e specifico che si verifica su alcuni pattern. Sia ∀i (1 ≤ i ≤ k) f (Xi ) = Yi , dove si indica con f la funzione di sintesi, con Xi la matrice di input con le soluzioni multiple e con Yi il risultato noto della sintesi delle soluzioni di Xi . Con il metodo induttivo si pensa che la f possa funzionare bene anche per tutti gli Xj (j > k) anche se non si può garantire che ciò sia sempre vero. E’ chiaro che la condizione prioritaria nell’uso di questo metodo per definire una strategia è che un numero sufficiente di pattern siano conosciuti. Maggiore sarà il numero noto di pattern, migliore potrà essere la stima del funzionamento della f per valori di input di cui non si conosce l’output. La seconda condizione è che i pattern siano distribuiti in maniera abbastanza casuale. La terza condizione è che il δ della strategia sia vicino allo 0 oppure che la strategia converga nell’accezione delle reti neurali. Per alcuni problemi di sintesi, in cui la relazione tra input e output è lineare, si possono usare modelli matematici come il metodo dei minimi quadrati per trovare queste relazioni, ma non può essere usato per problemi di una certa complessità. Un altro strumento usato per implementare metodi induttivi, sono le reti neurali [30]. Le caratteristiche di queste strategie è che sono basate sull’analisi dei pattern di ingresso e dei relativi output per trovare la migliore funzione di mapping dagli input ai corrispettivi output. Usare una rete neurale per analizzare le relazioni tra i pattern è un ottimo strumento per lo studio di questo metodo. Sarà sufficiente far apprendere alla rete con un addestramento supervisionato le relazioni esistenti tra Xi e Yi , e poi sfruttare la 78 CAPITOLO 5. SINTESI DI SOLUZIONI PER DES sua capacità elaborativa, per ipotizzare le uscite in corrispondenza di input che non erano noti in precedenza. 5.8.3 Confronto tra le due metodologie Le due metodologie si compensano a vicenda nei seguenti termini: • Prestazioni: il metodo analitico è adatto alla soluzione di problemi semplici. In particolare questo metodo è adatto quando le soluzioni finali complessive sono direttamente collegate agli input attraverso l’uso di una qualche formula. I metodi induttivi possono essere usati anche per risolvere problemi più complicati, per i quali risultano più adatti rispetto ai metodi analitici. Questo succede perché si possono simulare relazioni complicate, abbastanza simili a quelle reali se si riescono a trovare le giuste funzioni induttive. • Complessità: la complessità dei metodi analitici è minore di quella dei metodi induttivi. Nel primo caso infatti la relazione tra ingresso e uscite è esplicita e concisa e ciò garantisce uno sforzo di calcolo ridotto. Al contrario i metodi induttivi sono più complessi perché la selezione di campioni adatti comporta un surplus di lavoro. Trovare una funzione finale di mapping comporta più tempo, cosi come fare il training delle reti neurali. • Requisiti: i metodi analitici non hanno bisogno di pattern, ma il solo requisito è che la relazione fra ingressi e uscite possa essere definita da un metodo analitico. I metodi induttivi hanno bisogno di molti pattern, inoltre essi devono essere distribuiti in maniera casuale e devono coprire la maggior parte dei casi. Inoltre una funzione di mapping deve esistere per far convergere il training di una eventuale rete neurale. In sintesi si può asserire che questi due metodi siano complementari e si completino a vicenda. L’uso dell’uno o dell’altro dipende dal particolare problema a cui tali metodologie devono essere applicate per trovare la soluzione. 79 Capitolo 6 Face Recognition System 6.1 Generalità Il sistema di riconoscimento facciale (FRS) qui proposto è un sistema ibrido, basato sull’analisi delle feature del volto con un criterio olistico, che usa un insieme di reti neurali per l’analisi delle caratteristiche delle immagini dei volti, unito ad un sistema di condizionamento Bayesiano. Le reti neurali sono addestrate a riconoscere le feature del volto e, ad ognuna di esse, è associata un’affidabilità a priori, a seconda del tipo di zona del volto da analizzare. In base alle performance che la rete dimostra di avere ed ai conflitti che la sua risposta causa con quelle delle altre reti, vengono ricalcolati i valori di affidabilità, usando la regola di Bayes. Le nuove affidabilità, con gli insiemi massimamente consistenti delle risposte delle singole reti, sono poi usate per il calcolo della risposta complessiva del gruppo di reti neurali attraverso l’uso di un algoritmo di sintesi. Se un soggetto evolve nel tempo per una sua caratteristica il sistema si autoaggiorna, attraverso il modulo della retroazione, per continuare a riconoscere quella caratteristica nonostante sia cambiata. Si pongono come vincoli di progettazione alcune limitazioni sul tipo di immagini dei volti e sulle condizioni di luminosità delle immagini da riconoscere, in quanto si immagina che, una volta a regime, il sistema sia installato su di una postazione fissa e che le condizioni di illuminazione siano costanti nella fase di cattura delle immagini. 6.2 Architettura sistema Il sistema è caratterizzato da una struttura modulare, questa caratteristica ne garantisce da un lato l’espandibilità e dall’altro permette un maggior controllo sul 80 CAPITOLO 6. FACE RECOGNITION SYSTEM funzionamento dei singoli blocchi. I blocchi principali del sistema sono i seguenti: • Estrazione feature: questo blocco si occupa di estrarre le immagini delle caratteristiche del volto da una immagine complessiva dello stesso, che va ad essere analizzato; • Reti neurali: In questa sezione le varie immagini delle feature del volto sono passate alle reti neurali che svolgono il compito del riconoscimento delle caratteristiche. Ogni rete fornirà come risposta una lista di soggetti ordinata in base al grado di confidenza di quel soggetto con l’immagine in input. Il primo soggetto sarà quello che per la rete è il più simile, l’ultimo quello meno probabile. • Condizionamento Bayesiano: In questo blocco sono analizzate le risposte delle reti per costruire gli insiemi massimamente consistenti ed aggiornare cosi le affidabilità a posteriori delle reti. • Funzione di sintesi: E’ in questa fase che sono combinati i risultati delle reti e delle loro affidabilità, per stabilire qual è il soggetto finale identificato dal sistema. Sono stati usati due algoritmi diversi, l’Inclusion Based (nelle sue due versioni, quella pesata e quella non pesata) e l’Algoritmo Pesato. • Retroazione: Se un soggetto cambia stabilmente una sua caratteristica il sistema deve essere in grado di aggiornare la sua conoscenza, il compito è svolto da questo modulo. Lo schema di interconnessione dei blocchi è visibile in figura 6.1. Figura 6.1: Schema a blocchi del sistema di riconoscimento facciale 81 CAPITOLO 6. FACE RECOGNITION SYSTEM Il nostro sistema è basato sull’analisi delle immagini senza pre-processing, sia per mantenere quanto più alto possibile il livello informativo contenuto in esse sia per consentire di aggiungere nuovi volti con estrema facilità. Per l’analisi delle immagini si è scelto di usare le reti neurali, in quanto sono i sistemi più adatti per operare con input di questo tipo e sono inoltre in grado di compiere, una volta addestrate a dovere, compiti di classificazione e di clustering con grande velocità ed efficienza. Una obiezione che si potrebbe fare ad un sistema modulare come il nostro, che utilizza varie reti neurali, una per ogni feature, è quella che si sarebbe potuta usare una rete neurale unica, addestrata a riconoscere il volto intero dei soggetti. Questo approccio, però, presenta vari svantaggi rispetto a quello da noi adottato: per prima cosa i tempi di training sarebbero molto elevati a causa della grandezza dell’immagine del volto rispetto a quella delle singole caratteristiche; infatti se l’immagine ha dimensioni di n × m pixel allora sono necessari n × m neuroni di ingresso della rete neurale, ciò implica una elevata complessità del modello. Inoltre scomporre il problema in n sotto-problemi ha, per le reti neurali, il vantaggio di poterle addestrare contemporaneamente in parallelo con grande risparmio di tempo. Inoltre, in caso di immagini ”rumorose”, in cui siano presenti dei disturbi o delle variazioni rispetto al pattern conosciuto dalla rete neurale per quel soggetto, l’immagine potrebbe portare ad una errata identificazione. Una variazione dell’immagine del soggetto, come ad esempio il cambio di pettinatura, potrebbe causare un mancato riconoscimento. Se, invece, il problema si scompone, solo una delle reti del gruppo fallirebbe ma, attraverso il sistema di sintesi delle decisioni, si potrebbe indentificare correttamente il soggetto nonostante abbia mutato una delle sue caratteristiche. Un altro vantaggio che consiglia di usare reti multiple per analizzare le feature del volto è che esse hanno un materiale di migliore qualità per discriminare i soggetti rispetto alle immagini complete del volto. La densità informativa contenuta nelle immagini delle caratteristiche è maggiore di quella di quella del volto intera, che contiene anche elementi poco utili ai fini dell’identificazione, la cui presenza potrebbero persino peggiorare le prestazioni di riconoscimento. Focalizzare l’analisi sulla fisionomia del soggetto (occhi, naso, bocca, fronte) consente di ottenere i migliori risultati. E’ stato naturale, quindi, approcciare il problema attraverso l’uso di un sistema modulare di reti neurali indipendenti, ognuna addestrata a riconoscere una particolare caratteristica del volto. Le singole reti neurali avranno una struttura molto più semplice della rete neurale necessaria per il riconoscimento del volto intero, con un numero di nodi che, se per la rete neurale intera è pari al numero di pixel dell’imma- 82 CAPITOLO 6. FACE RECOGNITION SYSTEM gine intera, per le singole reti neurali del modello modulare sarà pari alla dimensione dell’immagine della feature, quindi un numero molto minore. Complessivamente occorreranno tempi minori per il training e si otterranno risposte più veloci, con una minore sensibilità al rumore. Dal momento che ogni rete è indipendente dalle altre ed utilizza anche dati in input diversi non è improbabile che le risposte fra le reti possano risultare diverse. Allo scopo di fornire una risposta complessiva e univoca, il sistema deve essere in grado di combinare le risposte delle singole reti, anche se queste sono in conflitto tra di loro. Si potrebbe essere portati a pensare di far risolvere il conflitto da un’altra rete neurale, che abbia come input le risposte delle reti neurali che analizzano le feature, ma non è una soluzione adatta, perché non c’è una corrispondenza funzionale tra le risposte delle reti ed il soggetto reale analizzato. Questo perché, di volta in volta, potrebbe essere una rete neurale diversa a sbagliare, a causa di un disturbo in una sola caratteristica e, quindi, non sarebbe facile riconoscere un pattern identificativo per questo tipo di problema. Un modo alternativo di porre rimedio ai casi di conflitto, è quello di usare un approccio simbolico. Le reti che analizzano le feature possono essere viste come un insieme di agenti indipendenti, ognuno dei quali attinge da una base di conoscenza diversa ed opera su dati diversi per risolvere, però, lo stesso problema di fondo: identificare un soggetto. Risolvere casi di conflitto con questo approccio significa usare tutta una teoria basata su tecniche per il trattamento delle inconsistenze e delle incertezze [6]. Ogni rete neurale può essere, quindi, considerata come un agente indipendente, che possiede un’affidabilità a priori, proporzionale alla probabilità che la risposta data da quello specifico agente sia corretta. La probabilità a priori è, per ogni agente, in funzione anche della caratteristica che deve riconoscere (ci sono caratteristiche meno soggette a rumore od al cambiamento) e lo storico di quell’agente per quel soggetto, che ha una propria variabilità per ogni feature(pensiamo a chi indossa occhiali da vista o lenti a contatto in particolari occasioni, a chi si lascia crescere la barba ogni tanto o a chi cambia spesso pettinatura). In base ai conflitti causati dalle risposte delle reti, le affidabilità saranno poi ricalcolate con il condizionamento Bayesiano. I valori delle nuove affidabilità insieme agli insiemi massimamente consistenti saranno usati per fornire una risposta di sintesi del sistema, attraverso l’algoritmo Inclusion based [2] o all’algoritmo pesato [22]. Infine, se un soggetto muta stabilmente una delle caratteristiche analizzate dalle 83 CAPITOLO 6. FACE RECOGNITION SYSTEM reti neurali, il sistema è forzato ad apprendere la nuova caratteristica identificativa del soggetto, attraverso riaddestramenti mirati delle reti neurali, pilotati dal modulo della retroazione. Con l’approccio modulare seguito per il problema del riconoscimento facciale si sono usate le potenzialità delle reti neurali per la classificazione dei pattern ed un approccio logico per combinare i risultati parziali. In tal modo si sono utilizzati gli strumenti nei campi in cui, rispettivamente, danno i risultati migliori. 6.3 Estrazione feature Questo blocco si occupa di estrarre dalle immagini complete del volto i frammenti che rappresentano le feature. Usiamo per l’analisi le sole feature, perché, in questo modo, si riduce la quantità dei dati da analizzare, mantenendo solo quella parte che risulta utile ai fini dell’identificazione dei soggetti: i passi successivi, cosi facendo, sono eseguiti più velocemente ed il sistema risulta più snello. Un problema di progettazione è quello di stabilire il numero delle caratteristiche da estrarre. In un primo momento si usava un software sviluppato dal tesista Paolo Sernani per l’estrazione delle feature dalle immagini. Questo programma, a partire da una immagine di 92x112 pixel, estrae quattro feature da ogni immagine del volto dividendola in: fronte(92x37 pixel), occhi (75x30 pixel), naso (30x25 pixel) e bocca(60x25 pixel). Questa divisione era ottenuta usando, però, un criterio rigido e poco flessibile basato sulle distanze relative tra le feature e, per questo, necessitava di avere immagini in input di una dimensione prefissata. Nel nostro caso si è deciso di estrarre cinque caratteristiche dai volti (figura 6.2): la fronte, l’occhio sinistro, l’occhio destro, il naso e la bocca. Ad ogni frammento del volto corrisponderà Figura 6.2: Estrazione feature con cinque reti 84 CAPITOLO 6. FACE RECOGNITION SYSTEM una rete neurale addestrata a riconoscere i soggetti, analizzando quella specifica feature. La scelta del numero di feature è un parametro di progettazione importante perché, aumentare il numero di feature, consente di aumentare anche gli esperti che si pronunciano sul problema dell’identificazione. In generale più alto sarà il numero, minore sarà la sensibilità al rumore del sistema, dovuto alle variazioni locali dell’immagine del soggetto. 6.4 Reti neurali Per la classificazione delle immagini delle feature si è ricorso alle reti LVQ. Le Learning Vector Quantization sono spesso usate in quei problemi di classificazione in cui si conosce il numero di classi che fanno parte del sistema. Nel nostro caso una classe è rappresentata dall’identità di un soggetto. Le reti LVQ hanno un’architettura basata su tre strati: uno di input, uno intermedio nascosto e uno di output. Lo strato di ingresso è totalmente connesso con quello intermedio (detto di Kohonen) e la sua dimensione dipende dalla grandezza del pattern in ingresso; quello intermedio ha un numero variabile di collegamenti con lo strato di uscita e dipende dal numero di vettori codebook associati ad ogni classe, classi che sono poi rappresentate dal numero di nodi di uscita. Nel nostro caso i pattern in ingresso sono le immagini del volto, da una immagine di dimensioni n × m si passa ad un vettore con la stessa lunghezza ottenuto dalla concatenazione delle colonne dell’immagine. Visto che le immagini sono in formato bitmap a 24 bit per ottenere i valori in scala di grigio si applica la trasformazione Y = 0.3 × RED + 0.59 × GREEN + 0.11 × BLU E che consente di ottenere il valore desiderato. Il numero di elementi di input sarà diverso per ogni rete, visto che è pari alla grandezza dell’immagine che deve classificare e le varie reti hanno immagini di grandezze diverse. Il numero di neuroni dello strato di uscita, invece, è costante per tutte le reti ed è pari al numero al numero di soggetti da riconoscere. Ad ogni neurone dello strato intermedio è associato un vettore chiamato ”codebook”, composto dai valori dei pesi delle connessioni tra il neurone e gli elementi dello strato di input. Visto che, nel nostro caso, ogni codebook è associato univocamente ad una sola classe, il numero dei nodi dello strato intermedio coincide con quello dello strato di uscita. La classificazione di nuovi vettori in ingresso avviene confrontandoli con il vettore codebook associato ad ogni classe. In questo modo si ottiene una lista ordinata in base alla distanza euclidea tra vettore in ingresso i-esimo codebook della classe i. Il 85 CAPITOLO 6. FACE RECOGNITION SYSTEM 86 primo nodo nella lista corrisponde al soggetto che la rete identifica come quello più probabile, l’ultimo della lista è il soggetto meno simile. L’addestramento delle LVQ è di tipo supervisionato e competitivo; consiste nel presentare alla rete le coppie ”immagini-soggetto”, regolando i pesi della rete in modo che il nodo vincitore sia quello che rappresenta la classe del soggetto. I pesi sono regolati in modo che, se la classe associata a quell’input è la stessa del pattern in ingresso, allora viene premiato il nodo vincitore, muovendo il codebook verso il pattern. Nel caso contrario, il nodo viene punito allontanando il codebook dal pattern. Per l’addestramento delle reti è stato usato l’algoritmo LVQ2.1 che consente di aggiornare i codebook del primo e del secondo nodo vincitore, diminuendo i tempi di addestramento. Per ogni pattern in ingresso, durante la fase di addestramento, si modificano i pesi dei primi due nodi in questo modo: ωknew = ωkold + η(xp − ωkold ) se T = Ck ωknew = ωkold − η(xp − ωkold ) se T 6= Ck dove con T si indica la classe del pattern in ingresso e con Ck la classe del nodo vincente, con ωk il codebook del k-esimo nodo di uscita, xk il vettore in ingresso e con η il tasso di apprendimento della rete. 6.5 Condizionamento Bayesiano Il condizionamento Bayesiano è usato per risolvere i conflitti tra gli esperti assegnando un nuovo valore di affidabilità sulla base dei soggetti identificati da ogni rete neurale. Dal momento che ognuna di esse analizza una caratteristica facciale diversa, è possibile che le risposte non convergano su di un unico soggetto: è sufficiente, infatti, che due soggetti si assomiglino per una loro caratteristica per indurre in errore una data rete. Ad esempio, due soggetti che indossino lo stesso paio di occhiali possono essere confusi dalle reti deputate al riconoscimento degli occhi. Un primo passo da fare è quello di stabilire il numero massimo di soggetti da prendere in considerazione dalla lista di ogni LVQ. In base a questo parametro si generano, infatti, più o meno conflitti. Il limite massimo dei conflitti sia ha quando si prende tutta la lista dei soggetti: in questo caso abbiamo un numero di conflitti pari al numero dei soggetti! Se invece decidessimo di selezionare solo il primo soggetto nella lista di ogni rete, allora il numero massimo di conflitti sarebbe pari al numero delle reti, nel caso ogni rete identificasse un soggetto diverso. Il numero dei soggetti per CAPITOLO 6. FACE RECOGNITION SYSTEM 87 ogni rete è, quindi, un fondamentale parametro di progettazione. Una volta stabilito il numero dei livelli di soggetti per ogni rete si usa il condizionamento Bayesiano: 1. si trovano tutti i sottoinsiemi minimali delle fonti in contraddizione; 2. si trovano tutti i super insiemi che li contengono; 3. vengono sommate in Rcontraddizione le affidabilità di tali insiemi; 4. viene posta a zero l’affidabilità di tali insiemi; 5. si divide l’affidabilità di ogni insieme delle fonti non contraddittorie per 1 − Rcontraddizione ; 6. Per ottenere l’affidabilità a posteriori delle singole reti si sommano tutte le affidabilità revisionate di ogni sottoinsieme delle massime consistenze in cui quella specifica sorgente informativa è contenuta. Un esempio di tabella dei conflitti, nel caso si utilizzino le prime due risposte di ogni rete, è quello di tabella 6.1. RET E1 RET E2 RET E3 RET E4 RET E5 1 - Livello 2 17 2 2 2 2 - Livello 17 9 27 37 32 Tabella 6.1: Esempio di tabella dei conflitti Una volta che si ha a disposizione la tabella dei conflitti, si possono trovare i nuovi valori delle affidabilità delle reti. Si parte da un assegnamento a priori dell’affidabilità per ogni rete, nel nostro caso possiamo decidere di usare un’affidabilità pari a R(s) = 0.9 per ogni rete/sorgente. Questa affidabilità a priori rappresenta la credibilità delle risposte di quella data rete, mentre con 1 − R(s) = 0.1 per ogni rete, si indica la probabilità che la sorgente s stia affermando il falso. Si costruisce la tabella con tutte le possibili combinazioni di affidabilità in base alle risposte, per tutte le sorgenti informative. Nell’ultima colonna è rappresentata l’affidabilità per quella specifica combinazione, che è calcolato con la Y Y R(S) = R(r) (1 − R(r)) r∈S 0 r6∈S 0 In tabella 6.2 sono riportate tutte le combinazioni possibili di affidabilità per le cinque reti. CAPITOLO 6. FACE RECOGNITION SYSTEM S0 R(r1 ) R(r2 ) R(r3 ) R(r4 ) R(r5 ) 88 R(S 0 ) Conflitti N R(S 0 ) 0.1 0.1 0.1 0.1 0.1 1E-5 0 9.91E-5 r5 0.1 0.1 0.1 0.1 0.9 0.00009 0 0.00089 r4 0.1 0.1 0.1 0.9 0.1 0.00009 0 0.00089 r5 , r4 0.1 0.1 0.1 0.9 0.9 0.00081 0 0.008 r3 0.1 0.1 0.9 0.1 0.1 0.00009 0 0.00089 r3 , r5 0.1 0.1 0.9 0.1 0.9 0.00081 0 0.008 r3 , r4 0.1 0.1 0.9 0.9 0.1 0.00081 0 0.008 r3 , r4 , r5 0.1 0.1 0.9 0.9 0.9 0.00729 0 0.0723 r2 0.1 0.9 0.1 0.1 0.1 0.00009 0 0.00089 r2 , r5 0.1 0.9 0.1 0.1 0.9 0.00081 0.00081 0 r2 , r4 0.1 0.9 0.1 0.9 0.1 0.00081 0.00081 0 r2 , r4 , r5 0.1 0.9 0.1 0.9 0.9 0.00729 0.00729 0 r2 , r3 0.1 0.9 0.9 0.1 0.1 0.00081 0.00081 0 r2 , r3 , r5 0.1 0.9 0.9 0.1 0.9 0.00729 0.00729 0 r2 , r3 , r4 0.1 0.9 0.9 0.9 0.1 0.00729 0.00729 0 r2 , r3 , r4 , r5 0.1 0.9 0.9 0.9 0.9 0.06561 0.06561 0 r1 0.9 0.1 0.1 0.1 0.1 0.00009 0 0.00089 r1 , r5 0.9 0.1 0.1 0.1 0.9 0.00081 0 0.008 r1 , r4 0.9 0.1 0.1 0.9 0.1 0.00081 0 0.008 r1 , r4 , r5 0.9 0.1 0.1 0.9 0.9 0.00729 0 0.0723 r1 , r3 0.9 0.1 0.9 0.1 0.1 0.00081 0 0.008 r1 , r3 , r5 0.9 0.1 0.9 0.1 0.9 0.00081 0 0.008 r1 , r3 , r4 0.9 0.1 0.9 0.9 0.1 0.00729 0 0.0723 r1 , r3 , r4 , r5 0.9 0.1 0.9 0.9 0.9 0.06561 0 0.65025 r1 , r2 0.9 0.9 0.1 0.1 0.1 0.00081 0 0.008 r1 , r2 , r5 0.9 0.9 0.1 0.1 0.9 0.00729 0.00729 0 r1 , r2 , r4 0.9 0.9 0.1 0.9 0.1 0.00729 0.00729 0 r1 , r2 , r4 , r5 0.9 0.9 0.1 0.9 0.9 0.06561 0.06561 0 r1 , r2 , r3 0.9 0.9 0.9 0.1 0.1 0.00729 0.00729 0 r1 , r2 , r3 , r5 0.9 0.9 0.9 0.1 0.9 0.06561 0.06561 0 r1 , r2 , r3 , r4 0.9 0.9 0.9 0.9 0.1 0.06561 0.06561 0 r1 , r2 , r3 , r4 , r5 0.9 0.9 0.9 0.9 0.9 0.59049 0.59049 P = 1 Rcontradd. Tabella 6.2: Tabella dei conflitti 0 P =1 CAPITOLO 6. FACE RECOGNITION SYSTEM Bisogna individuare tutti i conflitti prodotti dalle sorgenti e sommare le loro P affidabilità in Rcontraddizione = conf litto R(S). Nel nostro esempio sommare lungo la colonna dei conflitti, ci porta ad avere una Rcontradd. = 0.8991. A questo punto si trova la nuova affidabilità N R per i 2S insiemi. Per gli insiemi che contengono sorgenti in conflitto la N R sarà zero, per gli altri la nuova affidabilità, a posteriori, sarà ottenuta dividendo la R(S) che avevano prima per 1 − Rcontraddizione , ovvero per 1 − 0.8991 = 0.1009 nel nostro caso. I risultati del calcolo delle nuove affidabilità P sono mostrate nella tabella 6.2, dei conflitti, è importante notare che N R(S 0 ) = 1. Successivamente si dovranno trovare le affidabilità a posteriori delle singole reti: si ottengono sommando tutte le nuove affidabilità N R, degli 2S elementi che contengono quella specifica sorgente informativa. Se la rete è entrata in qualche contraddizione, si avrà che N R(si ) ≤ R(si ), altrimenti N R(si ) = R(si ). Nella tabella 6.3 si possono vedere gli insiemi in cui sono contenute le singole reti (sono stati omessi gli insiemi che contribuiscono con valori di affidabilità pari a zero), sommando per ogni ri le N R(ni ∈ S 0 ), le nuove affidabilità ricalcolate per l’esempio delle cinque reti sono: • N R(r1 ) = 0.83574 • N R(r2 ) = 0.00889 • N R(r3 ) = 0.82774 • N R(r4 ) = 0.89204 • N R(r5 ) = 0.82774 89 CAPITOLO 6. FACE RECOGNITION SYSTEM N Rr1 (S 0 ) N Rr2 (S 0 ) 90 S0 N R(S 0 ) N Rr3 (S 0 ) N Rr4 (S 0 ) N Rr5 (S 0 ) r5 0.00089 0 0 0 0 0.00089 r4 0.00089 0 0 0 0.00089 0 r5 , r4 0.008 0 0 0 0.008 0.008 r3 0.00089 0 0 0.00089 0 0 r3 , r5 0.008 0 0 0.008 0 0.008 r3 , r4 0.008 0 0 0.008 0.008 0 r3 , r4 , r5 0.0723 0 0 0.0723 0.0723 0.0723 r2 0.00089 0 0.00089 0 0 0 r1 0.00089 0.00089 0 0 0 0 r1 , r5 0.008 0.008 0 0 0 0.008 r1 , r4 0.008 0.008 0 0 0.008 0 r1 , r4 , r5 0.0723 0.0723 0 0 0.0723 0.0723 r1 , r3 0.008 0.008 0 0.008 0 0 r1 , r3 , r5 0.008 0.008 0 0.008 0 0.008 r1 , r3 , r4 0.0723 0.0723 0 0.0723 0.0723 0 r1 , r3 , r4 , r5 0.65025 0.65025 0 0.65025 0.65025 0.65025 r1 , r2 0.008 0.008 0.008 0 0 0 N R(r1 ) = P N R(r1 ∈ S 0 ) 0.83574 - - - - N R(r2 ) = P N R(r2 ∈ S 0 ) - 0.00889 - - - N R(r3 ) = P N R(r3 ∈ S ) - - 0.82774 - - N R(r4 ) = P N R(r4 ∈ S 0 ) - - - 0.89204 - N R(r5 ) = P N R(r5 ∈ S 0 ) - - - - 0.82774 0 Tabella 6.3: Tabella delle nuove affidabilità per le reti 6.6 Funzioni di sintesi Una funzione di sintesi è necessaria per stabilire quale insieme dei Good sia il più credibile per il sistema, sulla base delle affidabilità a posteriori delle reti, ricalcolate grazie al condizionamento Bayesiano. Esistono due algoritmi per effettuare questa operazione: l’Inclusion Based (nella sua versione non pesata e in quella pesata) e l’Algoritmo Pesato. CAPITOLO 6. FACE RECOGNITION SYSTEM 6.6.1 91 Inclusion based e ottimizzazioni Questo algoritmo di sintesi utilizza le nuove affidabilità delle reti in base al condizionamento Bayesiano e gli insiemi delle massime consistenze per stabilire un vincitore univoco per tutto il sistema. I passi che questo algoritmo segue sono i seguenti [2]: 1. Vengono selezionati tutti gli insiemi massimamente consistenti che contengono la rete con l’affidabilità più alta; 2. Se l’insieme è unico, allora l’algoritmo si arresta e si seleziona il soggetto associato a quell’insieme come risultato per il sistema; 3. Altrimenti, se esistono più insiemi, vengono selezionati tutti quelli in cui è presente la seconda rete in ordine di maggiore affidabilità e si ripete il passo due. L’algoritmo itera su tutte le reti, seguendo l’ordinamento delle affidabilità, finchè non trova l’insieme delle massime consistenze che contiene un solo soggetto. Se riprendiamo l’esempio di tabella 6.1 possiamo definire gli insiemi massimamente consistenti di tabella 6.4. RET E1 Soggetto 2 X Soggetto 17 X RET E2 RET E3 RET E4 RET E5 X X X X Tabella 6.4: Insiemi delle massime consistenze Se si usano anche le affidabilità a posteriori che avevamo già calcolato in tabella 6.3 l’algoritmo Inclusion Based può calcolare l’insieme Good più credibile. L’ordinamento delle reti che risulta dalle loro affidabilità a posteriori è la sequenza r4 -r1 -r3 -r5 -r2 , quindi, per prima cosa, si selezionano gli insiemi in cui è presente la rete r4 : l’insieme contiene un solo soggetto che diventa quello identificato dal sistema, il soggetto numero 2. Se invece la rete con affidabilità più alta fosse stata la r1 allora gli insiemi good sarebbero stati due, sia il soggetto 2 che il soggetto 17. Visto che l’insieme non sarebbe stato unico allora si sarebbe dovuto procedere con le successive iterazioni dell’algoritmo Inclusion Based per selezionare la seconda rete con l’affidabilità più alta per determinare il soggetto identificato. Un problema che può presentare l’inclusion based è la dipendenza della soluzione finale dall’ordinamento usato per le reti. Per eliminare questa dipendenza, esiste una CAPITOLO 6. FACE RECOGNITION SYSTEM 92 ottimizzazione dell’algoritmo, chiamato Inclusion Based Pesato. Questa versione calcola la distanza euclidea tra i codebook dei nodi delle reti ed i pattern in ingresso, usando questa informazione aggiuntiva per ordinare le reti in base a un peso che gli viene associato. Sia il sistema formato da N reti neurali: indichiamo con dik la distanza euclidea tra il nodo della i-esima rete associato alla k-esima classe, con S l’insieme dei Good trovati con le risposte e con C(st ) la classe associata all’i-esimo insieme Good trovato. Il metodo funziona come segue: 1. viene associato un peso P (st ) ad ogni insieme Good trovato: ∀st ∈ S P (st ) = N X diC(st ) i=1 2. vengono ordinate le reti secondo la loro affidabilità a posteriori. Nel caso più reti avessero la stessa affidabilità, allora per ognuna di esse viene calcolato un peso: pi = min{P (st ) con st : niC(st ) ∈ st } dove nik è il nodo della rete i-esima associato alla classe k; 3. si applica l’Inclusion Based con il nuovo ordinamento delle reti. Nel nostro esempio non è stato necessario fare una scelta fra reti con pari livelli di affidabilità perché l’algoritmo Inclusion Based si è fermato alla prima iterazione, ma se fosse proseguita la sua esecuzione avrebbe potuto incontrare le reti r3 e r4 , che hanno la stessa affidabilità a posteriori, quindi, si sarebbe potuta verificare la necessità di effettuare una scelta rispetto all’ordinamento delle reti. 6.6.2 Algoritmo pesato Una caratteristica negativa dell’Inclusion Based è che nel calcolo degli insiemi massimamente consistenti non viene considerata la posizione, all’interno di ciascuna lista di ogni rete, dei soggetti. Viene considerata solo l’affidabilità delle sorgenti. In questo modo non si usa una parte molto importante delle convinzioni delle reti, ovvero le preferenze tra i soggetti selezionati nelle prime posizioni. Un metodo che cerca di usare anche questa informazione è l’algoritmo pesato che assegna un punteggio che è inversamente proporzionale alla distanza del codebook della classe dal vettore in ingresso. CAPITOLO 6. FACE RECOGNITION SYSTEM 93 Sia il sistema composto da N reti neurali e si debbano identificare N C soggetti: indichiamo con dik la distanza euclidea tra il nodo della i-esima rete associato alla kesima classe e con S l’insieme dei Good trovati con le risposte. C(st ) indica la classe associata all’t-esimo insieme Good trovato. Inoltre indichiamo con Ri il vettore dei nodi della rete i-esima, ordinato secondo la distanza euclidea tra i suoi nodi ed il pattern mostrato in ingresso, un suo elemento, ri0 , conterrà la prima risposta della rete: la classe che ha il codebook più vicino al pattern in input. Con Ai indichiamo l’affidabilità a posteriori dell’i-esima rete. Il metodo consiste nei seguenti passi: 1. A tutte le risposte delle reti rio (risposta dell’i-esima rete nella posizione oesima) viene associato un peso cosı̀ calcolato: ∀rio (1 ≤ i ≤ N, 1 ≤ o ≤ N C) pio = 1 o Il peso di ogni risposta è inversamente proporzionale alla posizione occupata nel vettore delle risposte Ri . Più lontana dalla cima della lista sarà la posizione della risposta e minore sarà il peso associato a quella risposta; 2. Viene associata una coppia di pesi anche ad ogni insieme Good: P Ai pio ∀st ∈ S Pa (st ) = rio ∈st N ∀st ∈ S Pd (st ) = N X diC(st ) i=1 Pa è pari alla somma dei prodotti tra i pesi delle risposte e l’affidabilità della rete che ha dato quella risposta presenti nell’insieme Good. Il secondo peso Pd è lo stesso usato nel metodo Inclusion Based ottimizzato. 3. Il Good più credibile secondo questo algoritmo è quello associato al peso Pa maggiore. Nel caso in cui più insiemi Good hanno lo stesso valore Pa allora la scelta del good ricade in quello a cui è associato il peso Pd minore. Ad esempio, consideriamo nel nostro sistema l’analisi di tre livelli per le risposte e riportiamo un possibile caso in tabella 6.5. Con il condizionamento Bayesiano troviamo le affidabilità a posteriori per le cinque reti (tabella 6.6) e gli insiemi delle massime consistenze (tabella 6.7). La rete numero cinque ha dato tutte risposte che sono in conflitto con quelle delle altre reti, per questa ragione la sua affidabilità a posteriori è pari a zero. CAPITOLO 6. FACE RECOGNITION SYSTEM 94 RET E1 RET E2 RET E3 RET E4 RET E5 Livello 1 7 7 4 4 3 Livello 2 25 6 22 18 17 Livello 3 10 1 6 23 10 Tabella 6.5: Risposte reti (esempio dell’Algoritmo Pesato) RET E1 Affidabilità RET E2 RET E3 RET E4 RET E5 0.321429 0.610714 0.61074 0.321429 0 Tabella 6.6: Affidabilità a posteriori (esempio dell’Algoritmo Pesato) Soggetto 7 RET E1 RET E2 X X Soggetto 6 X Soggetto 4 RET E3 RET E4 RET E5 X X X Tabella 6.7: Insiemi Good (esempio dell’Algoritmo Pesato) RET E1 RET E2 RET E3 RET E4 RET E5 Soggetto 7 1.9914 1.9924 1.9990 1.9628 1.8550 Soggetto 6 1.9959 1.9985 1.9932 1.9756 1.8751 Soggetto 4 1.9938 1.9940 1.9930 1.9610 1.8325 Tabella 6.8: Distanze euclidee tra codebook e pattern in ingresso (’esempio dell’Algoritmo Pesato) L’algoritmo pesato necessita però anche di un altro dato per poter essere inizializzato: le distanze dai codebook di ogni nodo delle immagini testate. Queste sono riportate in tabella 6.8. Con questi dati può partire l’algoritmo pesato. Per prima cosa si calcolano i pesi associati alle risposte per ogni rete (tabella 6.9), si calcolano i pesi solo per i soggetti che sono presenti negli insiemi di good, che sono i soli che verranno utilizzati. RET E1 RET E2 RET E3 RET E4 RET E5 Soggetto 7 1 1 - - - Soggetto 6 - 0.5 0.33 - - Soggetto 4 - - 1 1 - Tabella 6.9: Pesi associati alle risposte delle reti (esempio dell’Algoritmo Pesato) CAPITOLO 6. FACE RECOGNITION SYSTEM 95 Con i pesi di tabella 6.9 e le distanze euclidee di tabella 6.8 si ottengono i due pesi Pd e Pa per ogni insieme Good (la tabella 6.10 contiene per ogni rete e per ogni insieme Good il peso della rete moltiplicato per il peso associato a quella risposta per quella rete). RET E1 Soggetto 7 RET E2 0.321429 0.610714 Soggetto 6 0 Soggetto 4 0 RET E3 RET E4 RET E5 0 0 0 0.1864 9.8006 0 0 0.1017 9.8383 0 0.1864 9.7743 0.305357 0.201536 0 0.610714 0.321429 Pa (st ) Pd (st ) Tabella 6.10: Calcolo dei pesi degli insiemi Good (esempio dell’Algoritmo Pesato) Si verifica quali sono gli insiemi dei Good con il peso Pa maggiore, in questo caso sono gli insiemi associati al soggetto 7 e al soggetto 4. Visto che la condizione precedente non è stata sufficiente per arrivare a una risposta univoca, allora si verifica l’ulteriore condizione che consiste nel ricercare il peso Pd minore. In questo caso il Good che ha il Pd minore è quello associato al soggetto 4 che sarà, quindi, anche la risposta del sistema. 6.7 Numero delle risposte Il numero delle risposte per ogni rete non è un parametro fisso. La scelta del valore di livelli da usare per ogni rete dipende dal tipo di immagine che va ad analizzare: maggiore è la possibilità di confondere immagini di soggetti diversi maggiore dovrà essere il numero di livelli da analizzare; al contrario, se l’immagine è abbastanza esplicativa saranno sufficienti anche uno o due livelli, anzi è controproducente aumentare il numero di livelli in questo caso, perché si andrebbero a creare troppi conflitti e ciò porterebbe ad una mancata identificazione del soggetto. Un numero fisso di livelli è poco efficiente perché non consente di valutare opportunamente l’immagine presentata alle reti [22]. Per questo esiste la possibilità di impostare dinamicamente il numero delle risposte di ogni rete, in base al numero dei conflitti trovati. Invece di fermarsi ad analizzare un numero fisso di risposte e cercare i conflitti fra queste, si analizzano le risposte finchè non sia raggiunto un numero prestabilito di insiemi massimamente consistenti. Il numero delle risposte delle reti è quindi variabile in base al numero dei Good trovati, finchè non sarà almeno pari a quello di una soglia prefissata. In questo modo si garantisce che ci sarà sempre un accordo fra le reti. CAPITOLO 6. FACE RECOGNITION SYSTEM 6.8 Modulo per la retroazione Questo componente si occupa di aggiornare la conoscenza delle singole reti sulla base dell’output generato dalla funzione di sintesi utilizzata. Come abbiamo visto fino ad ora, l’FRS qui proposto usa i contributi di diverse reti neurali per formulare una risposta di sintesi sull’identità di un soggetto. Per la sua architettura il sistema è poco sensibile ai cambiamenti limitati ad una sola caratteristica del soggetto, infatti, grazie al condizionamento bayesiano una rete che sbaglia nel riconoscimento vedrà via via diminuire la sua affidabilità. Dato che poi l’affidabilità delle reti è usata negli algoritmi di sintesi per la risposta, il contributo della rete che sta sbagliando sarà sempre minore e tenderà, con il passare del tempo, a zero. Ciò se da un lato consente al sistema di riconoscere soggetti che cambiano una loro caratteristica, rende lo stesso poco incline a gestire un ambiente in evoluzione. Se ad esempio un soggetto, in fase di training della rete deputata al riconoscimento della bocca, ha la barba corta e, successivamente, decide di farla crescere, si arriverà ad un punto in cui l’immagine della sua bocca non sarà più associata a lui, ma ad un altro soggetto, precisamente a colui che ha il codebook, associato al nodo di uscita, più vicino a quella nuova immagine. Se le altre reti continuassero ad associare il soggetto alla giusta identità, nonostante il cambiamento sulla zona bocca, allora non ci sarebbero problemi di identificazione. Per questo sarebbe più utile aggiornare il sistema con la nuova conoscenza rappresentata dall’immagine che ha assunto il soggetto. Allo stesso tempo si deve, però, escludere la possibilità che il sistema aggiorni la sua conoscenza con troppa frequenza. Una eccessiva attenzione su di una caratteristica, che risulta molto mutabile nel tempo, potrebbe causare un numero esagerato di riaddestramenti, e questo non sempre è un fatto positivo; pensiamo, ad esempio, ad un soggetto che a giorni alterni indossa occhiali da vista e lenti a contatto. In questo caso non si dovrebbe aggiornare la conoscenza, perché la caratteristica non cambia stabilmente nel tempo, ma ha una semplice variabilità. Riaddestrare in questo caso sarebbe poco utile o addirittura deleterio: non riaddestrando si avrebbe un riconoscimento nel 50% delle volte, riaddestrando ad ogni cambiamento, invece, non si identificherebbe mai la feature di quel soggetto, visto che si aggiorna la conoscenza che la riguarda ma essa è già cambiata nel frattempo! Per tenere conto dei soli cambiamenti ”stabili” si è usato un approccio basato sul concetto di finestra temporale: si tiene traccia di ogni cambiamento per ogni feature e, contemporaneamente, si controlla se, nelle successive analisi dello stesso soggetto, 96 CAPITOLO 6. FACE RECOGNITION SYSTEM quella caratteristica mantiene la sua modifica, si riaddestra solo nel caso in cui la modifica duri per un tempo maggiore o uguale all’ampiezza della finestra temporale stabilita. In questo modo evitiamo il caso dell’esempio precedente, con il soggetto in possesso di una caratteristica molto variabile, limitando il numero di riaddestramenti, che sono comunque abbastanza onerosi in termini di tempo di calcolo e di sforzo computazionale. Sia immi il frammento dell’immagine contenente la feature analizzata dalla rete ri , definiamo con S il soggetto identificato dalla funzione di sintesi del sistema, e con sik il soggetto i nella k-esima posizione delle lista ordinata in base alla distanza delle risposte di una LVQ. Il metodo che si occupa della retroazione si attiva ad ogni immagine da analizzare e consiste nell’esecuzione dei seguenti passi: 1. Per ogni rete ri si confronta S con i k sik usati per trovare i good. Se S 6= sik per ogni k, allora salvo il frammento immi nella directory temporanea tempSi del soggetto S relativa alla rete i. Se S = sik per uno dei k, si svuota la directory temporanea tempSi ; 2. Se in tempSi ci sono almeno windowlength campioni allora si spostano in riaddSi le immagini di tempSi , eliminando, se presenti, le immagini che si trovavano in riaddSi ; 3. si fa partire il retraining per la rete ri usando le immagini di riaddSi per il soggetto S e le immagini più recenti per tutti gli altri soggetti (se ci sono immagini nella loro directory di riaddestramento si usano quelle, altrimenti le immagini originali del training set). Questo algoritmo è inserito nella sequenza degli altri moduli e, quindi, sarà eseguito per tutte le immagini da analizzare presenti nel test-set. E’ importante notare inoltre che ci sarà sempre un limite per la dimensione della finestra oltre il quale per ogni dataset il sistema sarà in grado di filtrare tutti i cambiamenti, impostando un valore oltre questo limite il sistema si comporta come un sistema non retroazionato. Con questo approccio si vede come aver diviso il problema principale negli N sotto problemi sia un vantaggio evidente: il tempo necessario per il training di una rete neurale è infatti proporzionale alla dimensione del pattern in ingresso. Nel caso si fosse voluto fare il training di una rete neurale per l’identificazione del volto intero, il tempo necessario sarebbe stato superiore a quello dell’addestramento di una rete 97 CAPITOLO 6. FACE RECOGNITION SYSTEM neurale costruita per riconoscere una sola caratteristica che, quindi, ha come input un’immagine di limitate dimensioni. 6.9 Schema finale del sistema Dopo aver analizzato i blocchi che formano il sistema di riconoscimento qui presentato, riportiamo in figura 6.3 uno schema riassuntivo dell’architettura e dei collegamenti logici tra i vari moduli funzionali. Nell’esempio in figura si vede che le reti associate alle caratteristiche ”naso” e ”bocca” non hanno fornito un contributo alla scelta del gruppo e per questo sono candidate ad essere riaddestrate, ma c’è una differenza tra le due, infatti, la rete associata al naso ha individuato il soggetto 1 al secondo posto nella sua lista dei nodi e, per questo, il suo addestramento è considerato ancora buono, al contrario la rete associata alla bocca non ha il soggetto numero 1 nelle prime posizioni e, quindi, l’addestramento è necessario. L’immagine che ha causato il mancato riconoscimento per la rete della bocca è, quindi, conservata nel buffer relativo a quella rete per quel soggetto, finchè non sono state accumulate windowlength mancate identificazioni di quel soggetto per la rete della bocca. Nel caso la rete della bocca dovesse ricominciare a individuare il soggetto numero 1, allora viene svuotato il buffer a lei relativo ed è azzerato anche il conteggio della finestra temporale, dato che la modifica alla bocca del soggetto 1 è stata solo temporanea. Nel capitolo successivo, sperimenteremo il sistema su dataset di volti usati come benchmark per il riconoscimento facciale, per testare l’effettivo funzionamento del sistema cosi composto. 98 CAPITOLO 6. FACE RECOGNITION SYSTEM Figura 6.3: Architettura del sistema di riconoscimento facciale 99 Capitolo 7 Risultati Sperimentali Verranno qui riportati i risultati ottenuti con il sistema di riconoscimento facciale descritto nei capitoli precedenti. Il sistema è nella sua configurazione che comprende cinque reti neurali, deputate al riconoscimento di bocca, naso, fronte, occhio sinistro ed occhio destro. Di ogni rete neurale verranno prese in considerazione le prime due risposte, questa scelta influenza tutta la parte del condizionamento e delle funzioni di sintesi, ma anche la parte relativa alla retroazione che considera le risposte per avviare o meno il processo di apprendimento delle reti in base agli errori che esse compiono. Al fine di sperimentare le caratteristiche del sistema di retroazione si è dapprima usato un database di riferimento nel campo della ricerca per il riconoscimento facciale, il database ORL, ma in seguito sono state apportate modifiche ai soggetti ivi contenuti per simulare una loro evoluzione temporale. Nel momento in cui si sta scrivendo questa tesi è comunque in fase di assegnazione un stage formativo per la realizzazione di un database ad-hoc per poter meglio testare il sistema con soggetti reali. 7.1 7.1.1 Database ”ORL” Caratteristiche Database Questo database, originariamente creato dall’Olivetti Research Laboratory dell’università di Cambridge, poi diventati gli AT&T Laboratories, contiene le immagini di volti scattate nel laboratorio stesso tra l’aprile del 1992 e l’aprile del 1994. Ci sono dieci immagini differenti per 40 soggetti distinti. Per alcuni soggetti le foto sono state scattate in tempi differenti, variando illuminazioni, espressioni del volto (occhi 100 CAPITOLO 7. RISULTATI SPERIMENTALI chiusi e aperti, sorridenti e non sorridenti) o dettagli (occhiali, senza occhiali). Tutte le immagini sono state acquisite con uno sfondo nero omogeneo e contengono soltanto il volto in posizione frontale (con una piccola tolleranza sull’inclinazione laterale del volto). Tutti i file sono in formato PGM ed hanno una dimensione di 92x112 pixels, con 256 livelli di grigio. In figura 7.1 sono visibili alcune delle immagini contenute in questo database. Figura 7.1: Alcune delle immagini del database ”ORL” Nei test successivi non sono stati utilizzati tutti i soggetti del database ”ORL”, ma ne sono stati selezionati 20. 7.1.2 Training delle reti Dai venti soggetti selezionati dal database ”ORL” sono state scelte quattro immagini diverse dalle dieci disponibili per ogni soggetto per utilizzarle durante la fase di 101 CAPITOLO 7. RISULTATI SPERIMENTALI training. In totale, quindi, ogni rete neurale aveva a disposizione, per questa fase, 80 immagini diverse della feature che doveva imparare a riconoscere. Durante la fase di training si sono addestrate le cinque reti con varie combinazioni di parametri per trovare quelle che meglio si adattavano ad ogni problema di classificazione. I parametri che influenzano l’apprendimento sono quelli che compaiono nella formula del tasso di apprendimento, che va a modificare i pesi delle connessioni tra i nodi di una rete neurale. Il tasso di apprendimento è: η = αe−β×epoca I parametri sono α, β ed il numero di epoche di durata dell’addestramento. Il parametro α varia in genere tra 0.1 e 0.25; nelle nostre prove abbiamo testato i valori 0.05, 0.10, 0.15, 0.20 e 0.25. Per β i valori sono dell’ordine di 0.001 o comunque molto piccoli; usare un valore molto basso per β causa l’allungamento del numero di epoche per mantenere lo stesso livello di riconoscimento e, quindi, si è testato solo la coppia di valori 0.001 e 0.0001 per β. Il numero di epoche rappresenta il numero di iterazioni che compie l’algoritmo di apprendimento, nei nostri test quello che ha dato il miglior compromesso tra tempo di calcolo e minor numero di errori è stato ”10000 epoche” e, quindi, si è deciso di usare sempre questo valore. La condizione per cui si arresta l’apprendimento considera sia il numero di epoche (che non deve essere inferiore al numero a quello impostato, 10000 nel nostro caso), sia la stabilizzazione della curva dell’errore, se per un numero abbastanza elevato di epoche non ci sono più di 10 errori di identificazione, allora si termina l’addestramento prima del minimo numero di epoche impostate. L’andamento degli errori, che le reti hanno commesso durante l’apprendimento con i parametri impostati come descritto, sono visibili in figura 7.2, sono anche visibili le curve logaritmiche che interpolano la distribuzione dei valori. Dalla figura 7.2 si vede che in genere sono migliori valori piccoli per α, che garantiscono un numero di errori più basso quando la funzione d’errore si stabilizza. 7.1.3 Test delle singole reti Per stabilire quali sono i valori dei parametri che danno i risultati migliori nel riconoscimento delle immagini che avevamo a disposizione, abbiamo testato il riconoscimento delle immagini su tutte quelle che erano presenti nel database ”ORL”, quindi, ogni soggetto ha, oltre alle quattro immagini usate per la fase di training, 102 CAPITOLO 7. RISULTATI SPERIMENTALI 103 (a) Bocca (b) Naso (c) Fronte (d) Occhiosinistro (e) OcchioDestro Figura 7.2: Andamento degli errori in funzione delle epoche di addestramento CAPITOLO 7. RISULTATI SPERIMENTALI 104 altre sei nuove immagini da sottoporre alle reti per verificarne le percentuali di riconoscimento. Valutiamo dapprima le reti neurali indipendentemente l’una dall’altra, per verificare che abbiano buone prestazioni grazie all’addestramento ricevuto. I risultati con le percentuali del riconoscimento per le singole reti sono riportati in tabella 7.1, le percentuali si riferiscono al solo primo livello della LVQ, cioè si considera corretto solo quel riconoscimento che ha come nodo vincitore la classe giusta, il riconoscimento è considerato non corretto in tutti gli altri casi. Dalla tabella si vede come, a parità di epoche di addestramento, la combinazione Epoche α β RET E1 RET E2 RET E3 RET E4 RET E5 10000 0,05 0,0001 57,15% 77,78% 81,64% 60,87% 67,15% 10000 0,10 0,001 71,98% 76,81% 84,54% 65,22% 70,05% 10000 0,15 0,001 71,98% 72,94% 83,57% 63,28% 69,56% 10000 0,20 0,001 70,05% 74,88% 79,71% 65,70% 70,05% 10000 0,25 0,001 67,15% 70,53% 79,71% 63,28% 66,18% Tabella 7.1: Percentuali di riconoscimento singole reti sul database ”ORL” α = 0, 10 e β = 0, 001 sia la migliore per tre reti neurali, meno che per la seconda, deputata al riconoscimento della bocca, per la quale la miglior combinazione di parametri risulta α = 0, 05,β = 0, 001 e per la quarta in cui è migliore la coppia α = 0, 20,β = 0, 001. Anche per la quinta rete (Occhio Destro) abbiamo usato i parametri α = 0, 20,β = 0, 001 dato che avevano lo stesso riconoscimento che con la coppia α = 0, 10,β = 0, 001 per la quarta rete (Occhio sinistro). Abbiamo impostato questi valori che sono risultati i migliori all’interno del codice in modo da far si che, in caso di riaddestramento richiesto dal modulo della retroazione, fossero usati, per ogni rete, i parametri che in questa fase preliminare di training hanno dato i risultati migliori (tabella 7.2). RET E1 RET E2 RET E3 RET E4 RET E5 α 0.15 0.05 0.10 0.20 0.20 β 0.001 0.0001 0.001 0.001 0.001 epoche 10000 10000 10000 10000 10000 Tabella 7.2: Parametri usati per le singole reti CAPITOLO 7. RISULTATI SPERIMENTALI 7.1.4 105 Test del sistema con il database ”ORL” In questo paragrafo descriviamo i risultati e le prestazioni del sistema, con e senza la retroazione, che si hanno, analizzando il database ”ORL”. Come detto, per ognuno dei 20 soggetti selezionati, sono presenti 10 immagini intere del volto, che sono state sezionate in 5 sotto-immagini, una per ogni caratteristica che le reti neurali sono state addestrate a riconoscere. I risultati del riconoscimento, da parte delle singole reti sul test set descritto, sono riportati in tabella 7.3, mentre i risultati ottenuti complessivamente con gli algoritmi di sintesi sono tabellati nella 7.4. E’ stato testato il sistema con diverse combinazioni del parametro W (ampiezza finestra) che influenza la frequenza dei riaddestramenti. Per il calcolo degli insiemi dei Goods e dei NoGoods sono stati presi in considerazione i primi due livelli di ogni LVQ. Questa scelta influenza il numero dei conflitti ed il numero degli accordi. Con un solo livello per le risposte, si rischia di non trovare un accordo tra le reti, con troppi livelli, invece, si rischia di avere troppi accordi. RET E1 RET E2 RET E3 RET E4 RET E5 Senza Retroazione 71,98% 77,78% 84,54% 65,70% 70,05% Retroazione W=6(AlgPes/IncBW) 71,98% 77,78% 84,54% 65,70% 70,05% Retroazione W=4 (da AlgPes) 71.98% 77,78% 85,02% 61,35% 69,08% Retroazione W=4 (da IncBW) 73,43% 76,32% 85,02% 65,70% 67,73% Tabella 7.3: Risultati del riconoscimento delle singole reti in varie configurazioni del sistema La differenza tra la le due retroazioni, con la finestra ampia 4 epoche, consiste nell’algoritmo di selezione usato per individuare il soggetto; nel primo caso si è usato l’Algoritmo Pesato, nel secondo l’Inclusion Based Pesato. L’esempio con W=6 è emblematico per quanto riguarda una delle criticità della scelta di questo parametro: in questo caso, infatti, non è mai stata verificata la condizione necessaria per il riaddestramento di una qualche rete, ciò a causa della finestra temporale troppo lunga usata in questo caso, la retroazione, a seguito di questa scelta, risulta trasparente al sistema e le percentuali di riconoscimento sono le stesse che in quello non retroazionato. In tabella 7.3 si può vedere come, con il riaddestramento, le percentuali di riconoscimento delle reti cambiano, ma non è detto che cambino positivamente, questo succede in base al tipo di immagini che subiscono il cambiamento oltre che dal tipo dello stesso. Nel caso della rete 3, quella dedicata al riconoscimento della fronte, è CAPITOLO 7. RISULTATI SPERIMENTALI 106 probabile che qualche soggetto abbia cambiato la sua pettinatura in modo stabile e che, grazie al riaddestramento, si è riusciti a riconoscere la nuova pettinatura e ad associarla a quello specifico soggetto. Nel caso delle reti 4 e 5, quelle dedicate agli occhi destro e sinistro, le percentuali di corretto riconoscimento diminuiscono, ciò è dovuto al fatto che nel database ”ORL” alcuni soggetti presentano delle modifiche temporanee in quella zona (indossano occhiali in alcune fotografie ed in altre non li indossano), se si è addestrata la rete a riconoscere il soggetto senza occhiali molto probabilmente le immagini con gli occhiali causeranno una mancata identificazione. Se il numero delle mancate identificazioni consecutive sarà sufficiente a far partire il riaddestramento (quindi se si avranno un numero sufficiente di conflitti ininterrotti tali da superare la grandezza della finestra temporale), il sistema riaddestrerà la rete in questione con le nuove immagini. Se poi quel soggetto tornerà all’immagine precedente, si dovrà attendere una nuova finestra temporale per poter riaddestrare la rete in questione, che, nel frattempo, però continuerà a non riconoscere il soggetto che è cambiato. Come si può capire anche da quest’ultimo esempio, la scelta del parametro W dipende dal tipo di ambiente in cui opera il sistema (più o meno variabile), non esiste una scelta migliore in assoluto, ma dipende sempre dai soggetti che il sistema dovrà essere in grado di riconoscere nonchè dalle loro immagini. Infatti, per l’esempio delle reti degli occhi, descritto in precedenza avendo una finestra temporale più lunga si sarebbe filtrato il cambiamento che ha indotto il riaddestramento. No Retroaz. MA IN 91,30% 84,54% Retroaz. con W=6 Retroaz. con W=4 MA IN MA IN 91,30% 84,54% 89,37% 86,47% Tabella 7.4: Risultati del riconoscimento sul test-set ORL degli algoritmi di selezioni nelle configurazioni testate Allungare la finestra temporale oltre una certa soglia potrebbe portare all’avere un sistema non retroazionato, in questo caso tutte le variazioni che subiscono le caratteristiche di un soggetto non sarebbero considerate abbastanza stabili per effettuare un riaddestramento. Questo è proprio il caso del database ORL in cui, per alcuni soggetti, le caratteristiche si modificano, ma queste modifiche sono troppo temporanee per poterle definire stabili e, quindi, risulta corretto non considerarle per effettuare la retroazione, ma vanno filtrate e considerate delle semplici oscillazioni dell’aspetto dei soggetti. CAPITOLO 7. RISULTATI SPERIMENTALI Il database ORL, quindi, non ci consente di testare a dovere il sistema della retroazione. Il database ORL è ottimo per valutare le prestazioni di un sistema di riconoscimento ”statico”, in cui non sia prevista una naturale evoluzione dei soggetti da riconoscere. Nel caso del nostro sistema, questo database presenta, però, dei limiti sia per quanto riguarda la quantità delle immagini sia per la qualità delle stesse. Le immagini del database ORL, infatti, non possano adeguatamente rappresentare una evoluzione temporale dei soggetti, inoltre, il loro numero è troppo limitato e non è sufficiente per valutare se il soggetto ha modificato una sua caratteristica oppure no. 7.2 Database ”ORL” modificato Il database ”ORL” è costituito da 40 soggetti, ognuno dei quali ha 10 immagini, per il test di un sistema di riconoscimento, che auto aggiorni la sua conoscenza, il numero delle immagini è troppo esiguo e non consente di testare a dovere il meccanismo della retroazione. Se, ad esempio, impostiamo una finestra temporale pari a 4, allora il sistema necessita di 4 cambiamenti per quella feature per poter avviare una nuova fase di training per quella rete. Se le immagini sono soltanto 10 per ogni soggetto, è facile immaginare che il nuovo training possa non partire affatto (a causa del soggetto che non cambia molte volte consecutivamente) o che il nuovo training sia poco utile a causa del limitato numero restante di immagini da analizzare e, quindi, ci sia solo un limitato vantaggio rispetto al sistema non retroazionato. Per le suddette ragioni, nel momento in cui si sta scrivendo questa tesi, è in fase di realizzazione un database ad-hoc per testare il sistema retroazionato. Questo nuovo database sarà composto dalle immagini dei volti di alcuni soggetti ripresi anche a distanza di tempo, in modo che si possa testare, in modo adeguato, la capacità del sistema retroazionato nel seguire il cambiamento nelle caratteristiche peculiari di ogni individuo a lui conosciuto, mantenendo funzionali il più alto numero di reti neurali, consentendo di usare quanti più pareri possibili al fine di formulare la soluzione di sintesi per la scelta del Good più probabile con l’Inclusion Based Pesato o l’Algoritmo Pesato. Dal momento, però, che non è ancora disponibile questo database si è modificato l’insieme delle immagini contenute in quello ”ORL” per cercare di simulare un’evoluzione nel tempo dei soggetti che vi fanno parte. Le modifiche che abbiamo apportato a questo database sono consistite in operazioni di fotoritocco su alcuni soggetti, con l’aggiunta di barba, occhiali ed altri cambiamenti artificiali delle 107 CAPITOLO 7. RISULTATI SPERIMENTALI (a) Immagine origi- (b) Immagine monale dificata Figura 7.3: Esempio delle modifiche apportate ai soggetti contenuti in ORL caratteristiche analizzate dalle reti, le stesse caratteristiche aggiuntive sono state apportate ad un numero variabile di immagini originali del dataset, in modo da creare nuove immagini dello stesso soggetto con qualche cambiamento in alcune delle sue caratteristiche. Alcune altre immagini dei 20 soggetti selezionati, invece, sono state modificate aggiungendo delle caratteristiche prelevate dagli altri 20 soggetti del database originale ”ORL” o da altri database di volti come il ”FERET” [23], database sponsorizzato dal dipartimento della difesa degli USA, il DARPA. In alcune immagini le modifiche hanno riguardato più caratteristiche del soggetto, tenendo comunque conto di una certa evoluzione cronologica nella sequenza delle immagini delle caratteristiche del soggetto. Il database in questione è, quindi, basato su quello ”ORL” o, volendo essere più precisi, il database ORL è un sotto insieme di questa versione modificata, in quanto sono state conservate tutte le immagini originali dell’ORL ed in più sono state aggiunte altre immagini derivate con le modalità precedentemente descritte. Per questo motivo, per le reti si sono usati gli stessi pesi ottenuti dal training sul database ORL originale. 7.2.1 Test delle reti con il database ”ORL” modificato Dopo aver modificato il database ”ORL” aumentando il numero delle immagini in maniera artificiale, ci si aspetta di avere risultati di riconoscimento per le singole reti più bassi di quelli che si sono avuti con il db ORL standard. In tabella 7.5 sono riportati i valori di corretto riconoscimento di ogni rete LVQ; essi sono stati ottenuti 108 CAPITOLO 7. RISULTATI SPERIMENTALI 109 solo considerando il primo livello delle risposte, ciò può essere utile per capire la validità dell’addestramento. Nella prima riga sono riportati i risultati che le singole reti neurali hanno ottenuto Retroaz. Ampiezza finestra RET E1 RET E2 RET E3 RET E4 RET E5 No Retroazione - 65,30% 53,06% 69,67% 67,93% 74,36% W=4 68,80% 59,76% 77,26% 67,93% 73,76% W=6 71,72% 53,35% 71,72% 65,89% 74,64% W=8 69,09% 55,39% 74,64% 68,22% 74,64% W=4 73,18% 64,14% 80,76% 67,93% 71,72% W=6 72,83% 61,22% 76,67% 67,34% 69,97% W=8 66,47% 53,06% 71,72% 67,93% 74,64% IncBW WA Tabella 7.5: Risultati del riconoscimento delle singole reti in varie configurazioni del sistema con il database ORL modificato nel sistema configurato senza la retroazione, ovvero con la conoscenza delle reti che deriva dal solo addestramento iniziale. Nelle righe successive, invece, ci sono le percentuali delle singole reti in caso di retroazione a partire dal soggetto individuato dai due algoritmi di selezione, l’Inclusion Based Pesato (IncBW) e l’Algoritmo Pesato (WA). Ognuno di questi algoritmi è stato testato per diversi valori del parametro ”ampiezza finestra” che determina il numero di campioni che è necessario ottenere da quel soggetto per poter considerare stabile il cambiamento ed avviare quindi il riaddestramento per quella rete. 7.2.2 Test del sistema con il database ORL modificato In tabella 7.6 sono riportati i risultati del riconoscimento da parte degli algoritmi di sintesi Inclusion Based e Algoritmo Pesato sul database modificato. Si può notare dalla tabella come il sistema retroazionato riesca a riconoscere i soggetti in un numero più elevato di casi rispetto al sistema senza la retroazione. Si può inoltre notare un degrado delle prestazioni del sistema non retroazionato fra l’analisi del database ORL (tabella 7.4) e l’analisi del database aumentato a partire da quello ORL (tabella 7.6). Se un soggetto è riconosciuto nel 100% dei casi dal sistema non retroazionato aver aggiunto delle caratteristiche causa il fallimento da parte di una rete neurale. Se le altre reti continuano a riconoscere quel soggetto, allora non ci sono problemi e, la rete che sbaglia verrà ignorata ai fini del giudizio finale, col meccanismo della revisione della conoscenza basata sul condizionamento Bayesiano: CAPITOLO 7. RISULTATI SPERIMENTALI 110 la sua affidabilità sarà molto bassa e gli algoritmi di selezione non la riterranno affidabile. Se, però, oltre alla rete che non riconosce più una caratteristica perché è stata modificata artificialmente vi si aggiungono anche altre, allora il risultato degli algoritmi di sintesi non è prevedibile a priori e dipende dall’insieme Good che essi ritengono il più credibile. Per questo motivo, riaddestrare una sola rete a riconoscere la nuova caratteristica del soggetto consente di migliorare anche le prestazioni di riconoscimento del sistema nel caso in cui ci siano nel database dei soggetti con caratteristiche significativamente diverse da quelle per cui le reti neurali erano state addestrate. Questo è il caso del database modificato e, quindi, il parametro ”finestra temporale” influenza le percentuali di riconoscimento. E’ interessante notare che non esiste un valore ottimale di questo parametro in assoluto, ma la sua scelta dipende dal dataset che si sta analizzando. In un contesto molto variabile conviene impostare ad un valore alto il parametro, in modo da filtrare le variazioni che coinvolgono le caratteristiche dei soggetti, senza per questo precludere al sistema la possibilità di modificare la conoscenza sui soggetti. In quel caso, infatti, riaddestrare la rete neurale associata a quella caratteristica potrebbe essere controproducente, perché si potrebbe riaddestrare su di una caratteristica che non si è evoluta, ma si è soltanto modificata temporaneamente e, quindi, oltre che perdere inutilmente del tempo per addestrare di nuovo le reti neurali non si avrebbe la garanzia che il nuovo addestramento possa portare ad effettivi miglioramenti nel riconoscimento di quella caratteristica. No Retroaz. WA IncBW 89,80% 77,55% Retroaz. con W=8 Retroaz. con W=6 Retroaz. con W=4 WA IncBW WA IncBW WA IncBW 90,67% 82,22% 94,46% 82,22% 94,17% 81,63% Tabella 7.6: Risultati del riconoscimento sul test-set ORL modificato degli algoritmi di selezioni nelle configurazioni testate Dalla tabella si evince, inoltre, che per il dataset in questione la lunghezza ottimale della finestra temporale risulta essere quella di 6 campioni sia per l’Algoritmo Pesato sia per l’Inclusion Based. Per entrambi questi algoritmi di selezione, aumentare o diminuire il valore della finestra comporta un decadimento delle prestazioni. In un contesto reale di utilizzo del sistema è, quindi, consigliabile settare il valore per questo parametro ad un valore relativamente alto, cosicchè il sistema possa funzionare in maniera non retroazionata fino ad un certa soglia di cambiamento e CAPITOLO 7. RISULTATI SPERIMENTALI attivare la retroazione solo quando essa è strettamente necessaria. Un grande vantaggio del sistema ibrido proposto in questa tesi è quello di poter addestrare una sola rete neurale per volta invece che una rete neurale unica per l’intero volto, i tempi di addestramento sono funzione dei pattern di ingresso alle reti neurali e dover riaddestrare una rete molto più piccola si traduce in un grande risparmio di tempo e di capacità di calcolo. Ordine di arrivo dei soggetti Le prestazioni del modulo della retroazione sono influenzate dall’ordine di arrivo dei soggetti: quando un soggetto si presenta al sistema, in caso di conflitti, verranno memorizzate le immagini che hanno causato le risposte non concordi con la maggioranza, nel buffer di ampiezza <window lenght> relativo alla rete che ha sbagliato. Se lo stesso soggetto si presenta di nuovo, ci sarà un altro conflitto e verranno nuovamente salvate le immagini che lo hanno causato e cosi via per tutte le volte che lo stesso soggetto si ripresenterà al sistema di identificazione. Ciò potrebbe essere un problema, perché c’è sempre la possibilità che un soggetto erroneamente classificato e che, quindi, le immagini siano salvate in buffer non corretto. In questo caso si addestrerebbero delle reti con del materiale non idoneo, portando quella rete ad assumere da li in avanti un comportamento non desiderabile: associare l’identità di un soggetto a dei pattern che non sono effettivamente di quella persona. Il problema può essere evitato se la probabilità di presentarsi al sistema è uguale per tutti i soggetti in ogni istante. In tal modo anche se un soggetto è erroneamente identificato, potrebbe presentarsi quello corretto, che, venendo identificato, andrebbe a svuotare i buffer delle reti neurali a lui associati. Se, invece, la modalità con cui si presentano i soggetti non è random, ma ci sono delle sequenze in cui si presenta sempre lo stesso soggetto si potrebbero verificare dei problemi causati da non idonei addestramenti delle reti. Ad esempio, si pensi al caso in cui il soggetto ”Tizio” sia confuso con quello ”Caio” dal sistema. In un certo istante si presenta Tizio al sistema, ma questo lo identifica erroneamente come Caio. A questo punto ci saranno delle reti che hanno espresso la loro preferenza per Caio ed altre per Tizio. Considerato che, per il sistema, il soggetto corretto è Caio, si avranno delle immagini non attribuite a Caio (giustamente in quanto il soggetto in realtà è Tizio) che saranno memorizzate nel buffer del riaddestramento di Caio. 111 CAPITOLO 7. RISULTATI SPERIMENTALI 112 Se questo evento si ripete per un numero sufficiente di volte tale da far partire il riaddestramento di una rete neurale, allora andremo a riaddestrare una rete del soggetto Caio con dei dati che appartengono al soggetto Tizio. Con un training set sbagliato si porterebbe quella rete neurale ad avere la convinzione che quel soggetto sia Caio, confondendo ancora di più i due soggetti che si assomigliano! Se, invece, ad un certo punto si presentasse il vero Caio e non fosse già partito il riaddestramento per una sua rete, la situazione sarebbe recuperabile, in quanto la rete in questione vedrebbe che Caio non ha cambiato quella caratteristica e, quindi, si svuoterebbe il buffer per il riaddestramento di Caio. Possiamo quindi individuare due casi che sono gli estremi fra quelli possibili: nel primo, si presentano sempre gli stessi soggetti per un numero di volte consecutive variabile in base al soggetto, nel secondo, i soggetti si presentano alternandosi a vicenda. Ci si aspetta di ottenere percentuali di riconoscimento diverse in baso al fatto che l’ordine di arrivo dei soggetti causa un numero diverso di riaddestramenti, a parità delle altre variabili, quali utenti conosciuti dal sistema, parametri di addestramento delle reti, immagini dei soggetti che fanno parte del dataset, ecc. Si sono testati i valori di riconoscimento sul database modificato a partire da quello ”ORL”. In tabella 7.6 sono riportati i risultati del riconoscimento nel caso in cui gli stessi soggetti si ripresentino al sistema in modo continuo per un numero variabile di volte, in tabella 7.7 invece i soggetti si presentano in maniera alternata, prima uno e poi un altro fino all’ultimo e poi si ricomincia la serie con altre immagini dei soggetti. Come si può vedere i risultati dell’inclusion Based Pesato sono sempre miNo Retroaz. WA IncBW 89,80% 77,55% Retroaz. con W=8 Retroaz. con W=6 Retroaz. con W=4 WA IncBW WA IncBW WA IncBW 90,96% 81,63% 86,30% 83,97% 81,34% 86,59% Tabella 7.7: Risultati del riconoscimento sul test-set ORL modificato degli algoritmi di selezioni nelle configurazioni testate, cambiando ordine dei soggetti gliori del sistema non retroazionato e sono anche migliori dell’altro ordinamento dei soggetti. Invece, nel caso dell’Algoritmo Pesato, i risultati migliorano per la finestra temporale di ampiezza pari a 8, ma peggiorano in due casi rispetto sia al sistema non retroazionato sia nel caso del sistema retroazionato ma con l’altro ordinamento dei soggetti, è un segno evidente che qualcosa è andato male con i riaddestramenti che operati il sistema per quei valori di finestra temporale. Se si vuole usare l’Algoritmo Pesato per identificare i Good del sistema, allora non resta che limitare gli errati CAPITOLO 7. RISULTATI SPERIMENTALI addestramenti e, quindi, allo stato attuale del sistema, usare una finestra più ampia, cercando di rendere insufficiente il numero delle errate identificazioni che possono portare a riaddestrare la rete su di un training set mal formato. 7.3 Andamento delle affidabilità con il sistema retroazionato Uno dei cambiamenti che l’utilizzo della retroazione comporta nel sistema di riconoscimento facciale proposto consiste nel mantenere alto il livello dell’affidabilità a posteriori della rete che è stata riaddestrata. Succede ciò, perché la rete in questione riconosce una caratteristica che non avrebbe potuto riconoscere se fosse rimasta con la conoscenza acquisita durante la fase di training di tutte le reti. Ciò comporta per il sistema un benefit, in quanto, per la scelta del Good più credibile, gli algoritmi di sintesi utilizzano l’affidabilità a posteriori delle reti e gli insiemi Goods delle risposte concordi delle reti. Se una rete non è più in grado di riconoscere una caratteristica (a) senza Retroazione (b) con Retroazione Figura 7.4: grafico delle affidabilità a posteriori delle reti di un soggetto, con o senza retroazione 113 CAPITOLO 7. RISULTATI SPERIMENTALI non può contribuire alla scelta finale ed inoltre il suo mancato riconoscimento potrebbe indurre in errore l’intero sistema se alla rete che sbaglia se ne aggiungono anche altre che commettono il medesimo errore, indicando gli stessi soggetti. In questo caso si avrebbe un Good sbagliato che potrebbe essere quello più probabile per il sistema ma quello associato al soggetto inesatto. Nei grafici di figura 7.4 sono visualizzati gli andamenti delle affidabilità a posteriori delle cinque reti neurali (sono indicate con i colori diversi) per uno specifico soggetto. Dal grafico si vede come gli accordi delle reti sono sempre ottimi e, per questo, il condizionamento Bayesiano non causa una sensibile diminuzione dell’affidabilità a priori, impostata a 0.9 per tutte le reti del sistema. In un certo istante, la rete della bocca comincia a non essere più in accordo con il gruppo, ciò perché la caratteristica a lei associata è stata modificata e, quindi, la rete in questione non identifica più quella come una caratteristica del soggetto giusto, ma la associa ad un altro soggetto che le altre reti del gruppo considerano sbagliato. Dopo che la rete in questione comincia a non individuare più il soggetto giusto, si attende che ciò accada per un numero consecutivo di volte pari ad una ampiezza della finestra. Questa sequenza deve essere ininterrotta per poter avviare il retraining, i tal modo, si può sia accumulare un numero sufficiente di immagini per riaddestrare la rete neurale che sta sbagliando sia controllare che il cambiamento è definitivo (nel senso della finestra temporale). Tale periodo è facilmente individuabile sul grafico delle affidabilità a posteriori ed è la distanza tra l’istante in cui il valore diminuisce di colpo (a causa di una caratteristica che comincia ad essere troppo diversa da quella associata al soggetto identificato dalle restanti reti) ed il momento in cui risale la prima volta (in cui la nuova caratteristica è riconosciuta dalla rete, grazie al nuovo addestramento ricevuto). Se questa differenza supera il valore di soglia, vuol dire che si è avuto un riaddestramento, altrimenti, se è di una grandezza minore, significa che il soggetto ha modificato temporaneamente la sua caratteristica che, però, è tornata ad essere riconosciuta con l’addestramento precedente. I picchi verso il basso, che sono presenti in coda al grafico in cui c’è stato il riaddestramento, rappresentano casi in cui la rete non è concorde con il gruppo e l’addestramento ricevuto in precedenza non è sufficiente a consentirle di riconoscere quella caratteristica che è cambiata ancora. In questi due casi, però, le mancate identificazioni da parte della rete neurale non sono abbastanza stabili per poter innescare il riaddestramento, quindi, dovrà essere lo strato di supervisione logico che sovrintende alle reti neurali a dover garantire una risposta corretta da parte del sistema. Se si 114 CAPITOLO 7. RISULTATI SPERIMENTALI dovesse stabilizzare il cambiamento della caratteristica per quel soggetto, allora si potrebbe effettuare un nuovo riaddestramento per la rete associata a quella feature che è oggetto del cambiamento. 7.4 Analisi dei risultati Nel caso del nostro dataset, i risultati migliori si sono ottenuti scegliendo una finestra temporale di ampiezza pari a 8 epoche ed anche se in alcuni casi la finestra impostata a 6 porta a risultati sensibilmente migliori, si ritiene la scelta di una finestra ampia 8 più sicura per evitare errati riaddestramenti. In figura 7.5 sono riassunti i risultati del riconoscimento del sistema, sia nella configurazione retroazionata sia in quella standard, dell’analisi dei volti contenuti nel database ”ORL” modificato. Figura 7.5: Percentuali di riconoscimento sul database modificato per i due algoritmi di selezione in caso di sistema retroazionato e in configurazione standard. Il sistema per la retroazione qui proposto, presuppone che le reti ed il sistema di sintesi facciano in maniera ottima il loro lavoro di identificazione, solo cosi si può garantire con certezza che il sistema possa aggiornare alla perfezione la conoscenza associata alle caratteristiche dei soggetti. Quanto migliori saranno le prestazioni del sistema di identificazione tanto migliori saranno quelle del sistema per la retroazione. Immaginiamo che il training delle reti sia perfetto per tutti i soggetti nel test set: ogni soggetto è identificato dal sistema di reti neurali multiple ed ogni rete neurale, a sua volta, identifica correttamente tutte le caratteristiche dei soggetti. Quando un soggetto comincia a mutare una sua caratteristica, ci sarà un momento in 115 CAPITOLO 7. RISULTATI SPERIMENTALI cui la rete che analizza quella caratteristica non lo riconoscerà più, associandola ad un soggetto diverso, quello verso cui l’immagine della caratteristica si sta spostando. Questo è il caso ideale in cui il sistema dovrebbe lavorare, ma in realtà non è cosi e sono possibili errori di identificazione sia da parte delle singole reti sia da parte del sistema logico che sovrintende alle risposte delle reti neurali. Per poter assicurare delle buone prestazioni al sistema della retroazione è, quindi, fondamentale che le singole reti forniscano risposte quanto più attendibili, in tal modo si potrebbero limitare i casi in cui si addestra una rete a riconoscere i soggetti sbagliati come abbiamo dimostrato che potrebbe accadere nei paragrafi precedenti. In un’ottica di irrobustimento del solo sistema della retroazione, si potrebbe implementare anche una funzione che selezioni in le immagini nel buffer di ogni soggetto e di ogni rete, verificando che le immagini nel buffer siano tutte più o meno simili fra di loro. Una implementazione potrebbe essere un algoritmo di clustering per le immagini contenute nel buffer, che consideri associate al giusto soggetto solo quelle del cluster più numeroso. 116 Conclusioni Con questo lavoro di tesi si è proposto un sistema biometrico per il riconoscimento degli individui attraverso l’analisi facciale. Il sistema ibrido è basato su reti neurali multiple, ognuna delle quali dotata di una propria affidabilità a priori, per l’analisi parallela delle caratteristiche del volto, utilizza inoltre il condizionamento Bayesiano per calcolare le affidabilità a posteriori delle reti. Il sistema cosi composto garantisce buone prestazioni per quanto riguarda il riconoscimento ed è inoltre robusto ai cambiamenti limitati delle caratteristiche del soggetto. Le immagini devono essere acquisite in modo da limitare le variazioni dovute alla luminosità ambientale ed alla posizione relativa del soggetto, cause che potrebbero peggiorare il riconoscimento. Il soggetto selezionato come risposta dal sistema è ottenuto dalla sintesi delle risposte delle singole LVQ e dalle affidabilità a posteriori delle singole reti. Per prima cosa, le risposte vengono divise nei sottoinsiemi delle massime consistenze (insieme dei GOODS) e delle minime inconsistenze (NOGOODS). Le affidabilità dei sottoinsiemi delle reti che presentano una contraddizione sono impostate a zero e la somma delle loro affidabilità è redistribuita ai sottoinsiemi che non presentano alcuna contraddizione. Per avere le affidabilità a posteriori delle reti, poi, basta sommare le affidabilità dei sottoinsiemi che contengono la rete in questione. Una volta ottenute le affidabilità a posteriori con l’Inclusion Based o con L’algoritmo Pesato viene scelto un Good come risposta per il sistema. Sulla base del Good scelto si controlla quali sono le fonti che non hanno contribuito a quel Good, quindi, quelle fonti che avevano individuato un soggetto differente da quello indicato dal gruppo e il sistema passa ad uno stato di preallarme. Per ciascuna rete di ogni soggetto, si controlla se lo stato di preallarme persiste per un numero consecutivo di volte, tale da raggiungere un valore di soglia: l’ampiezza della finestra temporale. Quando si raggiunge un numero di mancati riconoscimenti consecutivi, da parte di una rete, di uno stesso soggetto, allora si effettua un nuovo addestramento per la rete in questione, forzandola a riconoscere quella feature che per troppe volte non ha riconosciuto in precedenza. 117 CAPITOLO 7. RISULTATI SPERIMENTALI Grazie all’approccio modulare utilizzato, il riaddestramento non è particolarmente lungo ed è comunque molto più breve del tempo necessario per dover addestrare una singola rete neurale al riconoscimento dell’immagine intera del volto. E’ stato modificato il database ”ORL”, per integrare una certa evoluzione temporale dei soggetti ivi contenuti e per valutare le funzionalità dei metodi ipotizzati per aggiornare la conoscenza, grazie all’utilizzo di questo database. Il sistema, infine, è stato testato sia nella configurazione senza il modulo per la retroazione che nella sua versione completa, da cui si evince che la scelta della finestra temporale è un fattore importante per risolvere il trade-off tra quanto il sistema deve essere reattivo al cambiamento o quanto deve essere sicuro della sua effettiva stabilità. Sviluppi futuri Sarebbe auspicabile un database ad-hoc per poter testare il sistema, che contenga molte immagini di volti di soggetti, che presentino delle evoluzioni apprezzabili in un ampio lasso di tempo. Si potrebbe cosı̀ confrontare in maniera adeguata la convenienza di un sistema di riconoscimento facciale che forza le sue componenti ad apprendere autonomamente. Sarà possibile studiare, in tal modo, ulteriori evoluzioni e migliorare i componenti del sistema che, essendo basato su una serie di moduli, saranno facilmente sostituibili ed integrabili con nuove funzionalità. Un altro passo potrebbe essere quello di aumentare il numero delle reti neurali, includendo il riconoscimento di nuove caratteristiche sempre associate al soggetto come il profilo del volto o delle orecchie. Grazie alla struttura ibrida neuronale simbolica, si possono includere nel gruppo delle reti neurali anche reti specializzate su altre caratteristiche non direttamente collegate con l’analisi facciale, come l’analisi vocale o delle impronte digitali. In questo modo, inoltre, il sistema potrebbe analizzare una moltitudine di caratteristiche che non sono influenzate le une dalle altre, rendendo il riconoscimento ancora più attendibile; ad esempio, la foto di un volto potrebbe essere tutta sovraesposta o sottoesposta, ciò potrebbe causare problemi a tutte le reti addestrate al riconoscimento delle immagini, invece se ci fosse anche un modulo per l’analisi vocale, il campione audio non sarebbe coinvolto dagli stessi disturbi che affliggono tutte le immagini, la registrazione vocale in questo caso non soffrirebbe di alcuna perdita qualitativa e quel modulo identificherebbe in maniera corretta il soggetto. Il sistema senza retroazione garantisce un buon grado di robustezza, ma per garantire alla retroazione di non degenerare è necessario che il riconoscimento sia quanto 118 CAPITOLO 7. RISULTATI SPERIMENTALI più fedele possibile. In caso di mancata identificazione del soggetto, infatti, la nuova immagine andrebbe ad essere memorizzata nella ”cache” di un altro soggetto. In questo caso si andrebbe ad occupare uno slot temporale di quel soggetto con l’immagine di una feature che non gli appartiene. Per questo motivo, si potrebbe pensare di aumentare la dimensione della finestra temporale di una percentuale di tolleranza ed accumulare più varianti per una data feature di quelle che sarebbero necessarie per considerare stabile una modifica. Tra le immagini cosi collezionate si potrebbe poi passare a classificarle in cluster per individuare quelle che sono tra di loro più simili. In questo modo, si scarterebbero tutte le immagini che non sono associate al cluster più numeroso, che sarebbe usato per l’effettivo training della rete del soggetto, date le ottime prestazioni di riconoscimento è molto probabile che il maggior numero di feature memorizzate siano relative al soggetto corretto, e che solo una minima parte provenga dagli altri costituendo rumore ai fini del riaddestramento, che verrebbe cosı̀ filtrato. 119 Appendice A Schema Software A.1 Generalità Il sistema è sviluppato in C++, in ambiente Windows, usando l’IDE Microsoft Visual Studio Express 2010. Il software fa uso del paradigma della programmazione ad oggetti, in cui le entità sono raggruppate in classi che hanno proprietà e metodi: le prime, caratterizzano il contenuto informativo della classe con strutture dati legate al concetto che rappresenta la classe di cui fanno parte, i secondi definiscono le funzionalità che servono a quella classe per operare sulle sue proprietà o ad interagire con altre classi. Il sistema è formato da cinque classi, che sono riportate in figura A.1, le varie classi saranno analizzate nei paragrafi seguenti. Figura A.1: Diagramma delle Classi 120 APPENDICE A. SCHEMA SOFTWARE A.2 GreyBitmap Questa classe è costituita dai metodi e dalle proprietà visibili in figura A.2. La classe si occupa della gestione delle immagini dei volti in formato bitmap. Il costruttore della classe estrae dal formato il payload e converte le tre componenti dei colori RGB (rosso, giallo e blu) nella corrispettiva forma in scala di grigi attraverso la formula di combinazione dei canali Y = 0.3 ∗ R + 0.59 ∗ G + 0.11 ∗ B. Il metodo loadfile carica il file indicatogli come parametro, se ci sono problemi a fare ciò, il flag valid è impostato a false, in caso contrario la sequenza dei pixel dell’immagine è caricata nell’array data. Gli interi widht e height rappresentano le dimensioni dell’immagine e sono usate dalla classe LVQ per stabilire la grandezza dello strato di ingresso della rete. Figura A.2: Classe Greybitmap A.3 FaceClass La classe in questione (figura A.3) ha lo scopo di normalizzare i valori dei pixel convertiti dalla classe Graybitmap per poterli meglio confrontare con le reti neurali. Con il metodo caricaPattern si caricano le immagini contenute in una directory convertendole in pattern e le si associa tutte ad un soggetto indicato dal corrispondente indice relativo a quel soggetto. Ogni Pattern è caricato in una struttura dati che contiene sia la sequenza normalizzata dei pixel dell’immagine che la classe del soggetto (questa è usata solo in fase di training delle reti). 121 APPENDICE A. SCHEMA SOFTWARE Figura A.3: Classe FaceClass A.4 Cartella Classe per la gestione del filesystem e dei file contenuti in una directory. Se si utilizza una maschera nel costruttore della classe, si caricano, nell’array Nomi, solo i file che rispettano quel filtro (ad esempio usando come maschera ”*.bmp” si caricheranno in quell’array solo i file bitmap). I file caricati da questa classe possono essere spostati o eliminati con gli opportuni metodi visibili in figura A.4. Figura A.4: Classe Cartella 122 APPENDICE A. SCHEMA SOFTWARE A.5 LVQ La classe LVQ (figura A.5) rappresenta una rete neurale LVQ. Gli attributi più importanti sono: la matrice W che contiene i pesi delle connessioni tra i nodi, outClass che contiene le classi associate ai neuroni d’uscita, aff che rappresenta l’affidabilità a priori di quella LVQ, YoutSize(dimensione strato di uscita) e YinSize (dimensione strato di ingresso). La rete è inizializzata in due modi possibili attraverso il metodo Figura A.5: Classe LVQ overloaded setParametri. In un caso si può passare come parametro di attivazione un file di configurazione della rete (modalità usata durante la fase di test, il file contiene i pesi delle connessioni ed il numero di nodi) oppure usando come parametro di attivazione un intero che rappresenta la dimensione dello strato di ingresso. In questo secondo caso il numero dei nodi dello strato di uscita è ricavato dalla dimensione dell’array dei soggetti che è l’altro parametro usato in tutti e due gli operatori. Col metodo runTraining si attiva il training della rete, questo metodo ha come parametri: un path in cui salvare le impostazioni della rete, il training set contenuto nell’array PatternClass (ogni elemento di questo array contiene tutti i pattern di un soggetto) ed i parametri di addestramento per la rete (due float per α e β, un intero 123 APPENDICE A. SCHEMA SOFTWARE per il numero delle epoche di apprendimento). Per la fase di testing, il metodo da usare è run con un Pattern come parametro. La risposta sarà un array di strutture dati”Risposta” che contiene l’indice del nodo e la distanza tra pattern di ingresso e codebook associato a quel nodo. A.6 SysRiconoscimento La classe SysRiconoscimento (figura A.6) rappresenta il sistema di riconoscimento e gestisce e coordina tutti i componenti che lo formano. Il costruttore di questa classe accetta tre parametri: l’array dei soggetti su cui testare o addestrare il sistema, il numero delle reti dello stesso. L’attributo net è un array che contiene le istanze delle classi LVQ che rappresentano le reti neurali, l’array folder contiene le cartelle usate dalle reti neurali del sistema. Il metodo che consente di far partire il training delle reti è trainingNets, che si occupa anche di costruire i parametri di attivazione per il metodo di training della classe LVQ, caricando le immagini di training dal path definito con la costante TRAINING FOLDER. Il metodo per il test dei soggetti è run ed accetta come parametri il path delle immagini da riconoscere, l’indice corrente delle stesse e il numero delle risposte da usare per il calcolo dei Good. Il metodo TrovaMaxCons forma gli insiemi dei Good a partire dalle risposte delle singole reti neurali. Il metodo calcolaAffidabilita ricalcola le affidabilità a posteriori delle reti attraverso l’uso degli insiemi massimamente consistenti. Per il calcolo della risposta del sistema sono presenti i metodi inclusionDistanze, metodoAlternativo. Il metodo retroazione confronta le risposte delle singole reti con la risposta del sistema, se per qualche rete risultano diverse salva in TEMP FOLDER le immagini che hanno causato il problema (c’è una directory temporanea per ogni soggetto che contiene un’altra directory per ogni rete ). Una volta che si accumulano window lenght immagini nella cartella di una rete di uno specifico soggetto, si riaddestra quella singola rete con il metodo riaddestramento singola rete. Se, invece, la rete identifica quel soggetto prima di raggiungere le window lenght immagini, quelle accumulate vengono eliminate dalla relativa TEMP FOLDER. Il metodo riaddestramento singola rete ha due parametri interi, l’indice della rete da riaddestrare e l’indice del soggetto che ha subito un cambiamneto definitivo per una sua caratteristica. Ciò per usare i pattern contenuti nella directory temporanea di quel soggetto e le immagini usate in passato per i riaddestramenti degli altri soggetti(se presenti, altrimenti si usano quelle usate in fase di training). Il metodo updateAffstorica aggiorna ad ogni passo lo storico 124 APPENDICE A. SCHEMA SOFTWARE dei valori di affidabilità di ogni soggetto, in base alla nuova affidabilità a posteriori appena ricalcolata. Figura A.6: Classe SysRiconoscimento 125 Ringraziamenti Alla fine della stesura di questa tesi è doveroso rivolgere i miei più calorosi ringraziamenti alle persone che hanno reso possibile questo lavoro e mi sono state vicine in questi anni di formazione personale e professionale. Ringrazio sentitamente il Prof. Aldo Franco Dragoni, relatore di questa Tesi, per la sua disponibilità e la cortesia dimostratami in questi mesi, l’Ing. Germano Vallesi e l’Ing. Paola Baldassarri per la loro gentilezza ed i loro preziosi consigli. Certamente, senza il loro stimolo, non avrei potuto seguire questo percorso con la stessa passione ed intensità. Ringrazio per la comprensione e l’amicizia dimostratami da tutti coloro che ho incontrato lungo il percorso universitario: Samuele, Giordano, Michela, Claudio, Sara, Emanuele, Giuliano, Primo, Daniele, Gabriele ma anche Rocco e Giacomo. Devo dare anche un riconoscimento agli altri amici Beniamino, Marco, Roberta e Mascia per la loro incrollabile resistenza alle numerose ”sòle” che mi è capitato di dar loro, a causa dello studio ”matto e disperatissimo”. Devo anche un grosso grazie a tutti gli amici di Castello per avermi fatto sentire la loro vicinanza pur se distanti. Un ringraziamento particolare va a mia zia Anna Maria per l’accoglienza ospitale in questi anni di studio, oltre che per la lunga ed attenta rilettura della Tesi. Ringrazio, infine, i miei genitori ed i miei fratelli Carlo ed Ezio per avermi sempre incoraggiato, soprattutto nei momenti di difficoltà e per aver avuto sempre fiducia nelle mie potenzialità. 126 Bibliografia [1] Carlos E. Alchourrón, Peter Gärdenfors, and David Makinson. On the logic of theory change: partial meet contraction and revision functions. J. Symb. Log., 50:510–530, 1985. [2] Salem Benferhat, Claudette Cayrol, Didier Dubois, Jerome Lang, and Henri Prade. Inconsistency management and prioritized syntax-based entailment. pages 640–645. Morgan Kaufmann, 1993. [3] Arthur E. Bryson and Yu-Chi Ho. Applied optimal control : optimization, estimation, and control / Arthur E. Bryson, Jr., Yu-Chi Ho. Hemisphere Pub. Corp. ; distributed by Halsted Press, Washington : New York :, rev. printing. edition, 1975. [4] Johan de Kleer. An assumption-based tms. Artif. Intell., 28(2):127–162, 1986. [5] Jon Doyle. Truth maintenance systems for problem solving. Technical report, Cambridge, MA, USA, 1978. [6] Aldo Franco Dragoni and Paolo Giorgini. Autonomous agents and multi-agent systems. Distributed Belief Revision, 6:115–143, 2003. [7] Didier Dubois and Henri Prade. Possibility theory. New York, USA, 1988. Plenum Press. [8] Kamran Etemad and Rama Chellappa. Discriminant analysis for recognition of human face images. Journal of Optical Society of America A, 14:1724–1733, 1997. [9] D. J. Fleet and A. D. Jepson. Computation of component image velocity from local phase information. Int’l J. of Computer Vision, 5, No. 1:77–104, 1990. [10] Bernd Fritzke. Growing cell structures - a self-organizing network for unsupervised and supervised learning. Neural Networks, 7:1441–1460, 1993. 127 BIBLIOGRAFIA [11] Bernd Fritzke. 128 Growing cell structures—a self-organizing network for unsupervised and supervised learning. Neural Netw., 7(9):1441–1460, 1994. [12] Allen Gersho and Robert M. Gray. Vector quantization and signal compression. Kluwer Academic Publishers, Norwell, MA, USA, 1991. [13] Michael I. Jordan and Robert A. Jacobs. Hierarchical mixtures of experts and the em algorithm. Neural Comput., 6(2):181–214, 1994. [14] Hirofumi Katsuno and Alberto O. Mendelzon. On the difference between updating a knowledge base and revising it. pages 387–394. Morgan Kaufmann. [15] T. Kohonen. The Basic SOM ”Self-Organizing Maps”, volume 30. Springer, Berlin. [16] T. Kohonen. ”Learning Vector Quantization” Self-Organizing Maps, volume 30. Springer, Berlin. [17] T. Kohonen. Self-organization and associative memory: 3rd edition. SpringerVerlag New York, Inc., New York, NY, USA, 1989. [18] S. S. Kuo and O. E. Agazzi. Keyword spotting in poorly printed documents using pseudo 2-d hidden markov models. IEEE Trans. Pattern Anal. Mach. Intell., 16(8):842–848, 1994. [19] A. Pentland M. Turk. Eigenfaces for recognition. Journal of Cognitive Neurosicence, 3, No. 1, 1991. [20] T. Martinetz and K. Schulten. A neural-gas network learns topologies. Artificial Neural Networks, I:397–402, 1991. [21] Ara V. Nefian, Monson H. Hayes, and III. Hidden markov models for face recognition. In Proc. International Conf. on Acoustics, Speech and Signal Processing, pages 2721–2724, 1998. [22] Gabriele Pagnotta. Riconoscimento di volti mediante un gruppo di reti neurali specializzate su singoli particolari. Master’s thesis, Università politecnica delle marche, Febbraio 2010. [23] P. Jonathon Phillips, Hyeonjoon Moon, Syed A. Rizvi, and Patrick J. Rauss. The feret evaluation methodology for face recognition algorithms. In In (a) Example 1 (b) Example 1 (c) Right ear) (d) Mirroed Left ear. BIBLIOGRAFIA 129 [24] Anca L. Ralescu, editor. Fuzzy Logic in Artificial Intelligence, IJCAI ’93, Workshop, Chambéry, France, August 28, 1993, Proceedings, volume 847 of Lecture Notes in Computer Science. Springer, 1994. [25] Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice-Hall, Englewood Cliffs, NJ, 2nd edition edition, 2003. [26] Ashok Samal and Prasana A. Iyengar. Automatic recognition and analysis of human faces and facial expressions: a survey. Pattern Recogn., 25(1):65–77, 1992. [27] Laurenz Wiskott, Jean marc Fellous, Norbert Krüger, and Christoph Von Der Malsburg. Face recognition by elastic bunch graph matching. IEEE Transactions on Pattern Analysis and Machine Intelligence, 19:775–779, 1997. [28] D. Zhang Y. Li. Modular Neural Networks and Their Applications in Biometrics, volume 35. Springer Berlin / Heidelberg, 2007. [29] Minjie Zhang and Chengqi Zhang. Synthesis of solutions in distributed expert systems. In In Artificial Intelligence - sowing the seeds for the future, edited by chengqi zhang, jone debeham and dickson lukose, world scientific publishers, pages 362–369, 1994. [30] Minjie Zhang and Chengqi Zhang. Potential cases, methodologies, and strategies of synthesis of solutions in distributed expert systems. IEEE Trans. on Knowl. and Data Eng., 11(3):498–503, 1999. [31] W. Zhao, R. Chellappa, P. J. Phillips, and A. Rosenfeld. Face recognition: A literature survey, 2000.