UNIVERSITÁ DEGLI STUDI DI CATANIA FACOLTÁ DI INGEGNERIA DIPARTIMENTO DI INGEGNERIA ELETTRICA, ELETTRONICA E DEI SISTEMI CORSO DI LAUREA IN INGEGNERIA INFORMATICA ___________________________________________________
GIUSEPPE PATTI
ARCHITETTURE NON LINEARI PER LA CLASSIFICAZIONE BASATE SU PATTERN DI TURING
________________ TESI DI LAUREA
________________
Relatori:
Chiar.mo Prof. PAOLO ARENA
Correlatori: Dott. Ing. DAVIDE LOMBARDO Dott. Ing. LUCA PATANÈ
___________________________________________________ ANNO ACCADEMICO 2004/2005 1
SOMMARIO Prefazione……………………………………………………………...……3 1 Introduzione ………………………………………………………...………………..5 2 I pattern di Turing e le CNN……………………………………………………….....9 2.1 Introduzione………………………………………………………..…. ...…9 2.2 La Diffusion-Driven Instability…………………………………..……….10 2.2.1Considerazioni……………………………………………..… ….18 2.2.2Le CNN………………………………………………………..…19 3 Il simulatore…………………………………………………………………...….....23 3.1 Funzionalità offerte…………………………………………………….....24 3.1.1 I tool……………………………………………………………..25 3.1.1 Le simulazioni……………………………………………….......27 3.2 Il simulatore in dettaglio……………………………………………......…31 3.2.1 I tool………………………………………………………......…32 3.2.1.1 Le caselle di testo…………………………….…….…32 3.2.1.2 Process autofunction……………………………......…33 3.2.1.3 Plot dispersion curve…………………………….…….33 3.2.2 La simulazione…………………………………………….....….33 3.2.2.1 Le scelte iniziali………………………………….….....34 3.2.2.2 Simulate pattern ………………………………….....…34 3.2.2.3 Create matrix………………………………………......36 3.2.2.4 Simulate subset………………………………...……....36 3.2.2.5 Basin………………………………………...………....37 3.2.2.6 Process data…………………………………...……….38 4 Le simulazioni……………………………………………………………...…….. ..39 4.1 Risultati pattern di Turing………………………………………………....39 4.1.2 Considerazioni…………………………………………………...82 4.2 Risultati Geometrie bacini di attrazione…………………………………..84 4.2.1 Considerazioni……………………………………….…………103 5 Conclusioni………………………………………………………………………...104 6 Bibliografia………………………………………………………………………...107 2
Prefazione Questa tesi si occupa di analisi teoriche e numeriche di architetture non lineari per la classificazione di informazioni attraverso i pattern di Turing. Classificare vuol dire rappresentare i fenomeni osservati con parametri che diano una rappresentazione semplice ma univoca di essi attribuendo ai suddetti delle determinate caratteristiche, ossia è possibile affermare che ciascun fenomeno appartiene ad una “famiglia” di fenomeni della sua stessa natura. E’ opportuno, a tal proposito sottolineare che, accanto alla classificazione vi è sempre sottintesa l’identificazione cioè, quel procedimento che permette, data una famiglia di fenomeni omogenei che vogliamo definire, di distinguerla da una simile ma differente. Di tutto ciò ne è un esempio il riconoscimento di pixel in un immagine di oggetti concreti come rocce, fiori oppure fenomeni di natura più complessa. Da ciò l’utilizzo dei pattern di Turing come classi in grado di rappresentare anche graficamente delle informazioni. A tal fine è stato sviluppato un simulatore di pattern di Turing, che genera i l’emersione dei pattern simulando una RD-CNN, per validare i risultati teorici.
3
Nel Capitolo 1 viene presentato il concetto di pattern, elemento portante della tesi, offrendone una panoramica sui suoi ambiti di utilizzo. Nel Capitolo 2 vengono presentate sia le base della teoria proposta da Turing per la formazione dei pattern, sia l’architettura di una RD-CNN importantissima ai fini della simulazione. Il Capitolo3 invece presenta, offrendo una sorta di manuale d’uso, il simulatore utilizzato per estrapolare i risultati presentati. Nel Capitolo 4, infine, vengono mostrati ed analizzati i risultati delle simulazioni effettuate.
4
CAPITOLO 1
Introduzione La parola pattern, che è utilizzata in molti contesti scientifici, si riferisce a quantità variabili nello spazio e/o nel tempo [1] esistenti sia in natura sia in oggetti creati dall’uomo. In un certo senso il termine pattern definisce uno stato di equilibrio non omogeneo di un array di elementi identiche. Secondo alcune teorie esisterebbero solo un numero finito di modi in cui i pattern possono essere strutturati, in quanto costituenti di una griglia che sta alla base di ogni struttura ed ogni immagine. Di pattern in natura si occupa l’embriologia, che studia la formazione e lo sviluppo dell’embrione dalla fecondazione alla nascita. A tutt’oggi non è ancora noto con certezza il funzionamento dei meccanismi che portano alla formazione di pattern negli embrioni, ma comunque esistono valide teorie a riguardo. Una di queste è quella di Wolpert [2] , il quale sostiene che le cellule siano pre-programmate a reagire alla concentrazione di sostanze chimiche ed a differenziarsi conseguentemente. In base a questo punto di vista il processo di formazione dei pattern viene separato in diversi passi, di cui il primo e più importante è quello di creare un pattern spaziale della concentrazione di morfogeni, ossia di componenti chimici che influenzano 5
la morfogenesi. La morfogenesi si basa, quindi, su una specificazione chimica a priori, così che, una volta che il pre-pattern è stabilito, essa diventa solo un processo meccanico già determinato. Ma forse un più comune ed evidente esempio dei pattern in natura è rappresentato dal manto talvolta striato, talvolta maculato di molti animali, infatti secondo la teoria di Turing-Murray un singolo meccanismo può essere responsabile della generazione di tutti i pattern comuni osservati. Questo meccanismo è basato su un sistema di reazione-diffusione dei prepattern morfogeni e della susseguente differenziazione delle cellule che producono melanina semplicemente riflettendo la concentrazione dei pattern spaziali di morfogeni. Lo sviluppo di pattern colorati sulla pelle di un mammifero avviene verso la fine dell’embriogenesi. Per creare pattern colorati, determinate cellule chiamate melanoblasti migrano verso la superficie dell’embrione e diventano cellule pigmentose chiamate melanociti. Ne è un esempio il colore dei capelli che viene dai melanociti che generano melanina. Da esperimenti è stato dimostrato che la produzione di melanina da parte dei melanociti è dovuta alla presenza di una sostanza chimica ancora sconosciuta [3]. Infatti da tutte queste teorie derivano diverse considerazioni che hanno un riscontro in natura abbastanza evidente in tal senso noteremo che, non ci sono animali con il corpo a righe e la coda maculata ma ci sono animali con il corpo maculato e la coda a strisce 6
quindi si può riassumere la teoria di Turing-Murray in tal modo: dato che il corpo è sempre più largo della coda lo stesso meccanismo di reazionediffusione dovrebbe essere il responsabile dei pattern sul corpo e sulla coda, quindi se il corpo è rigato e i parametri sono simili per il corpo e la coda allora anche la coda dovrà essere rigata ne sono un esempio i serpenti che hanno dei pattern a strisce ma non maculati [3].
Fig 1.1 Esempi di pattern di Turing nel manto degli animali.
7
Riguardando le possibili applicazioni dei pattern, perchĂŠ, dunque non pensare che anche la classificazione di informazioni possano essere rappresentate mediante i pattern di Turing? Adesso passeremo alla trattazione della teoria, precedentemente accennata, della formazione dei pattern attraverso meccanismi di reazione diffusione.
8
CAPITOLO 2
I pattern di Turing e le CNN 2.1 Introduzione Alan Turing, una delle menti più illustri del 20° secolo, in una sua interessantissima teoria chimica dimostra per primo che un sistema di equazioni di reazione diffusione può dare vita ad un pattern spaziale attraverso un processo di instabilità [4]. Egli suggerisce che, sotto certe condizioni, le sostanze chimiche possano reagire e diffondere in modo tale da produrre pattern spaziali eterogenei di concentrazioni di morfogeni, che poi si stabilizzano in stato stazionario. In generale una equazione di reazione-diffusione [3] si presenta nella forma:
∂c = f (c ) + D ⋅ ∇ 2 c , ∂t
(2.1)
dove c è il vettore delle concentrazioni dei morfogeni, f rappresenta la parte reattiva dell’equazione, D è una matrice diagonale di diffusione. Analizzando il caso di due morfogeni si ha :
9
∂A = F ( A, B ) + DA∇ 2 A ∂t ∂B = G ( A, B ) + DB∇ 2 B ∂t
( 2.2)
dove F e G sono i termini reattivi, spesso espressi da funzioni non-lineari.
2.2 Diffusion-Driven Instability La teoria chiamata diffusion-driven instability, afferma che se in assenza di diffusione cioè quando i parametri (D A =D B =0), le nostre due sostanze reagenti A e B tendono ad uno stato stazionario stabile, inoltre scegliendo opportunamente i parametri facendo così in modo che D A ≠ D B ≠ 0 emerga un pattern disomogeneo grazie all’instabilità prodotta dalla diffusione. Dunque il nucleo del problema sta nell’affermare che la diffusione ha un ruolo destabilizzante nei confronti dello stato stazionario omogeneo. Per meglio analizzare il problema precedentemente posto, conviene rappresentare l’equazione 2.2 mediante variabili adimensionali ottenendo così le seguenti equazioni
u = γ ⋅ f (u , v) + ∇ 2 u v = γ ⋅ g (u , v) + d ⋅ ∇ 2 v
10
,
(2.3)
dove d è il rapporto dei coefficienti di diffusione e γ rappresenta l’intensità della componente reattiva. La capacità del sistema di generare pattern di Turing dipende dalla definizione di f, di g, dal valore di d e da quello di γ. Logicamente la per stabilizzazione di un pattern disomogeneo è necessario che il coefficiente di diffusione dell’inibitore sia maggiore di quello nell’attivatore. Comunque volendo analizzare da un punto di vista matematico le equazioni in precedenza esposte
e trovare così le
condizioni necessarie per la formazione dei pattern di Turing bisogna definire le condizioni iniziali e al contorno (a tal fine consideriamo le condizioni iniziali fissate e le condizioni al contorno di tipo zero-flux). Affinché ci sia un’instabilità di diffusioni-driven instability è necessario che si abbia in primo luogo uno stato stazionario omogeneo stabile in assenza di diffusione ed in seguito che quest’ultimo venga destabilizzato dalla presenza di diffusione. A questo punto passando ad analizzare la prima condizione si ha:
u = γ ⋅ f (u , v) , v = γ ⋅ g (u , v)
11
( 2.4 )
poiché f e g sono delle funzioni non lineari, per verificare le condizioni precedentemente poste, linearizziamo il sistema intorno allo stato stazionario (u 0 ,v 0 ) ponendo:
u − u0 . w = v v − 0
(2.5)
Così facendo la (2.4) per piccoli spostamenti diventa:
w = γ A w
f A = u gu
fv g v (u
(2.6)
,
(2.7)
0 , v0 )
dove A è la matrice di stabilità e la scrittura h p indica la derivata parziale di h rispetto a p (con h=f, g e p=u, v). come si nota la (2.6) rappresenta un sistema lineare la cui soluzione è del tipo
ω (t ) = e Λt ω ( )
(2.8)
con Λ=diag ( λ1 , λ 2 ) dove λ1 , λ 2 sono gli autovalori di A. Lo stato stazionario w=0 allora è linearmente stabile se Re λ < 0 poiché in questo caso w0 per t∞.
12
Infatti sostituendo la 2.8 nella 2.6 si ottiene:
γA − λI =
γf u − λ γf v =0 γg u γg v − λ
(2.9)
Da cui gli autovalori sono:
λ1 , λ 2 = γ ( f u + g v ) ± 2 1
( f u + g v )2 − 4( f u g v − f v g u ) .
(2.10)
A questo punto si può affermare che la lineare stabilità è garantita da :
tr ( A) = f u + g v < 0 e
A = fu gv − fv gu > 0 .
(2.11)
Volendo analizzare invece la destabilizzazione dello stato stazionario in presenza di diffusione , si considera l’equazione di reazione diffusione linearizzata
1 0 . w = γ A w + D∇ 2 w, D = 0 d
(2.12)
Che regge l’ evoluzione di ogni cella in cui si verifica la competizione fra morfogeni. dato che nel caso in questione vi è la presenza di due sole sostanza reagenti, w sarà un vettore di solo due elementi e l’evoluzione di ogni cella sarà caratterizzata da due equazioni differenziali accoppiate del 13
termine diffusivo. Ciò significa che nel caso in cui avessimo un dominio spaziale di tipo rettangolare discreto con M righe ed N colonne
si
otterrebbe un sistema di 2MN equazioni differenziali che per essere svolto necessita di ricorrere ad un metodo di disaccoppiamento basato sulle autofunzioni spaziali permettendo così di ricondursi ad MN sistemi disaccoppiati ciascuno di due equazioni differenziali lineari del primo ordine [5]. Fatto questo otterremo le autofunzioni del laplaciano discreto W(x,y) per cui
∆W + k 2W = 0 ,
(2.13)
Supponendo che le condizioni al contorno siano del tipo zero-flux e che il dominio sia rettangolare discreto tale che per ogni cella (x, y) si abbia 0≤ x <M e 0≤ y <N, le autofunzioni (o modi possibili) della (2.13) sono:
Wm ,n ( x, y ) = cos
mπx nπy cos . M N
(2.14)
I relativi autovalori, dei quali la radice quadrata prende anche il nome di numero d’onda, sono
m2 n2 k = π 2 + 2 , N M 2
2
14
(2.15)
con m ed n interi. I numeri d’onda dipendono esclusivamente da m, n, M, N, dalle condizioni al contorno e da nessuno dei parametri legati all’evoluzione temporale. Poiché la 2.12 è lineare è possibile rappresentarla attraverso l’espansione in serie di Fourier avendo così
w(r , t ) = ∑ c k e λtWk ( x, y ) ,
(2.16)
k
Dove W(x,y) è l’autofunzione corrispondente al numero d’onda k con condizioni al contorno di tipo zero-flux, c k sono costanti determinabili a partire dalle condizioni iniziali (coefficienti di Fourier) e λ è l’autovalore che determina l’evoluzione temporale. Sostituendo la (2.16) nella (2.12) si ottiene per ogni k:
λWk = γAWk + D∆Wk = γAWk + Dk 2Wk Dove le soluzioni non banali
(2.17)
per W k permettono di determinare gli
autovalori temporali attraverso:
λI − γA + Dk 2 = 0.
(2.18)
Da cui sostituendo ad A e D le rispettive definizioni si ottiene:
λ2 + λ [k 2 (1 + d ) − γ ( f u + g v )]+ h(k 2 ) = 0
(2.19)
h(k ) = dk 4 − γ (df u + g v )k 2 + γ 2 A
(2.20)
con: 2
15
e pertanto:
2 1 λ1, 2 = ⋅ − k 2 (1 + d ) + γ ( f u + g v ) ± [k 2 (1 + d ) − γ ( f u + g v )] − 4h(k 2 ) 2
(2.21)
Per la definizione di pattern di Turing è necessario che lo stato stazionario sia instabile in presenza di diffusione, quindi quando nella 2.19 il coefficiente di λ e/o il termine noto sono negativi. Considerato che,
( fu + gv ) < 0
(per soddisfare la prima condizione per i
2 pattern di Turing) ed inoltre k (1 + d ) > 0 per la positività dei coefficienti
di diffusione, ne segue che per la seconda condizione bisogna avere
( )
h k 2 < 0 per qualche k. Poiché sempre per la prima condizione è
( )
2 richiesto che A > 0 , l’unica possibilità di far sì che h k < 0 è quella di
avere:
df u + g v > 0 ,
(2.22)
che a sua volta implica d ≠1. La (2.22) è condizione necessaria ma non
( )
2 sufficiente per avere h k < 0 . E’ infatti anche necessario imporre che il
valor minimo di h(k) sia negativo e ciò si verifica se:
16
(df u + g v )2 4d
> A.
(2.23)
Fatto questo esisterà un range per i quadrati dei numeri d’onda k2 per cui verifica h(k2)<0.
2 1, 2
k
=γ
(df u + g v ) ± (df u + g v )2 − 4d A 2d
.
(2.24)
ciò significa che per avere pattern di Turing è necessario che esista almeno un modo appartenente alla banda dei modi instabili, cioè che il numero d’onda k mn
ad esso associato verifichi la condizione
2 < k 22 . k12 < k mn
Volendo esprimere la parte reale dell’autovalore temporale λ con la parte reale più grande in funzione del quadrato del numero d’onda k2 bisogna considerare la relazione o curva di dispersione indicata come:
[
]
( )
2 1 Re(λ ) = ⋅ Re − k 2 (1 + d ) + γ ( f u + g v ) + k 2 (1 + d ) − γ ( f u + g v ) − 4h k 2 2
17
Fig 2.1 Rappresentazione della curva di dispersione.
2.2.1 Considerazioni Alla luce di quanto abbiamo appena visto è facile capire che al crescere del tempo t, le autofunzioni W k che prevarranno nella determinazione dei pattern saranno quelle legate agli autovalori λ(k2)>0, in quanto tutte le altre verranno smorzate esponenzialmente (λ(k2)<0) o rimarranno costanti (λ(k2)=0). Allora il pattern finale dipende fortemente dalle condizioni iniziali perché esse determinano la forza con cui vengono eccitati i singoli modi possibili. Dobbiamo però a questo punto considerare che tutti i nostri risultati provengono dall’aver linearizzato il problema intorno allo stato stazionario (u 0 , v 0 ) comportando così che i risultati vengano intesi solo come indicazioni di massima in quanto la validità è limitata soltanto a piccoli spostamenti da (u 0 , v 0 ), anche se comunque da osservazioni sperimentali si è riscontrato che se i modi instabili hanno un numero d’onda piccolo [3] questa teoria è un buon predittore del pattern finale. In altri casi la non-linearità può introdurre infatti termini di intermodulazione (ossia nuovi autovettori che risultano dall’interazione di quelli iniziali) che 18
influenzano il pattern finale [5]. Comunque al fine di verificare l’attendibilità della teoria lineare si deve procedere con le simulazioni numeriche di cui si potranno validare o meno i risultati.
2.3 Le CNN Le CNN acronimo di Cellular Neural Network possono essere viste come un array
multidimensionale di semplici circuiti, chiamati celle ed
accoppiati in modo non lineare, e costituiti da capacitori lineari, resistori lineari, generatori controllati lineari e non e generatori indipendenti .
Fig 2.2 Esempio circuitale di una CNN.
Di solito le CNN vengono utilizzate in tutti quegli ambiti in cui si necessita di elaborare un’ingente quantità di dati in tempo reale come: •
L’image processing che consiste nell’elaborazione di un’immagine,
estraendone i contorni, ottenendone l’inversa etc. ponendola come stato iniziale e ingresso di una CNN[6][7]
19
•
Robotic vision in cui applicando l’image processing consecutivo si
possono applicare le funzioni di base della CNN ad un sistema di visione estraendo così i contorni , rilevando gli spigoli etc.[5][7] •
Formazione di pattern di Turing statici e dinamici
Dal punto di vista matematico una CNN è definita da un ingresso u, da uno stato x e da un’uscita y. L’uscita y è una funzione lineare dello stato con saturazione positiva e negativa (Fig 2.3)
y=
1 ( x +1 − x −1) 2
(2.27)
Fig 2.3 Uscita di una cella di una CNN in funzione dello stato della stessa.
Per quanto riguarda lo stato, poiché ogni cella interagisce direttamente con le celle più vicine, bisogna
tenerne in considerazione
il tipo di
accoppiamento. Nascono così delle formalizzazioni (template) che indicano il modo in cui le celle interagiscono tra loro. Cosicché si ha una 20
template A nel caso in cui l’accoppiamento delle celle viene formalizzato con delle template che possono essere legate all’uscita , B all’ingresso e C allo stato delle celle. Per le nostre simulazioni si utilizzerà la template C, con la quale i legami saranno:
0 1 0 C = 1 − 4 1 . 0 1 0
(2.28)
Cioè
∇ 2 x(i, j ) = x(i + 1, j ) + x(i − 1, j ) + x(i, j + 1) + x(i, j − 1) − 4 x(i, j ) . E considerando solo due reagenti, si utilizza una CNN a due strati di cui lo stato è retto dalle equazioni:
x1; i , j = − x1; i , j + (1 + µ + ε ) y1; i , j − sy 2; i , j + D1∇ 2 x1; i , j x 2; i , j = − x 2; i , j + sy1; i , j + (1 + µ − ε ) y 2; i , j + D2 ∇ 2 x 2; i , j
, (2.29)
che possono assumere la forma:
1 1 (µ + ε )x1; i , j − 1 sx 2; i , j + ∇ 2 x1; i , j x1; i , j = D1 D1 D1 1 1 1 (µ − ε )x 2; i , j + 1 D2 ∇ 2 x 2; i , j x 2; i , j = sx1; i , j + D1 D1 D1 D1
e ponendo inoltre t*=D 1 t , si ottiene:
21
(2.30)
∂x1; i , j (t*) ∂t * ∂x 2; i , j (t*) ∂t *
=
[
]
[
]
1 (µ + ε )x1; i , j (t*) − sx 2; i , j (t*) + ∆x1; i , j (t*) D1
. 1 1 = sx1; i , j (t*) + (µ − ε )x 2; i , j (t*) + D2 ∆x 2; i , j (t*) D1 D1
(2.31) Sostituendo le variabili con variabili adimensionali, considerandoci in regime lineare e inoltre ponendo:
1 = γ D1 D d = 2 D1
(2.32)
La 2.31 assumerà una forma analoga a quella della 2.3 da cui si arriverà a definire che le condizioni necessarie per la formazione dei pattern di Turing per il sistema (2.30) si esplicitano in:
µ < 0 µ 2 + s 2 > ε 2 d +1 ε > − µ d −1 2 [d (µ + ε ) + (µ − ε )] > µ 2 − ε 2 + s2 4d
22
.
(2.33)
CAPITOLO 3
Il simulatore Tutti i dati e le simulazioni a cui si fa riferimento in questa tesi sono stati ottenuti tramite l’utilizzo di un simulatore di pattern di Turing, la cui interfaccia grafica è sviluppata in matlab, mentre i tool di calcolo sono realizzati e interfacciati tramite la Mex interface. Quest’ultima consente, attraverso un’interfaccia grafica, di simulare sia le parti di teoria riguardanti le autofunzioni e gli autovalori, sia una vera e propria RD-CNN a due strati, facendo in modo che si possano analizzare la formazione dei pattern di Turing e la geometria dei bacini di attrazione al
variare
dei
parametri
specificatamente se si vuole
precedentemente
analizzati.
Ma
più
scendere nei dettagli ed analizzare le
funzionalità offerte dal simulatore, nei prossimi paragrafi verranno rappresentati i diversi aspetti che concorrono ad una comprensione globale di simulatore offrendo sia una sorta di manuale utente sia un commento del codice.
23
3.1 FunzionalitĂ offerte Il simulatore si presenta con unâ&#x20AC;&#x2122; interfaccia grafica a finestre in cui sono ben delineate le parti riguardanti i tool e quelle riguardanti simulazione dei pattern.
Fig 3 Interfaccia principale del simulatore.
Per accedere alle diverse funzioni del simulatore basta infatti fissare i valori di input nelle apposite caselle di testo e premere di volta in volta il pulsante della funzione desiderata, scegliendo preventivamente (se si tratta di effettuare una simulazione sui pattern) sia il tipo di algoritmo da
24
utilizzare (Fig 3.6), sia il tipo di simulazione desiderata (Fig 3.8). Di seguito una breve guida illustrerà le modalità d’uso del simulatore.
3.1.1 I tool Le prime funzioni del simulatore che verranno analizzate sono quelle riguardanti i tool, cioè le funzioni che permettono di calcolare gli autovalori (con relative autofunzioni) e la curva di dispersione, le quali sono di notevole importanza ai fini della formazione dei pattern. Per effettuare il calcolo degli autovalori e delle autofunzioni bisogna innanzitutto inserire i valori del dominio nelle apposite caselle di testo (Fig 3.1) e successivamente premere il pulsante “Process autofunction” (Fig 3.2); a questo punto il codice non farà altro che acquisire i valori di input, calcolare e rappresentare a video gli autovalori e le rispettive autofunzioni.
25
Fig 3.3 Rappresentazione grafica delle autofunzioni con i relativi autovalori.
Per calcolare la curva di dispersione e sapere così quale autovalore potrà essere incluso nella banda dei modi instabili, bisogna inserire oltre al valore del dominio il valore di γ e premere “Plot dispersion curve” (Fig 3.4); in tal modo il codice calcolerà sia gli autovalori, sia la curva di dispersione e mostrerà a video i corrispondenti grafici.
26
Fig 3.5 Rappresentazione della curva di dispersione calcolata dal simulatore( sull ‘asse delle ascisse i simboli Ο ed Χ indicano gli autovalori spaziali ed una loro sovrapposizione sta ad indicare un autovalore con molteplicità doppia).
3.1.2 Le simulazioni In questa sezione del programma, riguardante la simulazione dei pattern di Turing, si è scelto di utilizzare del codice C, integrato al codice matlab tramite i file Mex, nell’esecuzione di simulazioni riguardanti l’algoritmo di Eulero e del codice matlab in quelle riguardanti l’algoritmo di RungeKutta. Detto questo si noti come alcune delle funzioni allo stesso modo che alcune caselle di testo siano disabilitate; questo perché bisogna scegliere preventivamente, sia il tipo di algoritmo da utilizzare, cliccando su uno dei due radiobutton di “Choose algorithm” (Fig 3.6), sia il tipo di 27
simulazione desiderata cliccando su una delle tre opzioni presenti in “Choose simulation” di figura 3.8. Bisogna altresì precisare che le operazioni da seguire non mutano variando la scelta degli algoritmi, (anche se esiste la possibilità di caricare le condizioni iniziali (Fig 3.7) trovate con l’algoritmo di Eulero, eseguendo l’algoritmo di Runge-Kutta) a tal proposito sarebbe opportuno inoltrarsi nell’analisi della procedura da seguire, per portare a buon fine la simulazione. La simulazione di pattern di Turing, impostata come simulazione di default,
permette di simulare la formazione dei pattern attraverso
l’emulazione di una CNN a due strati a cui siano dati in ingresso valori random. A tal fine la simulazione si effettua inserendo gli opportuni valori di input nelle caselle di testo di Fig 3.1 e 3.9.
Fig 3.9 Rappresentazione delle caselle di testo.
28
e premendo il pulsante “Simulate pattern” (Fig 3.10) per dare il via alla simulazione. Il codice matlab, così facendo, avrà preso tutti gli input e li avrà passati al file C che, a sua volta avrà calcolato i pattern emessi e li avrà rappresentati attraverso una codifica. E’ quindi possibile premendo il pulsante “Process data” di figura 3.17 avere la rappresentazione dei pattern emersi, aggiungendo o meno, i relativi codici in sovraimpressione, cliccando sulle checkbox di figura 3.12.
Fig 3.11 Rappresentazione dei pattern emersi dopo una simulazione.
Fig 3.12 Rappresentazione dei pattern emersi con relative frequenze e codici.
29
La seconda simulazione possibile, chiamata “Simulate subset” (Fig 3.14), permette di simulare la formazione di pattern di Turing fissando manualmente le condizioni iniziali prima settate random; a tale scopo dunque bisogna innanzitutto specificare attraverso le caselle di testo sia il dominio sia i parametri necessari alla simulazione, premere il pulsante “Create matrix” ( Fig 3.13) che provvederà a creare una matrice MxN in cui inserire i valori delle condizioni iniziali, e infine premere “ Simulate subset” e successivamente “Process data” per avere le rappresentazioni. Discorso a parte nel simulare le geometrie dei bacini d’attrazione, in quanto la simulazione setterà ad un valore prefissato “Default value” (Fig 3.9) tutte le celle del dominio tranne due( scelte dall’utente) e farà variare dal valore – saturation a + saturation
con passo scelto anch’esso
dall’utente “Step” (Fig 3.9). A tal proposito, per iniziare la simulazione bisogna inserire i parametri di input e le dimensioni del dominio nelle apposite caselle
di testo (Fig 3.9, 3.1), premere il pulsante “Create
matrix”, inserendo qualsiasi simbolo all’interno della matrice per marcare le due celle ed infine premere “Basin” per iniziare la simulazione e “Process data” per rappresentare i dati ottenuti che in questo caso verranno rappresentati in tal modo:
30
Fig 3.16 Rappresentazione dei bacini d’attrazione ottenuti premendo il pulsante “Process data”.
Comunque per agevolare l’utente nell’utilizzo del simulatore, è stato realizzato un semplice“Help”di (Fig 3.19) in quanto, cliccando sulla checkbox comparirà di volta in volta, secondo la simulazione scelta, la procedura da seguire per portare a buon fine la simulazione.
3.2 Il simulatore in dettaglio
Il simulatore, come precedentemente accennato, è stato sviluppato ricorrendo sia al linguaggio matlab vero e proprio sia al linguaggio C. Ciò è stato possibile sfruttando le grandi potenzialità dei file Mex. Infatti se
31
da una parte troviamo il codice matlab in operazioni come la lettura di un input da tastiera oppure nella semplice trascrizione di formule legate alla teoria dall‘altra è sicuramente più proficuo riadattare ingenti blocchi di codice C attraverso i file Mex nell’esecuzione di complicate equazioni differenziali. Quanto segue non vuole essere una guida
alla
programmazione matlab ma piuttosto far capire i procedimenti e i modi di operare che stanno dietro lo sviluppo del simulatore, a tal fine si procederà ad un’ analisi spero esaustiva del codice che sta dietro ad ogni comando.
3.2.1 I tool Iniziamo con il considerare la sezione del simulatore dedicata ai tool, per la quale è stato utilizzato solo codice matlab.
3.2.1.1 Le caselle di testo
(edit1_Callback(hObject, eventdata, handles))
Il codice delle caselle di testo (Fig 3.1) non fa altro che leggere da tastiera un numero controllare se è compreso tra 1 e 7 e renderlo disponibile a tutte le funzioni che ne hanno bisogno.
32
3.2.1.2 Process autofunctions
(pushbutton1_Callback(hObject, eventdata,
handles))
Il codice del pulsante “Process autofunction” (Fig 3.2 ) prende i valori di input passati dalle caselle di testo, crea la matrice che sarà visibile a video, calcola gli autovalori spaziali con le corrispettive autofunzioni e le stampa a video.
3.2.1.3 Plot dispersion curve
(function pushbutton3_Callback(hObject,
eventdata, handles))
Il codice del pulsante “Plot dispersion curve” (Fig 3.4) prende il valore di gamma e del dominio, calcola gli autovalori, la curva di dispersione e li stampa a video.
3.2.2 La simulazione In questa sezione del simulatore, riguardante la simulazione dei pattern di Turing, come si potrà evincere si è scelto di utilizzare del codice C, integrato al codice matlab tramite i file Mex, nell’esecuzione di simulazioni riguardanti l’algoritmo di Eulero, e del codice matlab in quelle riguardanti l’algoritmo di Runge-Kutta.
33
3.2.2.1 Le scelte iniziali
(function radiobutton5_Callback(hObject, eventdata,
handles))
Con il nome di scelte iniziali vengono indicate tutte quelle funzioni all’interno del simulatore riguardanti i radiobutton cioè “Choose algorithm” (Fig 3.6) e “Choose simulation” (Fig 3.8). Essenzialmente il codice che sta dietro a queste funzioni serve solamente come indicazione del codice da far eseguire alle varie simulazioni come nel caso di “Choose algorithm”, oppure a disabilitare ed abilitare pulsanti e caselle di testo come nel caso di “Choose simulation”.
3.2.2.2 Simulate pattern
(function pushbutton5_Callback(hObject, eventdata,
handles))
Analizzando il codice del pulsante “Simulate pattern “ (Fig 3.10) riguardante l’algoritmo di Eulero si può subito notare che non è presente nessuna parte di codice C, questo perchè il codice C deve essere scritto in un file a parte che tramite matlab viene richiamato e compilato con il comando mex e successivamente messo in esecuzione riscrivendo il nome del file con i dovuti parametri. Quindi il codice matlab in questione si occupa soltanto di prendere i dati da input, compilare e lanciare il file mex.
34
Il codice C che si trova invece che, come già detto in un file a parte chiamato turing_pattern.c è essenzialmente codice C standard con l’ aggiunta di alcune modifiche incentrate soprattutto nelle intestazioni delle funzioni e nell‘assenza del main che qui viene sostitutito dalla funzione mexFunction. Passando all’ analisi del codice C e ricordando che il simulatore deve emulare una RD-CNN analizzeremo separatamente le due funzioni di cui si compone il file. Nella prima la mexFunction (che qui fa le veci della funzione main) troviamo: il codice responsabile della determinazione in maniera random e della codifica delle condizioni iniziali delle equazioni differenziali che determinano lo stato delle CNN, e il richiamo della funzione tpg(). Invece nella funzione tpg() che rappresenta il vero cuore del simulatore, il codice si occupa: del settaggio delle condizioni di tipo zero-flux, della determinazione delle uscite
e degli stati attraverso la risoluzione di
equazioni differenziali nonché determinazione del codice rappresentativo del pattern emerso tramite codifica. Guardando invece il codice di “Simulate pattern” che entra in gioco se si sceglie l’algoritmo di Runge-Kutta si nota che è essenzialmente del codice matlab che esegue tutte le operazione del codice prima esposto solo che questa volta la parte di codice relativa alla funzione tpg() si trova in un file 35
separato di nome tpg.m che esegue la simulazione dei pattern utilizzando l’algoritmo di Runge-Kutta. 3.2.2.3 Create matrix
(function pushbutton7_Callback(hObject, eventdata, handles))
Questo pulsante (Fig 3.13) come abbiamo visto nel paragrafo precedente viene utilizzato in abbinamento al pulsante “ Simulate subset” , ed il suo compito è quello di creare una matrice M X N.
3.2.2.4 Simulate subset
(function pushbutton8_Callback(hObject, eventdata,
handles))
Un discorso molto simile a quello fatto per il pulsante “Simula pattern” si può applicare al pulsante “Simulate subset” (Fig 3.14) in quanto anch’esso, nella parte di codice riguardante l’algoritmo di Eulero, ha solo il codice matlab mentre il codice C si trova in un file separato; tuttavia notiamo che la parte scritta in matlab è sostanzialmente diversa da quella del pulsante“Simulate pattern”, per poter riuscire ad acquisire i dati dalla matrice creata precedentemente e passarli al codice C. Invece per quanto riguarda il codice C del file mex che è salvato nel file turing_pattern_subset.c sarebbe uguale a quello del file precedente se non per la parte che fissa delle condizioni iniziali immesse dall’ utente.
36
La parte del codice relativa all’algoritmo di Runge-Kutta, composta anch’essa essenzialmente da codice matlab così come quella del pulsante “Simulate pattern”, ripropone in chiave matlab, ad eccezione del codice presente nel file tpg.m le medesime funzioni
svolte dal codice
nell’algoritmo di Eulero.
3.2.2.5 Basin
function pushbutton10_Callback(hObject, eventdata, handles)
Anche qui, come nelle altre simulazioni troviamo un’interazione tra codice matlab e codice C attraverso l’uso dei file mex nella parte riguardante l’algoritmo di Eulero, quindi analizzando il codice che si trova all’interno del pulsante “Basin” di figura 3.15 ci troviamo di fronte a del codice matlab che si occupa di prendere i dati di input immessi da tastiera, determinare le due celle necessarie allo svolgimento della simulazione e della compilazione nonchè dell’esecuzione del file C che in questo caso si chiama Basin.c. Esaminando invece il codice C del file Basin.c si può constatare che la parte riguardante la funzione tpg(), che è quella responsabile della simulazione delle CNN, rimane invariata rispetto ai precedenti tipi di simulazione mentre cambia quello che si trova all’interno della funzione mexFunction. Infatti osservandone il codice si trova solo una sequenza
37
di cicli for opportunamente annidati in modo tale da impostare tutte le celle, tranne due il cui valore varierà all’interno di un range definito dall’utente, ad un valore di default . La stessa cosa vale per il codice relativo all’algoritmo di Runge-Kutta.
3.2.2.6 Process data
(function pushbutton6_Callback(hObject, eventdata,
handles))
Il pulsante “Process data” (Fig 3.17 ) viene utilizzato in coppia a delle checkbox (Fig 3.18), a simulazione finita per rappresentare graficamente sia i pattern emersi, sia le geometrie dei bacini di attrazione, creando all’occorrenza un file di back up delle statistiche.
38
CAPITOLO 4
Le simulazioni Il simulatore presentato nel Capitolo 3 è lo strumento utilizzato per verificare numericamente i risultati provenienti dalla teoria lineare e per analizzare le potenzialità delle CNN nella generazione di pattern di Turing.
4.1 Risultati pattern di Turing Al fine di verificare l’attendibilità delle predizioni della teoria lineare si è proceduto alla simulazione numerica dei pattern. Poiché da ciò che è stato precedentemente affermato
il pattern finale dipende fortemente dalle
condizioni iniziali e precisamente nel caso in cui tutti i modi possibili vengano eccitati con la stessa forza (settando le condizioni iniziali in maniera random), dovrebbe prevalere l’autofunzione legata all’autovalore con parte reale positiva maggiore. Si è scelto, per studiare l’effetto che le condizioni iniziali hanno sull’emergere dei pattern, di analizzare al variare di γ, sia le autofunzioni e la curva di dispersione, sia i corrispettivi pattern di Turing. Ai fini della trattazione si rende opportuno elencare le impostazioni del simulatore con le quali si è giunti ai risultati: 39
•
Si è scelto di utilizzare un dominio spaziale 4x4, di far variare γ da
5 a 25 con step 2.5 e impostare il valore di saturazione uguale a 3. •
Ognuna delle celle del primo layer è stata inizializata con valori di
x1 pari a -sat 0 e sat per studiare il comportamento in regione di saturazione positiva e negativa. •
Le celle del secondo layer sono state inizializzate con valori random
prossimi a zero ( con possibilità di aggiunta del rumore con valore 0.005). •
I parametri riguardanti le CNN : ε=1.1, μ=-0.7, d= 30,s =0.9
tsim=100, integration step =0.001.
Fig 4.1 Rappresentazione grafica delle autofunzioni associate agli autovalori (in rosso) per un dominio 4x4.
40
Simulazioni con γ=5
Fig 4.2 Rappresentazione curva di dispersione per γ =5 .
Fig 4.3 Autofunzioni incluse nella banda dei modi instabili.
La banda dei modi instabili (2.24) include tre modi possibili, cioè quelli associati agli autovalori k 2 = 0.61685 (con molteplicità doppia) e k 2 =1.2337. Si osservi che all’autovalore spaziale k 2 =0.61685 è associato
un autovalore temporale con parte reale maggiore e pertanto la teoria lineare prevede che i modi prevalenti siano quelli ad esso associati. 41
Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
255
23.9
26.4967
52428
23
25.4989
65280
22.3
24.7228
13107
21
23.2816
-1
9.8
I valori allâ&#x20AC;&#x2122;interno della tabella indicano rispettivamente: i codici dei pattern(Codici) , la frequenza con cui sono emersi(Freq %) e la frequenza ricalcolata eliminando le occorrenze dei codici -1 ( Freq_cleaned).
Fig 4.3 Rappresentazione dei pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
52428
23.2
25.7778
255
23
25.5556
13107
22.2
24.6667
42
65280
21.6
-1
10
24
Fig 4.4 Rappresentazione dei pattern emersi.
Si nota che con questo valore di Îł indifferentemente dal rumore introdotto, emergono lo stesso numero di pattern con una frequenza nella maggior parte dei casi identica e comunque abbastanza vicina tra di loro inoltre bisogna considerare la presenza del pattern con codice =-1 segno che non tutte le celle del primo livello della CNN sono arrivate a saturare. Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq %
Freq_cleaned
255
23.9
26.4967
52428
23
25.4989
65280
22.3
24.7228
13107
21
23.2816
-1
9.8
43
Fig 4. 5 Rappresentazione pattern emersi.
Simulazioni con Îł = 7.5
Fig 4. 6 Rappresentazione curva di dispersione per Îł =7.5 .
44
Fig 4.7 Autofunzioni incluse nella banda dei modi instabili.
In questo caso si ha l’entrata di un nuovo autovalore con molteplicità doppia k 2 =2.4674 anche se comunque l’autovalore temporale ad esso associato non ha parte reale abbastanza grande da poter essere incluso nella banda dei modi instabili. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
-1
30.4
255
18.3
26.2931
13107
17.7
25.431
52428
16.9
24.2816
65280
16.4
23.5632
4080
0.1
0.143678
26214
0.1
0.143678
39321
0.1
0.143678
45
Fig 4.8 Rappresentazione pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
-1
32.8
255
17.8
26.4881
13107
17.6
26.1905
65280
17
25.2976
52428
14.5
21.5774
39321
0.2
0.297619
61455
0.1
0.14881
Fig 4.9 Rappresentazione pattern emersi.
46
Con questo valore di gamma già si nota una la presenza di nuovi pattern, segno di una maggior competizione, ed anche
l’inizio di una certa
divergenza, sia tra i pattern emersi con e senza rumore, sia tra le frequenze in cui i primi cinque hanno un valore molto più elevato, anche qui troviamo il pattern con codice =-1 segno che non tutte le celle del primo livello della CNN sono arrivate a saturare. Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq
Freq_cleaned
-1
30.4
255
18.3
26.2931
13107
17.7
25.431
52428
16.9
24.2816
65280
16.4
23.5632
4080
0.1
0.143678
26214
0.1
0.143678
39321
0.1
0.143678
47
Fig 4.10 Rappresentazione pattern emersi.
Simulazioni con Îł =10
Fig 4.11 Curva di dispersione con Îł =10.
48
Fig 4.12 Autofunzioni incluse nella banda dei modi instabili.
Anche in questo caso gli ultimi due autovalori con molteplicitĂ doppia k 2 =2.4674 e k 2 =3.08425 continuano a non avere un autovalore con parte
reale abbastanza grande per entrare nella banda dei modi instabili.
Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
-1
17.3
255
10.4
12.5756
13107
9.5
11.4873
52428
8.3
10.0363
65280
6.7
8.10157
887
1.9
2.29746
62225
1.9
2.29746
61120
1.8
2.17654
52431
1.6
1.9347
64648
1.6
1.9347
30512
1.5
1.81378
1.4
1.69287
3310
49
Fig 4.13 Rappresentazione pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
-1
16.7
13107
10.4
12.485
65280
8.6
10.3241
255
8
9.60384
52428
7.5
9.0036
35023
1.9
2.28091
62225
1.9
2.28091
64648
1.8
2.16086
61120
1.7
2.04082
3276
1.5
1.80072
65416
1.5
1.80072
50
238
1.4
1.68067
Fig 4.14 Rappresentazione pattern emersi.
Con γ =10 si ha ancora una volta un aumento del numero di pattern emersi notando che i primi sei pattern hanno una frequenza molto più elevata rispetto agli altri.
Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0
Codici
Freq %
-1
17.3
255
10.4
Freq_cleaned
12.5756
51
13107
9.5
11.4873
52428
8.3
10.0363
65280
6.7
8.10157
887
1.9
2.29746
62225
1.9
2.29746
61120
1.8
2.17654
52431
1.6
1.9347
64648
1.6
1.9347
30512
1.5
1.81378
3310
1.4
1.69287
Fig 4.15 Rappresentazione pattern emersi.
52
Simulazioni con Îł=12.5
Fig 4.16 Curva di dispersione con Îł =12.5.
Fig 4.17
Autofunzioni incluse nella banda dei modi instabili. 53
Con γ= 12.5 come si può evincere un entra nessun nuovo autovalore ma in quelli presenti la parte reale dell’autovalore cresce. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
52428
2
2.01005
65280
2
2.01005
255
1.5
1.50754
13107
1.5
1.50754
13111
1.2
1.20603
65408
1
1.00503
511
0.8
0.80402
13119
0.8
0.80402
65296
0.8
0.80402
127
0.7
0.703518
2303
0.7
0.703518
39313
0.7
0.703518
54
Fig 4.18 Rappresentazione pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
13107
1.8
1.80723
255
1.7
1.70683
52428
1.2
1.20482
65296
1.2
1.20482
30512
0.7
0.702811
63232
0.7
0.702811
65280
0.7
0.702811
239
0.6
0.60241
511
0.6
0.60241
2303
0.6
0.60241
13104
0.6
0.60241
65024
0.6
0.60241
55
Fig 4.20 Rappresentazione pattern emersi.
In questo caso la competizione tra i pattern emersi è ancora maggiore infatti le frequenze dei pattern emersi nei casi con e senza rumore scendono notevolmente fino a quasi livellarsi. Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq %
Freq_cleaned
52428
2
2.01005
65280
2
2.01005
255
1.5
1.50754
13107
1.5
1.50754
13111
1.2
1.20603
56
65408
1
1.00503
511
0.8
0.80402
13119
0.8
0.80402
65296
0.8
0.80402
127
0.7
0.703518
2303
0.7
0.703518
39313
0.7
0.703518
Fig 4.21 Rappresentazione pattern emersi.
57
Simulazioni con Îł=15
Fig 4.22 Curva di dispersione per Îł =15.
58
Fig 4.23 Autofunzioni incluse nella banda dei modi instabili.
Vi è l’entrata di due nuovi autovalori k 2 = 4.9348 e k 2 =5.55165 con molteplicità doppia.
Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
13107
0.9
0.902708
65296
0.7
0.702106
255
0.6
0.601805
895
0.6
0.601805
52428
0.6
0.601805
4471
0.5
0.501505
35020
0.5
0.501505
65280
0.5
0.501505
127
0.4
0.401204
575
0.4
0.401204
1911
0.4
0.401204
4083
0.4
0.401204
59
Fig 4.24 Rappresentazione pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
65280
1.1
1.1011
13107
0.9
0.900901
52428
0.6
0.600601
60620
0.6
0.600601
255
0.5
0.500501
52429
0.5
0.500501
127
0.4
0.4004
239
0.4
0.4004
4915
0.4
0.4004
32512
0.4
0.4004
32975
0.4
0.4004
35070
0.4
0.4004
60
Fig 4.25 Rappresentazione pattern emersi.
Come precedentemente affermato la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più.
Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq %
Freq_cleaned
13107
0.9
0.902708
65296
0.7
0.702106
255
0.6
0.601805
895
0.6
0.601805
52428
0.6
0.601805
61
4471
0.5
0.501505
35020
0.5
0.501505
65280
0.5
0.501505
127
0.4
0.401204
575
0.4
0.401204
1911
0.4
0.401204
4083
0.4
0.401204
Fig 4.26 Rappresentazione pattern emersi.
62
Simulazioni con Îł= 17.5
Fig 4.27 Curva di dispersione per Îł =17.5.
63
Fig 4.28 Autofunzioni incluse nella banda dei modi instabili.
In questo caso vi è l’entrata dell’autovalore k 2 = 6.1685 con molteplicità doppia. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
52428
0.6
0.600601
255
0.4
0.4004
3279
0.4
0.4004
65280
0.4
0.4004
13090
0.3
0.3003
34975
0.3
0.3003
37683
0.3
0.3003
52467
0.3
0.3003
60620
0.3
0.3003
61064
0.3
0.3003
62242
0.3
0.3003
64384
0.3
0.3003
64
Fig 4.29 Rappresentazione pattern emersi.
Come precedentemente affermato la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più, vi è infatti la presenza di 3 sole frequenze.
Noise level 0.005 Codici
Freq %
Freq_cleaned
52428
0.7
0.700701
13111
0.4
0.4004
59534
0.4
0.4004
831
0.3
0.3003
4573
0.3
0.3003
13107
0.3
0.3003
39219
0.3
0.3003
65
52440
0.3
0.3003
63761
0.3
0.3003
64576
0.3
0.3003
64716
0.3
0.3003
65280
0.3
0.3003
Fig 4.30 Rappresentazione pattern emersi.
I pattern emersi continuano a variare come precedentemente visto. Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq %
Freq_cleaned
52428
0.6
0.600601
255
0.4
0.4004
66
3279
0.4
0.4004
65280
0.4
0.4004
13090
0.3
0.3003
34975
0.3
0.3003
37683
0.3
0.3003
52467
0.3
0.3003
60620
0.3
0.3003
61064
0.3
0.3003
62242
0.3
0.3003
64384
0.3
0.3003
Fig 4.31 Rappresentazione pattern emersi.
67
Simulazioni con Îł=20
Fig 4.32 Curva di dispersione per Îł = 20.
Non entra nessun nuovo autovalore nella banda dei modi instabili ma sia ha solo un aumento della parte reale degli autovalori gia presenti. Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
831
0.3
0.3003
31948
0.3
0.3003
61064
0.3
0.3003
127
0.2
0.2002
639
0.2
0.2002
68
1918
0.2
0.2002
4080
0.2
0.2002
4503
0.2
0.2002
4604
0.2
0.2002
4915
0.2
0.2002
5049
0.2
0.2002
7633
0.2
0.2002
Fig 4.33 Rappresentazione pattern emersi.
Con γ= 20 la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più.
Noise level 0.005 Codici 1918
Freq %
Freq_cleaned
0.3
0.3003
69
9967
0.3
0.3003
12750
0.3
0.3003
13091
0.3
0.3003
62052
0.3
0.3003
1020
0.2
0.2002
1151
0.2
0.2002
2463
0.2
0.2002
3836
0.2
0.2002
4088
0.2
0.2002
4415
0.2
0.2002
5054
0.2
0.2002
Fig 4.34 Rappresentazione pattern emersi.
70
Con γ= 22.5 la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più, in quanto il massimo valore è di 0.3% e il minimo è di 0,2%.
Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq
%
Freq_cleaned
831
0.3
0.3003
31948
0.3
0.3003
61064
0.3
0.3003
127
0.2
0.2002
639
0.2
0.2002
1918
0.2
0.2002
4080
0.2
0.2002
4503
0.2
0.2002
4604
0.2
0.2002
4915
0.2
0.2002
5049
0.2
0.2002
7633
0.2
0.2002
71
Fig 4.35 Rappresentazione pattern emersi.
Simulazioni con Îł= 22.5
Fig 4.36 Curva di dispersione per Îł =22.5.
72
Fig 4.37 Autofunzioni incluse nella banda dei modi instabili.
Con γ=22.5 vi è l’ingresso dell’autovalore, con molteplicità doppia, k 2 =8.01905.
73
Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
4080
0.3
0.3003
43027
0.3
0.3003
61064
0.3
0.3003
893
0.2
0.2002
3276
0.2
0.2002
3423
0.2
0.2002
3814
0.2
0.2002
3836
0.2
0.2002
4471
0.2
0.2002
8953
0.2
0.2002
10871
0.2
0.2002
12524
0.2
0.2002
74
Fig 4.38 Rappresentazione pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
7628
0.3
0.3003
39321
0.3
0.3003
447
0.2
0.2002
1908
0.2
0.2002
2038
0.2
0.2002
2239
0.2
0.2002
3824
0.2
0.2002
4081
0.2
0.2002
4415
0.2
0.2002
5455
0.2
0.2002
7876
0.2
0.2002
7900
0.2
0.2002
75
Fig 4.39 Rappresentazione pattern emersi.
Solo i primi tre pattern hanno una frequenza di 0.3% mentre il resto dei pattern è emerso con una frequenza di 0.2%.
Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq %
Freq_cleaned
4080
0.3
0.3003
43027
0.3
0.3003
61064
0.3
0.3003
893
0.2
0.2002
76
3276
0.2
0.2002
3423
0.2
0.2002
3814
0.2
0.2002
3836
0.2
0.2002
4471
0.2
0.2002
8953
0.2
0.2002
10871
0.2
0.2002
12524
0.2
0.2002
Fig 4.40 Rappresentazione pattern emersi.
77
Simulazioni con Îł=25
Fig 4.41 Curva di dispersione per Îł =25.
Lâ&#x20AC;&#x2122;ultimo autovalore k 2 =11.1033 qui rappresentato non riesce comunque ad entrare nella banda dei modi instabili.
Fig 4.42 Autofunzioni incluse nella banda dei modi instabili.
78
Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di integrazione di Eulero di ordine 1 Codici
Freq %
Freq_cleaned
52377
0.4
0.4004
4088
0.3
0.3003
26214
0.3
0.3003
750
0.2
0.2002
4511
0.2
0.2002
5112
0.2
0.2002
5872
0.2
0.2002
6585
0.2
0.2002
11066
0.2
0.2002
11886
0.2
0.2002
12008
0.2
0.2002
13174
0.2
0.2002
79
Fig 4.43 Rappresentazione pattern emersi.
Noise level 0.005 Codici
Freq %
Freq_cleaned
2481
0.3
0.3003
39146
0.3
0.3003
48008
0.3
0.3003
893
0.2
0.2002
1655
0.2
0.2002
1772
0.2
0.2002
2513
0.2
0.2002
3302
0.2
0.2002
3727
0.2
0.2002
4081
0.2
0.2002
4383
0.2
0.2002
80
4511
0.2
0.2002
Fig 4.44 Rappresentazione pattern emersi.
I pattern emersi continuano a variare come precedentemente visto. Pattern di Turing emersi con lâ&#x20AC;&#x2122;algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici
Freq %
Freq_cleaned
52377
0.4
0.4004
4088
0.3
0.3003
26214
0.3
0.3003
750
0.2
0.2002
4511
0.2
0.2002
5112
0.2
0.2002
81
5872
0.2
0.2002
6585
0.2
0.2002
11066
0.2
0.2002
11886
0.2
0.2002
12008
0.2
0.2002
13174
0.2
0.2002
Fig 4.45 Rappresentazione pattern emersi.
4.1.2 Considerazioni Da quanto preso in esame si nota, osservando la curva di dispersione, che ad ogni incremento di gamma vi è un aumento della parte reale dellâ&#x20AC;&#x2122;autovalore temporale, ciò corrisponde ad una maggiore competitivitĂ nei pattern emergenti. Inoltre, analizzando la parte relativa alla
82
simulazione dei pattern, si nota altresì che l’algoritmo di Runge-Kutta conferma i risultati ottenuti con l’algoritmo di Eulero di ordine 1. A tal proposito aggiungeremo che nel passaggio dal sistema lineare a quello non lineare, le simulazioni numeriche della RD-CNN hanno evidenziato la presenza di pattern non completamente emersi a regime (pattern spurii), che sono il risultato della competizione non lineare senza vincitore tra i diversi modi previsti dalla teoria lineare. Verifichiamo adesso con nuove prove la possibilità che si abbia o meno un vincitore nella competizione tra le autofunzioni.
a)
b) Fig 4.46 Rappresentazione grafica del codice e del pattern associato rispettivamente di un pattern normale (a), e spurio (b), dove all’uscita -1 è associato il colore nero,a 1 il bianco e allo 0 il grigio.
83
Tale competizione porta, nella stragrande maggioranza dei casi, ad un vincitore e il fenomeno dei pattern spurii scompare per i valori di γ superiori di 12.5. Questo avviene perché all’aumentare del parametro γ, nuovi modi si aggiungono e aumentano quindi le possibili configurazioni che si possono ottenere a regime. Bisogna tenere in considerazioni che il simulatore sviluppato implementa il sistema di equazioni non lineare tempo-continue nel tempo-discreto sebbene come algoritmo di integrazione numerica sia stato utilizzato sia Eulero di ordine 1, che Runge-Kutta del IV ordine a passo variabile. La realizzazione analogica di tali equazioni (implementando la CNN con i componenti analogici descritti in Fig. 2.2) consente di implementare le equazioni nel tempo continuo e dovrebbe portare ad una riduzione del fenomeno dei pattern spurii.
4.2 Risultati Geometrie bacini di attrazione
La geometria dei bacini di attrazione determina il modo in cui le informazioni di ingresso, in questo caso rappresentate dalle condizioni iniziali delle CNN, vengono classificate nei vari pattern. Dunque per quanto riguarda la simulazione si è scelto di impostare tutte le celle del 84
primo layer, tranne due, a zero e far variare il valore di quest’ultime all’interno del range [-1,1] con passo di 0.05; mentre al valore delle celle del secondo layer, che è stato impostato a zero, va aggiunto, qualora specificato, il valore del rumore. In questo modo sarà possibile rappresentare una sezione bidimensionale della geometria dei bacini di attrazione, che è MxN dimensioni.
1ª configurazione celle variabili (1,4) (4,1)
Gamma 5, Noise level 0
Gamma 5, Noise level 0.005
Fig 4.47 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.
Con γ =5 si nota che vi è un solo pattern emerso in assenza di rumore mentre il numero di pattern sale a 5 con la presenza di rumore.
85
Gamma 7.5 Noise level 0
Gamma 7.5, Noise level 0.005
Fig 4.48 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.
Come si può evincere dalla Fig.4.48 con γ =7.5 vi è un solo pattern emerso in assenza di rumore mentre il numero di pattern sale a 2 con la presenza di rumore. Gamma 10 Noise level 0
Gamma 10 Noise level 0.005
Fig 4.49 Geometrie dei bacini di attrazione con γ =10 e noise level 0 e 5.
Con γ=10 la geometria dai bacini di attrazione comincia a diventare più complessa in quanto sono emersi 11 pattern in assenza di rumore e 21 con rumore.
86
Gamma 12.5 Noise level 0
Gamma 12.5 Noise level 0.005
Fig 4.50 Geometrie dei bacini di attrazione con Îł =12.5 e noise level 0 e 5.
Il numero dei pattern emersi continua a salire infatti si hanno 19 pattern emersi in assenza di rumore e 30 con rumore, da notare gli errori rappresentati da i pixel di colore diverso rispetto alla zona circostante.
Gamma 15 Noise level 0
Gamma 15 Noise level 0.005
Fig 4.51 Geometrie dei bacini di attrazione con Îł =15 e noise level 0 e 5.
Osservando le geometrie si nota che mentre nel caso senza rumore vi siano meno errori non si può dire però altrettanto per quello con rumore infatti si hanno 18 pattern emersi nel primo caso e 43 nel secondo.
87
Gamma 17.5 Noise level 0
Gamma 17.5 Noise level 0.005
Fig 4.52 Geometrie dei bacini di attrazione con γ =17.5 e noise level 0 e 5.
Con γ=17.5 si hanno 45 e 19 pattern emersi rispettivamente per il caso con e senza
rumore.
Gamma 20 Noise level 0
Gamma 20 Noise level 0.005
Fig 4.53 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.
La situazione in questo caso rimane pressoché invariata rispetto al caso precedente con 19 pattern emersi per il caso senza rumore e 42 per quello con rumore.
88
Gamma 22.5 Noise level 0
Gamma 22.5 Noise level 0.005
Fig 4.54 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.
Con γ=22.5 si ha una leggera flessione dei pattern emersi in quanto si hanno 15 pattern nel caso in assenza di rumore e 39 in presenza del suddetto. Gamma 25 Noise level 0
Gamma 25 Noise level 0.005
Fig 4.55 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.
Con γ=25 si ha, come si può d'altronde osservare nelle geometrie, il numero massimo di pattern emersi sia per quanto riguarda il caso senza rumore che quello con rumore, infatti si arriva ad avere 23 pattern emersi nel primo caso e ben 59 nel secondo.
89
2 ª configurazione celle (1,1) (4,4) Gamma 5 Noise level 0
Gamma 5 Noise level 0.005
Fig 4.56 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.
In questa seconda configurazione si ha in questo caso il medesimo numero di pattern emersi nella 1ª configurazione e cioè 1 pattern emerso per il caso senza rumore e 5 per quello con rumore. Gamma 7.5 Noise level 0
Gamma 7.5 Noise Level 0.005
Fig 4.57 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.
La situazione invece qui comincia a diversificarsi in quanto se nel caso senza rumore vi è un solo pattern emerso, come nella configurazione precedente, nel caso con rumore i pattern emersi salgono a 3.
90
Gamma 10 Noise level 0
Gamma 20 Noise level 0.005
Fig 4.58 Geometrie dei bacini di attrazione con γ =10 e noise level 0 e 5.
Anche qui con γ=10 le geometrie dei bacini di attrazione diventano più complesse, avendo 11 pattern emersi nel caso in assenza di rumore e 18 in quello con rumore.
Gamma 12.5 Noise 0
Gamma 12.5 Noise level 0.005
Fig 4.59 Geometrie dei bacini di attrazione con γ =12.5 e noise level 0 e 5.
Si ha un incremento dei pattern emersi arrivando ad avere 19 pattern emersi nel caso in assenza di rumore e 26 in quello con rumore.
91
Gamma 15 Noise level 0
Gamma 15 Noise level 0.005
Fig 4.60 Geometrie dei bacini di attrazione con γ =15 e noise level 0 e 5.
In questo caso vi è stata una leggera flessione del numero dei pattern emersi in assenza di rumore infatti si è passati da 19 a 18 , ma un notevole rialzo del numero di pattern emersi i n presenza di rumore passando da 26 a 44.
Gamma 17.5 Noise level 0
Gamma 17.5 Noise level 0.00 5
Fig 4.61 Geometrie dei bacini di attrazione con γ =17.5 e noise level 0 e 5.
Il numero dei pattern emersi in assenza di rumore è risalito a 19 mentre quello avuto in presenza di rumore è sceso a 43.
92
Gamma 20 Noise level 0
Gamma 20 Noise level 0.005
Fig 4.62 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.
Il numero dei pattern emersi nel caso in assenza di rumore è rimasto stabile a 19 mentre quello avuto in presenza di rumore è sceso a 39.
Gamma 22.5 Noise level 0
Gamma 22.5 Noise level 0.005
Fig 4.63 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.
Come nella configurazione precedente il numero dei pattern emersi in assenza di rumore ha avuto una flessione arrivando infatti a 15 mentre è salito a 42 il numero dei pattern emersi in presenza di rumore.
93
Gamma 25 Noise level 0
Gamma 25 Noise level 0.005
Fig 4.64 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.
Come nella configurazione precedente con γ=25 il numero dei pattern emersi raggiunge l’apice arrivando a 23 pattern per il caso in assenza di rumore e 56 per quello con rumore.
3ª configurazione celle (2,2) (3,3) Gamma 5 Noise level 0
Gamma 5 Noise level 0.005
Fig 4.65 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.
Diversamente dalle altre configurazioni qui si ha sostanzialmente lo stesso numero di pattern emersi in entrambi i casi e cioè 5.
94
Gamma 7.5 Noise level 0
Gamma 7.5 Noise level 0.005
Fig 4.66 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.
Come si evince dalla Fig 4.65 con γ=5 si ha un pattern in assenza di rumore e 5 in presenza di rumore.
Gamma 10 Noise level 0
Gamma 10 Noise level 0.005
Fig 4.67 Geometrie dei bacini di attrazione con γ =10 e noise level 0 e 5.
Anche qui si ha lo stesso numero di pattern emersi con e senza rumore cioè 7.
95
Gamma 12.5 Noise level 0
Gamma 12.5 Noise level 0.005
Fig 4.68 Geometrie dei bacini di attrazione con γ =12.5 e noise level 0 e 5.
Con γ=12.5 il numero di pattern emersi in assenza di rumore sale a 17 mentre quelli emersi in presenza di rumore sono 27.
Gamma 15 Noise level 0
Gamma 15 Noise level 0.005
Fig 4.69 Geometrie dei bacini di attrazione con γ =15 e noise level 0 e 5.
Il numero di pattern emersi in assenza di rumore è 19 invece quello in presenza di rumore è di 39.
96
Gamma 17.5 Noise level 0
Gamma 17.5 Noise level 0.005
Fig 4.70 Geometrie dei bacini di attrazione con γ =17.5 e noise level 0 e 5.
In questo caso il numero di pattern emersi in assenza di rumore rimane invariato a 19 mentre sale a 42 quello in presenza di rumore.
Gamma 20 Noise level 0
Gamma 20 Noise level 0.005
Fig 4.71 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.
Con γ= 20 si ha solo l’aumento del numero di pattern emersi in presenza di rumore, infatti si hanno 19 pattern emersi in assenza di rumore e 44 in presenza di rumore.
97
Gamma 22.5 Noise level 0
Gamma 22.5 Noise level 0.005
Fig 4.72 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.
Anche qui come nelle altre configurazioni si ha una flessione dei pattern emersi, avendo infatti 18 pattern emersi per la simulazione in assenza di rumore e 37 in quella con rumore. Gamma 25 Noise level 0
Gamma 25 Noise level 0.005
Fig 4.73 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.
Come nelle altre configurazioni a γ= 25 corrisponde il numero massimo di pattern emersi per la configurazione, cioè 20 pattern in assenza di rumore e ben 54 con il rumore.
98
4ª configurazione celle (2,3) (3,2) Gamma 5 Noise level 0
Gamma 5 Noise level 0.005
Fig 4.74 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.
Situazione analoga alle prime configurazioni cioè un solo pattern emerso in assenza di rumore e 5 emersi con il rumore.
Gamma 7.5 Noise level 0
Gamma 7.5 Noise level 0.005
Fig 4.75 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.
Come si può notare dalle geometrie, è emerso un solo pattern nel caso senza rumore e 4 in quello con il rumore.
99
Gamma 10 Noise level 0
Gamma 10 Noise level 0.005
Fig 4.76 Geometrie dei bacini di attrazione con Îł =10 e noise level 0 e 5.
Il numero di pattern emersi in questo caso è molto simile infatti si hanno 7 pattern emersi con la simulazione in assenza di rumore e 8 in quella con il rumore.
Gamma 12.5 Noise level 0
Gamma 12.5 Noise level 0.005
Fig 4.77 Geometrie dei bacini di attrazione con Îł =12.5 e noise level 0 e 5.
In questo caso come si evince dalle geometrie, si ha un incremento dei pattern emersi, infatti si hanno 17 pattern emersi nel caso senza rumore e 29 in quello con rumore.
100
Gamma 15 Noise level 0
Gamma15 Noise level 0.005
Fig 4.78 Geometrie dei bacini di attrazione con Îł =15 e noise level 0 e 5.
In questo caso si hanno rispettivamente 19 pattern emersi per la simulazione senza rumore e 41 per quella con il rumore.
Gamma 17.5 Noise level 0
Gamma 17.5 noise level 0.005
Fig 4.79 Geometrie dei bacini di attrazione con Îł =17.5 e noise level 0 e 5.
Con Îł=17.5 si hanno 19 pattern emersi nel caso in assenza di rumore e 42 in quello in presenza di rumore.
101
Gamma 20 Noise level 0
Gamma 20 Noise level 0.005
Fig 4.80 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.
In questo caso anche se la geometria dei bacini è cambiata si ha solo un aumento del numero di pattern emersi in presenza di rumore, in quanto si hanno 19 pattern emersi nelle simulazioni senza rumore e 45 in quelle con rumore. Gamma 22.5 Noise level 0
Gamma 22.5 Noise level 0.005
Fig 4.81 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.
Come già visto nelle configurazioni precedenti si ha una flessione del numero di pattern emersi, avendo così 18 pattern per il caso senza rumore e 38 per quello con rumore.
102
Gamma 25 Noise level 0
Gamma 25 Noise level 0.005
Fig 4.82 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.
Come nelle altre configurazioni γ= 25 fa segnare il massimo numero di pattern emersi con 20 pattern emersi simulando le geometrie dei bacini di attrazione senza rumore e ben 51 pattern simulandole con rumore. 4.2.1 Considerazioni Da quanto precedentemente visto si nota che in tutte le configurazioni, le geometrie dei bacini di attrazione sono speculari rispetto all’origine e il numero dei pattern emersi nelle simulazioni in assenza di rumore aumenta, stabilizzandosi intorno al valore di 19, per poi subire una flessione con γ=22.5, accentuata nelle configurazioni esterne 1 e 2, mentre raggiunge il massimo con γ=25. Un discorso analogo si ha con i pattern emersi in presenza di rumore, in cui si ha una stabilizzazione intorno al valore di 43, per poi arrivare ad un valore massimo oscillante tra 51 e il 59 con γ=25.
103
CAPITOLO 5
Conclusioni In questa tesi ci si è occupati di analizzare le architetture non lineari per la classificazione delle informazioni basate sul principio che ciascun pattern di Turing possa essere considerato come una classe nello spazio delle informazioni. Da qui l’idea di considerare i pattern di Turing come classi in grado di rappresentare graficamente delle informazioni. La struttura utilizzata per poter riuscire a riprodurre artificialmente la formazione dei suddetti pattern è realizzata da array di circuiti non lineari del
secondo
ordine,
le
RN-CNN
(Cellular
Neural
Network),
implementabile con componenti analogici accoppiati in modo lineare, che permettono, settati opportunamente, di generare i pattern di Turing. Tutti i dati e le simulazioni a cui si è fatto riferimento, per poter verificare le potenzialità dei pattern di Turing per la classificazione, vengono ottenuti mediante l’utilizzo di un simulatore di pattern
sviluppato in
ambiente MatLab. Il simulatore consente, attraverso un’interfaccia grafica, di condurre analisi teoriche e numeriche riguardo al comportamento lineare e non lineare delle RD-CNN in configurazione tale da generare pattern di Turing. A tal proposito occorre precisare che , la parte relativa
104
a tali simulazioni è stata sviluppata ricorrendo ad algoritmi di integrazione di Eulero, scritti in linguaggio C++ per minimizzare i tempi di esecuzione. Per quanto riguarda le simulazioni, poiché da ciò che è stato precedentemente affermato il pattern finale dipende fortemente dalle condizioni iniziali e precisamente nel caso in cui tutti i modi possibili vengano eccitati con la stessa forza (settando le condizioni iniziali in maniera random) dovrebbe prevalere l’autofunzione legata all’autovalore con parte reale positiva maggiore. Si è scelto allora, per studiare l’effetto che le condizioni iniziali hanno sull’emergere dei pattern, di analizzare al variare di γ, sia le autofunzioni e la curva di dispersione, sia i corrispettivi pattern
di Turing. Inoltre valutando la possibilità di considerare le
informazioni come condizioni iniziali analogiche delle CNN del I layer, si è simulata la geometria dei bacini di attrazione dei pattern, verificando la robustezza al rumore sulle condizioni iniziali del II layer. I risultati ottenuti, frutto di molteplici simulazioni mostrano che, la teoria lineare presentata in precedenza è un buon predittore del pattern finale solo se i modi instabili hanno un numero d’onda piccolo. Infatti si può riscontrare che al crescere del valore di γ gli autovalori inclusi nella banda dei
modi
instabili
aumentano,
incrementando
così
le
possibili
configurazioni che si possono ottenere a regime e dunque il numero di pattern emersi. Inoltre per valori di γ inferiori a 12.5 si è avuta la presenza 105
di pattern spurii, ossia pattern derivanti dalla competizione non lineare senza vincitore tra i diversi modi previsti dalla teoria lineare. Tale competizione porta, nella stragrande
maggioranza dei casi, ad un
vincitore e il fenomeno dei pattern spurii scompare per i valori di γ superiori di 12.5. Questo avviene perché all’aumentare del parametro γ, si aggiungono nuovi modi e aumentano quindi le possibili configurazioni che si possono ottenere a regime. Quanto detto in precedenza è dovuto al fatto che il simulatore sviluppato implementa il sistema di equazioni non lineare tempo-continue nel tempodiscreto. La realizzazione analogica di tali equazioni consente di implementare le equazioni nel tempo continuo e dovrebbe portare ad una riduzione del fenomeno dei pattern spurii.
106
Bibliografia [1] L. Goraş e L. Chua, “Turing Patterns in CNNs – Part I: Once Over
Lightly”, IEEE Transactions on Circuits and Systems – I: Fundamental Theory and Applications 42 (10), (1995). [2] L.Wolpert “Positional information and thespatial pattern of cellular
differentiation”, J. theor. Biol. 25, 1-47 (1969).
[3] J.D. Murray, “Mathematical Biology I: An Introduction” (3rd Ed.) Springer-Verlag, New York (2002).
[4] A.M. Turing, “The chemical basis of morphogenesis”, Phil. Trans. Roy. Soc. Lond. B 237, 37-72 (1952). [5] L. Goraş e L. Chua, “Turing Patterns in CNNs – Part II: Equations and Behaviors”, IEEE Transactions on Circuits and Systems – I: Fundamental Theory and Applications 42 (10), (1995).
[6] L. Chua e L. Yang, “Cellular neural networks”, US Patent, no. 5140670.
[7] G. Manganaro, P. Arena, L. Fortuna, “Cellular Neural Networks: Chaos, Complexity and VLSI Processing”, Springer-Verlag (1999).
107