Tesi triennale

Page 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 1


SOMMARIO Prefazione……………………………………………………………...……3 1 Introduzione ………………………………………………………...………………..5 2 I pattern di Turing e le CNN……………………………………………………….....9 2.1 Introduzione………………………………………………………..…. ...…9 2.2 La Diffusion-Driven Instability…………………………………..……….10 2.2.1Considerazioni……………………………………………..… ….18 2.2.2Le CNN………………………………………………………..…19 3 Il simulatore…………………………………………………………………...….....23 3.1 Funzionalità offerte…………………………………………………….....24 3.1.1 I tool……………………………………………………………..25 3.1.1 Le simulazioni……………………………………………….......27 3.2 Il simulatore in dettaglio……………………………………………......…31 3.2.1 I tool………………………………………………………......…32 3.2.1.1 Le caselle di testo…………………………….…….…32 3.2.1.2 Process autofunction……………………………......…33 3.2.1.3 Plot dispersion curve…………………………….…….33 3.2.2 La simulazione…………………………………………….....….33 3.2.2.1 Le scelte iniziali………………………………….….....34 3.2.2.2 Simulate pattern ………………………………….....…34 3.2.2.3 Create matrix………………………………………......36 3.2.2.4 Simulate subset………………………………...……....36 3.2.2.5 Basin………………………………………...………....37 3.2.2.6 Process data…………………………………...……….38 4 Le simulazioni……………………………………………………………...…….. ..39 4.1 Risultati pattern di Turing………………………………………………....39 4.1.2 Considerazioni…………………………………………………...82 4.2 Risultati Geometrie bacini di attrazione…………………………………..84 4.2.1 Considerazioni……………………………………….…………103 5 Conclusioni………………………………………………………………………...104 6 Bibliografia………………………………………………………………………...107 2


Prefazione Questa tesi si occupa di analisi teoriche e numeriche di architetture non lineari per la classificazione di informazioni attraverso i pattern di Turing. Classificare vuol dire rappresentare i fenomeni osservati con parametri che diano una rappresentazione semplice ma univoca di essi attribuendo ai suddetti delle determinate caratteristiche, ossia è possibile affermare che ciascun fenomeno appartiene ad una “famiglia” di fenomeni della sua stessa natura. E’ opportuno, a tal proposito sottolineare che, accanto alla classificazione vi è sempre sottintesa l’identificazione cioè, quel procedimento che permette, data una famiglia di fenomeni omogenei che vogliamo definire, di distinguerla da una simile ma differente. Di tutto ciò ne è un esempio il riconoscimento di pixel in un immagine di oggetti concreti come rocce, fiori oppure fenomeni di natura più complessa. Da ciò l’utilizzo dei pattern di Turing come classi in grado di rappresentare anche graficamente delle informazioni. A tal fine è stato sviluppato un simulatore di pattern di Turing, che genera i l’emersione dei pattern simulando una RD-CNN, per validare i risultati teorici.

3


Nel Capitolo 1 viene presentato il concetto di pattern, elemento portante della tesi, offrendone una panoramica sui suoi ambiti di utilizzo. Nel Capitolo 2 vengono presentate sia le base della teoria proposta da Turing per la formazione dei pattern, sia l’architettura di una RD-CNN importantissima ai fini della simulazione. Il Capitolo3 invece presenta, offrendo una sorta di manuale d’uso, il simulatore utilizzato per estrapolare i risultati presentati. Nel Capitolo 4, infine, vengono mostrati ed analizzati i risultati delle simulazioni effettuate.

4


CAPITOLO 1

Introduzione La parola pattern, che è utilizzata in molti contesti scientifici, si riferisce a quantità variabili nello spazio e/o nel tempo [1] esistenti sia in natura sia in oggetti creati dall’uomo. In un certo senso il termine pattern definisce uno stato di equilibrio non omogeneo di un array di elementi identiche. Secondo alcune teorie esisterebbero solo un numero finito di modi in cui i pattern possono essere strutturati, in quanto costituenti di una griglia che sta alla base di ogni struttura ed ogni immagine. Di pattern in natura si occupa l’embriologia, che studia la formazione e lo sviluppo dell’embrione dalla fecondazione alla nascita. A tutt’oggi non è ancora noto con certezza il funzionamento dei meccanismi che portano alla formazione di pattern negli embrioni, ma comunque esistono valide teorie a riguardo. Una di queste è quella di Wolpert [2] , il quale sostiene che le cellule siano pre-programmate a reagire alla concentrazione di sostanze chimiche ed a differenziarsi conseguentemente. In base a questo punto di vista il processo di formazione dei pattern viene separato in diversi passi, di cui il primo e più importante è quello di creare un pattern spaziale della concentrazione di morfogeni, ossia di componenti chimici che influenzano 5


la morfogenesi. La morfogenesi si basa, quindi, su una specificazione chimica a priori, così che, una volta che il pre-pattern è stabilito, essa diventa solo un processo meccanico già determinato. Ma forse un più comune ed evidente esempio dei pattern in natura è rappresentato dal manto talvolta striato, talvolta maculato di molti animali, infatti secondo la teoria di Turing-Murray un singolo meccanismo può essere responsabile della generazione di tutti i pattern comuni osservati. Questo meccanismo è basato su un sistema di reazione-diffusione dei prepattern morfogeni e della susseguente differenziazione delle cellule che producono melanina semplicemente riflettendo la concentrazione dei pattern spaziali di morfogeni. Lo sviluppo di pattern colorati sulla pelle di un mammifero avviene verso la fine dell’embriogenesi. Per creare pattern colorati, determinate cellule chiamate melanoblasti migrano verso la superficie dell’embrione e diventano cellule pigmentose chiamate melanociti. Ne è un esempio il colore dei capelli che viene dai melanociti che generano melanina. Da esperimenti è stato dimostrato che la produzione di melanina da parte dei melanociti è dovuta alla presenza di una sostanza chimica ancora sconosciuta [3]. Infatti da tutte queste teorie derivano diverse considerazioni che hanno un riscontro in natura abbastanza evidente in tal senso noteremo che, non ci sono animali con il corpo a righe e la coda maculata ma ci sono animali con il corpo maculato e la coda a strisce 6


quindi si può riassumere la teoria di Turing-Murray in tal modo: dato che il corpo è sempre più largo della coda lo stesso meccanismo di reazionediffusione dovrebbe essere il responsabile dei pattern sul corpo e sulla coda, quindi se il corpo è rigato e i parametri sono simili per il corpo e la coda allora anche la coda dovrà essere rigata ne sono un esempio i serpenti che hanno dei pattern a strisce ma non maculati [3].

Fig 1.1 Esempi di pattern di Turing nel manto degli animali.

7


Riguardando le possibili applicazioni dei pattern, perchĂŠ, dunque non pensare che anche la classificazione di informazioni possano essere rappresentate mediante i pattern di Turing? Adesso passeremo alla trattazione della teoria, precedentemente accennata, della formazione dei pattern attraverso meccanismi di reazione diffusione.

8


CAPITOLO 2

I pattern di Turing e le CNN 2.1 Introduzione Alan Turing, una delle menti più illustri del 20° secolo, in una sua interessantissima teoria chimica dimostra per primo che un sistema di equazioni di reazione diffusione può dare vita ad un pattern spaziale attraverso un processo di instabilità [4]. Egli suggerisce che, sotto certe condizioni, le sostanze chimiche possano reagire e diffondere in modo tale da produrre pattern spaziali eterogenei di concentrazioni di morfogeni, che poi si stabilizzano in stato stazionario. In generale una equazione di reazione-diffusione [3] si presenta nella forma:

∂c = f (c ) + D ⋅ ∇ 2 c , ∂t

(2.1)

dove c è il vettore delle concentrazioni dei morfogeni, f rappresenta la parte reattiva dell’equazione, D è una matrice diagonale di diffusione. Analizzando il caso di due morfogeni si ha :

9


∂A = F ( A, B ) + DA∇ 2 A ∂t ∂B = G ( A, B ) + DB∇ 2 B ∂t

( 2.2)

dove F e G sono i termini reattivi, spesso espressi da funzioni non-lineari.

2.2 Diffusion-Driven Instability La teoria chiamata diffusion-driven instability, afferma che se in assenza di diffusione cioè quando i parametri (D A =D B =0), le nostre due sostanze reagenti A e B tendono ad uno stato stazionario stabile, inoltre scegliendo opportunamente i parametri facendo così in modo che D A ≠ D B ≠ 0 emerga un pattern disomogeneo grazie all’instabilità prodotta dalla diffusione. Dunque il nucleo del problema sta nell’affermare che la diffusione ha un ruolo destabilizzante nei confronti dello stato stazionario omogeneo. Per meglio analizzare il problema precedentemente posto, conviene rappresentare l’equazione 2.2 mediante variabili adimensionali ottenendo così le seguenti equazioni

u = γ ⋅ f (u , v) + ∇ 2 u v = γ ⋅ g (u , v) + d ⋅ ∇ 2 v

10

,

(2.3)


dove d è il rapporto dei coefficienti di diffusione e γ rappresenta l’intensità della componente reattiva. La capacità del sistema di generare pattern di Turing dipende dalla definizione di f, di g, dal valore di d e da quello di γ. Logicamente la per stabilizzazione di un pattern disomogeneo è necessario che il coefficiente di diffusione dell’inibitore sia maggiore di quello nell’attivatore. Comunque volendo analizzare da un punto di vista matematico le equazioni in precedenza esposte

