Un Algoritmo Immunologico per il Riconoscimento di Caratteri 27/03/2017 Un Algoritmo Immunologico per il Riconoscimento di Caratteri e per il Problema 3-SAT Giuseppe Nicosia Dipartimento di Matematica e Informatica Università di Catania In questa presentazione descriverò il lavoro di tesi dal titolo
Indice della presentazione In particolare vedremo tre sezioni:nella prima descriverò brevemente: la metafora utilizzata, i meccanismi che da essa abbiamo estratto e lo sviluppo dell’algoritmo che abbiamo creato,nella seconda vedremo che questo mantiene le proprietà di apprendimento ereditate dal SI naturale, e nella terza osserveremo il comportamento dell’algoritmo nel risolvere istanze difficili di un problema NP-completo quale il 3SAT Indice della presentazione Computazione Evolutiva: Metafora SI, Selezione Clonale ed Algoritmo immunologico Learning e riconoscimento di caratteri mediante un Algoritmo Immunologico (AI). Risoluzione di istanze difficili del problema 3-SAT con un AI.
Algoritmi Evolutivi Nascono dal “paradigma” della evoluzione biologica della specie Gli operatori principali: Selezione Ricombinazione Mutazione Questi algoritmi vengono utilizzati in applicazioni quali riconoscimento di patterns ed ottimizzazioni di funzioni.
Sistema Immunitario Naturale Il SI naturale è un sistema di riconoscimento e difesa dell’organismo da agenti patogeni esterni. Ci siamo posti la seguente domanda : E’ possibile utilizzare i meccanismi del SI per costruire un algoritmo evolutivo capace di risolvere problemi di riconoscimento ed ottimizzazione ? Il lavoro della tesi è una prima risposta a questa domanda.
Meccanismi Principali del SI Naturale Il SI naturale riconosce ed elimina gli agenti patogeni esterni (antigeni) con un sistema complesso, basato sul matching, anche non perfetto, tra le caratteristiche dei linfociti B (Cellule B) e gli antigeni. La cellula B che ha riconosciuto un antigene attiva un processo di clonazione e successiva ipermutazione dei cloni. Per alcune di queste cellule il tempo di vita media si allunga (cellule memoria). Le cellule che non riconoscono gli antigeni muoiono in pochi giorni; nuove cellule B vengono prodotte continuamente dal midollo spinale.
matching, anche non perfetto, Il SI Naturale Il SI naturale riconosce ed elimina gli agenti patogeni esterni (Antigeni) con un sistema complesso, basato sul matching, anche non perfetto, tra i recettori dei linfociti B (Cellule B) e gli antigeni.
Meccanismo della Selezione Clonale, produzione di plasma cellule e cellule memoria La cellula che supera la soglia di attivazione viene clonata, i cloni vengono sottoposti a mutazione alcuni evolveranno in Plasma cellule altri in Cellule memoria caratterizzate da un tempo di vita media molto lungo. All’interno di questo mecc. È presente anche un processo chiamato affinity loop Affinity loop: Le cellule prodotte da clonazione vengono a loro volta sottoposte a selezione
Algoritmo Immunologico Basandoci su questi modelli del SI abbiamo costruito un algoritmo evolutivo che utilizza i seguenti operatori:
Gli Operatori Immunologici Selezione mediata dall’antigene: L’incontro tra recettore ed Antigene genera informazione che serve al processo evolutivo della Selezione Clonale. Clonazione: La cellula viene duplicata un numero di volte prestabilito. Ipermutazione: Inserisce diversità nella popolazione garantendo la copertura di spazi di ricerca molto ampi.
L’Algoritmo Immunologico Procedura AI;{ Initpop P(0); /* Generazione casuale di P */ Evaluate P(0); /* Valutazione livelli affinità */ until(done) { t=t+1; CloningSelection P(t); /* Selezione in base ad affinità */ Hypermutation(); /* Mutazione B cells */ Birth(); /* Nascita B cells */ Evaluate P(t); Survive P(t); /* Secondo passo di selezione */ } Qui è mostrata la pseudo codifica dell’algoritmo da noi presentato. Sono ben visibili gli operatori precedentemente menzionati
Dario: Forse è meglio: Osservando i comportamenti di due diverse implementazioni Applicazioni L’algoritmo descritto è stato verificato su due classici problemi computazionali: Il riconoscimento di caratteri Testato su due implementazioni diverse: Riconoscimento sequenziale e parallelo. Il 3-SAT Mediante l’uso di un meccanismo chiamato SAW.
I Applicazione Riconoscimento di Caratteri
Riconoscimento di Caratteri I caratteri in input vengono presentati come una matrice di bit 12x10; Gli antigeni e i recettori delle cellule B vengono codificati mediante un vettore di interi di dim. 120, la metrica che abbiamo utilizzato per definire la distanza tra rec. ed antig. è la DH uguale alla somma di tutti i bit diversi, La funzione di fitness associata alle cellule è quindi un numero compreso tra 0 ed 1 1 perf. Match 0 entità opposte Riconoscimento di Caratteri Definizione del problema: Ag Recettore codificati mediante un vettore di interi di dim. L = 120 Distanza di Hamming Funzione di Fitness 12 x 10
Evoluzione di una singola popolazione di cellule B Lanciata la versione sequenziale osservando l’evoluzione della popolazione di cellule, si possono notare gli spike che corrispondono ai vari riconoscimenti, Nel grafico piccolo è evidenziato un particolare relativo al primo step di riconoscimento per meglio apprezzare l’espansione in prossimità del perfect match Evoluzione di una singola popolazione di cellule B 200 150 100 50 5 10 15 20 25 30 35 40 Spike Variazione sul numero di cellule B durante il riconoscimento di tutti i caratteri. Gli spike corrispondono ai riconoscimenti
Andamento della Fitness Function Un’altra quantità da tenere in considerazione è la misura di affinità. Dalla quale otteniamo la certezza dei riconoscimenti, informazioni sulla sequenza di questi e sull’andamento dei valori di fitness Andamento della Fitness Function Valori medio e massimo della misura di affinità delle cellule B durante il riconoscimento degli Antigeni in Input.
Learning Cascade 1 popolazione Spostamento della distribuzione delle cellule relativamente al numero di Matching Bits
Riconoscimento Parallelo La seconda versione dell’algoritmo permette 1. Un’altra differenza consiste nella 2. Riconoscimento Parallelo Coevoluzione di n popolazioni che contemporaneamente tendono agli n caratteri in input Seconda fase della selezione : Abbiamo utilizzato un meccanismo chiamato ranking selection (Selezione Ordinata) secondo il quale vengono selezionati per sopravvivere solo m individui per ogni popolazione. La popolazione i-esima sarà formata, quindi, dai primi m elementi della lista ordinati rispetto all’i-esimo elemento dell’array F (fitness function).
Coevoluzione di più popolazioni di cellule B Questa seconda implementazione ha evidenziato aspetti interessanti: nei primi steps del riconoscimento abbiamo osservato che le popolazioni contengono alcuni individui in comune che vengono via via rimpiazzati da cellule più specializzate, questo fenomeno, nel SIN è appunto chiamato specializzazione. Durante il riconoscimento la diminuzione del numero di cellule è dovuta al fatto che si devono isolare sempre meno popolazioni man mano che i caratteri vengono riconosciuti. Coevoluzione di più popolazioni di cellule B Totalità delle cellule B 100 80 Riconoscimento dei Caratteri 60 Numero cellule B 40 Specializzazione 20 10 20 30 40 50 60 70 Time Steps Grafico sulla dinamica del Numero di Cellule B durante il Riconoscimento Parallelo.
Andamento della Fitness Function L’andamento della fitness dei migliori elementi di ogni popolazione ci mostra la effettiva coevoluzione verso il riconoscimento completo di tutti i caratteri Andamento della Fitness Function Valori di Fitness degli Individui Migliori 1 0.95 0.9 0.85 0.8 Fitness patt 0 0.75 patt 1 patt 2 patt 3 0.7 patt 4 patt 5 0.65 patt 6 patt 7 0.6 patt 8 patt 9 0.55 10 20 30 40 50 60 Time Steps Visualizzazione del valore di affinità migliore per ogni sotto po- polazione relativa a tutti i patterns in input.
Learning Cascade n popolazioni Una ulteriore verifica di questo riconoscimento è visibile dallo spostamento della distribuzione delle cellule da una aggregazione con molti bit di mismatch verso una aggregazione senza bit di mismatch. L’osservazione di questi spostamenti ha permesso di capire meglio l’operatore di ipermutazione. Spostamento della distribuzione delle cellule relativamente al numero di Matching Bits
Single vs Multiple Multiple converge più velocemente ed è insensibile al numero di caratteri in input Il confronto tra le due implementazioni ha evidenziato che il riconoscimento parallelo
II Applicazione Il Problema 3-SAT
Il problema 3-SAT Istanza: Una collezione di clausole 27/03/2017 Il problema 3-SAT Istanza: Una collezione di clausole Un insieme finito U di variabili tali che : Problema: Esiste un assegnamento di verità per U che soddisfa tutte le clausole in C CNF In questo problema si ha Noi abbiamo considerato formule proposizionali in CNF
Istanze difficili del problema 3-SAT (Mitchell 1992) Di queste abbiamo considerato le istanze che presentano un rapporto clausole / variabili uguale a 4.3. Mitchell ha dimostrato che queste sono le istanze più difficili di tale problema, ovvero quelle per le quali sono necessarie il maggior numero di chiamate alla procedura ricorsiva DP Istanze difficili del problema 3-SAT (Mitchell 1992) Le istanze con rapporto clausole/variabili 4,3 Numero medio di chiamate ricorsive alla procedura DP in funzione del rapporto tra clausole e variabili.
SAW Lo Stepwise adaptation weight è uno dei meccanismi più usati per incrementare le prestazioni degli AE riguardo i (CSP) Constraint Satisfaction Problem, cioè i problemi dove esistono vincoli da soddisfare. Esso consiste nell’assegnare un peso ad ogni clausola ed incrementarlo se la clausola, dopo un certo numero di Time Steps, non è stata ancora verificata. Mediante tale metodo, quindi, abbiamo informazioni sulla semantica del problema.
Codifica per il problema 3SAT Ag = Formula proposizionale in cnf soddisfacibile, codificata mediante un vettore di interi di dimensione l · 3, dove l è il numero di clausole. Recettore della Cellula B = Assegnamento di verità codificato mediante un vettore di interi di dimensione n, numero di variabili. Funzione di Fitness (penalità) è una somma pesata delle clausole insoddisfatte: Dove Wi è il peso della clausola i al tempo t, Sati(A)=0 se essa non è soddisfatta dall’assegnamento A proposto dalla Cellula B
Confronto con altri algoritmi evolutivi Il nostro algoritmo (AI) è stato confrontato con i migliori algoritmi - nell’ambito delle strategie evolutive e degli algoritmi genetici - per il problema del 3SAT : La strategia evolutiva (15,100)-SE l’algoritmo genetico WGSAT [vedi 7th Annual Conference on Evolutionary Programming, LNCS, n.1477, pp. 125-136. Springer Berlin, 1998] Il confronto è basato su due parametri: SR = success rate, percentuale degli esperimenti con successo AES = average number of evaluation to solution, numero di valutazioni necessarie per ottenere la soluzione.
EA vs. IA (15,100)-SE (1+1)-Saw AI WGSat Opt. Fixed Caso SR AES l=30 1 I risultati ottenuti sono stati confrontati con quelli ottenuti da altri 2 AE una SE ed un AG entrambi selezionati come i migliori del loro gruppo nella risoluzione del problema in esame, l’AG inoltre usa dei parametri ottimizzati per le diverse istanze.l’ AI di contro usa parametri minimali ottenendo risultati soddisfacenti. Percentuale di esperimenti con successo 27/03/2017 Numero medio di valutazioni EA vs. IA Numero Variabili (15,100)-SE (1+1)-Saw AI WGSat Opt. Fixed Caso SR AES l=30 1 0.92 18725 2912 6063 2 - 40918 0.96 78985 3 1705 31526 l=40 4 0.70 10145 13676 13328 5 0.66 11795 0.76 74374 2899 6 15036 0.94 82031 l=50 7 0.80 22269 0.32 98644 28026 8 0.34 8183 0.98 46006 60160 9 0.18 149323 147718 l=100 10 0.36 122218 0.06 192403
Abbiamo creato un nuovo... Conclusioni Nuovo algoritmo evolutivo: l’algoritmo immunologico. Learning mediante algoritmo immunologico coevolutivo. Soluzioni di istanze difficili del problema 3-SAT. Abbiamo creato un nuovo... Abbiamo dimostrato che questo è capace di apprendere e di risolvere problemi difficili