Date post: | 24-Mar-2016 |
Category: |
Documents |
Upload: | giuseppe-patti |
View: | 237 times |
Download: | 1 times |
1
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
2
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
3
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.
4
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.
5
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
6
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
7
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 reazione-
diffusione 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.
8
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.
9
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:
cDcftc 2)( ∇⋅+=∂∂
, (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 :
10
( )
( ) BDBAGtB
ADBAFtA
B
A
2
2
,
,
∇+=∂∂
∇+=∂∂
( 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 (DA=DB=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 DA ≠ DB ≠ 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
vdvugvuvufu
2
2
),(),(
∇⋅+⋅=
∇+⋅=
γ
γ
, (2.3)
11
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:
),(),(
vugvvufu
⋅=⋅=
γγ
, ( 2.4 )
12
poiché f e g sono delle funzioni non lineari, per verificare le condizioni
precedentemente poste, linearizziamo il sistema intorno allo stato
stazionario (u0,v0) ponendo:
−−
=0
0
vvuu
w . (2.5)
Così facendo la (2.4) per piccoli spostamenti diventa:
wAw γ= (2.6)
),( 00 vuvu
vu
ggff
A
= , (2.7)
dove A è la matrice di stabilità e la scrittura hp 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
( ) ( )ωω tet Λ= (2.8)
con Λ=diag ( 21 ,λλ ) dove 21 ,λλ sono gli autovalori di A. Lo stato
stazionario w=0 allora è linearmente stabile se Re λ < 0 poiché in questo
caso w0 per t∞.
13
Infatti sostituendo la 2.8 nella 2.6 si ottiene:
0=−
−=−
λγγγλγ
λγvu
vu
ggff
IA (2.9)
Da cui gli autovalori sono:
( ) ( ) ( )
−−+±+= uvvuvuvu gfgfgfgf 4
21, 2
21 γλλ . (2.10)
A questo punto si può affermare che la lineare stabilità è garantita da :
00)( >−=<+= uvvuvu gfgfAegfAtr . (2.11)
Volendo analizzare invece la destabilizzazione dello stato stazionario in
presenza di diffusione , si considera l’equazione di reazione diffusione
linearizzata
=∇+=
dDwDwAw
001
,2γ . (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
14
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
02 =+∆ WkW , (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:
( )N
ynM
xmyxW nmππ coscos,, = . (2.14)
I relativi autovalori, dei quali la radice quadrata prende anche il nome di
numero d’onda, sono
+= 2
2
2
222
Nn
Mmk π , (2.15)
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ì
∑=k
kt
k yxWectrw ),(),( λ, (2.16)
Dove W(x,y) è l’autofunzione corrispondente al numero d’onda k con
condizioni al contorno di tipo zero-flux, ck 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:
kkkkk WDkAWWDAWW 2+=∆+= γγλ (2.17)
Dove le soluzioni non banali per Wk permettono di determinare gli
autovalori temporali attraverso:
.02 =+− DkAI γλ (2.18)
Da cui sostituendo ad A e D le rispettive definizioni si ottiene:
( ) ( )[ ] ( ) 01 222 =++−++ khgfdk vuγλλ (2.19)
con:
( ) ( ) Akgdfdkkh vu2242 γγ ++−= (2.20)
16
e pertanto:
( ) ( ) ( ) ( )[ ] ( )
−+−+±+++−⋅= 2222
2,1 41121 khgfdkgfdk vuvu γγλ
(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, ( ) 0<+ vu gf (per soddisfare la prima condizione per i
pattern di Turing) ed inoltre ( ) 012 >+ dk per la positività dei coefficienti
di diffusione, ne segue che per la seconda condizione bisogna avere
( ) 02 <kh per qualche k. Poiché sempre per la prima condizione è
richiesto che 0>A , l’unica possibilità di far sì che ( ) 02 <kh è quella di
avere:
0>+ vu gdf , (2.22)
che a sua volta implica d ≠1. La (2.22) è condizione necessaria ma non
sufficiente per avere ( ) 02 <kh . E’ infatti anche necessario imporre che il
valor minimo di h(k) sia negativo e ciò si verifica se:
17
( )
Adgdf vu >
+4
2
. (2.23)
Fatto questo esisterà un range per i quadrati dei numeri d’onda k2 per cui
verifica h(k2)<0.
( ) ( )d
Adgdfgdfk vuvu
242
22,1
−+±+= γ . (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 kmn ad esso associato verifichi la condizione
22
221 kkk 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:
( ) ( ) ( ) ( )[ ] ( )
−+−+++++−⋅= 2222 411Re
21)Re( khgfdkgfdk vuvu γγλ
18
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 Wk 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 (u0, v0) comportando così che i risultati vengano intesi solo
come indicazioni di massima in quanto la validità è limitata soltanto a
piccoli spostamenti da (u0, v0), 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
19
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]
20
• 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)
( )1121
−−+= xxy (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
21
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:
−=
010141010
C . (2.28)
Cioè
),(4)1,()1,(),1(),1(),(2 jixjixjixjixjixjix −−+++−++=∇ .
E considerando solo due reagenti, si utilizza una CNN a due strati di cui lo
stato è retto dalle equazioni:
( )( ) jijijijiji
jijijijiji
xDysyxx
xDsyyxx
,;22
2,;2,;1,;2,;2
,;12
1,;2,;1,;1,;1
1
1
∇+−+++−=
∇+−+++−=
εµ
εµ
, (2.29)
che possono assumere la forma:
( )
( ) jijijiji
jijijiji
xDD
xD
sxD
xD
xsxD
xD
xD
,;22
21
,;21
,;11
,;21
,;12
,;21
,;11
,;11
1111
111
∇+−+=
∇+−+=
εµ
εµ
(2.30)
e ponendo inoltre t*=D1t , si ottiene:
22
( )[ ]
( )[ ] *)(1*)(*)(1*
*)(
*)(*)(*)(1*
*)(
,;221
,;2,;11
,;2
,;1,;2,;11
,;1
txDD
txtsxDt
tx
txtsxtxDt
tx
jijijiji
jijijiji
∆+−+=∂
∂
∆+−+=∂
∂
εµ
εµ
.
(2.31)
Sostituendo le variabili con variabili adimensionali, considerandoci in
regime lineare e inoltre ponendo:
=
=
1
2
1
1
DDd
Dγ
(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:
( ) ( )[ ]
+−>−++
−+
−>
>+<
2222
222
4
11
0
sd
ddd
s
εµεµεµ
µε
εµµ
. (2.33)
23
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 precedentemente analizzati. Ma più
specificatamente se si vuole 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.
24
3.1 Funzionalità offerte Il simulatore si presenta con un’ 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
25
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.
26
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.
27
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 Runge-
Kutta. 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
28
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.
29
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.
30
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:
31
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
32
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.
33
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.
34
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.
35
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
36
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.
37
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
38
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.
39
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:
40
• 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.
41
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 2k = 0.61685 (con molteplicità doppia) e
2k =1.2337. Si osservi che all’autovalore spaziale 2k =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.
42
Pattern di Turing emersi con l’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’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
43
65280 21.6 24 -1 10
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’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
44
Fig 4. 5 Rappresentazione pattern emersi.
Simulazioni con γ = 7.5
Fig 4. 6 Rappresentazione curva di dispersione per γ =7.5 .
45
Fig 4.7 Autofunzioni incluse nella banda dei modi instabili.
In questo caso si ha l’entrata di un nuovo autovalore con molteplicità
doppia 2k =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
46
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.
47
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
48
Fig 4.10 Rappresentazione pattern emersi.
Simulazioni con γ =10
Fig 4.11 Curva di dispersione con γ =10.
49
Fig 4.12 Autofunzioni incluse nella banda dei modi instabili.
Anche in questo caso gli ultimi due autovalori con molteplicità doppia
2k =2.4674 e 2k =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’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 3310 1.4 1.69287
50
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
51
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 % Freq_cleaned -1 17.3 255 10.4 12.5756
52
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.
53
Simulazioni con γ=12.5
Fig 4.16 Curva di dispersione con γ =12.5.
Fig 4.17 Autofunzioni incluse nella banda dei modi instabili.
54
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
55
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
56
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’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
57
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.
58
Simulazioni con γ=15
Fig 4.22 Curva di dispersione per γ =15.
59
Fig 4.23 Autofunzioni incluse nella banda dei modi instabili.
Vi è l’entrata di due nuovi autovalori 2k = 4.9348 e 2k =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
60
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
61
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
62
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.
63
Simulazioni con γ= 17.5
Fig 4.27 Curva di dispersione per γ =17.5.
64
Fig 4.28 Autofunzioni incluse nella banda dei modi instabili.
In questo caso vi è l’entrata dell’autovalore 2k = 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
65
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
66
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’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
67
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.
68
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’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
69
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 Freq % Freq_cleaned 1918 0.3 0.3003
70
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.
71
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
72
Fig 4.35 Rappresentazione pattern emersi.
Simulazioni con γ= 22.5
Fig 4.36 Curva di dispersione per γ =22.5.
73
Fig 4.37 Autofunzioni incluse nella banda dei modi instabili.
Con γ=22.5 vi è l’ingresso dell’autovalore, con molteplicità doppia,
2k =8.01905.
74
Pattern di Turing emersi con l’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
75
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
76
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’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
77
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.
78
Simulazioni con γ=25
Fig 4.41 Curva di dispersione per γ =25.
L’ultimo autovalore 2k =11.1033 qui rappresentato non riesce comunque
ad entrare nella banda dei modi instabili.
Fig 4.42 Autofunzioni incluse nella banda dei modi instabili.
79
Pattern di Turing emersi con l’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
80
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
81
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’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
82
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’autovalore temporale, ciò corrisponde ad una maggiore competitività
nei pattern emergenti. Inoltre, analizzando la parte relativa alla
83
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.
84
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
85
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.
86
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.
87
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.
88
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.
89
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.
90
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.
91
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.
92
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.
93
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.
94
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.
95
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.
96
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.
97
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.
98
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.
99
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.
100
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.
101
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.
102
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.
103
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.
104
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
105
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
106
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 tempo-
discreto. 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.
107
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).