e trovare così le

condizioni necessarie per la formazione dei pattern di Turing bisogna definire le condizioni iniziali e al contorno (a tal fine consideriamo le condizioni iniziali fissate e le condizioni al contorno di tipo zero-flux). Affinché ci sia un’instabilità di diffusioni-driven instability è necessario che si abbia in primo luogo uno stato stazionario omogeneo stabile in assenza di diffusione ed in seguito che quest’ultimo venga destabilizzato dalla presenza di diffusione. A questo punto passando ad analizzare la prima condizione si ha:

u = γ ⋅ f (u , v) , v = γ ⋅ g (u , v)

11

( 2.4 )


poiché f e g sono delle funzioni non lineari, per verificare le condizioni precedentemente poste, linearizziamo il sistema intorno allo stato stazionario (u 0 ,v 0 ) ponendo:

 u − u0   . w =  v v − 0  

(2.5)

Così facendo la (2.4) per piccoli spostamenti diventa:

w = γ A w

f A =  u  gu

fv   g v  (u

(2.6)

,

(2.7)

0 , v0 )

dove A è la matrice di stabilità e la scrittura h p indica la derivata parziale di h rispetto a p (con h=f, g e p=u, v). come si nota la (2.6) rappresenta un sistema lineare la cui soluzione è del tipo

ω (t ) = e Λt ω ( )

(2.8)

con Λ=diag ( λ1 , λ 2 ) dove λ1 , λ 2 sono gli autovalori di A. Lo stato stazionario w=0 allora è linearmente stabile se Re λ < 0 poiché in questo caso w0 per t∞.

12


Infatti sostituendo la 2.8 nella 2.6 si ottiene:

γA − λI =

γf u − λ γf v =0 γg u γg v − λ

(2.9)

Da cui gli autovalori sono:

λ1 , λ 2 = γ ( f u + g v ) ± 2  1

( f u + g v )2 − 4( f u g v − f v g u ) . 

(2.10)

A questo punto si può affermare che la lineare stabilità è garantita da :

tr ( A) = f u + g v < 0 e

A = fu gv − fv gu > 0 .

(2.11)

Volendo analizzare invece la destabilizzazione dello stato stazionario in presenza di diffusione , si considera l’equazione di reazione diffusione linearizzata

1 0   . w = γ A w + D∇ 2 w, D =  0 d  

(2.12)

Che regge l’ evoluzione di ogni cella in cui si verifica la competizione fra morfogeni. dato che nel caso in questione vi è la presenza di due sole sostanza reagenti, w sarà un vettore di solo due elementi e l’evoluzione di ogni cella sarà caratterizzata da due equazioni differenziali accoppiate del 13


termine diffusivo. Ciò significa che nel caso in cui avessimo un dominio spaziale di tipo rettangolare discreto con M righe ed N colonne

si

otterrebbe un sistema di 2MN equazioni differenziali che per essere svolto necessita di ricorrere ad un metodo di disaccoppiamento basato sulle autofunzioni spaziali permettendo così di ricondursi ad MN sistemi disaccoppiati ciascuno di due equazioni differenziali lineari del primo ordine [5]. Fatto questo otterremo le autofunzioni del laplaciano discreto W(x,y) per cui

∆W + k 2W = 0 ,

(2.13)

Supponendo che le condizioni al contorno siano del tipo zero-flux e che il dominio sia rettangolare discreto tale che per ogni cella (x, y) si abbia 0≤ x <M e 0≤ y <N, le autofunzioni (o modi possibili) della (2.13) sono:

Wm ,n ( x, y ) = cos

mπx nπy cos . M N

(2.14)

I relativi autovalori, dei quali la radice quadrata prende anche il nome di numero d’onda, sono

 m2 n2  k = π  2 + 2  , N  M 2

2

14

(2.15)


con m ed n interi. I numeri d’onda dipendono esclusivamente da m, n, M, N, dalle condizioni al contorno e da nessuno dei parametri legati all’evoluzione temporale. Poiché la 2.12 è lineare è possibile rappresentarla attraverso l’espansione in serie di Fourier avendo così

w(r , t ) = ∑ c k e λtWk ( x, y ) ,

(2.16)

k

Dove W(x,y) è l’autofunzione corrispondente al numero d’onda k con condizioni al contorno di tipo zero-flux, c k sono costanti determinabili a partire dalle condizioni iniziali (coefficienti di Fourier) e λ è l’autovalore che determina l’evoluzione temporale. Sostituendo la (2.16) nella (2.12) si ottiene per ogni k:

λWk = γAWk + D∆Wk = γAWk + Dk 2Wk Dove le soluzioni non banali

(2.17)

per W k permettono di determinare gli

autovalori temporali attraverso:

λI − γA + Dk 2 = 0.

(2.18)

Da cui sostituendo ad A e D le rispettive definizioni si ottiene:

λ2 + λ [k 2 (1 + d ) − γ ( f u + g v )]+ h(k 2 ) = 0

(2.19)

h(k ) = dk 4 − γ (df u + g v )k 2 + γ 2 A

(2.20)

con: 2

15


e pertanto:

2 1 λ1, 2 = ⋅ − k 2 (1 + d ) + γ ( f u + g v ) ± [k 2 (1 + d ) − γ ( f u + g v )] − 4h(k 2 ) 2  

(2.21)

Per la definizione di pattern di Turing è necessario che lo stato stazionario sia instabile in presenza di diffusione, quindi quando nella 2.19 il coefficiente di λ e/o il termine noto sono negativi. Considerato che,

( fu + gv ) < 0

(per soddisfare la prima condizione per i

2 pattern di Turing) ed inoltre k (1 + d ) > 0 per la positività dei coefficienti

di diffusione, ne segue che per la seconda condizione bisogna avere

( )

h k 2 < 0 per qualche k. Poiché sempre per la prima condizione è

( )

2 richiesto che A > 0 , l’unica possibilità di far sì che h k < 0 è quella di

avere:

df u + g v > 0 ,

(2.22)

che a sua volta implica d ≠1. La (2.22) è condizione necessaria ma non

( )

2 sufficiente per avere h k < 0 . E’ infatti anche necessario imporre che il

valor minimo di h(k) sia negativo e ciò si verifica se:

16


(df u + g v )2 4d

> A.

(2.23)

Fatto questo esisterà un range per i quadrati dei numeri d’onda k2 per cui verifica h(k2)<0.

2 1, 2

k

(df u + g v ) ± (df u + g v )2 − 4d A 2d

.

(2.24)

ciò significa che per avere pattern di Turing è necessario che esista almeno un modo appartenente alla banda dei modi instabili, cioè che il numero d’onda k mn

ad esso associato verifichi la condizione

2 < k 22 . k12 < k mn

Volendo esprimere la parte reale dell’autovalore temporale λ con la parte reale più grande in funzione del quadrato del numero d’onda k2 bisogna considerare la relazione o curva di dispersione indicata come:

[

]

( )

2 1 Re(λ ) = ⋅ Re − k 2 (1 + d ) + γ ( f u + g v ) + k 2 (1 + d ) − γ ( f u + g v ) − 4h k 2  2  

17


Fig 2.1 Rappresentazione della curva di dispersione.

2.2.1 Considerazioni Alla luce di quanto abbiamo appena visto è facile capire che al crescere del tempo t, le autofunzioni W k che prevarranno nella determinazione dei pattern saranno quelle legate agli autovalori λ(k2)>0, in quanto tutte le altre verranno smorzate esponenzialmente (λ(k2)<0) o rimarranno costanti (λ(k2)=0). Allora il pattern finale dipende fortemente dalle condizioni iniziali perché esse determinano la forza con cui vengono eccitati i singoli modi possibili. Dobbiamo però a questo punto considerare che tutti i nostri risultati provengono dall’aver linearizzato il problema intorno allo stato stazionario (u 0 , v 0 ) comportando così che i risultati vengano intesi solo come indicazioni di massima in quanto la validità è limitata soltanto a piccoli spostamenti da (u 0 , v 0 ), anche se comunque da osservazioni sperimentali si è riscontrato che se i modi instabili hanno un numero d’onda piccolo [3] questa teoria è un buon predittore del pattern finale. In altri casi la non-linearità può introdurre infatti termini di intermodulazione (ossia nuovi autovettori che risultano dall’interazione di quelli iniziali) che 18


influenzano il pattern finale [5]. Comunque al fine di verificare l’attendibilità della teoria lineare si deve procedere con le simulazioni numeriche di cui si potranno validare o meno i risultati.

2.3 Le CNN Le CNN acronimo di Cellular Neural Network possono essere viste come un array

multidimensionale di semplici circuiti, chiamati celle ed

accoppiati in modo non lineare, e costituiti da capacitori lineari, resistori lineari, generatori controllati lineari e non e generatori indipendenti .

Fig 2.2 Esempio circuitale di una CNN.

Di solito le CNN vengono utilizzate in tutti quegli ambiti in cui si necessita di elaborare un’ingente quantità di dati in tempo reale come: •

L’image processing che consiste nell’elaborazione di un’immagine,

