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.