+ All Categories
Home > Documents > Tesi triennale

Tesi triennale

Date post: 24-Mar-2016
Category:
Upload: giuseppe-patti
View: 237 times
Download: 1 times
Share this document with a friend
Description:
tesi triennale ing informatica
107
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
Transcript
Page 1: Tesi triennale

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

Page 2: Tesi triennale

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

Page 3: Tesi triennale

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.

Page 4: Tesi triennale

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.

Page 5: Tesi triennale

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

Page 6: Tesi triennale

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

Page 7: Tesi triennale

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.

Page 8: Tesi triennale

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.

Page 9: Tesi triennale

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 :

Page 10: Tesi triennale

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)

Page 11: Tesi triennale

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 )

Page 12: Tesi triennale

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∞.

Page 13: Tesi triennale

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

Page 14: Tesi triennale

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)

Page 15: Tesi triennale

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)

Page 16: Tesi triennale

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:

Page 17: Tesi triennale

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 γγλ

Page 18: Tesi triennale

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

Page 19: Tesi triennale

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]

Page 20: Tesi triennale

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

Page 21: Tesi triennale

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:

Page 22: Tesi triennale

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

(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)

Page 23: Tesi triennale

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.

Page 24: Tesi triennale

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

Page 25: Tesi triennale

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.

Page 26: Tesi triennale

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.

Page 27: Tesi triennale

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

Page 28: Tesi triennale

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.

Page 29: Tesi triennale

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.

Page 30: Tesi triennale

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:

Page 31: Tesi triennale

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

Page 32: Tesi triennale

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.

Page 33: Tesi triennale

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.

Page 34: Tesi triennale

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.

Page 35: Tesi triennale

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

Page 36: Tesi triennale

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.

Page 37: Tesi triennale

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

Page 38: Tesi triennale

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.

Page 39: Tesi triennale

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:

Page 40: Tesi triennale

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.

Page 41: Tesi triennale

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.

Page 42: Tesi triennale

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

Page 43: Tesi triennale

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

Page 44: Tesi triennale

44

Fig 4. 5 Rappresentazione pattern emersi.

Simulazioni con γ = 7.5

Fig 4. 6 Rappresentazione curva di dispersione per γ =7.5 .

Page 45: Tesi triennale

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

Page 46: Tesi triennale

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.

Page 47: Tesi triennale

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

Page 48: Tesi triennale

48

Fig 4.10 Rappresentazione pattern emersi.

Simulazioni con γ =10

Fig 4.11 Curva di dispersione con γ =10.

Page 49: Tesi triennale

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

Page 50: Tesi triennale

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

Page 51: Tesi triennale

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

Page 52: Tesi triennale

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.

Page 53: Tesi triennale

53

Simulazioni con γ=12.5

Fig 4.16 Curva di dispersione con γ =12.5.

Fig 4.17 Autofunzioni incluse nella banda dei modi instabili.

Page 54: Tesi triennale

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

Page 55: Tesi triennale

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

Page 56: Tesi triennale

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

Page 57: Tesi triennale

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.

Page 58: Tesi triennale

58

Simulazioni con γ=15

Fig 4.22 Curva di dispersione per γ =15.

Page 59: Tesi triennale

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

Page 60: Tesi triennale

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

Page 61: Tesi triennale

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

Page 62: Tesi triennale

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.

Page 63: Tesi triennale

63

Simulazioni con γ= 17.5

Fig 4.27 Curva di dispersione per γ =17.5.

Page 64: Tesi triennale

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

Page 65: Tesi triennale

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

Page 66: Tesi triennale

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

Page 67: Tesi triennale

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.

Page 68: Tesi triennale

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

Page 69: Tesi triennale

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

Page 70: Tesi triennale

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.

Page 71: Tesi triennale

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

Page 72: Tesi triennale

72

Fig 4.35 Rappresentazione pattern emersi.

Simulazioni con γ= 22.5

Fig 4.36 Curva di dispersione per γ =22.5.

Page 73: Tesi triennale

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.

Page 74: Tesi triennale

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

Page 75: Tesi triennale

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

Page 76: Tesi triennale

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

Page 77: Tesi triennale

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.

Page 78: Tesi triennale

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.

Page 79: Tesi triennale

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

Page 80: Tesi triennale

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

Page 81: Tesi triennale

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

Page 82: Tesi triennale

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

Page 83: Tesi triennale

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.

Page 84: Tesi triennale

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

Page 85: Tesi triennale

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.

Page 86: Tesi triennale

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.

Page 87: Tesi triennale

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.

Page 88: Tesi triennale

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.

Page 89: Tesi triennale

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.

Page 90: Tesi triennale

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.

Page 91: Tesi triennale

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.

Page 92: Tesi triennale

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.

Page 93: Tesi triennale

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.

Page 94: Tesi triennale

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.

Page 95: Tesi triennale

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.

Page 96: Tesi triennale

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.

Page 97: Tesi triennale

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.

Page 98: Tesi triennale

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.

Page 99: Tesi triennale

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.

Page 100: Tesi triennale

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.

Page 101: Tesi triennale

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.

Page 102: Tesi triennale

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.

Page 103: Tesi triennale

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.

Page 104: Tesi triennale

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

Page 105: Tesi triennale

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

Page 106: Tesi triennale

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.

Page 107: Tesi triennale

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).


Recommended