Sistema ibrido ottimizzato per l`apprendimento continuo di reti neurali

annuncio pubblicitario
UNIVERSITÀ POLITECNICA DELLE MARCHE
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica e dell’Automazione
Sistema ibrido ottimizzato
per l'apprendimento continuo
di reti neurali
Relatore:
Chiar.mo Prof. Aldo Franco Dragoni
Tesi di laurea di:
Davide Liberato
ANNO ACCADEMICO 2010-2011
Indice
Indice
2
Introduzione
4
Struttura tesi
6
1 Sistemi Biometrici
1.1 Biometria in generale
7
1.2 Caratteristiche biometriche
10
1.3 Fasi funzionamento di un sistema biometrico
10
1.4 Biometria di tipo fisiologico
12
2 Dimensionality reduction
2.1 Dimensionality Reduction in generale
15
2.2 Campi di applicazione
16
2.3 Tecniche
17
3 Reti Neurali
3.1 Reti Neurali in generale
22
3.2 Analogie con i neuroni biologici
23
3.3 Neurone e reti neurali artificiali
25
3.4 Strutture della rete artificiale
27
3.5 Tipi di addestramento
30
3.6 Tipologie di reti neurali artificiali
33
2
4 Progettazione finalizzata all’ottimizzazione del di un
sistema ibrido per l'apprendimento continuo di reti neurali
4.1 Sistema ibrido
38
4.2 Funzionamento del sistema ibrido
39
4.3 Progettazione dell’ottimizzazione
44
5 Ottimizzazione
5.1 Metodo di ottimizzazione
47
5.2 Sistema ibrido ottimizzato
52
6 Risultati
6.1 Database ORL modificato
54
6.2 Training delle reti
56
6.3 Test del sistema ibrido ottimizzato con il database ORL
57
modificato
Conclusioni
60
Bibliografia e sitografia
62
3
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
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 muta nel tempo.
Pensiamo ad esempio ad un soggetto che intenda modificare il proprio
aspetto facendosi allungare la barba; In questo caso i sistemi di
riconoscimento potrebbero errare nella loro risposta e identificare questa
persona con il soggetto sbagliato.
Se questa modifica di aspetto del soggetto rimane invariata per un certo
lasso di tempo, è necessario un riaddestramento del sistema per far si che
esso riconosca in maniera corretta questa persona al prossimo
riconoscimento. Si conserveranno quindi tutte le nuove immagini del
soggetto per un periodo prestabilito in modo da essere certi che il
cambiamento di aspetto sia stabile e non temporaneo.
4
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Il riaddestramento, quindi, dovrà sfruttare le nuove immagini del soggetto
con la barba, per istruire il sistema a riconoscerle.
Il sistema di riconoscimento illustrato in questa tesi è basato su reti neurali
multiple ognuna delle quali è addestrata a riconoscere una particolare
caratteristica del volto.
E’ intuibile capire, quindi, come le immagini utilizzate per il riaddestramento
sono le immagini per le quali una rete le ha associate ad un soggetto
sbagliato (queste immagini vengono salvate nella cosiddetta “finestra
temporale”).
L’errata identificazione di una caratteristica da parte di una rete però può
avvenire per cause diverse:
- Il soggetto ha cambiato parzialmente aspetto;
- L’immagine è di cattiva qualità;
- Il soggetto potrebbe essere girato o aver cambiato espressione
- Infine, ma molto più raramente, la rete potrebbe non essersi sbagliata,
ma potrebbe essere state le altre reti a sbagliare
A questo proposito, è necessario selezionare bene le immagini con cui
rioperare l’addestramento. Di certo riaddestrare le reti con delle immagini
non adeguate porterebbe alla completa inaffidabilità del sistema.
Dunque in questo lavoro di tesi si propone l’ottimizzazione del sistema
finalizzata a migliorare la fase di riaddestramento.
5
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
L’obiettivo di questa tesi sarà appunto integrare un filtro in grado di
classificare le immagini presenti nella finestra temporale, e restituire quindi
diversi insiemi contenenti le immagini più simili tra loro.
Verranno quindi selezionate per il riaddestramento quelle immagini facenti
parte dell’insieme più numeroso, in quanto si ipotizza che nella finestra
temporale sono presenti in maggioranza le immagini più adeguate ad un
riaddestramento della rete.
Struttura Tesi
Nel capitolo 1 vengono introdotti i problemi della biometria ed, in particolare,
il problema del riconoscimento del volto. I concetti teorici della
Dimensionality Reduction sono esposti nel capitolo 2, mentre quelli relativi
alle Reti Neurali si trovano nel capitolo 3. Il capitolo 4 mostra come si
intende procedere per ottimizzare il sistema ibrido di riconoscimento dei
volti. Nel capitolo 5, invece, viene illustrato nel dettaglio il come si è
ottimizzato l’intero sistema. Infine, il capitolo 6, mostra le prestazioni del
nuovo sistema ottimizzato.
6
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Capitolo 1
Sistemi Biometrici
1.1 Biometria in generale
La Biometria o Biometric Authentication è costituita da una serie di metodi
per riconoscere univocamente gli esseri umani, basati su una o più
caratteristiche fisiche o comportamentali.
E’ per questo che la biometria nell’ambito della Computer Science, è usata
per la gestione delle identità di accesso e controllo degli accessi.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Il compito principale della biometria è infatti proprio quello di risolvere le
lacune degli attuali sistemi di accesso, quali:
-
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 si possano trovare gruppi di utenti
che condividono credenziali di autenticazione tra di loro;
-
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 cerca quindi, di rendere l’autenticazione tramite sistemi di
accesso più sicura.
8
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Essa infatti introduce una credenziale aggiuntiva, cioè un qualcosa che sia
associato alla persona stessa, che sia univoca.
Possiamo quindi pensare che un sistema di controllo degli accessi che
introduca la biometria, includerà un sistema elettronico o informatico per
verificare la caratteristica fisica o comportamentale di un individuo che
possa identificare univocamente l’individuo.
L’errore che si può commettere però è pensare che la biometria possa
rendere il sistema di accesso inviolabile a ignoti, cioè rendere un sistema di
accesso sicuro al 100%. Spesso infatti i progettisti che affidano la sicurezza
alla biometria, ignorano che i dati biometrici infine non sono altro che
sequenze univoche di bit e che quindi in un certo senso sono replicabili.
Un utente malintenzionato, infatti potrebbe semplicemente evitare la fase di
misura biometrica e inviare direttamente una stringa di bit al sistema.
E’ quindi necessario mantenere i dati biometrici con la stessa cura con cui
si custodisce una password o un’altra qualsiasi credenziale.
9
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
1.2 Caratteristiche biometriche
Le caratteristiche biometriche possono essere divise in due classi principali:
-
Fisiologiche: queste caratteristiche sono legate alla forma del corpo. Come
ad esempio le impronte digitali, il riconoscimento del volto, il DNA, il
riconoscimento dell’iride e l’odore o profumo.
-
Comportamentali: queste caratteristiche sono legate al comportamento di
una persona. Come ad esempio la voce, il modo di camminare, della
scrittura o addirittura il ritmo di battuta su tastiera di un PC (typing rhythm).
1.3 Fasi di funzionamento di un sistema biometrico
Il funzionamento di un sistema biometrico è strutturato in tre distinte fasi:
-
Enrollment: prima che un utente possa essere identificato da un
sistema biometrico occorre istruire il sistema a riconoscerlo. Il
sistema potrebbe avere bisogno di più misurazioni della stessa
grandezza per avere una buona confidenza rispetto al dato che ha
collezionato e per mantenere traccia anche della varianza tra i
diversi campioni;
10
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
-
Usage: in questa fase l'utente prova ad accedere al sistema
mediante nuove misurazioni della grandezza che si valuta attraverso
il sistema biometrico. Questo confronta la nuova misura con quelle
che ha memorizzato nella fase precedente per valutare la
somiglianza tra campioni e 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: in questo caso l’utente chiede di poter avere
accesso al sistema esplicitando la propria identità. Quindi tramite
controllo biometrico il sistema deve abilitare o no l’utente
confrontando la credenziale inserita, con il campione
precedentemente acquisito per quel determinato soggetto.
-
Identificazione: in questo caso l’utente non fornisce informazioni
sulla propria identità e quindi il sistema dovrà confrontare il nuovo
campione biometrico acquisito con tutti quelli conosciuti nella fase di
enrollment.
11
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
L’atto di identificazione è quindi molto più complicata dell’autenticazione.
1.4 Biometria di tipo fisiologico
Un esempio di biometria fisiologica è il riconoscimento del volto:
Riconoscimento del volto:
Il riconoscimento facciale o face recognition è una tecnica di intelligenza
artificiale, utilizzata in biometria per identificare o autenticare l'identità di una
persona.
Possiamo affermare, in maniera non del tutto esatta, che il riconoscimento
biometrico facciale consiste nel confrontare due immagini del volto. Tramite
questo confronto si valuterà se i soggetti raffigurati nelle immagini sono la
stessa persona o no.
Spesso però non basta analizzare le immagini pixel per pixel perché questo
modo di procedere porta solitamente ad errore. Infatti uno stesso soggetto,
ritratto in due o più immagini, potrebbe avere inquadrature diverse o più
semplicemente avere un’espressione del viso differente.
E’ proprio per questo motivo che sono stati pensati alcuni algoritmi per
estrarre il contenuto delle foto così da rendere il confronto più veritiero.
12
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Sono 3 i principali tipi di approccio ai fini dell'estrazione delle feature (o
caratteristiche) per il riconoscimento dei volti e cioè:
-
Template matching olistico: consiste nel valutare l’immagine del volto
nel suo insieme, cioè viene fornita al sistema l’immagine dell’intero
volto. L'analisi biometrica viene quindi svolta sull'intera faccia,
direttamente sotto forma di immagine che è 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.
-
Ricerca locale di feature basata su schemi e variazioni: E’ un
approccio geometrico che tenta di individuare le componenti più
importanti del volto nell'immagine. A questo punto, sono computate le
distanze relative e le grandezze delle caratteristiche o feature.
L'insieme delle misure costituisce il vettore rappresentativo di quella
immagine. Questo tipo di metodo è più 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. In parole povere, con questa tecnica si
riescono a valutare le diverse caratteristiche in maniera separata. E
cioè le immagini di naso, bocca, occhi, ecc… sono passate al
sistema di riconoscimento separatamente.
-
Tecniche ibride: Approccio che consiste nel fondere assieme le
diverse tecniche esistenti, in modo da trarre vantaggi da ognuna di
13
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
esse, formando così una soluzione migliore. Ad esempio è possibile
utilizzare delle funzioni per l'estrazione delle feature di un volto e poi
analizzare singolarmente in modo olistico quelle parti.
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 vengono conservate più template, una per ogni
espressione facciale fondamentale, o orientamento della testa;
-
Vengono usate template deformabili in un modello tridimensionale
del volto umano;
-
Si considerano tali variazioni nel processo di estrazione delle
feature.
Vedremo nel prossimo capitolo, come la riduzione della dimensione dell'analisi
può essere raggiunta attraverso l'uso di opportuni algoritmi di Dimensionality
Reduction.
14
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Capitolo 2
Dimensionality Reduction
2.1 Dimensionality Reduction in generale
La dimensionality reduction, o riduzione delle dimensioni, in statistica, è il
processo atto a ridurre il numero di variabili prese in considerazione nell’
osservazione di un evento.
Come è possibile intuire, non tutti i dati prelevabili da un immagine sono
necessari per poter capire il fenomeno osservato.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Si cerca dunque di ridurre la dimensione dei dati prima del loro utilizzo.
Le tecniche di dimensionality reduction posso essere distinte in due
categorie:
-
Feature selection: la riduzione delle dimensioni viene svolta cercando
un sottoinsieme di variabili nei dati originali in modo da poter
esprimere, con la minor perdita di informazione possibile, gli stessi
dati utilizzando però un minor numero di features;
-
Feature extraction: la trasformazione di dati fortemente
multidimensionali in dati con poche dimensioni viene svolta attraverso
un processo di combinazione delle feature presenti nei dati originali,
al fine di formare nuove variabili che, seppur in numero minore,
riescano ad esprimere la stessa quantità di informazioni delle originali.
2.2 Campi di applicazione
Negli ultimi decenni i progressi svolti in campi come l’archiviazione su
calcolatore o la raccolta dei dati hanno portato ad un aumento esponenziale
delle informazioni nella maggior parte dei campi di studio. Il ruolo delle
tecniche di dimensionality reduction è divenuto sempre più importante negli
ultimi anni trovando larga applicazione in tutti gli aspetti della quotidianità.
16
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Importanti applicazioni di tali metodi sono:
-
Il trattamento delle immagini per applicazioni di classificazione, come
per esempio l’analisi automatica delle immagini satellitari per
monitorare le condizioni meteorologiche e per i sistemi di
riconoscimento biometrico;
-
Per ricavare particolari informazioni da un insieme di dati
eccessivamente esteso, come l’analisi di dati finanziari per predire gli
andamenti del mercato;
-
Per ridurre, o eliminare completamente, le componenti di disturbo
presenti all’interno dei dati, utilizzato nel trattamento delle immagini e
nelle telecomunicazioni per eliminare le interferenze tra segnali.
2.3 Tecniche
Vediamo ora alcune tra le più comuni tecniche di dimensionality reduction:
PCA
L’analisi delle componenti principali (Principal Component Analysis) è il
metodo più comune per scopi di feature extraction.
17
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Mediante tale tecnica è possibile operare una vera e propria compressione
di questi dati rappresentandoli in uno spazio di dimensionalità inferiore
(dunque in modo più compatto) sfruttando la correlazione fra gli stessi.
L’idea è quella di individuare la direzione di massima varianza della
distribuzione e via via tutte le direzioni, ortogonali fra loro, di massima
varianza residua (in uno spazio n-dimensionale, quindi, ve ne saranno al
più n). Tale insieme di direzioni ci permetterà di costruire una nuova base
vettoriale per esprimere i dati d’ingresso. Ogni vettore di tale base è definito
componente principale della serie di dati.
Se individuiamo meno di n direzioni ortogonali, la nuova rappresentazione
è già una compressione; altrimenti è possibile ugualmente ridurre la
dimensionalità dell’input a scapito di una perdita d’informazione (che
comunque risulta la minor perdita possibile in termini di errore quadratico
medio tra i dati originali e quelli ricostruiti).
Si tratta dunque di una tecnica statistica per la riduzione delle dimensioni
che estrae le features principali attraverso l’analisi della correlazione dei
dati.
La riduzione delle dimensioni avviene mantenendo le features con varianza
superiore ad una certa soglia, stabilita secondo le necessità di
rappresentazione, ed ignorando tutte le restanti. Naturalmente è possibile
mantenere tutte le componenti ma, in tal caso, le dimensioni non vengono
ridotte e, l’unica modifica, è il modo in cui i dati vengono rappresentati.
18
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Attraverso questo metodo, è possibile, mantenere l’insieme di features che
contengono la maggior quantità di informazioni (il cui indicatore è la
varianza).
Esempio di autofacce.
ICA
L’ICA o Independent Component Analysis è un metodo di elaborazione
computazionale per l’individuazione delle componenti principali in un segnale
multidimensionale, assumendo che esista una mutua indipendenza
statistica dei segnali sorgente.
Si tratta di un caso particolare della Blind Source Separation che consiste in
una serie di metodi che consentono la separazione di un insieme di segnali,
da un insieme di segnali misti, senza alcuna informazione circa la natura
dei segnali.
Una semplice applicazione della ICA è il problema del cocktail party, dove i
segnali del parlato del nostro interlocutore, subiacenti alla musica ed al
rumore del simultaneo parlato altrui, vengono separati in modo efficace. In
19
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
genere il problema viene semplificato assumendo che non vi siano echi né
ritardi temporali nell'arrivo all'udito dell'ascoltatore. Una nota importante da
considerare è che se sono presenti N sorgenti, sono necessarie almeno N
osservazioni (ad es. microfoni) per ottenere i segnali originari.
LDA
La Linear Discriminant Analysis (LDA) consente di usare le sole
informazioni che sono obiettivamente discriminanti ai fini del riconoscimento
facciale.
La LDA è basata sulla ricerca dei vettori, che costituiscono la base dello
spazio in cui sono definiti i dati, che hanno caratteristiche tali da poter
discriminare il meglio possibile gli attributi dell’intero dataset. Queste
vengono poi selezionate per descrivere l’intero insieme di dati, facendo a
meno delle features che differenziano poco la separazione tra classi.
20
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Il metodo LDA usa un metodo simile a quello PCA per analizzare le
immagini, basandosi sempre sulle autofacce. La differenza però sta nel fatto
che nella LDA l’analisi degli autovalori non è eseguita sulla matrice di
covarianza, ma sulla matrice di separazione.
Nella LDA, l’insieme di vettori cercati è quello che ci permette di
discriminare al meglio le classi contenute all’interno del dataset mentre,
nella PCA, cerchiamo di trovare le features con più varianza. Le differenze
non si fermano qui, in quanto, con i metodi LDA i dati non vengono
proiettati in un nuovo spazio ma, bensì, vengono create delle "regioni di
decisione", all’interno dello spazio originale, che permettono l’immediato
riconoscimento delle classi nel dataset. Per questo motivo si dice che la
LDA effettua una classificazione dei dati mentre, la PCA, effettua una
classificazione delle features.
21
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Capitolo 3
Reti neurali
3.1 Reti Neurali in generale
Allo stato attuale, a differenza delle macchine, l’uomo è un ottimo esempio
di “sistema” in grado di elaborare informazione sotto-simboliche. Tali
elaborazioni, come ogni altro processo cognitivo, hanno sede nel cervello,
una complessa struttura neurobiologica attualmente decifrata in modo
piuttosto accurato per quanto riguarda gli aspetti anatomici.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Il “mattone elementare” che caratterizza tutte le strutture cerebrali è
denominato neurone. Un neurone è un unità cellulare che grazie alle sue
proprietà fisiologiche e chimiche è in grado di ricevere, integrare e
trasmettere impulsi nervosi.
Con l’intelligenza artificiale si vuole rendere possibile l’automazione del
ragionamento simbolico e la creazione di sistemi esperti che siano in grado
di sostituire l’uomo, cosi che l’intero sistema possa risolvere un eventuale
problema in maniera del tutto autonoma.
Purtroppo ancora molto deve essere fatto affinché le macchine possano
esprimere un comportamento paragonabile a quello umano. Vedremo però
in questo capitolo delle tecniche utilizzate per simulare, per quanto sia
possibile, il funzionamento dei neuroni biologici attraverso il concetto di
“neurone artificiale”.
3.2 Analogie con i neuroni biologici
I neuroni sono composti da un corpo detto soma e da due tipi di
diramazioni:
-
i dentriti
-
il cilindrasse o assone
23
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Nel cervello umano sono presenti tipicamente oltre 100 miliardi di neuroni,
ciascuno interconnesso a circa altri 10.000. Nelle interconnessioni ha luogo
la sinapsi, un processo elettrochimico atto a rinforzare o inibire l’interazione
cellulare.
I segnali rilevabili hanno un potenziale dell’ordine di alcune decine di
millivolt e si presentano come treni di impulsi con frequenza intorno ai
100Hz, con opportune modulazioni.
È opinione condivisa da ricercatori nel mondo delle scienze cognitive che i
segnali elettrici presenti nei neuroni siano alla base dell’elaborazione
dell’informazione a livello cerebrale. Le capacità cognitive sarebbero,
dunque, in relazione all’elaborazione dei segnali presenti nei neuroni.
Inoltre, c’è evidenza sperimentale per sostenere che la struttura cerebrale e
le sinapsi siano influenzate dalla vita degli individui, dalle loro esperienze,
all’apprendimento di compiti specifici.
Si è verificato sperimentalmente che le funzioni cognitive risiedono in
particolari zone e che tali funzioni possono essere perdute a seguito della
“rottura” dei legami sinaptici ed eventualmente recuperate, almeno in parte,
con successivi processi di apprendimento atti a instaurare nuove
interconnessioni sinaptiche.
24
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
3.3 Neurone e reti neurali artificiali
Inizi
Dato che la struttura cerebrale e il comportamento elettromagnetico delle
singole celle neuronali erano noti, i ricercatori si sono ben presto chiesti se
si potessero trarre utili suggerimenti e ispirazioni per la costruzione di
macchine in grado di replicare compiti connotati da una forte componente di
elaborazione sotto-simbolica, attualmente di difficile soluzione per i
calcolatori.
Era, tuttavia, ben chiaro ai ricercatori che non è necessaria una perfetta
emulazione dei processi neurobiologici per l’emergenza di capacità
cognitive. Molti modelli connessionistici sono, infatti, solo ispirati al principio
che l’attivazione neuronale (potenziale associato all’unità) è soggetta a
eccitazioni e inibizioni dalle unità connesse.
Neuroni artificiali
Il neurone artificiale è un modello matematico che calcola una funzione,
detta funzione di attivazione. Gli ingressi di tale funzione modellano gli
stimoli che il neurone biologico riceve dagli altri neuroni, mentre il risultato
calcolato (uscita) descrive il segnale trasmesso dal neurone lungo l’assone.
Quindi, la funzione di attivazione del neurone artificiale trasforma i valori
25
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
dell’insieme degli ingressi (spazio degli ingressi) in corrispondenti valori
nell’insieme delle uscite (spazio delle uscite).
Il primo modello formale (matematico) di neurone è stato proposto da
McCulloch e Pitts nel 1943, ben prima che i calcolatori digitali si
diffondessero. La sua funzione di attivazione può assumere due valori:
neurone attivo, 1, o silente, 0. Anche i pesi sinaptici, che modellano la forza
della connessione tra una coppia di neuroni possono avere solo due valori:
eccitatorio, 1, o inibitorio, -1.
Il neurone di McCulloch e Pitts esegue la somma pesata degli stati dei
neuroni a esso connessi, e, a seconda che tale valore sia maggiore o
minore della soglia, assume lo stato attivo o passivo.
Reti neurali artificiali
Le reti neurali artificiali sono ottenute connettendo tra loro i neuroni artificiali
descritti nel paragrafo precedente. Il comportamento esibito da tali reti mima
alcuni comportamenti peculiari del nostro cervello, tra cui le capacità di
memorizzare un oggetto, richiamare dalla memoria tale oggetto partendo da
una descrizione parziale (come ricordarsi una canzone partendo dalla
26
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
melodia), generalizzare a partire da esempi e raggruppare oggetti in base
alle somiglianze tra essi.
Sebbene tali comportamenti possano essere realizzati collegando i neuroni
secondo un qualsiasi schema, l’utilizzo di schemi semplici e ordinati
consente lo studio delle proprietà di tali modelli computazionali. Lo schema
dei collegamenti è infatti spesso il fattore più caratterizzante dei modelli di
rete neurale. Di seguito verranno illustrati i modelli principali: le reti di
Hopfield, le reti feed-forward e le reti ricorrenti.
3.4 Strutture della rete artificiale
Reti di Hopfield
Le reti di Hopfield sono reti completamente connesse: ogni neurone è
connesso a ogni altro neurone della rete.
Poiché la funzione di attivazione dei neuroni di una rete di Hopfield è di tipo
bipolare, una tale rete con n neuroni è descritta dall’insieme delle soglie, e
dall’insieme dei pesi sinaptici, . L’uscita del neurone in un certo istante di
tempo è detta stato del neurone; l’insieme degli stati dei neuroni che
compongono la rete definisce lo stato della rete.
27
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Rete di Hopfield
Reti feed-forward
Le reti feed-forward multistrato sono così chiamate, perché il flusso di
informazioni tra i neuroni procede in modo unidirezionale. Si tratta quindi di
reti parzialmente connesse nelle quali i neuroni sono organizzati in
sottoinsiemi, detti strati (layer). Gli strati sono ordinati e solo i neuroni di
due strati consecutivi sono direttamente connessi. Il primo strato (quello che
riceve gli stimoli dall’esterno) viene detto strato di ingresso, mentre l’ultimo
strato (quello che fornisce la risposta della rete) viene detto strato di uscita.
Gli strati intermedi vengono detti strati nascosti (hidden layer).
Si può dimostrare che le reti neurali sigmoidali multistrato con almeno tre
strati, sono “approssimatori universali di funzioni continue”: per ogni funzione
continua esiste almeno una rete di questo tipo in grado di approssimarla
con un’accuratezza prefissata. Se i neuroni dello strato di uscita sono di
tipo discreto (per esempio, a soglia), l’uscita della rete potrà assumere un
insieme finito di valori discreti; si può così realizzare la classificazione degli
28
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
ingressi, cioè associare a ciascun ingresso un valore tra le uscite, il quale
identifica la sua classe di appartenenza.
Rete feed-forward multistrato
Reti ricorrenti
Le reti ricorrenti sono reti multistrato parzialmente connesse in cui le
risposte di uno o più strati possono essere conservate e fornite come
ingresso negli istanti successivi. Il comportamento di queste reti è quindi
dinamico: l’uscita fornita da una rete a un certo istante non dipende solo
dallo stimolo fornito in ingresso all’istante considerato, ma anche dalla storia
passata.
La conservazione delle informazioni degli istanti precedenti è affidata a
connessioni con ritardo temporale (retroazione). A seconda del numero di
tali connessioni (eventualmente con differenti ritardi), è possibile far
considerare alla rete gli effetti di istanti precedenti.
29
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Le reti ricorrenti sono chiaramente più complesse delle reti feed-forward
multistrato, ma sono capaci di modellare sistemi con comportamento
dinamico.
Rete ricorrente
3.5 Tipi di addestramento
Apprendimento supervisionato
Questo tipo di apprendimento è largamente impiegato per progettare sistemi
neurali che realizzino una pre-assegnata legge di associazione input-output.
Ad ogni pattern di ingresso è associato un pattern di uscita corretto, o
desiderato; la modifica dei pesi della rete neurale è determinata dall’errore
commesso in uscita, ovvero da una opportuna misura della differenza tra il
30
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
pattern di uscita desiderato, relativo ad un dato pattern di ingresso, rispetto
al pattern effettivamente emesso in uscita dalla rete, relativo sempre al
medesimo pattern di ingresso.
Il tipico algoritmo che implementa l’apprendimento supervisionato è
l’algoritmo di retro-propagazione (backpropagation).
A ogni passo di apprendimento l’algoritmo backpropagation calcola la
relativa uscita prodotta dalla rete, e la confronta con il valore di uscita
atteso. La differenza tra il valore di uscita desiderata e il valore di risposta
della rete neurale costituisce l’errore commesso dalla rete stessa.
Procedendo a ritroso dall’uscita della rete verso i neuroni più interni, si
calcola il gradiente dell’errore rispetto ai parametri dei neuroni considerati e
lo si utilizza per modificare i parametri stessi in modo da far diminuire
l’errore.
Apprendimento non supervisionato
In questo tipo di apprendimento, non esiste una risposta desiderata, e
quindi la rete auto-organizza i pesi in maniera indipendente.
Gli algoritmi d'addestramento non supervisionato modificano i pesi della rete
facendo esclusivamente riferimento ad un insieme di dati che include le sole
variabili d'ingresso. Tali algoritmi tentano di raggruppare i dati d'ingresso e
di individuare pertanto degli opportuni cluster rappresentativi dei dati stessi,
e quindi di costruire una sorta di classificatore.
31
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
L’esempio più diffuso di algoritmo di apprendimento non supervisionato è
quello utilizzato per le reti SOM.
Apprendimento basato sul rinforzo
In esso la rete gestisce una sequenza temporalmente ordinata di pattern di
ingresso, in corrispondenza ad ognuno dei quali emette un pattern di uscita;
ogni uscita effettivamente prodotta da’ luogo alla ricezione, da parte della
rete, di un opportuno segnale di rinforzo, determinato da una apposita
funzione di rinforzo; quest’ultima stabilisce come il segnale di rinforzo
dipenda dal pattern di ingresso presentato, dal pattern di uscita che esso ha
prodotto, e dalla posizione temporale, nella sequenza, del pattern di
ingresso.
La modifica dei pesi della rete avviene in modo da massimizzare la somma
dei segnali di rinforzo ricevuti durante la presentazione della sequenza in
questione.
Questo tipo di apprendimento è impiegato per progettare sistemi neurali il
cui output deve controllare il processo di adattamento ad un ambiente
esterno complesso, mutevole e imprevedibile.
32
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Apprendimento hebbiano
Si valuta la risposta di due neuroni che sono in una relazione di vicinato tra
di loro, se si attivano contemporaneamente va aumentato il ramo che li
collega, altrimenti si indebolisce il collegamento.
3.6 Tipologie di reti neurali artificiali
Percettrone
Il percettrone (o perceptron) è considerato il modello più semplice di rete
neurale artificiale feed-forward, pensato per il riconoscimento e la
classificazione di forme (o patterns).
Si tratta di una rete neurale artificiale composta da un singolo neurone,
avente “n” ingressi ed una sola uscita:
Il neurone possiede una funzione di attivazione “A” e una funzione di
trasferimento “T”: la prima serve a calcolare il potenziale di attivazione del
neurone, corrispondente alla somma di tutti gli ingressi moltiplicati per i
33
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
rispettivi pesi; la seconda, invece, serve a calcolare il valore del segnale di
uscita sulla base del potenziale di attivazione ed è scelta in funzione delle
grandezze numeriche da trattare; nel percettrone originale era usata la
funzione di trasferimento a gradino.
Il percettrone è un caso particolare di rete neurale, in cui una qualsiasi
uscita della rete è completamente indipendente dalle altre perché ciascun
peso influenza solo uno degli output. Questa caratteristica rende una rete
neurale basata su percettroni di "semplice" analisi, infatti lo studio di una
rete cosi composta può essere semplificata all'analisi separata dei singoli
componenti limitando così lo studio ai singoli percettroni.
SOM di Kohonen
Le Self Organizing Maps, sono reti neurali artificiali, nella categoria
dell’apprendimento non supervisionato, che nascono dagli studi effettuati da
Tuevo Kohonen, responsabile del Neural Network Centre dell’University of
Technology di Helsinki.
A differenza delle reti ad apprendimento supervisionato, nelle quali
l’operatore sceglie gli esempi con cui effettuare l’addestramento assegnando
sia i vettori di ingresso sia quelli in uscita, le reti ad apprendimento non
supervisionato ricevono solo vettori nella fase di input. La configurazione
finale dei pesi dei singoli neuroni permette di suddividere gli elementi forniti
in ingresso in raggruppamenti di "similarità" che di quegli elementi
rappresentano una classificazione.
34
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Le Self Organizing Maps, pertanto, possono essere considerate dei
classificatori le cui classi sono disposte su un reticolo bidimensionale.
Grazie a questo reticolo la mappa auto-organizzante mantiene la topologia
dello spazio degli ingressi. Ciò significa che, se due ingressi si trovano
vicini, vengono raggruppati o nella stessa classe o in classi vicine sul
reticolo bidimensionale.
La mappa tenta di rappresentare tutte le osservazioni disponibili usando un
insieme ristretto di vettori. Questi ultimi sono ordinati su un reticolo
bidimensionale in modo che vettori simili siano posti fisicamente vicini, e al
contrario quelli dissimili siano posti lontano. A maggiore differenza
corrisponde, cioè, maggiore distanza fisica sulla mappa.
LVQ
Le reti Learning Vector Quantization (LVQ) sono dei Classificatori
Multinomiali di tipo probabilistico con algoritmo di apprendimento competitivo
e supervisionato.
In quanto classificatori multinomiali, sono reti supervisionate sottoposte ad
una fase di training durante la quale devono visionare vettori di input allo
35
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
scopo di classificarli correttamente. I vettori di input del set di training sono
articolati in classi; per ogni vettore di input la classe di appartenenza
costituisce il target della rete .
In quanto reti di tipo probabilistico, funzionano come classificatori decisionali
Bayesiani e, inoltre, definiscono i bordi delle classi di regioni nello spazio
dei dati di input. A tal fine ogni regione viene sotto articolata per permettere
che si costituiscano delle sotto classificazioni dei vettori di input. Ad ogni
classe vengono quindi assegnati alcuni vettori (i cosiddetti “codebook”) e
tramite il metodo della Quantizzazione Vettoriale (VQ) si permette la
approssimazione dei vettori più vicini nello spazio degli input secondo la
regola K-nearest-neighbor (KNN).
In quanto reti competitive le LVQ si basano sul principio “Winner Take All”
(WTA), che si traduce nella possibilità di limitare la correzione al solo
codebook più simile all’input.
In sintesi nelle LVQ tale procedura è articolata nel modo seguente: i segnali
di input del training set sono associati ad un numero finito di classi; ad ogni
classe sono assegnati un numero finito di codebook delle stesse dimensioni
dei vettori X di input.
Mediante un processo iterativo, in cui vengono a turno presentati in pattern
di input, sono minimizzate le distanze tra i codebook e i vettori di input.
Tale procedura ha però alcune differenze nei diversi algoritmi delle LVQ.
36
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
L'architettura base delle LVQ prevede tre strati unidimensionali di nodi: uno
strato di Input (I), uno strato intermedio chiamato “di Kohonen” (K) e uno
strato di Output (O).
Non esistono limitazioni sul tipo di variabili che riguardano l’input, i cui
valori possono essere compresi nell’insieme dei numeri reali. L’input tuttavia
deve essere presentato alla rete dopo un’opportuna scalatura.
Il numero di nodi che vengono assegnati allo strato intermedio K fa parte
della progettazione dell’architettura della rete. Questo è un compito
particolarmente delicato in quanto ogni nodo dello strato K rappresenta un
codebook i cui valori sono le connessioni che ogni nodo K intrattiene con i
nodi di input.
Lo strato O di output ha un numero C di nodi di output equivalente al
numero di classi.
37
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Capitolo 4
Progettazione finalizzata all'ottimizzazione
di un sistema ibrido per l'apprendimento
continuo di reti neurali
4.1 Sistema ibrido
Vedremo in questo capitolo il funzionamento del sistema ibrido utilizzato per
il riconoscimento facciale e la metodologia con cui si vuole procedere per
l’ottimizzazione dello stesso, in modo da ottenere una maggiore veridicità
nel riconoscimento dei volti.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Tale sistema ibrido utilizza un insieme di reti neurali (basate su reti LVQ)
per analizzare le diverse caratteristiche del volto, unito ad un sistema di
condizionamento Bayesiano.
Le reti neurali sono addestrate per riconoscere una specifica caratteristica
del volto e, ad ognuna di esse, viene associata un’affidabilità a priori in
base al tipo di zona del volto da analizzare.
In base al rendimento che la rete dimostra di avere vengono ricalcolati
nuovi valori di affidabilità, usando la regola di Bayes. Le nuove affidabilità
sono poi utilizzate per il calcolo della risposta complessiva delle reti
attraverso l’uso di un algoritmo di sintesi.
Inoltre se un soggetto muta una sua caratteristica del tempo, il seguente
sistema è in grado di auto aggiornarsi attraverso un modulo di retroazione.
E’ proprio in questo modulo che si andrà ad operare l’ottimizzazione per
avere un aggiornamento consono ai cambiamenti reali di una caratteristica
del soggetto.
4.2 Funzionamento del sistema ibrido
Il sistema ibrido in questione è caratterizzato principalmente da 5 blocchi:
Estrazione feature: questo blocco si occupa di estrarre le immagini delle
caratteristiche del volto da un immagine complessiva dello stesso.
Reti neurali: in questa sezione le varie immagini delle feature del volto sono
passate alle reti neurali che svolgono il compito del riconoscimento delle
39
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
caratteristiche. Ogni rete fornirà come risposta una lista di soggetti ordinata
in base al grado di confidenza di quel soggetto con l’immagine di 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 insieme 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 quel’è il soggetto finale identificato dal
sistema.
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.
Ecco schematizzati i 5 blocchi che caratterizzano il sistema ibrido:
40
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Qui di seguito, invece, è illustrato in maniera semplificata ed utilizzando solo
due reti di riconoscimento, il funzionamento del sistema ibrido privo del
modulo di retroazione.
Gli insiemi A e B, che rappresentano gli insiemi massimamente consistenti,
detti anche “Good”, contengono le risposte delle due reti neurali
rispettivamente della “Rete Occhi” e della “Rete Bocca”.
Dopo aver visto il funzionamento del sistema ibrido senza la retroazione,
vediamo come è stato possibile introdurre nel sistema stesso questo
modulo.
41
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Una volta che la funzione di sintesi ci dà la risposta, possono verificarsi 2
casi e cioè: il soggetto indicato dalla funzione di sintesi è presente
nell’insieme dei Good (specifico di una rete) o al contrario il soggetto
indicato non è presente nell’insieme dei Good. Entrambi i casi sono illustrati
nelle seguenti figure.
Modulo di retroazione
Questo componente si occupa di aggiornare la conoscenza delle singole reti
sulla base dell’output generato dalla funzione di sintesi.
Inoltre è un modulo necessario per poter gestire un eventuale evoluzione;
ad esempio, se un soggetto in fase di training della rete, incaricata al
riconoscimento della bocca, ha la barba corta, e successivamente decide di
42
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
farla crescere, si arriverà ad un punto in cui l’immagine della sua bocca non
sarà più associata a lui.
E’ quindi 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. Ciò porterebbe a causare
un numero esagerato di riaddestramenti, e questo non è un fatto positivo;
pensiamo, ad esempio, ad un soggetto che a giorni alterni indossa occhiali
da vista e lenti a contatto.
Per tener quindi conto dei soli cambiamenti stabili del soggetto si è
utilizzato un approccio basato sul concetto di finestra temporale: si tiene
traccia di ogni cambiamento di ogni caratteristica e contemporaneamente si
controlla se nelle successive analisi dello stesso soggetto, 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.
Per realizzare il concetto di finestra temporale e il riaddestramento si ricorre
all’uso di due directory:
-
Directory “temp”: usata per tenere traccia delle immagini delle
caratteristiche che sono mutate.
-
Directory “riadd”: nella quale vanno inserite le immagini con cui
rioperare il riaddestramento.
43
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Se il cambiamento di una caratteristica (ad esempio della barba) non è un
cambiamento che si è stabilizzato nel tempo, la directory temp viene
svuotata.
Se invece ad ogni analisi del volto un cambiamento di una feature viene
registrato più volte, tante quanto un valore di soglia (window lenght o
finestra temporale), allora tutte le immagini che vengono salvate nella
cartella temp, vengono spostate nella cartella riadd e parte il
riaddestramento della rete utilizzando le immagini presenti in riadd.
4.3 Progettazione dell’ottimizzazione
Utilizziamo quindi le immagini presenti nella cartella riadd per operare il
riaddestramento di un eventuale rete.
Dovremo però essere sicuri che queste immagini siano esatte, cioè siano
immagini di una caratteristica che l’individuo, ha cambiato stabilmente.
Dobbiamo esser sicuri, cioè, che nella cartella riadd non ci siano immagini
che non sono state riconosciute perché hanno una cattiva risoluzione o
perché l’espressione del volto è cambiata o per vari piccoli cambiamenti nel
volto.
44
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Il concetto di finestra temporale, introdotto nel modulo di retroazione, funge
da buffer, salvando le immagini di un soggetto che causano la perdita di
affidabilità di una rete.
Nel buffer troveremo quindi le caratteristiche dei volti che la rete non è stata
in grado di riconoscere.
Quando la finestra temporale è piena, si procede al riaddestramento.
Ma è possibile lasciare che le immagini non riconosciute vengano utilizzate
per riaddestrare una rete su di un soggetto?
Tali immagini, potrebbero essere state non riconosciute per diversi motivi:
-
L’immagine di input è di cattiva qualità.
-
Il soggetto ha cambiato parzialmente aspetto.
-
Il soggetto è girato o ha cambiato espressione.
-
La rete non ha sbagliato, ma sono tutte le altre reti ad aver sbagliato.
E’ quindi necessario un filtro tra la finestra temporale e la rete da
riaddestrare che ci permetta di selezionare solo immagini adeguate.
Si è pensato, quindi, di identificare le immagini simili presenti nella finestra
temporale (directory temp).
Questo perché si ipotizza che nella cartella temp siano presenti un numero
maggiore di immagini adeguate ad un riaddestramento della rete (cioè
immagini, che non sono state riconosciute perché il soggetto ha cambiato
realmente una sua caratteristica).
45
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Il risultato di questa selezione dovrà essere, quindi, l’eliminazione di tutte
quelle immagini inadeguate al riaddestramento e che quindi avrebbero
falsato il successivo riconoscimento.
Ecco quindi schematizzata la posizione in cui dovrà essere integrato il filtro.
Temp
Riadd
Immagine1
Immagine 1
Immagine2
Immagine2
Immagine3
FILTRO
Immagine4
Immagine4
Dallo schema ci si accorge come il filtro andrà applicato nel modulo di
retroazione.
Inoltre, come illustrato nello schema, le immagini 1, 2 e 4 saranno le
immagini più simili tra loro e che quindi verranno selezionate per il
riaddestramento, a differenza dell’immagine 3 (che differisce dalle altre
immagini per una qualche ragione elencata in precedenza) che invece viene
scartata.
46
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Capitolo 5
Ottimizzazione
5.1 Metodo di ottimizzazione
Si è ottimizzato l’intero sistema, anticipando la fase di riaddestramento con
l’introduzione dei seguenti passi:
-
Compressione: consiste nell’inserimento di algoritmi di Dimensionality
Reduction a seconda delle immagini da trattare.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
-
Classificazione: consiste nell’inserimento di un algoritmo di Classificazione
delle immagini.
-
Selezione Cluster: consiste nell’inserimento di una funzione che preleva le
immagini appartenenti al Cluster più numeroso.
-
Copia: consiste nell’inserimento di una funzione che copia le immagini
selezionate nella cartella di riaddestramento.
Compressione
L’algoritmo di compressione PCA trova l’insieme delle componenti
fondamentali attraverso cui descrivere la totalità delle immagini.
Con questo approccio le informazioni messe a disposizione vengono filtrate
eliminando parti ridondanti o di poco interesse, disturbi compresi.
La compressione delle immagini è molto dispendiosa dal punto di vista del
tempo di esecuzione difatti, si arriva a dover attendere anche 15 minuti per
la compressione di immagini più grandi, quali quelle della Fronte o della
Bocca.
Essendo gli ingressi dimensionalmente diversi, è stato necessario creare
diversi metodi per ogni immagine che il sistema andrà a trattare.
48
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Ecco quindi di seguito illustrato il codice che associa ad una classe un tipo
di immagine specifico.
In alcuni casi, come ad esempio nel caso delle immagini della fronte, si ha
a che fare con immagini di dimensioni abbastanza grandi, di conseguenza
si tratta di avere matrici molto grandi; Pertanto è stato opportuno allocare
dinamicamente le matrici come di seguito:
49
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Classificazione
La Rete Neurale SOM si occuperà della classificazione delle immagini.
L’algoritmo è descritto nei seguenti 6 passi:
-
Inizializzazione: la rete viene creata ed i vettori dei pesi vengono inizializzati
con dei valori casuali in maniera tale che ogni vettore sia, in norma
euclidea, unitario.
-
Selezione vincitore: prendiamo il k-esimo ingresso e cerchiamo il vettore dei
pesi la cui distanza euclidea con l’ingresso considerato è minima. Il neurone
associato a questo vettore di pesi è il neurone vincitore (BMU).
-
Aggiornamento: selezioniamo il BMU ed i neuroni vicini in modo da
avvicinare i loro vettori dei pesi al valore del vettore d’ingresso input.
-
Normalizzazione: si normalizzano i vettori dei pesi, in modo tale che
abbiano tutti norma euclidea unitaria, affinché non si creino ambiguità nella
ricerca del vincitore per gli ingressi successivi.
-
Iterazione: si ripete la procedura dal passo due al passo quattro finché non
si raggiunge un prefissato numero di iterazioni.
-
Classificazione: la rete ha la conoscenza necessaria per determinare i
cluster di appartenenza degli input. Troviamo, quindi, tutti i neuroni vincenti,
cioè uno per ogni ingresso a disposizione. I BMU che si trovano a distanza
50
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
minore di un certo raggio, sono considerati appartenenti allo medesimo
cluster.
Poi attraverso la corrispondenza neurone vincente - ingresso possiamo
facilmente assegnare ad ogni input il suo cluster.
Selezione Cluster
La funzione di selezione, preleva il cluster che contiene un numero
maggiore di immagini.
La riga contenuta nella variabile r, indica il cluster (o gruppo) nel quale
sono presenti un maggior numero di immagini.
51
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Copia
Le immagini presenti nel cluster più numeroso vengono copiate nella cartella
di riaddestramento, tramite un algoritmo di copia.
Ora, quindi, le immagini presenti nella cartella di riadd sono pronte per la
fase di retraining.
5.2 Sistema ibrido ottimizzato
Ecco quindi illustrato il nuovo schema del sistema ibrido che implementa il
filtro nel modulo di retroazione.
52
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Filtro classificatore
Come già detto in precedenza, dato un insieme di immagini in ingresso
(presenti nella cartella temp) l’algoritmo di Dimensionality Reduction trova
l’insieme delle componenti fondamentali attraverso cui descrivere la totalità
delle immagini.
Poi attraverso l’uso delle Reti SOM si riesce a creare una vera e propria
mappa organizzata in cui ingressi simili eccitano neuroni vicini.
I BMU (neuroni vincitori) che si trovano a distanza minore di un certo
raggio sono considerati appartenenti allo stesso Cluster (o gruppo).
Attraverso la corrispondenza [neurone vincente <- -> ingresso] possiamo
facilmente assegnare ad ogni input il suo Cluster.
Tramite, quindi, l’algoritmo di selezione del cluster prenderemo in
considerazione quelle immagini (quegli ingressi) che apparterranno al
cluster più numeroso, che verranno poi copiate nella cartella di
riaddestramento ed utilizzate immediatamente per il retraining della rete.
FILTRO
Compressione
Classificazione
Selezione Cluster
Copia
53
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Capitolo 6
Risultati
6.1 Database ORL modificato
Caratteristiche del database
Il database ORL originario contiene un set di immagini di facce prelevate
dall’Olivetti Research Laboratory tra l’aprile del 1992 e l’aprile del 1994.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Ci sono 10 diverse foto per ognuno dei 40 diversi soggetti.
Per molti soggetti le foto sono state prelevate in tempi diversi, variando, le
illuminazioni, le espressioni facciali o alcuni accessori (come occhiali ecc..).
Tutte le immagini sono state scattate su uno sfondo scuro omogeneo con i
soggetti in posizione verticale e rivolti frontalmente.
Inoltre la dimensione di ogni immagine è 92x112 pixel, con 256 livelli di
grigio per pixel.
Nel test che andremo ad analizzare nei prossimi paragrafi, sono stati
utilizzati solamente 20 soggetti presenti nel database ORL.
Per testare il nostro sistema però il database ORL non è adeguato in
quanto come già accennato sopra ci sono solamente 10 diverse immagini
per ogni soggetto. Tutto infatti dipende da come impostiamo la finestra
temporale.
Se ad esempio settiamo la finestra temporale a 4, per poter far partire il
riaddestramento di una rete si dovrà fare in modo che almeno 4 immagini
del soggetto siano non riconosciute. Ciò però è difficile se si hanno
solamente 10 immagini perché le immagini del soggetto difficilmente variano
in maniera cosi accentuata.
55
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Si è cosi deciso di andare a modificare il database in questione in diversi
modi:
-
Aggiungendo nuovi volti per alcuni soggetti, ottenuti tramite operazioni
di fotoritocco sulle immagini del soggetto stesso.
-
Aggiungendo immagini prelevate da altri database di volti come il
“FERET”.
-
Aggiungendo immagini prelevate dai soggetti, del database ORL, non
presi in considerazione nel test di riconoscimento.
6.2 Training delle reti
Per la fase di training sono state prelevate, dal database ORL, 4 immagini
per ognuno dei 20 soggetti diversi.
Quindi ogni rete neurale sarà addestrata utilizzando 80 immagini che dovrà
imparare a riconoscere.
56
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
6.3 Test del sistema ibrido ottimizzato con il database
ORL modificato
Come è possibile immaginare, utilizzando il database ORL modificato, il
sistema sarà indotto ad andare in errore di riconoscimento per alcune
feature di alcuni soggetti.
Per testare il sistema, consideriamo le percentuali di riconoscimento in
quanto sono molto importanti per capire la bontà di ogni singola rete.
Difatti questi valori, sono ottenuti dal seguente rapporto:
Somma risposte giuste reti / totale risposte reti
Somma risposte giuste reti  indica il numero di volte in cui una rete ha
dato una risposta esatta, e che quindi, ha riconosciuto il soggetto.
Totale risposte reti  numero di volte in cui una rete ha dato una risposta.
Facciamo quindi in modo che le immagini pronte per il riaddestramento
vengano filtrate.
57
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Ecco di seguito la tabella che illustra la percentuale di riconoscimento
ottenuta per ogni rete.
Sistema ibrido
Sistema ibrido ottimizzato
Alla prima esecuzione le differenze con il sistema ibrido precedente sono
ristrette. Anzi le percentuali di riconoscimento di alcune reti si abbassano
leggermente.
E’ possibile aspettarsi questo tipo di comportamento perché le reti non sono
ancora state riaddestrate a riconoscere delle immagini, filtrate in base alla
loro bontà per qualità, espressioni dei volti ecc…
58
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Procediamo ora, valutando i medesimi soggetti dopo che il riaddestramento
ha istruito il sistema a riconoscere le immagini che invece prima hanno
indotto in errore le relative reti.
Sistema ibrido
Sistema ibrido ottimizzato
Notiamo quindi che terminato il primo riaddestramento, il sistema diventa più
affidabile. Difatti le reti aumentano la loro percentuale di riconoscimento per
soggetti che hanno cambiato stabilmente una loro caratteristica.
59
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Conclusioni
Con questo lavoro di tesi si è integrato un filtro classificatore nel modulo di
retroazione di un sistema biometrico per il riconoscimento degli individui
attraverso l’analisi facciale.
Il sistema ibrido, privo di filtro, garantisce buone prestazioni riguardo il
riconoscimento, è robusto a cambiamenti limitati delle caratteristiche del
soggetto ma risulta inefficace nella selezione delle immagini atte ad essere
impiegate per il riaddestramento. Si è pensato, quindi, di introdurre un
processo di classificazione-selezione delle immagini che anticipi la fase di
retraining di una rete.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Quando si raggiunge un numero prefissato di mancati riconoscimenti
consecutivi del soggetto, (dovuto al cambiamento di una caratteristica del
soggetto) da parte di una rete, allora si effettua un nuovo addestramento
per la rete in questione, inducendola a riconoscere quella feature alla
prossima analisi del volto.
Il filtro classificatore introdotto nel modulo di retroazione, trasforma gli
ingressi grazie alla tecnica PCA e successivamente tramite l’uso della rete
neurale SOM riesce a raggruppare in insiemi diversi immagini più simili tra
loro. Tra gli insiemi in output, viene selezionato il cluster più numeroso in
modo da prelevare solo le immagini più adatte per un corretto retraining
della rete. In questo modo, confortati anche dai risultati ottenuti, è possibile
affermare che per migliorare ulteriormente un sistema ibrido che gode già di
buone performance, è necessario incorporare un filtro per la selezione delle
immagini utilizzate per il riaddestramento.
61
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
Bibliografia e sitografia
 Bernd Fritzke. Growing cell structures – a self organizing network for
usupervised and supervised learning. Neural networks, 7:1441-1460, 1993.
 Bernd Fritzke. Growing cell structures – a self organizing network for
unsupervised and supervised learning. Neural networks, 7(9):1441-1460,
1994.
 T. Kohonen. “The Basic SOM” Self-Organizing Maps, volume 30. Springer,
Berlin.
 T. Kohonen. “Learning Vector Quantization” Self-Organizing Maps, volume
30. Springer, Berlin.
Sistema ibrido ottimizzato per l’apprendimento continuo di reti neurali
 T. Martinetz and K. Shulten. A neural-gas network learns topologies.
Artificial Neural Networks, I:397-402, 1991.
 Pasquale Sconciafurno. Sistema ibrido per l’apprendimento continuo di reti
neurali. Master’s thesis, Università politecnica delle marche, 2010.
 Ashok Samal and Prasana A. Iyengar. Automatic recognition and analysis
of human faces and facial expressions: a survey. Pattern Recognition,
25(1):65-77, 1992.
 D. Zhang Y. Li. Modular Neural Networks and Their Applications in
Biometrics, volume 35. Springer Berlin / Heidelberg, 2007.
 Comignani Francesco. Sistema ibrido per il riconoscimento dei volti.
Università politecnica delle marche, 2010.
 W. Zhao, R Chellappa, P. J. Phillips, and A. Rosenfeld. Face recognition:
A literature survey, 2000.
 L. I. Smith. A tutorial on Principal Components Analysis, 2002.
 Wikipedia, l’enciclopedia libera. www.wikipedia.org.
 AT&T Laboratories Cambridge and Olivetti Research Laboratory database.
63
Scarica