estraendone i contorni, ottenendone l’inversa etc. ponendola come stato iniziale e ingresso di una CNN[6][7]

19


Robotic vision in cui applicando l’image processing consecutivo si

possono applicare le funzioni di base della CNN ad un sistema di visione estraendo così i contorni , rilevando gli spigoli etc.[5][7] •

Formazione di pattern di Turing statici e dinamici

Dal punto di vista matematico una CNN è definita da un ingresso u, da uno stato x e da un’uscita y. L’uscita y è una funzione lineare dello stato con saturazione positiva e negativa (Fig 2.3)

y=

1 ( x +1 − x −1) 2

(2.27)

Fig 2.3 Uscita di una cella di una CNN in funzione dello stato della stessa.

Per quanto riguarda lo stato, poiché ogni cella interagisce direttamente con le celle più vicine, bisogna

tenerne in considerazione

il tipo di

accoppiamento. Nascono così delle formalizzazioni (template) che indicano il modo in cui le celle interagiscono tra loro. Cosicché si ha una 20


template A nel caso in cui l’accoppiamento delle celle viene formalizzato con delle template che possono essere legate all’uscita , B all’ingresso e C allo stato delle celle. Per le nostre simulazioni si utilizzerà la template C, con la quale i legami saranno:

0 1 0   C = 1 − 4 1 . 0 1 0  

(2.28)

Cioè

∇ 2 x(i, j ) = x(i + 1, j ) + x(i − 1, j ) + x(i, j + 1) + x(i, j − 1) − 4 x(i, j ) . E considerando solo due reagenti, si utilizza una CNN a due strati di cui lo stato è retto dalle equazioni:

x1; i , j = − x1; i , j + (1 + µ + ε ) y1; i , j − sy 2; i , j + D1∇ 2 x1; i , j x 2; i , j = − x 2; i , j + sy1; i , j + (1 + µ − ε ) y 2; i , j + D2 ∇ 2 x 2; i , j

, (2.29)

che possono assumere la forma:

1 1 (µ + ε )x1; i , j − 1 sx 2; i , j + ∇ 2 x1; i , j x1; i , j = D1 D1 D1 1 1 1 (µ − ε )x 2; i , j + 1 D2 ∇ 2 x 2; i , j x 2; i , j = sx1; i , j + D1 D1 D1 D1

e ponendo inoltre t*=D 1 t , si ottiene:

21

(2.30)


∂x1; i , j (t*) ∂t * ∂x 2; i , j (t*) ∂t *

=

[

]

[

]

1 (µ + ε )x1; i , j (t*) − sx 2; i , j (t*) + ∆x1; i , j (t*) D1

. 1 1 = sx1; i , j (t*) + (µ − ε )x 2; i , j (t*) + D2 ∆x 2; i , j (t*) D1 D1

(2.31) Sostituendo le variabili con variabili adimensionali, considerandoci in regime lineare e inoltre ponendo:

1  = γ  D1  D d = 2  D1

(2.32)

La 2.31 assumerà una forma analoga a quella della 2.3 da cui si arriverà a definire che le condizioni necessarie per la formazione dei pattern di Turing per il sistema (2.30) si esplicitano in:

µ < 0 µ 2 + s 2 > ε 2   d +1 ε > − µ d −1  2  [d (µ + ε ) + (µ − ε )] > µ 2 − ε 2 + s2  4d

22

.

(2.33)


CAPITOLO 3

Il simulatore Tutti i dati e le simulazioni a cui si fa riferimento in questa tesi sono stati ottenuti tramite l’utilizzo di un simulatore di pattern di Turing, la cui interfaccia grafica è sviluppata in matlab, mentre i tool di calcolo sono realizzati e interfacciati tramite la Mex interface. Quest’ultima consente, attraverso un’interfaccia grafica, di simulare sia le parti di teoria riguardanti le autofunzioni e gli autovalori, sia una vera e propria RD-CNN a due strati, facendo in modo che si possano analizzare la formazione dei pattern di Turing e la geometria dei bacini di attrazione al

variare

dei

parametri

specificatamente se si vuole

precedentemente

analizzati.

Ma

più

scendere nei dettagli ed analizzare le

funzionalità offerte dal simulatore, nei prossimi paragrafi verranno rappresentati i diversi aspetti che concorrono ad una comprensione globale di simulatore offrendo sia una sorta di manuale utente sia un commento del codice.

23


3.1 Funzionalità offerte Il simulatore si presenta con un’ interfaccia grafica a finestre in cui sono ben delineate le parti riguardanti i tool e quelle riguardanti simulazione dei pattern.

Fig 3 Interfaccia principale del simulatore.

Per accedere alle diverse funzioni del simulatore basta infatti fissare i valori di input nelle apposite caselle di testo e premere di volta in volta il pulsante della funzione desiderata, scegliendo preventivamente (se si tratta di effettuare una simulazione sui pattern) sia il tipo di algoritmo da

24


utilizzare (Fig 3.6), sia il tipo di simulazione desiderata (Fig 3.8). Di seguito una breve guida illustrerà le modalità d’uso del simulatore.

3.1.1 I tool Le prime funzioni del simulatore che verranno analizzate sono quelle riguardanti i tool, cioè le funzioni che permettono di calcolare gli autovalori (con relative autofunzioni) e la curva di dispersione, le quali sono di notevole importanza ai fini della formazione dei pattern. Per effettuare il calcolo degli autovalori e delle autofunzioni bisogna innanzitutto inserire i valori del dominio nelle apposite caselle di testo (Fig 3.1) e successivamente premere il pulsante “Process autofunction” (Fig 3.2); a questo punto il codice non farà altro che acquisire i valori di input, calcolare e rappresentare a video gli autovalori e le rispettive autofunzioni.

25


Fig 3.3 Rappresentazione grafica delle autofunzioni con i relativi autovalori.

Per calcolare la curva di dispersione e sapere così quale autovalore potrà essere incluso nella banda dei modi instabili, bisogna inserire oltre al valore del dominio il valore di γ e premere “Plot dispersion curve” (Fig 3.4); in tal modo il codice calcolerà sia gli autovalori, sia la curva di dispersione e mostrerà a video i corrispondenti grafici.

26


Fig 3.5 Rappresentazione della curva di dispersione calcolata dal simulatore( sull ‘asse delle ascisse i simboli Ο ed Χ indicano gli autovalori spaziali ed una loro sovrapposizione sta ad indicare un autovalore con molteplicità doppia).

3.1.2 Le simulazioni In questa sezione del programma, riguardante la simulazione dei pattern di Turing, si è scelto di utilizzare del codice C, integrato al codice matlab tramite i file Mex, nell’esecuzione di simulazioni riguardanti l’algoritmo di Eulero e del codice matlab in quelle riguardanti l’algoritmo di RungeKutta. Detto questo si noti come alcune delle funzioni allo stesso modo che alcune caselle di testo siano disabilitate; questo perché bisogna scegliere preventivamente, sia il tipo di algoritmo da utilizzare, cliccando su uno dei due radiobutton di “Choose algorithm” (Fig 3.6), sia il tipo di 27


simulazione desiderata cliccando su una delle tre opzioni presenti in “Choose simulation” di figura 3.8. Bisogna altresì precisare che le operazioni da seguire non mutano variando la scelta degli algoritmi, (anche se esiste la possibilità di caricare le condizioni iniziali (Fig 3.7) trovate con l’algoritmo di Eulero, eseguendo l’algoritmo di Runge-Kutta) a tal proposito sarebbe opportuno inoltrarsi nell’analisi della procedura da seguire, per portare a buon fine la simulazione. La simulazione di pattern di Turing, impostata come simulazione di default,

permette di simulare la formazione dei pattern attraverso

l’emulazione di una CNN a due strati a cui siano dati in ingresso valori random. A tal fine la simulazione si effettua inserendo gli opportuni valori di input nelle caselle di testo di Fig 3.1 e 3.9.

Fig 3.9 Rappresentazione delle caselle di testo.

28


e premendo il pulsante “Simulate pattern” (Fig 3.10) per dare il via alla simulazione. Il codice matlab, così facendo, avrà preso tutti gli input e li avrà passati al file C che, a sua volta avrà calcolato i pattern emessi e li avrà rappresentati attraverso una codifica. E’ quindi possibile premendo il pulsante “Process data” di figura 3.17 avere la rappresentazione dei pattern emersi, aggiungendo o meno, i relativi codici in sovraimpressione, cliccando sulle checkbox di figura 3.12.

Fig 3.11 Rappresentazione dei pattern emersi dopo una simulazione.

Fig 3.12 Rappresentazione dei pattern emersi con relative frequenze e codici.

29


La seconda simulazione possibile, chiamata “Simulate subset” (Fig 3.14), permette di simulare la formazione di pattern di Turing fissando manualmente le condizioni iniziali prima settate random; a tale scopo dunque bisogna innanzitutto specificare attraverso le caselle di testo sia il dominio sia i parametri necessari alla simulazione, premere il pulsante “Create matrix” ( Fig 3.13) che provvederà a creare una matrice MxN in cui inserire i valori delle condizioni iniziali, e infine premere “ Simulate subset” e successivamente “Process data” per avere le rappresentazioni. Discorso a parte nel simulare le geometrie dei bacini d’attrazione, in quanto la simulazione setterà ad un valore prefissato “Default value” (Fig 3.9) tutte le celle del dominio tranne due( scelte dall’utente) e farà variare dal valore – saturation a + saturation

