Sistema ibrido ottimizzato per l`apprendimento continuo
by user
Comments
Transcript
Sistema ibrido ottimizzato per l`apprendimento continuo
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