con passo scelto anch’esso

dall’utente “Step” (Fig 3.9). A tal proposito, per iniziare la simulazione bisogna inserire i parametri di input e le dimensioni del dominio nelle apposite caselle

di testo (Fig 3.9, 3.1), premere il pulsante “Create

matrix”, inserendo qualsiasi simbolo all’interno della matrice per marcare le due celle ed infine premere “Basin” per iniziare la simulazione e “Process data” per rappresentare i dati ottenuti che in questo caso verranno rappresentati in tal modo:

30


Fig 3.16 Rappresentazione dei bacini d’attrazione ottenuti premendo il pulsante “Process data”.

Comunque per agevolare l’utente nell’utilizzo del simulatore, è stato realizzato un semplice“Help”di (Fig 3.19) in quanto, cliccando sulla checkbox comparirà di volta in volta, secondo la simulazione scelta, la procedura da seguire per portare a buon fine la simulazione.

3.2 Il simulatore in dettaglio

Il simulatore, come precedentemente accennato, è stato sviluppato ricorrendo sia al linguaggio matlab vero e proprio sia al linguaggio C. Ciò è stato possibile sfruttando le grandi potenzialità dei file Mex. Infatti se

31


da una parte troviamo il codice matlab in operazioni come la lettura di un input da tastiera oppure nella semplice trascrizione di formule legate alla teoria dall‘altra è sicuramente più proficuo riadattare ingenti blocchi di codice C attraverso i file Mex nell’esecuzione di complicate equazioni differenziali. Quanto segue non vuole essere una guida

alla

programmazione matlab ma piuttosto far capire i procedimenti e i modi di operare che stanno dietro lo sviluppo del simulatore, a tal fine si procederà ad un’ analisi spero esaustiva del codice che sta dietro ad ogni comando.

3.2.1 I tool Iniziamo con il considerare la sezione del simulatore dedicata ai tool, per la quale è stato utilizzato solo codice matlab.

3.2.1.1 Le caselle di testo

(edit1_Callback(hObject, eventdata, handles))

Il codice delle caselle di testo (Fig 3.1) non fa altro che leggere da tastiera un numero controllare se è compreso tra 1 e 7 e renderlo disponibile a tutte le funzioni che ne hanno bisogno.

32


3.2.1.2 Process autofunctions

(pushbutton1_Callback(hObject, eventdata,

handles))

Il codice del pulsante “Process autofunction” (Fig 3.2 ) prende i valori di input passati dalle caselle di testo, crea la matrice che sarà visibile a video, calcola gli autovalori spaziali con le corrispettive autofunzioni e le stampa a video.

3.2.1.3 Plot dispersion curve

(function pushbutton3_Callback(hObject,

eventdata, handles))

Il codice del pulsante “Plot dispersion curve” (Fig 3.4) prende il valore di gamma e del dominio, calcola gli autovalori, la curva di dispersione e li stampa a video.

3.2.2 La simulazione In questa sezione del simulatore, riguardante la simulazione dei pattern di Turing, come si potrà evincere si è scelto di utilizzare del codice C, integrato al codice matlab tramite i file Mex, nell’esecuzione di simulazioni riguardanti l’algoritmo di Eulero, e del codice matlab in quelle riguardanti l’algoritmo di Runge-Kutta.

33


3.2.2.1 Le scelte iniziali

(function radiobutton5_Callback(hObject, eventdata,

handles))

Con il nome di scelte iniziali vengono indicate tutte quelle funzioni all’interno del simulatore riguardanti i radiobutton cioè “Choose algorithm” (Fig 3.6) e “Choose simulation” (Fig 3.8). Essenzialmente il codice che sta dietro a queste funzioni serve solamente come indicazione del codice da far eseguire alle varie simulazioni come nel caso di “Choose algorithm”, oppure a disabilitare ed abilitare pulsanti e caselle di testo come nel caso di “Choose simulation”.

3.2.2.2 Simulate pattern

(function pushbutton5_Callback(hObject, eventdata,

handles))

Analizzando il codice del pulsante “Simulate pattern “ (Fig 3.10) riguardante l’algoritmo di Eulero si può subito notare che non è presente nessuna parte di codice C, questo perchè il codice C deve essere scritto in un file a parte che tramite matlab viene richiamato e compilato con il comando mex e successivamente messo in esecuzione riscrivendo il nome del file con i dovuti parametri. Quindi il codice matlab in questione si occupa soltanto di prendere i dati da input, compilare e lanciare il file mex.

34


Il codice C che si trova invece che, come già detto in un file a parte chiamato turing_pattern.c è essenzialmente codice C standard con l’ aggiunta di alcune modifiche incentrate soprattutto nelle intestazioni delle funzioni e nell‘assenza del main che qui viene sostitutito dalla funzione mexFunction. Passando all’ analisi del codice C e ricordando che il simulatore deve emulare una RD-CNN analizzeremo separatamente le due funzioni di cui si compone il file. Nella prima la mexFunction (che qui fa le veci della funzione main) troviamo: il codice responsabile della determinazione in maniera random e della codifica delle condizioni iniziali delle equazioni differenziali che determinano lo stato delle CNN, e il richiamo della funzione tpg(). Invece nella funzione tpg() che rappresenta il vero cuore del simulatore, il codice si occupa: del settaggio delle condizioni di tipo zero-flux, della determinazione delle uscite

e degli stati attraverso la risoluzione di

equazioni differenziali nonché determinazione del codice rappresentativo del pattern emerso tramite codifica. Guardando invece il codice di “Simulate pattern” che entra in gioco se si sceglie l’algoritmo di Runge-Kutta si nota che è essenzialmente del codice matlab che esegue tutte le operazione del codice prima esposto solo che questa volta la parte di codice relativa alla funzione tpg() si trova in un file 35


separato di nome tpg.m che esegue la simulazione dei pattern utilizzando l’algoritmo di Runge-Kutta. 3.2.2.3 Create matrix

(function pushbutton7_Callback(hObject, eventdata, handles))

Questo pulsante (Fig 3.13) come abbiamo visto nel paragrafo precedente viene utilizzato in abbinamento al pulsante “ Simulate subset” , ed il suo compito è quello di creare una matrice M X N.

3.2.2.4 Simulate subset

(function pushbutton8_Callback(hObject, eventdata,

handles))

Un discorso molto simile a quello fatto per il pulsante “Simula pattern” si può applicare al pulsante “Simulate subset” (Fig 3.14) in quanto anch’esso, nella parte di codice riguardante l’algoritmo di Eulero, ha solo il codice matlab mentre il codice C si trova in un file separato; tuttavia notiamo che la parte scritta in matlab è sostanzialmente diversa da quella del pulsante“Simulate pattern”, per poter riuscire ad acquisire i dati dalla matrice creata precedentemente e passarli al codice C. Invece per quanto riguarda il codice C del file mex che è salvato nel file turing_pattern_subset.c sarebbe uguale a quello del file precedente se non per la parte che fissa delle condizioni iniziali immesse dall’ utente.

36


La parte del codice relativa all’algoritmo di Runge-Kutta, composta anch’essa essenzialmente da codice matlab così come quella del pulsante “Simulate pattern”, ripropone in chiave matlab, ad eccezione del codice presente nel file tpg.m le medesime funzioni

svolte dal codice

nell’algoritmo di Eulero.

3.2.2.5 Basin

function pushbutton10_Callback(hObject, eventdata, handles)

Anche qui, come nelle altre simulazioni troviamo un’interazione tra codice matlab e codice C attraverso l’uso dei file mex nella parte riguardante l’algoritmo di Eulero, quindi analizzando il codice che si trova all’interno del pulsante “Basin” di figura 3.15 ci troviamo di fronte a del codice matlab che si occupa di prendere i dati di input immessi da tastiera, determinare le due celle necessarie allo svolgimento della simulazione e della compilazione nonchè dell’esecuzione del file C che in questo caso si chiama Basin.c. Esaminando invece il codice C del file Basin.c si può constatare che la parte riguardante la funzione tpg(), che è quella responsabile della simulazione delle CNN, rimane invariata rispetto ai precedenti tipi di simulazione mentre cambia quello che si trova all’interno della funzione mexFunction. Infatti osservandone il codice si trova solo una sequenza

37


di cicli for opportunamente annidati in modo tale da impostare tutte le celle, tranne due il cui valore varierà all’interno di un range definito dall’utente, ad un valore di default . La stessa cosa vale per il codice relativo all’algoritmo di Runge-Kutta.

3.2.2.6 Process data

(function pushbutton6_Callback(hObject, eventdata,

handles))

Il pulsante “Process data” (Fig 3.17 ) viene utilizzato in coppia a delle checkbox (Fig 3.18), a simulazione finita per rappresentare graficamente sia i pattern emersi, sia le geometrie dei bacini di attrazione, creando all’occorrenza un file di back up delle statistiche.

38


CAPITOLO 4

Le simulazioni Il simulatore presentato nel Capitolo 3 è lo strumento utilizzato per verificare numericamente i risultati provenienti dalla teoria lineare e per analizzare le potenzialità delle CNN nella generazione di pattern di Turing.

4.1 Risultati pattern di Turing Al fine di verificare l’attendibilità delle predizioni della teoria lineare si è proceduto alla simulazione numerica dei pattern. Poiché da ciò che è stato precedentemente affermato

il pattern finale dipende fortemente dalle

condizioni iniziali e precisamente nel caso in cui tutti i modi possibili vengano eccitati con la stessa forza (settando le condizioni iniziali in maniera random), dovrebbe prevalere l’autofunzione legata all’autovalore con parte reale positiva maggiore. Si è scelto, per studiare l’effetto che le condizioni iniziali hanno sull’emergere dei pattern, di analizzare al variare di γ, sia le autofunzioni e la curva di dispersione, sia i corrispettivi pattern di Turing. Ai fini della trattazione si rende opportuno elencare le impostazioni del simulatore con le quali si è giunti ai risultati: 39


Si è scelto di utilizzare un dominio spaziale 4x4, di far variare γ da

5 a 25 con step 2.5 e impostare il valore di saturazione uguale a 3. •

Ognuna delle celle del primo layer è stata inizializata con valori di

x1 pari a -sat 0 e sat per studiare il comportamento in regione di saturazione positiva e negativa. •

Le celle del secondo layer sono state inizializzate con valori random

prossimi a zero ( con possibilità di aggiunta del rumore con valore 0.005). •

I parametri riguardanti le CNN : ε=1.1, μ=-0.7, d= 30,s =0.9

tsim=100, integration step =0.001.

Fig 4.1 Rappresentazione grafica delle autofunzioni associate agli autovalori (in rosso) per un dominio 4x4.

40


Simulazioni con γ=5

Fig 4.2 Rappresentazione curva di dispersione per γ =5 .

Fig 4.3 Autofunzioni incluse nella banda dei modi instabili.

La banda dei modi instabili (2.24) include tre modi possibili, cioè quelli associati agli autovalori k 2 = 0.61685 (con molteplicità doppia) e k 2 =1.2337. Si osservi che all’autovalore spaziale k 2 =0.61685 è associato

un autovalore temporale con parte reale maggiore e pertanto la teoria lineare prevede che i modi prevalenti siano quelli ad esso associati. 41


Pattern di Turing emersi con l’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

42


65280

21.6

-1

10

24

Fig 4.4 Rappresentazione dei pattern emersi.

Si nota che con questo valore di Îł indifferentemente dal rumore introdotto, emergono lo stesso numero di pattern con una frequenza nella maggior parte dei casi identica e comunque abbastanza vicina tra di loro inoltre bisogna considerare la presenza del pattern con codice =-1 segno che non tutte le celle del primo livello della CNN sono arrivate a saturare. Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq %

Freq_cleaned

255

23.9

26.4967

52428

23

25.4989

65280

22.3

24.7228

13107

21

23.2816

-1

9.8

43


Fig 4. 5 Rappresentazione pattern emersi.

Simulazioni con Îł = 7.5

Fig 4. 6 Rappresentazione curva di dispersione per Îł =7.5 .

44


Fig 4.7 Autofunzioni incluse nella banda dei modi instabili.

In questo caso si ha l’entrata di un nuovo autovalore con molteplicità doppia k 2 =2.4674 anche se comunque l’autovalore temporale ad esso associato non ha parte reale abbastanza grande da poter essere incluso nella banda dei modi instabili. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

-1

30.4

255

18.3

26.2931

13107

17.7

25.431

52428

16.9

24.2816

65280

16.4

23.5632

4080

0.1

0.143678

26214

0.1

0.143678

39321

0.1

0.143678

45


Fig 4.8 Rappresentazione pattern emersi.

Noise level 0.005 Codici

Freq %

Freq_cleaned

-1

32.8

255

17.8

26.4881

13107

17.6

26.1905

65280

17

25.2976

52428

14.5

21.5774

39321

0.2

0.297619

61455

0.1

0.14881

Fig 4.9 Rappresentazione pattern emersi.

46


Con questo valore di gamma già si nota una la presenza di nuovi pattern, segno di una maggior competizione, ed anche

l’inizio di una certa

divergenza, sia tra i pattern emersi con e senza rumore, sia tra le frequenze in cui i primi cinque hanno un valore molto più elevato, anche qui troviamo il pattern con codice =-1 segno che non tutte le celle del primo livello della CNN sono arrivate a saturare. Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq

Freq_cleaned

-1

30.4

255

18.3

26.2931

13107

17.7

25.431

52428

16.9

24.2816

65280

16.4

23.5632

4080

0.1

0.143678

26214

0.1

0.143678

39321

0.1

0.143678

47


Fig 4.10 Rappresentazione pattern emersi.

Simulazioni con Îł =10

Fig 4.11 Curva di dispersione con Îł =10.

48


Fig 4.12 Autofunzioni incluse nella banda dei modi instabili.

Anche in questo caso gli ultimi due autovalori con molteplicitĂ doppia k 2 =2.4674 e k 2 =3.08425 continuano a non avere un autovalore con parte

reale abbastanza grande per entrare nella banda dei modi instabili.

Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

-1

17.3

255

10.4

12.5756

13107

9.5

11.4873

52428

8.3

10.0363

65280

6.7

8.10157

887

1.9

2.29746

62225

1.9

2.29746

61120

1.8

2.17654

52431

1.6

1.9347

64648

1.6

1.9347

30512

1.5

1.81378

1.4

1.69287

3310

49


Fig 4.13 Rappresentazione pattern emersi.

Noise level 0.005 Codici

Freq %

Freq_cleaned

-1

16.7

13107

10.4

12.485

65280

8.6

10.3241

255

8

9.60384

52428

7.5

9.0036

35023

1.9

2.28091

62225

1.9

2.28091

64648

1.8

2.16086

61120

1.7

2.04082

3276

1.5

1.80072

65416

1.5

1.80072

50


238

1.4

1.68067

Fig 4.14 Rappresentazione pattern emersi.

Con γ =10 si ha ancora una volta un aumento del numero di pattern emersi notando che i primi sei pattern hanno una frequenza molto più elevata rispetto agli altri.

Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0

Codici

Freq %

-1

17.3

255

10.4

Freq_cleaned

12.5756

51


13107

9.5

11.4873

52428

8.3

10.0363

65280

6.7

8.10157

887

1.9

2.29746

62225

1.9

2.29746

61120

1.8

2.17654

52431

1.6

1.9347

64648

1.6

1.9347

30512

1.5

1.81378

3310

1.4

1.69287

Fig 4.15 Rappresentazione pattern emersi.

52


Simulazioni con Îł=12.5

Fig 4.16 Curva di dispersione con Îł =12.5.

Fig 4.17

Autofunzioni incluse nella banda dei modi instabili. 53


Con γ= 12.5 come si può evincere un entra nessun nuovo autovalore ma in quelli presenti la parte reale dell’autovalore cresce. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

52428

2

2.01005

65280

2

2.01005

255

1.5

1.50754

13107

1.5

1.50754

13111

1.2

1.20603

65408

1

1.00503

511

0.8

0.80402

13119

0.8

0.80402

65296

0.8

0.80402

127

0.7

0.703518

2303

0.7

0.703518

39313

0.7

0.703518

54


Fig 4.18 Rappresentazione pattern emersi.

Noise level 0.005 Codici

Freq %

Freq_cleaned

13107

1.8

1.80723

255

1.7

1.70683

52428

1.2

1.20482

65296

1.2

1.20482

30512

0.7

0.702811

63232

0.7

0.702811

65280

0.7

0.702811

239

0.6

0.60241

511

0.6

0.60241

2303

0.6

0.60241

13104

0.6

0.60241

65024

0.6

0.60241

55


Fig 4.20 Rappresentazione pattern emersi.

In questo caso la competizione tra i pattern emersi è ancora maggiore infatti le frequenze dei pattern emersi nei casi con e senza rumore scendono notevolmente fino a quasi livellarsi. Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq %

Freq_cleaned

52428

2

2.01005

65280

2

2.01005

255

1.5

1.50754

13107

1.5

1.50754

13111

1.2

1.20603

56


65408

1

1.00503

511

0.8

0.80402

13119

0.8

0.80402

65296

0.8

0.80402

127

0.7

0.703518

2303

0.7

0.703518

39313

0.7

0.703518

Fig 4.21 Rappresentazione pattern emersi.

57


Simulazioni con Îł=15

Fig 4.22 Curva di dispersione per Îł =15.

58


Fig 4.23 Autofunzioni incluse nella banda dei modi instabili.

Vi è l’entrata di due nuovi autovalori k 2 = 4.9348 e k 2 =5.55165 con molteplicità doppia.

Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

13107

0.9

0.902708

65296

0.7

0.702106

255

0.6

0.601805

895

0.6

0.601805

52428

0.6

0.601805

4471

0.5

0.501505

35020

0.5

0.501505

65280

0.5

0.501505

127

0.4

0.401204

575

0.4

0.401204

1911

0.4

0.401204

4083

0.4

0.401204

59


Fig 4.24 Rappresentazione pattern emersi.

Noise level 0.005 Codici

Freq %

Freq_cleaned

65280

1.1

1.1011

13107

0.9

0.900901

52428

0.6

0.600601

60620

0.6

0.600601

255

0.5

0.500501

52429

0.5

0.500501

127

0.4

0.4004

239

0.4

0.4004

4915

0.4

0.4004

32512

0.4

0.4004

32975

0.4

0.4004

35070

0.4

0.4004

60


Fig 4.25 Rappresentazione pattern emersi.

Come precedentemente affermato la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più.

Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq %

Freq_cleaned

13107

0.9

0.902708

65296

0.7

0.702106

255

0.6

0.601805

895

0.6

0.601805

52428

0.6

0.601805

61


4471

0.5

0.501505

35020

0.5

0.501505

65280

0.5

0.501505

127

0.4

0.401204

575

0.4

0.401204

1911

0.4

0.401204

4083

0.4

0.401204

Fig 4.26 Rappresentazione pattern emersi.

62


Simulazioni con Îł= 17.5

Fig 4.27 Curva di dispersione per Îł =17.5.

63


Fig 4.28 Autofunzioni incluse nella banda dei modi instabili.

In questo caso vi è l’entrata dell’autovalore k 2 = 6.1685 con molteplicità doppia. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

52428

0.6

0.600601

255

0.4

0.4004

3279

0.4

0.4004

65280

0.4

0.4004

13090

0.3

0.3003

34975

0.3

0.3003

37683

0.3

0.3003

52467

0.3

0.3003

60620

0.3

0.3003

61064

0.3

0.3003

62242

0.3

0.3003

64384

0.3

0.3003

64


Fig 4.29 Rappresentazione pattern emersi.

Come precedentemente affermato la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più, vi è infatti la presenza di 3 sole frequenze.

Noise level 0.005 Codici

Freq %

Freq_cleaned

52428

0.7

0.700701

13111

0.4

0.4004

59534

0.4

0.4004

831

0.3

0.3003

4573

0.3

0.3003

13107

0.3

0.3003

39219

0.3

0.3003

65


52440

0.3

0.3003

63761

0.3

0.3003

64576

0.3

0.3003

64716

0.3

0.3003

65280

0.3

0.3003

Fig 4.30 Rappresentazione pattern emersi.

I pattern emersi continuano a variare come precedentemente visto. Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq %

Freq_cleaned

52428

0.6

0.600601

255

0.4

0.4004

66


3279

0.4

0.4004

65280

0.4

0.4004

13090

0.3

0.3003

34975

0.3

0.3003

37683

0.3

0.3003

52467

0.3

0.3003

60620

0.3

0.3003

61064

0.3

0.3003

62242

0.3

0.3003

64384

0.3

0.3003

Fig 4.31 Rappresentazione pattern emersi.

67


Simulazioni con Îł=20

Fig 4.32 Curva di dispersione per Îł = 20.

Non entra nessun nuovo autovalore nella banda dei modi instabili ma sia ha solo un aumento della parte reale degli autovalori gia presenti. Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

831

0.3

0.3003

31948

0.3

0.3003

61064

0.3

0.3003

127

0.2

0.2002

639

0.2

0.2002

68


1918

0.2

0.2002

4080

0.2

0.2002

4503

0.2

0.2002

4604

0.2

0.2002

4915

0.2

0.2002

5049

0.2

0.2002

7633

0.2

0.2002

Fig 4.33 Rappresentazione pattern emersi.

Con γ= 20 la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più.

Noise level 0.005 Codici 1918

Freq %

Freq_cleaned

0.3

0.3003

69


9967

0.3

0.3003

12750

0.3

0.3003

13091

0.3

0.3003

62052

0.3

0.3003

1020

0.2

0.2002

1151

0.2

0.2002

2463

0.2

0.2002

3836

0.2

0.2002

4088

0.2

0.2002

4415

0.2

0.2002

5054

0.2

0.2002

Fig 4.34 Rappresentazione pattern emersi.

70


Con γ= 22.5 la competizione tra i pattern aumenta, ciò è riscontrabile dalle frequenze che si livellano sempre di più, in quanto il massimo valore è di 0.3% e il minimo è di 0,2%.

Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq

%

Freq_cleaned

831

0.3

0.3003

31948

0.3

0.3003

61064

0.3

0.3003

127

0.2

0.2002

639

0.2

0.2002

1918

0.2

0.2002

4080

0.2

0.2002

4503

0.2

0.2002

4604

0.2

0.2002

4915

0.2

0.2002

5049

0.2

0.2002

7633

0.2

0.2002

71


Fig 4.35 Rappresentazione pattern emersi.

Simulazioni con Îł= 22.5

Fig 4.36 Curva di dispersione per Îł =22.5.

72


Fig 4.37 Autofunzioni incluse nella banda dei modi instabili.

Con γ=22.5 vi è l’ingresso dell’autovalore, con molteplicità doppia, k 2 =8.01905.

73


Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

4080

0.3

0.3003

43027

0.3

0.3003

61064

0.3

0.3003

893

0.2

0.2002

3276

0.2

0.2002

3423

0.2

0.2002

3814

0.2

0.2002

3836

0.2

0.2002

4471

0.2

0.2002

8953

0.2

0.2002

10871

0.2

0.2002

12524

0.2

0.2002

74


Fig 4.38 Rappresentazione pattern emersi.

Noise level 0.005 Codici

Freq %

Freq_cleaned

7628

0.3

0.3003

39321

0.3

0.3003

447

0.2

0.2002

1908

0.2

0.2002

2038

0.2

0.2002

2239

0.2

0.2002

3824

0.2

0.2002

4081

0.2

0.2002

4415

0.2

0.2002

5455

0.2

0.2002

7876

0.2

0.2002

7900

0.2

0.2002

75


Fig 4.39 Rappresentazione pattern emersi.

Solo i primi tre pattern hanno una frequenza di 0.3% mentre il resto dei pattern è emerso con una frequenza di 0.2%.

Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq %

Freq_cleaned

4080

0.3

0.3003

43027

0.3

0.3003

61064

0.3

0.3003

893

0.2

0.2002

76


3276

0.2

0.2002

3423

0.2

0.2002

3814

0.2

0.2002

3836

0.2

0.2002

4471

0.2

0.2002

8953

0.2

0.2002

10871

0.2

0.2002

12524

0.2

0.2002

Fig 4.40 Rappresentazione pattern emersi.

77


Simulazioni con Îł=25

Fig 4.41 Curva di dispersione per Îł =25.

L’ultimo autovalore k 2 =11.1033 qui rappresentato non riesce comunque ad entrare nella banda dei modi instabili.

Fig 4.42 Autofunzioni incluse nella banda dei modi instabili.

78


Pattern di Turing emersi con l’algoritmo di integrazione di Eulero di ordine 1 Codici

Freq %

Freq_cleaned

52377

0.4

0.4004

4088

0.3

0.3003

26214

0.3

0.3003

750

0.2

0.2002

4511

0.2

0.2002

5112

0.2

0.2002

5872

0.2

0.2002

6585

0.2

0.2002

11066

0.2

0.2002

11886

0.2

0.2002

12008

0.2

0.2002

13174

0.2

0.2002

79


Fig 4.43 Rappresentazione pattern emersi.

Noise level 0.005 Codici

Freq %

Freq_cleaned

2481

0.3

0.3003

39146

0.3

0.3003

48008

0.3

0.3003

893

0.2

0.2002

1655

0.2

0.2002

1772

0.2

0.2002

2513

0.2

0.2002

3302

0.2

0.2002

3727

0.2

0.2002

4081

0.2

0.2002

4383

0.2

0.2002

80


4511

0.2

0.2002

Fig 4.44 Rappresentazione pattern emersi.

I pattern emersi continuano a variare come precedentemente visto. Pattern di Turing emersi con l’algoritmo di Runge-Kutta del 4° ordine e noise level 0 Codici

Freq %

Freq_cleaned

52377

0.4

0.4004

4088

0.3

0.3003

26214

0.3

0.3003

750

0.2

0.2002

4511

0.2

0.2002

5112

0.2

0.2002

81


5872

0.2

0.2002

6585

0.2

0.2002

11066

0.2

0.2002

11886

0.2

0.2002

12008

0.2

0.2002

13174

0.2

0.2002

Fig 4.45 Rappresentazione pattern emersi.

4.1.2 Considerazioni Da quanto preso in esame si nota, osservando la curva di dispersione, che ad ogni incremento di gamma vi è un aumento della parte reale dell’autovalore temporale, ciò corrisponde ad una maggiore competitivitĂ nei pattern emergenti. Inoltre, analizzando la parte relativa alla

82


simulazione dei pattern, si nota altresì che l’algoritmo di Runge-Kutta conferma i risultati ottenuti con l’algoritmo di Eulero di ordine 1. A tal proposito aggiungeremo che nel passaggio dal sistema lineare a quello non lineare, le simulazioni numeriche della RD-CNN hanno evidenziato la presenza di pattern non completamente emersi a regime (pattern spurii), che sono il risultato della competizione non lineare senza vincitore tra i diversi modi previsti dalla teoria lineare. Verifichiamo adesso con nuove prove la possibilità che si abbia o meno un vincitore nella competizione tra le autofunzioni.

a)

b) Fig 4.46 Rappresentazione grafica del codice e del pattern associato rispettivamente di un pattern normale (a), e spurio (b), dove all’uscita -1 è associato il colore nero,a 1 il bianco e allo 0 il grigio.

83


Tale competizione porta, nella stragrande maggioranza dei casi, ad un vincitore e il fenomeno dei pattern spurii scompare per i valori di γ superiori di 12.5. Questo avviene perché all’aumentare del parametro γ, nuovi modi si aggiungono e aumentano quindi le possibili configurazioni che si possono ottenere a regime. Bisogna tenere in considerazioni che il simulatore sviluppato implementa il sistema di equazioni non lineare tempo-continue nel tempo-discreto sebbene come algoritmo di integrazione numerica sia stato utilizzato sia Eulero di ordine 1, che Runge-Kutta del IV ordine a passo variabile. La realizzazione analogica di tali equazioni (implementando la CNN con i componenti analogici descritti in Fig. 2.2) consente di implementare le equazioni nel tempo continuo e dovrebbe portare ad una riduzione del fenomeno dei pattern spurii.

4.2 Risultati Geometrie bacini di attrazione

La geometria dei bacini di attrazione determina il modo in cui le informazioni di ingresso, in questo caso rappresentate dalle condizioni iniziali delle CNN, vengono classificate nei vari pattern. Dunque per quanto riguarda la simulazione si è scelto di impostare tutte le celle del 84


primo layer, tranne due, a zero e far variare il valore di quest’ultime all’interno del range [-1,1] con passo di 0.05; mentre al valore delle celle del secondo layer, che è stato impostato a zero, va aggiunto, qualora specificato, il valore del rumore. In questo modo sarà possibile rappresentare una sezione bidimensionale della geometria dei bacini di attrazione, che è MxN dimensioni.

1ª configurazione celle variabili (1,4) (4,1)

Gamma 5, Noise level 0

Gamma 5, Noise level 0.005

Fig 4.47 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.

Con γ =5 si nota che vi è un solo pattern emerso in assenza di rumore mentre il numero di pattern sale a 5 con la presenza di rumore.

85


Gamma 7.5 Noise level 0

Gamma 7.5, Noise level 0.005

Fig 4.48 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.

Come si può evincere dalla Fig.4.48 con γ =7.5 vi è un solo pattern emerso in assenza di rumore mentre il numero di pattern sale a 2 con la presenza di rumore. Gamma 10 Noise level 0

Gamma 10 Noise level 0.005

Fig 4.49 Geometrie dei bacini di attrazione con γ =10 e noise level 0 e 5.

Con γ=10 la geometria dai bacini di attrazione comincia a diventare più complessa in quanto sono emersi 11 pattern in assenza di rumore e 21 con rumore.

86


Gamma 12.5 Noise level 0

Gamma 12.5 Noise level 0.005

Fig 4.50 Geometrie dei bacini di attrazione con Îł =12.5 e noise level 0 e 5.

Il numero dei pattern emersi continua a salire infatti si hanno 19 pattern emersi in assenza di rumore e 30 con rumore, da notare gli errori rappresentati da i pixel di colore diverso rispetto alla zona circostante.

Gamma 15 Noise level 0

Gamma 15 Noise level 0.005

Fig 4.51 Geometrie dei bacini di attrazione con Îł =15 e noise level 0 e 5.

Osservando le geometrie si nota che mentre nel caso senza rumore vi siano meno errori non si può dire però altrettanto per quello con rumore infatti si hanno 18 pattern emersi nel primo caso e 43 nel secondo.

87


Gamma 17.5 Noise level 0

Gamma 17.5 Noise level 0.005

Fig 4.52 Geometrie dei bacini di attrazione con γ =17.5 e noise level 0 e 5.

Con γ=17.5 si hanno 45 e 19 pattern emersi rispettivamente per il caso con e senza

rumore.

Gamma 20 Noise level 0

Gamma 20 Noise level 0.005

Fig 4.53 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.

La situazione in questo caso rimane pressoché invariata rispetto al caso precedente con 19 pattern emersi per il caso senza rumore e 42 per quello con rumore.

88


Gamma 22.5 Noise level 0

Gamma 22.5 Noise level 0.005

Fig 4.54 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.

Con γ=22.5 si ha una leggera flessione dei pattern emersi in quanto si hanno 15 pattern nel caso in assenza di rumore e 39 in presenza del suddetto. Gamma 25 Noise level 0

Gamma 25 Noise level 0.005

Fig 4.55 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.

Con γ=25 si ha, come si può d'altronde osservare nelle geometrie, il numero massimo di pattern emersi sia per quanto riguarda il caso senza rumore che quello con rumore, infatti si arriva ad avere 23 pattern emersi nel primo caso e ben 59 nel secondo.

89


2 ª configurazione celle (1,1) (4,4) Gamma 5 Noise level 0

Gamma 5 Noise level 0.005

Fig 4.56 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.

In questa seconda configurazione si ha in questo caso il medesimo numero di pattern emersi nella 1ª configurazione e cioè 1 pattern emerso per il caso senza rumore e 5 per quello con rumore. Gamma 7.5 Noise level 0

Gamma 7.5 Noise Level 0.005

Fig 4.57 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.

La situazione invece qui comincia a diversificarsi in quanto se nel caso senza rumore vi è un solo pattern emerso, come nella configurazione precedente, nel caso con rumore i pattern emersi salgono a 3.

90


Gamma 10 Noise level 0

Gamma 20 Noise level 0.005

Fig 4.58 Geometrie dei bacini di attrazione con γ =10 e noise level 0 e 5.

Anche qui con γ=10 le geometrie dei bacini di attrazione diventano più complesse, avendo 11 pattern emersi nel caso in assenza di rumore e 18 in quello con rumore.

Gamma 12.5 Noise 0

Gamma 12.5 Noise level 0.005

Fig 4.59 Geometrie dei bacini di attrazione con γ =12.5 e noise level 0 e 5.

Si ha un incremento dei pattern emersi arrivando ad avere 19 pattern emersi nel caso in assenza di rumore e 26 in quello con rumore.

91


Gamma 15 Noise level 0

Gamma 15 Noise level 0.005

Fig 4.60 Geometrie dei bacini di attrazione con γ =15 e noise level 0 e 5.

In questo caso vi è stata una leggera flessione del numero dei pattern emersi in assenza di rumore infatti si è passati da 19 a 18 , ma un notevole rialzo del numero di pattern emersi i n presenza di rumore passando da 26 a 44.

Gamma 17.5 Noise level 0

Gamma 17.5 Noise level 0.00 5

Fig 4.61 Geometrie dei bacini di attrazione con γ =17.5 e noise level 0 e 5.

Il numero dei pattern emersi in assenza di rumore è risalito a 19 mentre quello avuto in presenza di rumore è sceso a 43.

92


Gamma 20 Noise level 0

Gamma 20 Noise level 0.005

Fig 4.62 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.

Il numero dei pattern emersi nel caso in assenza di rumore è rimasto stabile a 19 mentre quello avuto in presenza di rumore è sceso a 39.

Gamma 22.5 Noise level 0

Gamma 22.5 Noise level 0.005

Fig 4.63 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.

Come nella configurazione precedente il numero dei pattern emersi in assenza di rumore ha avuto una flessione arrivando infatti a 15 mentre è salito a 42 il numero dei pattern emersi in presenza di rumore.

93


Gamma 25 Noise level 0

Gamma 25 Noise level 0.005

Fig 4.64 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.

Come nella configurazione precedente con γ=25 il numero dei pattern emersi raggiunge l’apice arrivando a 23 pattern per il caso in assenza di rumore e 56 per quello con rumore.

3ª configurazione celle (2,2) (3,3) Gamma 5 Noise level 0

Gamma 5 Noise level 0.005

Fig 4.65 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.

Diversamente dalle altre configurazioni qui si ha sostanzialmente lo stesso numero di pattern emersi in entrambi i casi e cioè 5.

94


Gamma 7.5 Noise level 0

Gamma 7.5 Noise level 0.005

Fig 4.66 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.

Come si evince dalla Fig 4.65 con γ=5 si ha un pattern in assenza di rumore e 5 in presenza di rumore.

Gamma 10 Noise level 0

Gamma 10 Noise level 0.005

Fig 4.67 Geometrie dei bacini di attrazione con γ =10 e noise level 0 e 5.

Anche qui si ha lo stesso numero di pattern emersi con e senza rumore cioè 7.

95


Gamma 12.5 Noise level 0

Gamma 12.5 Noise level 0.005

Fig 4.68 Geometrie dei bacini di attrazione con γ =12.5 e noise level 0 e 5.

Con γ=12.5 il numero di pattern emersi in assenza di rumore sale a 17 mentre quelli emersi in presenza di rumore sono 27.

Gamma 15 Noise level 0

Gamma 15 Noise level 0.005

Fig 4.69 Geometrie dei bacini di attrazione con γ =15 e noise level 0 e 5.

Il numero di pattern emersi in assenza di rumore è 19 invece quello in presenza di rumore è di 39.

96


Gamma 17.5 Noise level 0

Gamma 17.5 Noise level 0.005

Fig 4.70 Geometrie dei bacini di attrazione con γ =17.5 e noise level 0 e 5.

In questo caso il numero di pattern emersi in assenza di rumore rimane invariato a 19 mentre sale a 42 quello in presenza di rumore.

Gamma 20 Noise level 0

Gamma 20 Noise level 0.005

Fig 4.71 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.

Con γ= 20 si ha solo l’aumento del numero di pattern emersi in presenza di rumore, infatti si hanno 19 pattern emersi in assenza di rumore e 44 in presenza di rumore.

97


Gamma 22.5 Noise level 0

Gamma 22.5 Noise level 0.005

Fig 4.72 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.

Anche qui come nelle altre configurazioni si ha una flessione dei pattern emersi, avendo infatti 18 pattern emersi per la simulazione in assenza di rumore e 37 in quella con rumore. Gamma 25 Noise level 0

Gamma 25 Noise level 0.005

Fig 4.73 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.

Come nelle altre configurazioni a γ= 25 corrisponde il numero massimo di pattern emersi per la configurazione, cioè 20 pattern in assenza di rumore e ben 54 con il rumore.

98


4ª configurazione celle (2,3) (3,2) Gamma 5 Noise level 0

Gamma 5 Noise level 0.005

Fig 4.74 Geometrie dei bacini di attrazione con γ =5 e noise level 0 e 5.

Situazione analoga alle prime configurazioni cioè un solo pattern emerso in assenza di rumore e 5 emersi con il rumore.

Gamma 7.5 Noise level 0

Gamma 7.5 Noise level 0.005

Fig 4.75 Geometrie dei bacini di attrazione con γ =7.5 e noise level 0 e 5.

Come si può notare dalle geometrie, è emerso un solo pattern nel caso senza rumore e 4 in quello con il rumore.

99


Gamma 10 Noise level 0

Gamma 10 Noise level 0.005

Fig 4.76 Geometrie dei bacini di attrazione con Îł =10 e noise level 0 e 5.

Il numero di pattern emersi in questo caso è molto simile infatti si hanno 7 pattern emersi con la simulazione in assenza di rumore e 8 in quella con il rumore.

Gamma 12.5 Noise level 0

Gamma 12.5 Noise level 0.005

Fig 4.77 Geometrie dei bacini di attrazione con Îł =12.5 e noise level 0 e 5.

In questo caso come si evince dalle geometrie, si ha un incremento dei pattern emersi, infatti si hanno 17 pattern emersi nel caso senza rumore e 29 in quello con rumore.

100


Gamma 15 Noise level 0

Gamma15 Noise level 0.005

Fig 4.78 Geometrie dei bacini di attrazione con Îł =15 e noise level 0 e 5.

In questo caso si hanno rispettivamente 19 pattern emersi per la simulazione senza rumore e 41 per quella con il rumore.

Gamma 17.5 Noise level 0

Gamma 17.5 noise level 0.005

Fig 4.79 Geometrie dei bacini di attrazione con Îł =17.5 e noise level 0 e 5.

Con Îł=17.5 si hanno 19 pattern emersi nel caso in assenza di rumore e 42 in quello in presenza di rumore.

101


Gamma 20 Noise level 0

Gamma 20 Noise level 0.005

Fig 4.80 Geometrie dei bacini di attrazione con γ =20 e noise level 0 e 5.

In questo caso anche se la geometria dei bacini è cambiata si ha solo un aumento del numero di pattern emersi in presenza di rumore, in quanto si hanno 19 pattern emersi nelle simulazioni senza rumore e 45 in quelle con rumore. Gamma 22.5 Noise level 0

Gamma 22.5 Noise level 0.005

Fig 4.81 Geometrie dei bacini di attrazione con γ =22.5 e noise level 0 e 5.

Come già visto nelle configurazioni precedenti si ha una flessione del numero di pattern emersi, avendo così 18 pattern per il caso senza rumore e 38 per quello con rumore.

102


Gamma 25 Noise level 0

Gamma 25 Noise level 0.005

Fig 4.82 Geometrie dei bacini di attrazione con γ =25 e noise level 0 e 5.

Come nelle altre configurazioni γ= 25 fa segnare il massimo numero di pattern emersi con 20 pattern emersi simulando le geometrie dei bacini di attrazione senza rumore e ben 51 pattern simulandole con rumore. 4.2.1 Considerazioni Da quanto precedentemente visto si nota che in tutte le configurazioni, le geometrie dei bacini di attrazione sono speculari rispetto all’origine e il numero dei pattern emersi nelle simulazioni in assenza di rumore aumenta, stabilizzandosi intorno al valore di 19, per poi subire una flessione con γ=22.5, accentuata nelle configurazioni esterne 1 e 2, mentre raggiunge il massimo con γ=25. Un discorso analogo si ha con i pattern emersi in presenza di rumore, in cui si ha una stabilizzazione intorno al valore di 43, per poi arrivare ad un valore massimo oscillante tra 51 e il 59 con γ=25.

103


CAPITOLO 5

Conclusioni In questa tesi ci si è occupati di analizzare le architetture non lineari per la classificazione delle informazioni basate sul principio che ciascun pattern di Turing possa essere considerato come una classe nello spazio delle informazioni. Da qui l’idea di considerare i pattern di Turing come classi in grado di rappresentare graficamente delle informazioni. La struttura utilizzata per poter riuscire a riprodurre artificialmente la formazione dei suddetti pattern è realizzata da array di circuiti non lineari del

secondo

ordine,

le

RN-CNN

(Cellular

Neural

Network),

implementabile con componenti analogici accoppiati in modo lineare, che permettono, settati opportunamente, di generare i pattern di Turing. Tutti i dati e le simulazioni a cui si è fatto riferimento, per poter verificare le potenzialità dei pattern di Turing per la classificazione, vengono ottenuti mediante l’utilizzo di un simulatore di pattern

sviluppato in

ambiente MatLab. Il simulatore consente, attraverso un’interfaccia grafica, di condurre analisi teoriche e numeriche riguardo al comportamento lineare e non lineare delle RD-CNN in configurazione tale da generare pattern di Turing. A tal proposito occorre precisare che , la parte relativa

104


a tali simulazioni è stata sviluppata ricorrendo ad algoritmi di integrazione di Eulero, scritti in linguaggio C++ per minimizzare i tempi di esecuzione. Per quanto riguarda le simulazioni, poiché da ciò che è stato precedentemente affermato il pattern finale dipende fortemente dalle condizioni iniziali e precisamente nel caso in cui tutti i modi possibili vengano eccitati con la stessa forza (settando le condizioni iniziali in maniera random) dovrebbe prevalere l’autofunzione legata all’autovalore con parte reale positiva maggiore. Si è scelto allora, per studiare l’effetto che le condizioni iniziali hanno sull’emergere dei pattern, di analizzare al variare di γ, sia le autofunzioni e la curva di dispersione, sia i corrispettivi pattern

di Turing. Inoltre valutando la possibilità di considerare le

informazioni come condizioni iniziali analogiche delle CNN del I layer, si è simulata la geometria dei bacini di attrazione dei pattern, verificando la robustezza al rumore sulle condizioni iniziali del II layer. I risultati ottenuti, frutto di molteplici simulazioni mostrano che, la teoria lineare presentata in precedenza è un buon predittore del pattern finale solo se i modi instabili hanno un numero d’onda piccolo. Infatti si può riscontrare che al crescere del valore di γ gli autovalori inclusi nella banda dei

modi

instabili

aumentano,

incrementando

così

le

possibili

configurazioni che si possono ottenere a regime e dunque il numero di pattern emersi. Inoltre per valori di γ inferiori a 12.5 si è avuta la presenza 105


di pattern spurii, ossia pattern derivanti dalla competizione non lineare senza vincitore tra i diversi modi previsti dalla teoria lineare. Tale competizione porta, nella stragrande

maggioranza dei casi, ad un

vincitore e il fenomeno dei pattern spurii scompare per i valori di γ superiori di 12.5. Questo avviene perché all’aumentare del parametro γ, si aggiungono nuovi modi e aumentano quindi le possibili configurazioni che si possono ottenere a regime. Quanto detto in precedenza è dovuto al fatto che il simulatore sviluppato implementa il sistema di equazioni non lineare tempo-continue nel tempodiscreto. La realizzazione analogica di tali equazioni consente di implementare le equazioni nel tempo continuo e dovrebbe portare ad una riduzione del fenomeno dei pattern spurii.

106


Bibliografia [1] L. Goraş e L. Chua, “Turing Patterns in CNNs – Part I: Once Over

Lightly”, IEEE Transactions on Circuits and Systems – I: Fundamental Theory and Applications 42 (10), (1995). [2] L.Wolpert “Positional information and thespatial pattern of cellular

differentiation”, J. theor. Biol. 25, 1-47 (1969).

[3] J.D. Murray, “Mathematical Biology I: An Introduction” (3rd Ed.) Springer-Verlag, New York (2002).

[4] A.M. Turing, “The chemical basis of morphogenesis”, Phil. Trans. Roy. Soc. Lond. B 237, 37-72 (1952). [5] L. Goraş e L. Chua, “Turing Patterns in CNNs – Part II: Equations and Behaviors”, IEEE Transactions on Circuits and Systems – I: Fundamental Theory and Applications 42 (10), (1995).

[6] L. Chua e L. Yang, “Cellular neural networks”, US Patent, no. 5140670.

[7] G. Manganaro, P. Arena, L. Fortuna, “Cellular Neural Networks: Chaos, Complexity and VLSI Processing”, Springer-Verlag (1999).

107


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.