Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Facoltà di Scienze Matematiche Fisiche e Naturali
Tesi di laurea in Fisica
Realizzazione di una reteneuronale per la riduzione
dell’informazione distribuita
RelatoriProf. Rinaldo Santonico Il laureando
Mauro Cirinei Dott. Gaetano Salina
Anno Accademico 1998/99
A due bellissime Giulia chehanno la stessa età e a cuiauguro gli stessi bellissimisogni.
Indice
Prefazione
Capitolo I LANN27
1.1 Le reti neuronali ad attrattori………………………………………….. I.11.2 Il modello della LANN27……………………………………………... I.21.3 Probabilità di transizione……………………………………………… I.81.4 I test sulla LANN27…………………………………………………... I.13
Capitolo II La teoria
2.1 Cosa si vuole che faccia la rete di output………………………………. II.22.2 Il modello teorico…………………..………………………………….. II.32.3 Un esempio del funzionamento……...………………………..………. II.62.4 Alcuni esempi di possibili dinamiche di apprendimento……………… II.72.5 Conclusioni……………………………………………………………. II.12
Capitolo III L’hardware
3.1 La struttura della rete di output………………………………………... III.13.1.1 Il neurone di output……………………………………………………….. III.23.1.2 La sinapsi interstrato……………………………………………………… III.63.1.3 Il neurone inibitore………………………………………………………… III.113.1.4 La sinapsi laterale e la sinapsi del neurone inibitore……………………….. III.13
3.2 L’interfaccia digitale ………………………………………………….. III.143.3 Organizzazione della rete di output…………………………………… III.17
Capitolo IV Setup e test
4.1 Regolazioni preliminari………………………………………………… IV.14.2 Verifica del loop sulle schede 1N27S………………………………….. IV.34.3 I test con la LANN27…………………………………………………... IV.8
4.3.1 Probabilità di transizione alta……………………………………………… IV.84.3.2 Probabilità di transizione bassa…………………………………………… IV.14
4.4 Analisi dei risultati……………………………………………………... IV.30
Capitolo V La modifica
5.1 Un termine nuovo nelle equazioni……………………………………… V.15.2 Implementazione hardware ……………………………………………. V.45.3 Realizzazione della scheda di modifica………………………………… V.6
Capitolo VI Test finali e conclusioni
6.1 Regolazioni preliminari………………………………………………… VI.16.2 I test con la modifica…………………………………………………... VI.5
6.2.1 Modalità di svolgimento dei test………………………………………… VI.56.2.2 Le misure……………………………………………………………………VI.56.2.3 I commenti…………………………………………………………………..VI.17
6.3 Conclusioni……………………………………………………………... VI.17
Appendice A Il software
Appendice B I trimmer
B.1 I trimmer sul back-plane……………………………………………….. B.1B.2 I trimmer sulla scheda 1N27S………………………………………….. B.2B.3 I trimmer sulla scheda di modifica………………………………………B.3
Appendice C Schemi elettrici e documentazione
Bibliografia
Ringraziamenti
Prefazione
L’esperimento LANN (Learning Attractor Neural Network), ora NALS, finanziato dalla
commissione V dell’Istituto Nazionale di Fisica Nucleare si è prefisso di implementare
elettronicamente una rete neuronale ad attrattori.
Negli ultimi anni gli studi sulle reti neuronali, intese come l’insieme delle cellule nervose che
costituiscono la corteccia cerebrale dei primati, hanno vissuto un periodo di notevole fermento.
Lo studio delle reti neuronali investe varie discipline scientifiche: la biologia, la neurofisiologia,
la psicologia, la fisica, la matematica, l’informatica e l’ingegneria elettronica. Si può dire anzi
che uno dei motivi di interesse di tale studio stia proprio nella forte interazione tra queste
discipline che altrimenti sarebbero lontane.
In questo ambito la fisica si pone a metà strada tra la biologia e la psicologia. Lo scopo della
fisica è di fare da ponte tra questi due diversi aspetti dello studio del cervello attraverso gli
strumenti forniti da una disciplina ormai consolidata come la meccanica statistica.
Il punto di svolta per quanto riguarda la fisica si ha con un articolo di Hopfield dell’82, in cui si
faceva notare che qualunque sistema fisico, la cui dinamica nello spazio delle fasi è dominata da
un certo numero di attrattori stabili, può essere usata come una memoria associativa. Un
sistema come LANN27 è in grado di auto-organizzarsi imparando dal flusso di stimoli esterni
creando delle rappresentazioni dinamiche, su lunghe scale di tempo, della statistica del flusso di
stimoli esterni
Questa rete ha delle proprietà che sono molto vicine a quelle della memoria umana: la sua
struttura, composta da ventisette neuroni totalmente connessi da 351 sinapsi, fa si che si venga
a formare una struttura sinaptica che funziona da memoria associativa indirizzabile per il
contenuto, ed è capace di correggere gli errori (pattern diversi ma sufficientemente simili
cadono nello stesso attrattore)
La rete è non super visionata. LANN27 è il nucleo centrale di un sistema più complesso che
vede anche una unità di input (retina) e una unità di output per l’interpretazione dei suoi stati di
equilibrio. Quest’ultima è l’argomento di questa tesi di laurea.
Capitolo I : Si presenta il progetto LANN27, illustrando le caratteristiche di una rete neuronale
ad attrattori
Capitolo II: Viene discussa la teoria del modello della Rete di Output
Capitolo III: Riguarda la implementazione hardware della rete. Vengono mostrati i blocchi
funzionali e i rispettivi circuiti elettronici. In fine si illustrerà la interfaccia digitale,
componente fondamentale per la gestione dell’intera rete.
Capitolo IV: Vengono discussi i test sistematici sul funzionamento dell’hardware e i primi test
effettuati collegando la Rete di Output con la LANN27. Si mostra la necessita di
una modifica all’elettronica della sinapsi inter strato.
Capitolo V: La realizzazione della modifica hardware alle sinapsi inter strato
Capitolo VI: La fase conclusiva con i test sulla modifica e la verifica del funzionamento della
rete come interprete dei segnali provenienti dalla LANN27.
I—1
Capitolo I “Il meccanismo del pensiero è basato suassociazioni di idee, il che vuol dire che se unapersona vestita di rosso ti da una martellata intesta, ogni volta che vedrai una persona vestitadi rosso il cervello, per evitare incontrisgradevoli, ‘salta’ concentrando la propriaattenzione su qualcos’altro.
(Jacopo Fo)
Lann 27
Questo primo capitilo è dedicato alla descrizione del progetto LANN 27, ne mostreremo le
principali caratteristiche. Verrà evidenziata la necessità della realizzazione della rete di
output per la interpretazione degli stati di equilibrio della LANN27.
1.1 Le reti neuronali ad attrattori
Le reti neuronali ad attrattori sono costituite da delle unità chiamate neuroni, che svolgono
il compito computazionale, connessi tra loro attraverso le sinapsi, che hanno la
caratteristica di modificare la propria efficacia in funzione degli stimoli che provengono
dall’esterno [1]. Ad esempio, una struttura di 3 neuroni completamente connessi è riportata
in figura 1.1.A. Stimolando i neuroni della rete ad una certa attività, è possibile
determinare una configurazione delle efficacia sinaptiche in modo che, l’attività globale
della rete si autosostenga una volta rimosso lo stimolo esterno. La rete è in grado di
modificarsi dinamicamente senza perdere la configurazione delle distribuzioni delle attività
dei neuroni, essendo realizzata tramite un elevato grado di feedback. Una importante
caratteristica delle reti neuronali è che stimolando il sistema in modo da modificare una
certa configurazione di equilibrio, se lo spostamento da questo è piccolo la rete sarà ancora
attratta verso il suo stato stabile.
L’attrattore è la configurazione stabile in cui la rete cade. La configurazione di tutte le
configurazioni associate ad un certo attrattore costituisce il bacino di attrazione.
I—2
L'attrattore rappresenta il prototipo della classe di pattern Cioè ogni volta che alla rete
viene presentato un pattern appartenente ad un certo bacino, la rete cade nell’attrattore
corrispondente quando lo stimolo esterno viene rimosso.
Figura 1.1.A: Struttura di una rete neuronale ad attratori composta da tre neuroni e tre sinapsi,
completamente connessa.
I—3
1.2 Il modello della LANN27.
Il progetto LANN27 consiste in una rete neuronale ad attrattori che ha le seguenti
caratteristiche: Esegue un apprendimento stocastico non supervisionato: cioè l’efficacia
sinaptica viene modificata con una certa probabilità, ogni volta che, vengono presentati in
ingresso gli stimoli che possano permettere la transizione, il tutto senza nessun tipo di
controllo esterno che possa influenzare questo processo. Possiede una memoria di tipo
eteroassociativo: il prototipo della classe di pattern presentati in ingresso e che viene
appreso può non coincidere con nessuno dei pattern presentati. E’ completamente
analogica: tutte le fasi di dinamica neuronale e sinaptica, (quest’ultima su piccole scale di
tempo), sono completamente analogiche; su grandi scale di tempo le sinapsi possono avere
solo tre stati stabili (labile, potenziato e depresso), il tutto tramite un meccanismo di
refresh anch’esso completamente analogico [2].
Si è verificato che la rete neuronale ad attrattori Lann27 gode anche della capacità di
palinsesto, cioè è in grado di dimenticare i pattern che non vengono più presentati per
apprenderne di nuovi.
Ora andiamo a vedere in dettaglio quali sono le equazioni della dinamica del neurone e
della sinapsi [3,4,5]
La rete ha 27 neuroni analogici completamente connessi da 351 sinapsi. Definiamo la
corrente afferente hi, i=1....27, al neurone i-esimo come:
h t J t s ti ij jj
( ) ( ) ( )==∑
1
27
(I.2.A)
dove Jij è l’efficacia della sinapsi che connette il neurone i con quello j, mentre sj(t) è una
variabile che può assumere i valori ±1 e che rappresenta lo stato del neurone j-esimo.
L’equazione che governa la dinamica del neurone è definita da:
s t t h t H tj j j( ) ( ( ) ( ))+ = +δ φ (1.2.B)
I—4
dove Hj(t) rappresenta lo stimolo esterno sul neurone j-esimo al tempo t, mentre φ(f(t)) è la
funzione di trasferimento del neurone. Nei neuroni di questo modello di rete neuronale si
ha φ(f(t)) = sign( f(t) ).
Il δt nella 1.2.B è molto più piccolo dei tempi caratteristici della dinamica delle sinapsi
perché si vuole che durante la dinamica neuronale, l’efficacia sinaptica sia considerata
costante. L’equazione che descrive la dinamica sinaptica è:
))t(J)t(J(J))t(J)t(J(J)t(B)t(J)t(J 0ijc0ijcijijc ω++−θ⋅−ω−−θ⋅++−=⋅
τ (I.2.C)
dove τc rappresenta la costante di tempo della sinapsi ed il termine B(t) è il termine di
apprendimento hebbiano:
( ) ( )B t s t s H t H s t s H t Hi i i i j j j j( ) ( ) ( ) ( ) ( )= − + − ⋅ − + −′ ′′ ′ ′′
ατ τ τ τ
(I.2.D)
dove <...>τ rappresenta il valore medio della grandezza tra parentesi, calcolato sul tempo τ
ed α rappresenta l’ampiezza del termine di apprendimento. I termini
(1.2.E)
rappresentano i termini di refresh stocastico, ± J0 sono le soglie (termini costanti) ed ω(t)
rappresenta il rumore bianco, con distribuzione di ampiezze gaussiana a media nulla e
varianza σ. La LANN27 è realizzata in modo tale che su scale di tempo confrontabili con
τc la sinapsi evolve con una dinamica completamente analogica, mentre su scale di tempo
più lunghe (t >> τc), l’efficacia sinaptica può assumere, come detto, solo tre valori +Jc
(potenziato),-Jc (depresso) e J0 (labile). Il termine di apprendimento hebbiano ha una parte
che ne fissa l’ampiezza e altre due che rappresentano, quella con indice i, il contributo del
neurone pre-sinaptico, quella con l’indice j, il contributo di quello post-sinaptico. I
contributi dei due neuroni sono calcolati in modo da ottenere la matrice dei pesi
simmetrica, e sono strutturati in modo tale che possano rappresentare alcuni aspetti del
modello biologico. Il termine si rappresenta il contributo alla dinamica neuronale e dipende
))t(J)t(J(J 0ijc ω−−θ⋅
)t(J)t(J(J 0ijc ω++−θ⋅
I—5
dello stato in cui si trova la rete (attrattore), Hi è lo stimolo esterno, che tipicamente e’
molto più forte di quello interno. Questo deriva sempre dal modello biologico, in cui
l’attività di un neurone è tipicamente molto più alta durante la presentazione dello stimolo
che dopo la sua rimozione.
La sottrazione dei valori medi è stata adottata per evitare che stimoli troppo lunghi
possano portare a modifiche troppo forti delle efficacia sinaptiche, altrimenti si avrebbe un
attrattore cosi profondo da non consentire più l’apprendimento di altri pattern.
Lo schema di una possibile dinamica di apprendimento della rete è riportato nella tabella
I.2.A che mostra le possibili transizioni della sinapsi in presenza dello stimolo esterno. p+
e p- rappresentano le probabilità di transizione rispettivamente dallo stato labile a quello
potenziato e dallo stato labile a quello depresso.
I—6
Stato iniziale attività d’input Stati accessibili probabilità di transizione
Sj = 1 Jij = 1 1
Jij = 1
Jij = 1 1 - q-
Sj = -1
Jij = 0 q-
Jij = 1 p+
Sj = 1
Jij = 0 1 - p+
Jij = 0
Jij = 0 1-p-
Sj = -1
Jij = -1 p-
Jij = 0 q+
Sj = 1
Jij = -1 1 - q+
Jij = -1
Sj = -1 Jij = -1 1
Tabella I.2.A: schema di apprendimento di LANN27.
I—7
Descriviamo brevemente le caratteristiche del “termine di refresh stocastico”.
Consideriamo la sinapsi nello stato stabile labile (associato a 0: Jij = 0), e stimoliamo i
neuroni i-esimo e j-esimo con un pattern composto da ξ1 = 1 e ξ2 = 11. In questo caso il
termine di learning è positivo. Mostriamo nella figura sotostante i due casi che si possono
presentare.
Figura 1.2.A: meccanismo di refresh stocastico, nel caso di mancata comparazione (a) e, invece, di avvenuto
clipping della sinapsi (b).
Nella figura a) è evidenziato in rosso il rumore e in nero lo stimolo esterno. In questo caso
non avviene la transizione e lo stimolo esterno, finito il tempo di presentazione, tende a
zero in modo esponenziale. Nella b) invece avviene una transizione verso lo stato
potenziato poiché il rumore ha incontrato il segnale proveniente dallo stimolo esterno. Un
discorso del tutto simile può essere fatto quando il prodotto delle attività dei neuroni pre e
post-sinaptici è negativo nel qual caso entra in gioco la comparazione con la soglia
negativa. Vediamo ora quali sono state le motivazioni che hanno indotto a introdurre un
meccanismo di refresh stocastico [8] nella dinamica delle sinapsi della rete neuronale ad
attrattori LANN27.
1 ξ1 e ξ2 rappresentano lo stimolo esterno sui neuroni i e j
-7,5 -5,0 -2,5 0,0 2,5 5,0 7,50
50
100
150
200
250
300
350
(a)
ampi
ezza
dei
segn
ali (m
V)
tempo (ms)-1m 0 1m 2m 3m 4m 5m
(b)
400
300
200
100
0
ampi
ezze
(mV
)
tempo (sec)
I—8
L’introduzione di un meccanismo di refresh stocastico permette una capacità ottimale della
rete accettabile, mantenendo una limitata profondità analogica (il massimo della capacità lo
si ottiene nel caso di transizioni delle efficacia sinaptiche deterministiche attraverso un
numero infinito di stati stabili).
Una ulteriore proprietà che si ha dall’introduzione di un meccanismo di refresh stocastico,
è che si possono definire delle probabilità (piccole) di transizione delle efficacia sinaptiche
anche in fase di retrieval1. L’effetto che questo meccanismo produce e’ che una volta
scavato un attrattore, la rete neuronale è in grado di modificarlo solo se sono avvenute un
alto numero di presentazioni di una forma corrotta del prototipo appreso. In questo senso si
dice che la rete neuronale impara dall’esperienza. Nella figura 1.2.B è rappresentato lo
schema a blocchi del circuito elettronico che svolge questo compito. I blocchi
fondamentali sono:
− il generatore delle due soglie più rumore (± J0 + ω(t) ), caratterizzato dai due livelli di
offset della soglia e dalla frequenza di taglio del rumore (f0 = 1 / τ0);
− la comparazione tra il segnale di learning B e le due soglie;
− la memorizzazione dell’efficacia sinaptica.
Genratore dellesoglie
f0
d b
f
Integratoresinaptico
BJij(t)
∫
Comparatore
Soglie
Figura 1.2.B: rappresentazione a blocchi del circuito impiegato per la realizzazione del termine di refresh
stocastico.
1 in fase di retrieval il tempo di presentazione di un pattern è molto inferiore al tempo definito in fase di
apprendimento.
I—9
1.3 Probabilità di transizione
L’introduzione del refresh stocastico ci porta a dover definire il valore delle probabilità di
transizione [9]. Queste proprietà dipendono sia da dei parametri hardware, che sono scelti
in fase di progettazione, sia da parametri software, su cui è possibile intervenire in qualsiasi
momento tramite il programma di gestione.
I parametri hardware sono la frequenza di taglio del filtro del rumore (f0), il rumore e la
Vrms del rumore stesso. Quelli software invece sono i valori che si assegnano all’offset delle
soglie, (J0), l’ampiezza dei campi esterni (B), e quelli della finestra temporale durante la
quale si presenta il pattern (τp).
I parametri software non sono indipendenti, si può infatti definire un ∆V = J0 - B, come la
distanza del valore della soglia con il valore a regime del campo esterno. Nei grafici delle
figure dalla I.3.A alla I.3.D si mostra la dipendenza della probabilità di transizione da questi
parametri.
0 5 10 15 20 250,0
0,2
0,4
0,6
0,8
1,0
∆V = 72 mV
∆V = 54 mV
∆V = 36 mV∆V = 0 mV
∆V = -9 mV
∆V = 90 mV
Prob
abilit
à di
tran
sizio
ne
Tempo di presentazione (ms)
I—10
Figura I.3.A: probabilità di transizione in funzione del tempo di presentazione per vari valori del ∆V, f0 = 1
KHz.
Questa dipendenza della frequenza del rumore si può giustificare considerando il generatore
di rumore come un generatore di livelli di tensione costanti, questi livelli sono distribuiti
gaussianamente attorno al valore medio della soglia. Durante l’apertura della finestra
temporale c’è una probabilità che questo valore si trovi al di sotto del livello del campo,
causando una transizione verso lo stato stabile a cui è riferita la soglia.
0 5 10 15 20 250,0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
1,1
f0 = 2400 Hz
f0 = 1000 Hz
f0 = 500 Hz
f0 = 200 Hz
Prob
abili
tà d
i tra
nsizi
one
Tempo di presentazione (ms)
Figura I.3.B: probabilità di transizione in funzione del tempo di presentazione per vari valori di f0 ∆V = 36
mV.
E’ chiaro che in questo modo un aumento del ∆V corrisponde a mettere più lontano la
soglia dal campo, e quindi si abbassa la probabilità di avere una transizione. Si alza invece
la probabilità se si abbassa ∆V. La durata del tempo di presentazione fa si che maggiore è
τp, più grande è il numero di confronti che si effettuano e quindi maggiore è la probabilità
di realizzare una transizione. Per ultima guardiamo la frequenza di taglio f0 = 1/τ0, questa è
legata al tempo più breve con cui vengono generate queste tensioni casuali: maggiore è la
frequenza, più alto è il numero di livelli di tensione generati e quindi maggiore è la
probabilità che uno di questi porti ad una transizione. Naturalmente le frequenze più basse
I—11
presenti nel rumore partecipano di meno alla determinazione della probabilità di transizione
essendo legate a poche “generazioni” di tensioni random.
80 60 40 20 0 -20 -40 -600,0
0,2
0,4
0,6
0,8
1,0
f0 = 2400 Hz
f0 = 1000 Hz
f0 = 500 Hz
f0 = 200 Hz
Prob
abilit
à di
tran
sizio
ne
∆V (mV)
Figura I.3.C: probabilità di transizione in funzione del ∆V per diversi valori di f0, τp=13 ms.
Nella figura 1.3.E riportiamo le curve a probabilità costante come una funzione di ∆V e di
τp, per una data frequenza di taglio del filtro. Da questo grafico è facile trovare una coppia
di parametri che soddisfino una certa scelta per la probabilità di transizione.
I—12
-80 -60 -40 -20 0 20 40 600,0
0,2
0,4
0,6
0,8
1,0
τ p decrescenti
Prob
abilit
à di
tran
sizio
ne
DV (mV)
Figura 1.3.D: probabilità di transizione in funzione del ∆V, per vari valori del tempo di presentazione τp, f0
= 500 Hz.
I—13
0 5 10 15 20 25 30-80
-70
-60
-50
-40
-30
-20
-10
0
10
20
30
0,90,80,70,60,50,40,30,2
p = 0,1
DV
(mV)
Tempo di presentazione (ms)
Figura 1.3.E: Superfici equiprobabili (isoprobe), per diversi valori della probabilità di transizione ogni
punto della superficie è determinato dalla terna τp, ∆V ed f0..
I—14
1.4 I test su LANN27.
Per effettuare i test su LANN27 [10] è stata utilizzata la seguente procedura:
si sono generati due prototipi con livello di codifica1 f = 0.5 ed overlap2 minore di un certo
overlap massimo che abbiamo fissato a 0.2 (40 % di neuroni differenti).Da questi due
prototipi si sono generati un certo numero di pattern “corrotti” con livello di corruzione tra
il 5% e il 20%. Si sono impostati i parametri in modo tale da avere una probabilità di
transizione dell’efficacia sinaptica bassa (~ 30 %), in fase di learning, ed una praticamente
nulle in fase di retrieval. Nella fase di learning si presenta, prima un pattern corrotto di un
prototipo (estratto a sorte tra tutti gli elementi della classe) e poi un pattern corrotto
dell’altro prototipo, sempre estratto a sorte. In fase di retrieval si presenta il primo
prototipo. Si fa trascorrere un tempo sufficientemente lungo in modo tale che la rete si
rilassi in uno stato stabile, e quindi se ne legge lo stato. Si presenta, ancora in fase di
retrieval, il secondo prototipo. Si rilegge lo stato della rete.
I test sono stati effettuati ripetendo per un numero Npres di volte questa procedura
(ciascuna corrispondente ad una coppia di pattern corrotti estratti a sorte).
Ad ogni presentazione (punto a) si sono calcolati l’overlap tra il pattern corrotto ed il
prototipo da cui il corrotto è stato generato (figura I.4.A). E’ stato misurato l’overlap tra
lo stato della LANN dopo la lettura (punti c ed e), in seguito alla presentazione di uno dei
due prototipi, ed il prototipo che avrebbe dovuto essere recuperato (figura I.4.B).
1 Per livello di codifica si intende la frazione di neuroni attivi all’interno di un pattern. Il neurone è attivo se la somma dei pesi
delle sinapsi afferenti supera lo 0.2 L’overlap tra due pattern ξi
µ e ξiν è definito come:
ON i i
i
N
µ νµ νξ ξ, = ⋅
=∑1
1
I—15
0 100 200 300 400 500
-0,2
0,0
0,2
0,4
0,6
0,8
1,0
Over
lap
Numero di presentazioni
Figura 0.A: Andamento dell’overlap tra il prototipo, da cui è stata generata una classe di pattern, e gli
elementi della sua classe, come funzione del numero di estrazione di un elemento. Npres = 500. Con la linea
continua si rappresentano gli overlap relativi agli elementi della classe del prototipo no 1, con quella
tratteggiata quelli relativi al no 2.
A parte fluttuazioni la LANN27 ha recuperato il prototipo con un errore che oscilla tra il
5% ed il 15 %, con punte verso il 20 %.
I—16
0 100 200 300 400 500-0,2
0,0
0,2
0,4
0,6
0,8
1,0
Over
lap
Numero di presentazioni
Figura 0.B: Andamento dell’overlap tra il prototipo di una certa classe e la lettura dello stato della LANN27
dopo la sua presentazione in fase di retriva, come funzione del numero d’ordine della presentazione. Npres =
500. Linea continua: dati relativi al prototipo no 1, linea tratteggiata: dati relativi al prototipo no 2.
L’inconveniente della LANN27 è che non è possibile interpretare gli stati in cui la rete
cade in fase di rilassamento. Non si può sapere se uno stato è o meno un attrattore. Da qui
si è pensato di realizzare una rete di output che svolga questo compito.
I—17
II-1
Capitolo II “Se ti opponi a tutte lesensazioni non avrai alcunmetro per distinguerequelle vere dalle false.”
Epicuro
La teoria
La realizzazione della rete di output è necessaria per maneggiare i risultati delle
elaborazioni di una rete neuronale ad attrattori come la LANN27, poiché a priori non si
possono conoscere le configurazioni degli attrattori che la rete ha imparato, le quali
possono essere diverse da qualsiasi pattern mai presentato. La capacità della LANN27 di
modificare, dinamicamente, la struttura degli attrattori adattandola a cambiamenti della
statistica del flusso di stimoli crea un ulteriore problema. Quando alla LANN27 viene
mostrato un pattern che sia una versione corrotta del prototipo appreso, la rete neuronale è
tale che l’attrattore si sposta, in questa maniera si è sicuri che l’attrattore è sempre
rappresentativo della classe di stimoli. Quello che la rete di output deve fare è di indicare il
raggiungimento di un attrattore ed informarci di quale, di quelli già memorizzati, si tratta.
Uno schema che riassume la struttura di un possibile apparato neuronale è riportata in fig.
2.1, dove sono riportati i tre moduli base indicati nella prefazione.
Figura II.1: struttura di un sistema neuronale completo
II-2
2.1 Cosa si vuole che faccia la rete di output
In questo paragrafo vediamo brevemente quali devono essere le caratteristiche di base della
rete di output. Si vuole associare un particolare indice (un neurone di output che si attiva)
ad una certa configurazione di LANN27, questo procedimento va sotto il nome di Vector
Quantization, [11,12,13].
L’input alla rete è costituito dallo stato dei neuroni della LANN27. Si vuole che la rete di
output associ ad ogni attrattore l’attivazione di un certo neurone di output.
Perché questo avvenga è necessario che al momento della presentazione di un attrattore si
instauri, tra le unità della rete di output, un sorta di competizione che va sotto il nome di
Winner Take All, W.T.A. [14]. In questo modo le sinapsi afferenti al neurone attivo
potranno modificare la loro efficacia, questo ultimo comportamento va sotto il nome di
Competitive Learning, C.L. [15].
Si vorrebbe anche che la rete, una volta imparato a riconoscere un certo attrattore, fosse
sensibile a tutti gli attrattori che sono vicini, in un senso da definire, all’attrattore appreso.
Nel caso della LANN27 gli attrattori saranno rappresentati da parole di 27 bit, composte da
0 od 1 (valori TTL: 0V, +5 V) e il criterio di vicinanza può essere definito dalla distanza di
Hamming* dall’attrattore.
Quando alla rete viene presentato un nuovo attrattore non appartenente a nessuna classe
precedentemente memorizzata, la rete di output deve essere in grado di disattivare il
neurone precedentemente vincitore e attivarne uno nuovo, imparando quindi una nuova
configurazione. Per quanto riguarda la dinamica di apprendimento, questa, in conformità
con il progetto LANN, sarà di tipo stocastico ed avverrà facendo transire il valore
dell’efficacia sinaptica attraverso un numero discreto di stati stabili.
I meccanismi con cui avverranno queste transizioni saranno spiegate nei prossimi
paragrafi, per ora basti sapere che ci sarà uno spostamento verso stati di efficacia maggiore
delle sinapsi che collegano i neuroni di output ai neuroni della LANN attivi, e di efficacia
minore qualora i suddetti neuroni siano inattivi. Il tutto, è ancora il caso di ricordarlo, in
corrispondenza delle sole sinapsi afferenti al neurone vincitore.
* La distanza di hamming tra due pattern è definita da:
( )
N2O1
D ,H ⋅
−= νµ
dove νµ,O è l’overlap tra i due pattern ξiµ e ξi
ν ed è definito come
∑=
νµνµ ξ⋅ξ=
N
1iii, N
1O
II-3
Alla fine dell’apprendimento tutte le sinapsi, o quasi, di neuroni selettivi per certi
attrattori si troveranno negli stati potenziati o depressi.
2.2 Il modello teorico.
Nella figura 2.3.1, rappresentiamo la struttura della rete di output in cui è presente uno
strato di N neuroni di input, che rappresentano la LANN27 con due soli stati stabili,
connessi agli M neuroni dello strato di output per mezzo di N*M sinapsi inter strato di
tipo eccitatorio. Per far si che si inneschi un meccanismo di tipo Winner Take All è
necessario introdurre delle sinapsi “laterali” che connettano in maniera inibitoria le unità di
output. Queste sinapsi hanno tutte lo stesso peso. E’ presente anche un neurone che ha
una funzione inibitoria non specifica per limitare l’attività complessiva della rete tramite
sinapsi di peso fissato.
Figura 2.2.A: descrizione a blocchi della rete di output.
II-4
Vediamo ora le equazioni che caratterizzano gli elementi base della rete.
Il neurone di output i-esimo è caratterizzato dallo spike-rate f(Ii):
( )f II I
Iii i
i=
⋅ ><
φ 00 0
( 2.2.A)
proporzionale alla corrente afferente al neurone i-esimo. Questa corrente è descritta dalla
seguente equazione della dinamica :
II
C T H f Iii
outi j
j i
.( ) ( )= − + − −
≠∑
τ(2.2.B)
In cui Ci è il contributo eccitatorio delle sinapsi inter strato. La sommatoria, f I ij i
( )≠∑ è
estesa a tutti i neuroni di output, diversi da quello i-esimo e rappresenta il termine di
inibizione specifica proveniente dalle sinapsi laterali. T(H) è il segnale generato dal
neurone inibitore e fornisce un’inibizione non specifica data da:
T Hg H H
H( )
( )=
⋅ − ><
θ θθ0
( 2.2.C)
che rappresenta una funzione di trasferimento del tipo lineare- soglia, così come la 2.2.A,
in cui però la soglia θ è direttamente legata alla corrente massima dell’intera rete. Quando
la corrente H > θ, l’unità emetterà una frequenza proporzionale ad H-θ tramite la costante
g. La corrente del neurone inibitore segue una dinamica simile a quella del neurone di
output con τinib < τout, data da
HH
f Iinib
jj
M.( )= − +
=∑
τ 1( 2.2.D)
Per quanto riguarda le sinapsi inter strato abbiamo che il contributo al neurone i-esimo,
proveniente dalle N sinapsi che lo connettono allo strato di input, è dato da:
CN
J Si ij jj
N
=⋅
⋅=∑1
1f(2.2.E)
II-5
Nella 2.2.E N⋅f rappresenta il numero totale di neuroni attivi in un attrattore, dove f* è il
livello di codifica della rete di input, mentre Sj, j=1...N, è l’uscita del neurone di input
j-esimo e può valere 0 od 1.
Le Jij rappresentano l’efficacia sinaptica che può esistere in un numero finito di stati stabili.
Il prodotto Jij per Sj rappresenta il contributo di corrente al neurone di output i-esimo,
dovuto all’attività del neurone di input j-esimo. La rete deve mostrare un comportamento
di tipo Competitive Learning, bisogna quindi fare in modo che le uniche sinapsi che si
possano modificare siano solo quelle connesse con il neurone di output, la cui attività, in
corrispondenza di un dato attrattore, sia la più elevata. Questa rete ha un apprendimento di
tipo stocastico non supervisionato, cioè la transizione di una sinapsi verso stati con
efficacia maggiore o minore, che chiameremo potenziato e depresso, deve avvenire con
certe probabilità, rispettivamente p+ e p-, e quindi è necessario fare in modo che le suddette
probabilità dipendano dall’attività dell’unità di output.
Per fare in modo che ciò avvenga è stato previsto un feedback dei neuroni di output sulle
sinapsi inter strato. Le probabilità di transizione sono date da
p p pe aI b+ − − += = =
+1
1( 2.2.F)
dove I è la corrente del neurone a cui la sinapsi è connessa, mentre a e b sono dei
coefficienti che regolano la pendenza ed il punto di flesso della sigmoide.
Il meccanismo di feedback appena introdotto, è necessario solo durante il funzionamento
in fase di apprendimento (vedremo che questo avverrà solo durante l’apertura della finestra
temporale che metterà in comunicazione la rete di output con la LANN27).
Le sinapsi inter strato sono governate dalla seguente equazione della dinamica:
τ s ij ij jJ J S fresh.
Re= − + + ( 2.2.G)
dove il termine di refresh introduce dei termini forzanti che spingono l’efficacia della
sinapsi verso i suoi stati stabili (depresso o potenziato). Una possibile definizione è
mostrata in tabella 2.5.1, in questo caso però si hanno sinapsi a soli due stati. La costante di
tempo della sinapsi, τs deve essere molto più grande di quella del neurone poiché su
* il livello di codifica è pari a inattivi
attivi
NN
f =
II-6
piccole scale di tempi (dell’ordine di τout) il valore dell’efficacia sinaptica si mantenga
costante.
2.3 Un esempio del funzionamento del modello teorico
Cercheremo in questo paragrafo di spiegare a parole il funzionamento della rete di output.
Al tempo t=0 tutte le sinapsi si trovano nello stato labile.
Alla presentazione del primo pattern ciascun neurone della rete riceverà un contributo in
corrente pari a Ci. Poiché le sinapsi subiranno transizioni e quindi non si troveranno negli
stessi stati, questo contributo non sarà lo stesso in neuroni di output diversi. Si instaurerà
una sorta di competizione tra i neuroni con attività maggiore. Tutto questo tramite le
sinapsi laterali. Dopo un certo tempo un solo neurone “sopravviverà” avendo inibito tutti
gli altri. Come abbiamo già detto il tempo τout, in cui avviene questa competizione, è
minore di quello della dinamica delle sinapsi, τs, per cui le uniche che avranno un
probabilità maggiore di modificare la propria efficacia sinaptica, saranno proprio quelle
relative all’unità vincitrice.
Definita una connettività afferente al neurone i-esimo, Ci, possiamo cercare di valutare
quali siano le condizioni per le quali una sola unità riesca a vincere. Dalla teoria si deduce
[16] che mano a mano che il numero di neuroni attivi diminuisce, le condizione per
l’inattivazione di quello con attività minore diventano sempre più stringenti, fino ad
arrivare a sole due unità attive con contributi afferenti di corrente: C1 e C2. La condizione
per cui il neurone 1 vince su quello numero 2 è:
C1 > C2 ⇒ CC
out1
2
1
≥−τφ
( 2.3.A)
dove, ricordiamo, φ rappresenta lo spike rate del neurone di output.
Questa condizione è soddisfatta se:
φ ≥ τ-1out ( 2.3.B)
Fissate le condizioni per le quali si attivi un solo neurone di output, bisogna controllare se
questa attività non sia tale da impedire che un’altra unità possa attivarsi in corrispondenza
II-7
di un differente attrattore. Queste nuove condizioni si trovano imponendo che, per un
nuovo input, ci sia un nuovo neurone attivo con connettività, C1´, candidato alla vittoria. In
modo del tutto analogo al precedente si arriva a definire una condizione di vittoria di
questo neurone, per l’esattezza:
′′
≥ −
CC
j
out11
φτ
( 2.3.C)
dove C´j, j ≠ 1, sono le unità dei neuroni che si devono inattivare, l’apice indica che
l’attrattore può essere diverso dal precedente.
Dalla 2.3.C si deduce che la costante φ deve soddisfare la relazione
φ ≤ τ-1out ( 2.3.D)
combinando i risultati della 2.3.B con quelli della 2.3.D, si ottiene
φ ≈ τ-1out ( 2.3.E)
Andiamo ad analizzare quali sono gli effetti dell’inibizione non specifica sull’attività del
neurone vincitore (quando è ormai l’unica unità attiva) il valore asintotico a cui tende la
corrente del neurone vincitore è dato da
IC g
g
==
++
11
1θ
φ( 2.3.F)
scegliendo g >> 1, quindi supponendo che l’attivazione del neurone inibitore sia uno spike-
rate molto intenso se paragonato a quello dei neuroni di output, si arriva ad avere che:
I=
=1θφ
( 2.3.G)
A questo punto si vede che, fissato il valore di θ, si riesce a valutare la corrente presente
nel neurone di output vincitore dopo che siano passati tutti i transienti , soprattutto, a fare
in modo che questo sia lontano dal suo valore di saturazione.
2.4 Alcuni esempi di possibili dinamiche di apprendimento
Descriviamo, a grandi linee, il meccanismo di apprendimento nelle sinapsi interstrato, per
fare ciò assumiamo che il neurone a cui afferisce la sinapsi in esame, sia proprio quello
attivo.
Supponiamo di partire con unità dotate di solo due stati stabili: J0 = 0 e J1 = 1. Il
meccanismo di apprendimento deve far si` che vengano “tagliate” tutte le sinapsi in
corrispondenza di attività nulla dei neuroni di input.
II-8
Assumiamo, inoltre, che negli stimoli presentati ci sia solo una frazione f di neuroni attivi,
questo implica che ci siano f ⋅N neuroni la cui attività deve tendere a mantenere le sinapsi
in uno stato di efficacia maggiore ed N⋅(1 - f) in uno minore.
stato iniziale attività d’input stati accessibili probabilità di transizione
Sj = 1 Jij = 1 1
Jij = 1
Jij = 1 1 - p-
Sj = 0
Jij = 0 p-
Jij = 1 p+
Sj = 1
Jij = 0 1 - p+
Jij = 0
Sj = 0 Jij = 0 1
Tabella 2.5.1 Dinamica di apprendimento relativa alle sole sinapsi afferenti al neuroneattivo.
Poiché il sistema si muove su un numero discreto di stati stabili, effettuando le transizione
con una certa probabilità, si ha un “cammino aleatorio” rappresentabile con un processo
markoviano al quale si associa una matrice di probabilità di transizioni M. L’elemento Mjk
di tale matrice definisce la probabilità di avere una transizione dallo stato j-esimo a quello
k-esimo. A seconda, quindi, dello stato in cui ci si trova e dello stato del neurone di input a
cui la sinapsi è connessa, avremo probabilità generalmente differenti di effettuare o meno
la transizione.
Possiamo allora definire uno schema di apprendimento come quello descritto nella tabella
2.5.1.
Una rete di output con tale schema di apprendimento risulta godere della proprietà di
palinsesto, difatti esiste una distribuzione asintotica per le efficacia sinaptiche [16], che è
indipendente dalla struttura del flusso di stimoli. In tal caso il livello di connettività è
fissato. Se presentiamo, però, un numero P di pattern ad una rete composta da N neuroni di
II-9
input e con una frazione c di sinapsi per neurone di output, nello stato J1, si ha che la
condizione per cui la connettività non varia è:
c⋅(1 - f)q- = (1 - c)⋅ f q+ ( 2.4.A)
dove f rappresenta il livello di codifica quindi (1 - f)q- e f q+ rappresentano le probabilità di
avere transizioni verso il basso e verso l’alto, rispettivamente in presenza di un neurone
inattivo o di uno attivo, nello strato d’input. Rammentiamo che stiamo considerando tutte
le sinapsi afferenti al neurone di output vincitore.
Nella equazione (2.4.A) il termine di sinistra indica il numero di sinapsi che vengono
tagliate, mentre quello di destra la frazione di sinapsi che, assenti all’inizio, si rigenerano.
Nel caso in cui la connettività evolva in maniera tale che
(1 - c)⋅ f q+ > c⋅(1 - f)q- ( 2.4.B)
allora si avrebbe un aumento della connettività afferente al neurone vincitore dello strato di
output, come conseguenza si avrebbe che l’unità in esame vedrebbe aumentare la propria
attività e sarebbe, quindi, sempre più difficile disattivarla nel caso in cui si cambi il pattern.
Quest’unità rimarrebbe selettiva per una classe via via più ampia di pattern.
Comunque è possibile vedere che anche nelle condizioni di mantenimento costante della
connettività, è molto facile che la rete presenti lo stesso problema di “confusione”, che
risponda cioè a pattern sbagliati. Infatti se ci calcoliamo la probabilità che ciascuno degli
N neuroni della rete di output, sia selettivo per uno solo dei P < N pattern presentati,
otteniamo [16]:
NP
NN
P N P NP P
=−
!!( )!
( 2.4.C)
questo numero è effettivamente molto piccolo, a meno di non considerare P << N, questa
scelta pone chiaramente dei limiti fortissimi alla capacità della rete di output che, almeno
in linea di principio, potrebbe apprendere O(N) differenti pattern.
Una possibilità di risolvere questo problema potrebbe consistere nel modificare le regole di
apprendimento in maniera tale che siano consentite solo delle transizioni delle sinapsi
verso lo stato depresso, partiamo cioè con una rete con una frazione c di sinapsi attive
molto alta, tipicamente c ≈ 0.6 - 0.8, quando viene presentato un pattern si ha una
probabilità di avere transizioni verso il basso data da q-, naturalmente per le sole sinapsi
afferenti al neurone vincitore. In questo modo dopo un certo tempo che lo stesso pattern è
II-10
presentato alla rete si ha che la connettività del neurone selettivo per quella configurazione
tenderà al valore
c⋅f << c ( 2.4.D)
A questo punto, se si presenta un nuovo stimolo il neurone che avrà modificato la propria
connettività sarà sfavorito rispetto a tutti gli altri che non hanno subito modificazioni
sinaptiche.
Chiaramente quest’ultimo modello non possiede più la proprietà di palinsesto, il grado di
connettività dipende fortemente dalla struttura degli stimoli ed una volta che la rete ha
appreso un pattern è impossibile che possa scordarlo in favore di un altro, a meno di non
inizializzare di nuovo una parte delle sinapsi in modo da riottenere alti livelli di
connettività.
Si può, però, pensare a dei meccanismi per cui avvenga una rigenerazione spontanea delle
sinapsi, cioè si può introdurre una probabilità r che una sinapsi possa riportarsi nello stato
J1. Naturalmente questo meccanismo deve avvenire a prescindere dall’attività dei neuroni a
cui è connessa. Una siffatta soluzione porterebbe alla reinizializzazione delle sinapsi
relative ad unità di output che non sono attive da più tempo. Così facendo abbiamo, però,
posto una grossa limitazione alla statistica del flusso dei pattern, qualora infatti alla rete
non fosse presentato niente per un lungo periodo di tempo, si avrebbe la distruzione
completa della memoria del sistema.
Un’altra soluzione al problema discusso prima, a proposito delle limitazioni del modello
con il palinsesto, può essere ricavata ancora dalla biologia [17], infatti è stato visto che
oltre al già citato meccanismo di eliminazione delle sinapsi, esiste un fenomeno per cui
viene aumentata l’efficacia di talune sinapsi. Possiamo, quindi, introdurre uno stato J2, di
efficacia superiore ai precedenti, ci troveremmo ad avere, perciò, uno stato depresso (J0),
uno labile (J1) ed uno potenziato (J2).
In tale contesto la dinamica di apprendimento sarebbe allora descritta dalla tabella 2.5.2.
Facendo partire il sistema da una condizione in cui una certa frazione di sinapsi si trovano
fuori dallo stato labile, diciamo in J0, il continuo presentarsi di un pattern fa si che la
connettività afferente al neurone vincitore diminuisca. Le sinapsi che, però, lo connettono
ad unità di input attive vedranno la loro efficacia aumentare. In questo modo la corrente
afferente verrà maggiorata rendendo l’unità di output ancora più sensibile a quel dato
pattern. Se il livello di codifica è sufficientemente basso (tipicamente ~ 0.1), la
presentazione di un altro pattern, differente dal primo, farà si che l’unità prima vincitrice
avrà le sinapsi eliminate proprio in corrispondenza dei nuovi neuroni attivi, mentre quelle
II-11
che prima erano state potenziate si troveranno a connettere il neurone di output con unità
d’ingresso inattive.
Jij(t-1)=2 ∀ Sj Jij(t) = 2 p = 1
Jij(t) = 2 p = p+
Sj=1
Jij(t) = 1 p = 1-p+
Jij(t-1)=1
Jij(t) = 1 p = 1-p-
Sj=0
Jij(t) = 0 p = p-
Jij(t-1)=0 ∀ Sj Jij(t) = 0 p = 1
Tabella 2.5.2
II-12
2.5 Conclusioni
In questo paragrafo riassumiamo le principali caratteristiche di questo modello. Si deve
attivare un’unica unità di output vincitrice a partire da una condizione in cui le sinapsi sono
tutte nello stato labile. Se esiste già un’unità che si è già attivata per un dato attrattore
questa deve essere in grado di disattivarsi nel caso in cui si presenti un pattern per cui non
è selettiva*. La rete deve essere in grado, alla ripresentazione di un attrattore già
memorizzato, di riattivare l’unità che in precedenza aveva vinto. La modificazione
dell’efficacia di una sinapsi inter strato deve aver luogo solo se il neurone a cui è connessa
è quello vincitore, la sua dinamica deve essere, quindi, sufficientemente lenta da poter
permettere ai neuroni di competere prestabilire l’unità vincente.
Si deve realizzare quindi una rete che inneschi, prima un meccanismo di Winner Take All,
per la determinazione delle sinapsi su cui effettuare l’apprendimento tramite l’attivazione
di un solo neurone di output, poi un meccanismo di tipo Competitive Learning, con il quale
ad ogni attrattore corrisponde una sola unità di output. Il neurone di output deve
corrispondere a tutta una classe di attrattori, cioè anche per delle versioni corrotte.
La rete deve essere in grado di riconoscere e quindi attivare l’unità corrispondente
all’attrattore da cui il corrotto è stato generato.
Come abbiamo già visto il nostro stato di input sono i neuroni della LANN27. Il
programma di gestione della LANN27 genera automaticamente in modo random pattern
con decodifica f = 0.5 e distanza di hamming massima. La rete di output è stata progettata
per funzionare correttamente con decodifica f ≈0.1 (solo tre neuroni della LANN27 attivi).
Durante il lavoro di tesi si è visto, comunque, che la rete ha un comportamento corretto
anche con decodifica f =0.5, ed alcuni test saranno effettuati con tale livello. Nel prossimo
paragrafo si vedrà come sia possibile ridurre tale livello di codifica modificando i valori
della probabilità di transizione delle sinapsi della LANN27.
* vedremo che questa condizione è garantita dal fatto che l’unità di output resta attiva solo durante l’aperturadella finestra temporale con la LANN27.
II-13
2.5.1 Adattamento della LANN27 alla rete di output.
In questo paragrafo si mostrerà brevemente come sia possibile fare in modo che una rete
neuronale ad attrattori, come la LANN27, funzioni anche con un livello di codifica
inferiore allo 0.5 per cui è stata progettata (tipicamente f = 0.1). Si dimostrerà come, sotto
particolari condizioni, la capacità di memorizzazione dei prototipi aumenti.
Per semplicità di calcolo, in quanto segue, si analizzerà il caso di una rete con sinapsi con
due soli stati stabili: -1 e +1. I neuroni hanno i due stati corrispondenti ancora a +1 e -1.
Definita la probabilità che ξ sia +1 o -1 come:
Pr(ξ = +1) = f ( 2.5.A.a)
Pr(ξ = -1) = 1 - f ( 2.5.A.b)
poiché il segnale che guida la dinamica della sinapsi è dato dal prodotto dell’attività del
neurone pre-sinaptico per quella del post-sinaptico, la distribuzione delle sorgenti è data
da:
Pr(ξ⋅ξ´ = +1) = f 2 + (1 - f)2 = u ( 2.5.B.a)
Pr(ξ⋅ξ´ = -1) = 2f (1 - f) = 1 - u = u ( 2.5.B.b)
ottenute considerando che la sorgente positiva può essere ottenuta tanto con (+1)*(+1)
quanto con (-1)*(-1), mentre quella negativa con (+1)*(-1) viceversa.
Se assumiamo per le probabilità condizionate di avere delle transizioni verso l’alto o verso
il basso:
Pr( ↑ | ξ⋅ξ´ = +1) = q+ ( 2.5.C.a)
Pr( ↓ | ξ⋅ξ´ = -1) = q- ( 2.5.C.b)
siamo in grado di scrivere la matrice associata al processo markoviano:
M =−
−
− −
+ +
11
uq uquq uq ( 2.5.D)
Tramite le relazioni appena trovate siamo in grado di valutare il peso del livello di codifica
sulle capacità della rete neuronale. Come prima cosa cerchiamo di valutarne la capacità di
memorizzazione, per fare questo presentiamo un primo pattern casuale e lo facciamo
seguire da p pattern, anch’essi casuali, e scorrelati dal primo.
La capacità della rete è definita come il numero di presentazioni dopo le quali è ancora
possibile recuperare il primo pattern.
II-14
Supponiamo di presentare un primo pattern tale che α = ξ⋅ξ´ = 1, lo stato in cui si trova la
rete è dato dallo stato iniziale, quello asintotico, moltiplicato per la matrice delle
probabilità condizionate da α = 1:
( )c c q q c c q c q11 0
1 1−−
= + −
+ ++ +
_(_
) ( 2.5.E.a)
dove c è la connettività iniziale (sinapsi con Jij = 1, prima della presentazione del pattern
che deve essere recuperato) e c c_
= −1 . Nel caso in cui, invece, α = -1:
( )c cq q
c q cq c11
0 1−−
= +
− −
− −
_ _( 2.5.E.b)
a partire da questi stati, successive presentazioni di pattern casuali, scorrelati dal primo, si
rappresentano applicando alle 2.5.E.a la matrice del processo markoviano 2.5.E.b.
Le probabilità di trovare la sinapsi in uno dei due stati, avendo fissato il segno della coppia
di neuroni che da lei sono connessi ed avendo effettuato altre p-1 presentazioni casuali, è
data da:
( P(J=1 | α=1)p, P(J=-1 | α=1)p ) = ( P( J=1| α=1)1, P( J=-1| α=1)1 )⋅ Mp-1
( 2.5.F)
dove l’indice p indica la probabilità dopo p presentazioni.
Si può dimostrare [8] che la probabilità di avere J=1 dopo p presentazioni, condizionata
dall’avere presentato α=1 durante la prima, è data da:
P(J=1 | α=1)p = c-λp-1⋅[( cq+ + c) c - ccq+] =
= c-λp-1⋅ cq+ = S+ ( 2.5.G)
Usando la 2.5.E.b si ottiene l’equivalente della 2.5.F, ma per α = -1.
P(J=1 | α= -1)p = c-λp-1⋅[ ccq- - c⋅(1 - q-c)] =
= c-λp-1⋅cq- = S- ( 2.5.H)
Con le probabilità ottenute siamo in grado di calcolarci la corrente media, afferente ad un
neurone attivo: <h>ξ, dove l’indice ξ indica la media su tutti i possibili valori di attività
dell’altro neurone.
II-15
( ) ( )( )[ ] ( )[ ]
( ) ( )[ ]
h J P J J P J
J P J
P J P J
JJξ ξ ξ
ξ ξ
ξ ξ
= ⋅ − − ⋅ − =
= − − − − − =
= − − + −
∑∑f f
f 2P f
f - f f
1 1 1
1 1 1 2 1 1
2 1 1 1 1 2
, ( ) ,
, ( ) ,
, ( ) ,
(2.5.H)
Usando le 2.5.f e la 2.5.G, si ottiene
[ ]h S S+ + −= − − + −1 2 1 1 2f f f( ) ( 2.5.I)
[ ]h S S− − += − − + −1 2 1 1 2f f f( ) ( 2.5.J)
A questo punto siamo in grado di valutare il segnale totale S che altri non è se non la
differenza tra i due valori medi appena calcolati.
S = <h>+ - <h>- = 2⋅(S+ - S-) ( 2.5.K)
da cui si deriva il valore di S2:
S2 = 4λ2p-2⋅( cq+ + cq- )2 ( 2.5.L)
Assumendo le distribuzioni delle attività dei neuroni indipendenti e con distribuzione
gaussiana (per N → ∞), è possibile dimostrare [8] che il quadrato del rumore, definito
come ( ) ( )[ ]R R R2 21
22
12
= +ς ς con ( ) ( )R h hip
ip2
2
ξξ
ξ
= − , è maggiore di una quantita`
proporzionale ad 1/N.
In quest’ipotesi si ha che
SR
c q cq Np2
22 2
2
4< +
−
+ −λ_
( 2.5.M)
dove λp è legato alla u, e quindi alla f, dalle 2.5.B a e b:
λp = [1-[f 2+(1-f)2]q+ -2f(1-f)q-]p ( 2.5.N)
Per avere un recupero dei pattern senza errori, il rapporto segnale rumore deve andare, per
N → ∞, almeno come il log N [18]. Inoltre, poiché la 2.5.N tende asintoticamente ad un
valore finito, è necessario fare in modo che λ tenda ad 1 il più rapidamente possibile, in
modo che si possano usare dei valori di p abbastanza grandi senza che λp tenda a zero
(ricordiamo che p indica il numero di pattern memorizzabili). Se si riesce a far si che λp ~
(1- x)p, con x → 0, allora:
(1-x)p = expp⋅log(1-x) ≈ expp⋅(-x + o(x2) (2.5.O)
II-16
affinchè λp sia finito si dovrà avere p⋅x < 1, quindi si pone un limite superiore a p (capacità
della rete):
p < 1/x (2.6.P)
con x = O(f), allora si può arrivare ad ottenere p < O(1/f).
La prima cosa che viene in mente di fare è quella di far variare le probabilità di transizione,
visto che il termine che moltiplica q+ è O(1), sfortunatamente se si fanno andare a 0 molto
velocemente, con la stessa rapidità va a zero il termine quadratico che moltiplica N
nell’espressione di S2/R2. Dovendo comunque essere soddisfatta la condizione logaritmica
il massimo che si può avere è un decadimento d f O(logN/N), e quindi p < O(logN).
Se però, fissato il valore di q-, si rende q+ dipendente da f, allora si potrebbe a fare di
meglio: infatti prendendo q+ ~ O(f) = logN / N, si arriverebbe ad p < N.
Naturalmente, avendo fatto diminuire q+, bisogna che q- sia sufficientemente forte da
mantenere il limite logaritmico per il rapporto segnale / rumore.
In realtà, nel calcolo del rumore, esiste un termine di correlazione [8] che deriva dal fatto
che due sinapsi non sono completamene indipendenti poichè entrambe hanno un neurone
in comune.
Questo terrmine è del tipo:
J J Jij kj j k⋅ ⋅ −ξ ξ ξξ ξ
2
Si può dimostrare [18] che questo può essere trascurato se si pone
q+ >> q- ~ f ≈ O(log N / N) (2.6.Q)
Nella 2.6.1.14 il termine che moltiplica q+ è o(1), impedendo a λ di tendere ad 1.
Una possibile soluzione consiste nell’eliminazione di tutte le transizioni indotte dalla
configurazione di neuroni del tipo (-1)⋅(-1). Così facendo, nella 2.6.1.14, viene eliminato il
termine (1 - f)2 che moltiplica q+.
Da un punto di vista pratico un simile artificio può essere implementato senza dover
modificare l’hardware già esistente. Infatti è sufficiente ridurre l’ampiezza dei segnali di
learning negativi per far si che il termine (-1)⋅(-1) risulti molto minore di quello (+1)⋅(+1) e
quindi che abbia un probabilità nulla di attraversare la soglia positiva.
Così facendo, però, viene ridotta anche l’ampiezza dei segnali di learning negativi. Con
un’opportuna scelta del valore dei campi e delle soglie, è possibile fare in modo che sia
soddisfatta anche la relazione 2.6.Q
Adottando quest’artificio, si ottiene che x → 0 ~ O(f2), quindi si ha p ~ O(1/f2) ≈ O(N2).
II-17
In questo caso le correnti medie <h>+ ed <h>- , risultano essere dello stesso segno. Quindi,
per poter discriminare tra neuroni attivi e quelli inattivi, si deve scegliere una soglia
opportuna che in generale sarà non nulla e dipendente da f . Questa e` una soluzione un po’
artificiosa, esistono modelli [19] per i quali il livello della soglia e` fissato dinamicamente
tramite una opportuna inibizione
III-1
Capitolo III “Si riesce a far funzionarequalsiasi cosa se ci si pasticciaabbastanza"A.Bloch
L’hardware
In questo capitolo vogliamo descrivere la struttura hardware della rete di output, andando a
mostrare i singoli blocchi di cui è composta. Andremo inoltre a descrivere l’interfaccia
digitale, colei che permette alla rete di output di comunicare con LANN27 e con il mondo
esterno.
3.1 La struttura della rete di output
L’intero sistema della rete di output è composta da cinque blocchi funzionali:
• Il neurone di ouput
• La sinapsi interstrato
• La sinapsi laterale
• Il neurone inibitore
• La sinapsi del neurone inibitore
La rete di output è formata da M neuroni di output connessi agli N neuroni di LANN
tramite le sinapsi interstrato, di tipo eccitatorio, il numero totale di queste sinapsi sarà
quindi 27*M. Inoltre i neuroni di output sono tra loro completamente connessi tramite le
sinapsi laterali, di tipo inibitorio, il numero totale di queste sinapsi sarà [(M-1)*M]/2. Il
neurone inibitore è connesso agli M neuroni di output da altrettante sinapsi laterali,
anch’esse di tipo inibitorio. In figura III.1.A è mostrata la rappresentazione a blocchi della
rete di output.
III-2
figura III.1.A Rappresentazione della struttura della rete di output
Andiamo ora a descrivere singolarmente le cinque parti che compongono questa rete
neuronale.
3.1.1 Il neurone di output
Abbiamo già descritto nel secondo capitolo l’equazione della dinamica del neurone di
output, riprendiamola, adesso, per descrivere brevemente l’elettronica con cui è stato
implementato questo blocco.
∑∑≠
−−⋅
+−=⋅τij
jj
jijiin )I(f)H(TSJfN
1I.I (3.1)
III-3
τn rappresenta la costante di tempo del neurone.
Gli indici i rappresentano i neuroni di output [1,M], mentre gli indici j rappresentano
I neuroni di input di LANN [1,N].
La funzione che definisce lo spike rate è:
( )f II I
I=⋅ >
<φ 00 0 (3.2)
Nella equazione 3.1 il contributo eccitatorio consiste nel prodotto tra Jij che rappresenta il
valore della sinapsi interstrato ed Sj che rappresenta lo spike rate dei neuroni di input.
L’equazione della dinamica può essere riscritta come:
)i()i(iin EI
.I Λ−+−=⋅τ (3.3)
dove:
+=Λ
⋅=
∑
∑
≠ijj
)i(
jjij
)i(
)I(f)H(T
SJfN
1E(3.4)
dove questi ultimi due termini rappresentano il contributo eccitatorio e inibitorio.
La figura III.1.B mostra lo schema a blocchi del neurone di output che è stato
implementato.
+f(Ii)
Ii
Sommatored'ingresso Integratore
Generatore dispike-rate
E(i)
Λ(i)
( )f II I
I=⋅ >
<φ 00 0
τ n i iiI I⋅ = − +
.( )Σ
∫ f I( )Σ( i)
Σ(i) = E(i) - Λ(i)
figura III.1.B Schema a blocchi del neurone di output
Riportiamo qui sotto i circuiti che svolgono le funzioni di integratore+sommatore, quella di
generatore di spike rate, (figura III.1.C e figura III.1.D) e lo schema elettrico completo
(figura III.1.E).
III-4
Figura III.1.C Schema elettrico dell’integratore + sommatore.
Figura III.1.D Schema elettrico del generatore di spike rate.
III-5
Figura III.1.E Neurone di output.
III-6
3.1.2 La sinapsi interstrato
La sinapsi interstrato è l’elemento più complesso dell’intera rete. Il processo di
apprendimento e di calcolo della corrente afferente al neurone di output è svolto da questa
unità. Come abbiamo già fatto per il neurone di output, riprendiamo qui le equazioni della
dinamica della sinapsi e mostriamo come sia stata implementata elettronicamente.
L’equazione della dinamica della sinapsi è la seguente:
τ s ij ij jJ t J t S f⋅ = − + +.
( ) ( ) Re (3.5)
dove gli indici i rappresentano le unità neuronali della rete di output [1,M], mentre gli
indici j quelle della LANN [1,N].
Nella 3.5, τs rappresenta la costante di tempo della sinapsi, Sj rappresenta lo spike rate del
neurone di input, Jij il valore istantaneo dell’efficacia sinaptica.
Il termine di refresh stocastico è dato da:
[ ] [ ]Re ( ) ( )f J J J t T J T J tc ij th c th ij= + ⋅ − + ⋅ −+ + − −0 θ θ (3.6)
in questa eqauzione θ[.....] è la funzione theta, mentre i termini Tth!
sono le soglie per le transizioni verso i livelli potenziato e depresso, e sono descritte dalla
seguente equazione:
T J f I tth th i± ±= +! ( ) ( )ω (3.7)
Dove il primo termine rappresenta il termine di offset, il secondo l’ampiezza dell’attività
del neurone di output a cui le sinapsi afferiscono e l’ultimo il rumore gaussiano filtrato ad
f0 e di ampiezza opportuna.
L’uscita della sinapsi è data da
Cij = Sj ⋅ Jij (3.8)
Possiamo ora identificare dei blocchi strutturali che svolgono le funzioni rappresentate da
queste equazioni.
III-7
• L’integratore dato dalla (3.5)
• Il generatore di refresh stocastico dato dalla (3.6)
• Il generatore di soglie e di rumore gaussiano dato dalla (3.7)
• Il moltiplicatore post-sinaptico dato dalla (3.8)
In figura III.2.A è rappresentato lo schema a blocchi della sinapsi interstrato in cui sono
indicati anche i segnali globali comuni a tutte le sinapsi, gli offset delle soglie
e il potenziale del neurone di output a cui sono afferenti.
Termine di refreshstocastico
Generatore dirumore filtrato
f0
d b
f
Moltiplicatorepost sinaptico
IntegratoresinapticoSj Jij(t)
cij
ω(t)
+Jc, 0, -Jc
f(Ii)
Tth+/-
∫
Jth+/-
Generatoredi soglie
figura III.1.F Schema a blocchi della sinapsi interstrato.
Sono riportati qui di seguito tutti gli schemi elettrici dei singoli blocchi costituenti la
sinapsi interstrato( figure III.2.B-III.2.E) e lo schema elettrico complessivo (figura III.2.F).
III-8
Figura III.1.G Generatore rumore + soglie .
Figura III.1.H Moltiplicatore post-sinaptico
III-9
Figura III.1.I Generatore del refresh stocastico.
Figura III.1.L Integratore sinaptico
III-10
Figura III.1.M Sinapsi interstrato
III-11
3.1.3 Il neurone inibitore
Il neurone inibitore, essendo uno solo per tutta la rete neuronale è stato implementato
sull’interfaccia digitale, che sarà discussa nel paragrafo 3.2.
L’equazione della dinamica del neurone inibitore è la seguente:
τ inib H H⋅ = − +.
Φ (3.8)
dove il secondo termine rappresenta la somma di tutte le ampiezze dei neuroni di output:
Φ ==∑ f I jj
M
( )1
(3.9)
Gli spike rate dei neuroni di output possono essere considerati delle costanti poiché la loro
costante di tempo τn è molto più grande di quella del neurone inibitore.
Il generatore di spike rate del neurone inibitore deve realizzare la seguente funzione di
trasferimento.
T Hg H H
H( )
( )=
⋅ − ><
θ θθ0
(3.10)
Il neurone inibitore, poiché deve produrre un segnale inibitorio, genererà una segnale
negativo (g è di segno negativo).
Questo circuito è molto simile a quello del neurone di output, con la differenza che il
generatore di spike rate ha segno opposto e che in ingresso di quest’ultimo compare un
offset (θ) anch’esso negativo.
Riportiamo in figura III.3.A lo schema a blocchi di questa unità e in figure III.3.B lo
schema elettrico del neurone inibitore.
III-12
+ T(H)
Sommatored'ingresso Integratore
Generatore dispike-rate
-f(I1)
-f(IN)
H(t)T(H)
H∫ θΦ
τ in H H⋅ = − +.
ΦΦ ==∑ f I jj
M
( )1
T Hg H H
H( )
( )=
⋅ − ><
θ θθ0
figura III.1.N Schema a blocchi del neurone inibitore
Figura III.1.P Il neurone inibitore
III-13
3.1.4 La sinapsi laterale e la sinapsi del neurone inibitore
Le sinapsi laterali sono sinapsi statiche che connettono tra loro tutti i neuroni di output,
questo tipo di sinapsi è stata implementata direttamente sul back-plane della rete di output.
Il compito di questa sinapsi è quello di generare un segnale che è la somma di tutte le
ampiezze delle attività di tutti i neuroni meno quello a cui la sinapsi afferisce. Riportiamo
in figura III.3.B lo schema elettrico complessivo per tutta la rete di tale sinapsi.
Figura III.1.Q Una delle sinapsi laterali sul back plane
La sinapsi del neurone inibitore è semplicemente una connessione fisica anch’essa
Realizzata sul back-plane
III-14
3.2 L’interfaccia digitale
Quest’unità è di estrema importanza per la gestione di tutta la rete neuronale.
E’ stata progettata per poter interfacciare la rete di output con un PC, per poterla mettere in
comunicazione con Lann27 e per gestire tutti i segnali globali (gli offset, le tensioni di
riferimento). Inoltre su di essa è stato implementato il neurone inibitore, già descritto nel
paragrafo 3.1.3.
In figura III.2.A riportiamo lo schema a blocchi di questo dispositivo, mentre nella figura
III.3.B riportiamo la fotografia (in scala 1:0.8) del medesimo evidenziando i singoli
blocchi strutturali.
Figura III.2.A schema a blocchi dell’interfaccia digitale.
III-15
Figura III.2.B Fotografia dell’interfaccia digitale, sono evidenziati i blocchi strutturali
1. Traslatori di livello2. I2C per lettura sinapsi3. Interfaccia RS 2324. Gruppo di 8 DAC a 12 bit5. Comparatori per lettura neuroni di output6. ADC supplementare7. Neurone inibitore8. Circuito di reset , e clock per porta I2C
III-16
L’interfaccia digitale ha a bordo una logica di controllo basata su un micro controllore
della famiglia Intel, l’87C52 una Ram di 256 K byte espandibile a 512 Kbite, una GAL,
una Eprom su cui è stato scritto il programma di gestione in assembler, inoltre è possibile
inserire una TOY per la gestione della data e dell’ora, è disponibile anche un connettore
dove poter connettere un display a 40 caratteri su 2 righe per la visualizzazione delle
operazioni in corso. Sul pannello frontale sono state predisposti i pulsanti per il reset
dell’intera scheda e il reset delle sinapsi.
Il dispositivo, come abbiamo già detto deve generare tutti i segnali globali necessari al
funzionamento della rete di output, questo compito è affidato a 8 DAC MAX522BCPE
della MAXIM a 12 bit, questi DAC, ci permettono di avere una sensibilità di circa 0.5
mV, molto maggiore di quella a noi necessaria, se vogliamo sono sovradimensionati.
Vediamo ora quali sono i segnali globali che vengono gestiti dai DAC. Per quanto riguarda
la sinapsi, la soglia positiva (Vthr), variabile tra 0.2 e 5 Volt, la soglia negativa (Nvthr),
variabile tra –0.2 e 5 Volt e l’offset sul moltiplicatore post-sinaptico (Jc/2), variabile tra 0 e
5 Volt. Per quanto riguarda il neurone inibitore l’offset sul generatore si spike rate (θ),
variabile tra 0 e –5 Volt. Due DAC sono poi impiegati per compiere la traslazione di
livello dei segnali provenienti dai neuroni della LANN27. Il neurone di LANN27 ha solo
due stati stabili, quello inattivo ("0 Volt) e quello attivo (" 5 Volt), corrispondenti quindi
a valori TTL. Questi due stati vengono traslati in un valore positivo per lo stato attivo,
variabile tra 0 e 5 Volt e in un valore negativo, variabile tra 0 e –5 Volt, per quello
disattivo. Questi segnali traslati vanno in ingresso alle sinapsi interstrato, rappresentano
cioè, lo stimolo esterno alla rete di output. Un altro ADC è dedicato alla generazione del
valore di soglia per la lettura dei neuroni di output. Essendo il neurone di output totalmente
analogico, è stato implementato sulla interfaccia digitale un comparatore a soglia per
l’identificazione dell’unità vincente.
Sono stati, inoltre, previsti ed implementati sull’interfaccia 27 switch analogici che, in test
successivi, avranno il compito di trasferire il segnale di campo interno dei neuroni della
LANN in ingresso alle sinapsi interstrato, quindi, senza nessuna manipolazione da parte
dell’interfaccia. Si è pensato a questa, come possibile soluzione della indistinguibilità da
parte della rete di output tra attrattore e semplice pattern.
Per la gestione dell’interfaccia è stato sviluppato un software in ambiente DOS utilizzando
il compilatore C++ di Borland. Questo software permette l’impostazione di tutti i segnali
III-17
globali, la lettura dell’unita vincente, l’impostazione e quindi l’apertura della finestra
temporale, variabile tra 10 e 10000 ms, tra LANN27 e rete di output.
3.3 Organizzazione della rete di output.
La rete di output ha una struttura modulare, composta da un cestello da 84 TE su cui è
stato implementato il back-plane al quale possono essere collegate, tramite un connettore
Euro da 96 pin, sette schede di tipo doppio eurocard (220 mm x 200 mm), Su queste
schede sono state implementate 27 sinapsi interstrato e il neurone di output a cui
afferiscono. Al back plane è connessa anche la scheda di interfaccia, realizzata anch’essa
su una scheda doppio eurocard. In figura III.3.A è rappresentato lo schema a blocchi della
rete di output in tutte le sue parti.
Figura III.3.A Schema a blocchi della rete di output
III-18
L’hardware utilizzato durante lo svolgimento di questo lavoro di tesi è composto da sole
tre schede 1N27S. Il motivo principale di questa scelta è nella impossibilità da parte di
LANN di apprendere più di tre attrattori, e quindi della inutilità di schede aggiuntive. In
figura III.3.B mostriamo la struttura finale della rete da noi utilizzata.
Figura III.3.B Schema finale della rete di output,
IV-1
Capitolo IV “....per fortuna il pubblico vede soloil prodotto finito….” W. Allen
Setup e test
In questo capitolo illustriamo le fasi di regolazione dell’hardware che sono state effettuate
per porre la rete di output nella condizione di funzionare. Mostreremo anche i risultati delle
prime misure effettuate utilizzando la LANN27, quindi spiegheremo i motivi che ci hanno
spinto ad realizzare una modifica hardware che verrà discussa in modo approfondito nel
capitolo V.
4.1 Regolazioni preliminariAbbiamo a disposizione sette schede 1N27S (che indicheremo con una numerazione da 1 a
7). Di queste sette ne sono state scelte, per i test, tre. Il primo motivo è legato al fatto che i
test verranno effettuati con la LANN27 che non è in grado di apprendere più di tre
attrattori, il secondo motivo, più pratico, è legato a fattori di tempo. Ogni scheda a richiesto
diverse settimane di lavoro per sostituire i componenti danneggiati e per regolare
l’ampiezza dei rumori del refresh stocastico. Le schede scelte sono la numero2 , la numero
3 e la numero 4. L’ampiezza del rumore stocastico con media nulla e varianza ! è stata
fissata a 60 mVpp, la stessa ampiezza che hanno i rumori sulla LANN27. La fase
successiva è stata quella di regolare tutti i segnali globali, a tale scopo è stato sviluppato
un software in C++* che tramite l’interfaccia digitale, ci permette di impostare tutti i
segnali globali e l’ampiezza della finestra temporale. La probabilità di transizione dipende
chiaramente dal valore che assumono i segnali globali. Il valore del segnale di traslazione
Jc/2, che fa pesare in modo opportuno i tre stati della sinapsi interstrato, è fissato
teoricamente in metà del valore di clipping. Riportiamo in figura IV.1.A e IV.1.B due
immagini, acquisite tramite l’oscilloscopio digitale, in cui si vede la soglia rumorosa e lo
stimolo esterno (con il neurone afferente della LANN27 attivo) durante l’apertura della
finestra temporale, nel primo caso, senza che avvenga la transizione, nel secondo caso con
il clipping verso lo stato potenziato Jc.
* Per una descrizione approfondita del software si rimanda il lettore all’Appendice A
IV-2
Figura IV.1.A Immagine acquisita dall’oscilloscopio, in cui è mostrata l’apertura della finestra temporale in
presenza di stimolo esterno, senza che avvenga la transizione.
Figura IV.1.B Immagine acquisita dall’oscilloscopio in cui è mostrata l’apertura della finestra temporale in
presenza di stimolo esterno, con clipping dallo stato labile a quello potenziato
IV-3
Dalle misure effettuate tramite l’oscilloscopio si trova che i valori di clipping Jc e –Jc
valgono circa 2.4 V e –2.4 V, quindi si è fissato il valore di Jc/2 a 1.2 V. Stesso valore,
sempre imposto dalla teoria, deve avere il segnale di comparazione del neurone inibitore θ.
Per quanto riguarda i valori da assegnare alle soglie rumorose e ai livelli corrispondenti
allo stato attivo e inattivo dei neuroni di LANN27, questi andranno ad influire sulle
probabilità di transizione.
4.2 Verifica del loop sulle schede 1N27S
E’ stata eseguita una verifica sistematica, del funzionamento a livello elettrico, sulle tre
schede utilizzate nella rete di output. Si e’ proceduto nel seguente modo: si è generato un
pattern sulla LANN con livello di codifica f=0.1, si è collegata al back-plane una sola
scheda per volta, si è presentato il pattern un numero di volte sufficiente a far transire tutte
le sinapsi e si sono effettuate le misure delle tensioni in punti specifici, indicati con le
lettere verdi nello schema a blocchi raffigurante il loop tra neurone di output e neurone
inibitore di figura IV.2.A. Sono stati prelevati i valori dei segnali globali sia sulla scheda
inserita che sulle s-lot delle altre due schede. Si è verificato infine che il loop tra il neurone
di output e il neurone inibitore funzionasse in modo corretto.
Figura IV.2.A Schema a blocchi del loop tra neurone di output e neurone inibitore
IV-4
Il pattern generato sulla Lann è il seguente:
- + + + - - - - - - - - - - - - - - - - - - - - - - -dove il segno + sta a significare che il neurone della Lann è attivo mentre il segno – che è
inattivo. Il peso che avrà Cj dipende dal valore del segnale di traslazione Jc/2. E
chiaramente dalla presenza o meno dello stimolo esterno. Riportiamo qui di seguito una
tabella in cui sono indicati i valori di Cj in funzione di Jc/2 con cui sono state effettuate le
misure.
Tabella dei valori di Cj in funzione di Jc/2
Jc/2 Cj con sinapsi potenziata Cj con sinapsi depressa Cj con sinapsi labile
1.2 V 900±±±± 10mV -90±±±±1 mV 530±±±±10 mV
Nelle seguenti pagine riportiamo le tabelle con le misure effettuate sulle tre schede.
Abbiamo quindi verificato che il loop si chiudesse in modo corretto. Le tre schede hanno
dimostrato un corretto funzionamento elettronico. Nei prossimi paragrafi illustriamo i test
che hanno visto l’impiego della LANN27.
IV-5
Scheda #2 inserita nella slot #5
Impostazione segnali globali
Vthr = 1 V Jc/2 = 1.2 VNvthr = -1 V 1* = 5 V
Theta = -1.2 V 0** = -5 V
MisureSegnale prelevato Riferimento schema
a blocchi(lettera verde)
Valoremisurato
(mV)
Note
f(I) E 853±±±±10
Nf(I) F -846±±±±10
Uscita neurone inibitore H -3.2±±±±.1 Su interfaccia con θθθθ=1.2 V
Uscita neurone inibitore C 3.2±±±±.1 Su Back-plane con θθθθ=1.2 V
Uscita neurone inibitore H -114±±±±10 Su interfaccia con θθθθ=0.8 V
Uscita neurone inibitore C 114±±±±10 Su back-plane con θθθθ=0.8 V
Inibizione laterale B -888±±±±10 Misurata su slot # 9
Ingresso Nf(I) slot #5 -901±±±±10
Ingresso Nf(I) slot #9 -18±±±±1
Ingresso Nf(I) slot #13 -18±±±±1
Uscita sommatore*** D -843±±±±10
Verifica H=F+G= (-910±10)+(800)=110±10
H calcolato è in accordo con il valore misurato
Scheda #3 inserita nella slot # 9 * Nel software di gestione si indica con il sibolo”1” l’istruzione che ci permette di assegnare il valore ditensione che si vuole inviare in ingresso alle sinapsi interstrato in corrispondenza dell’attivazione del neuronedella LANN** Nel software di gestione si indica con il sibolo”0” l’istruzione che ci permette di assegnare il valore ditensione che si vuole inviare in ingresso alle sinapsi interstrato in corrispondenza della non attivazione delneurone della LANN*** Uscita del sommatore di ingresso del neurone di output, in riferimento allo schema elettrico del neuronedi output in figura III.1.E è il pin #1 del primo amplificatore operazionale
IV-6
Impostazione segnali globali
Vthr = 1 V Jc/2 = 1.2 VNvthr = -1 V 1* = 5 V
Theta = -1.2 V 0** = -5 V
MisureSegnale prelevato Riferimento schema
a blocchi(lettera verde)
Valoremisurato
(mV)
Note
f(I) E 843±±±±10
Nf(I) F -875±±±±10
Uscita neurone inibitore H -3.5±±±±.1 Su interfaccia con θθθθ=1.2 V
Uscita neurone inibitore C 3.5±±±±.1 Su Back-plane con θθθθ=1.2 V
Uscita neurone inibitore H -124±±±±10 Su interfaccia con θθθθ=0.8 V
Uscita neurone inibitore C 124±±±±10 Su back-plane con θθθθ=0.8 V
Inibizione laterale B -866±±±±10 Misurata su slot # 13
Ingresso Nf(I) slot #5 -11.4±±±±.1
Ingresso Nf(I) slot #9 -875±±±±10
Ingresso Nf(I) slot #13 -11.4±±±±.1
Uscita sommatore*** D -843±±±±10
Verifica H=F+G= (-910±10)+(800)=110±10
H calcolato è in accordo con il valore misurato
Scheda #4 inserita nella slot #13
* Nel software di gestione si indica con il sibolo”1” l’istruzione che ci permette di assegnare il valore ditensione che si vuole inviare in ingresso alle sinapsi interstrato in corrispondenza dell’attivazione del neuronedella LANN** Nel software di gestione si indica con il sibolo”0” l’istruzione che ci permette di assegnare il valore ditensione che si vuole inviare in ingresso alle sinapsi interstrato in corrispondenza della non attivazione delneurone della LANN*** Uscita del sommatore di ingresso del neurone di output, in riferimento allo schema elettrico del neuronedi output in figura III.1.E è il pin #1 del primo amplificatore operazionale
IV-7
Impostazione segnali globali
Vthr = 1 V Jc/2 = 1.2 VNvthr = -1 V 1* = 5 V
Theta = -1.2 V 0** = -5 V
MisureSegnale prelevato Riferimento schema
a blocchi(lettera verde)
Valoremisurato
(mV)
Note
f(I) E 932±±±±10
Nf(I) F -900±±±±10
Uscita neurone inibitore H 3.8±±±±.1 Su interfaccia con θθθθ=1.2 V
Uscita neurone inibitore C 3.8±±±±.1 Su Back-plane con θθθθ=1.2 V
Uscita neurone inibitore H -130±±±±10 Su interfaccia con θθθθ=0.8 V
Uscita neurone inibitore C -130±±±±10 Su back-plane con θθθθ=0.8 V
Inibizione laterale B -876±±±±10 Misurata su slot # 9
Ingresso Nf(I) slot #5 -10±±±±1
Ingresso Nf(I) slot #9 -10±±±±1
Ingresso Nf(I) slot #13 -900±±±±10
Uscita sommatore*** D -878±±±±10
Verifica H=F+G= (-948±10)+(800)=148±10
H calcolato è in accordo con il valore misurato
4.3 I test con la LANN27 * Nel software di gestione si indica con il sibolo”1” l’istruzione che ci permette di assegnare il valore ditensione che si vuole inviare in ingresso alle sinapsi interstrato in corrispondenza dell’attivazione del neuronedella LANN** Nel software di gestione si indica con il sibolo”0” l’istruzione che ci permette di assegnare il valore ditensione che si vuole inviare in ingresso alle sinapsi interstrato in corrispondenza della non attivazione delneurone della LANN*** Uscita del sommatore di ingresso del neurone di output, in riferimento allo schema elettrico del neuronedi output in figura III.1.E è il pin #1 del primo amplificatore operazionale
IV-8
Descriviamo in questo paragrafo la fase dei test preliminari effettuati sulla rete di output.
Si è utilizzata la LANN27 per generare i pattern da presentare alla rete di output. Abbiamo
fatto apprendere (fase di learning), a gruppi di tre, un certo numero di pattern ( generati in
modo random) alla LANN27. Ricordiamo qui che i pattern generati sulla LANN27 hanno
tutti la distanza di hamming massima. Una volta richiamati (fase di retrieval) i pattern
singoli, si apre la finestra temporale. In questo modo si presenta un singolo pattern (uno dei
tre) alla rete di output. A questo punto si dovrebbe instaurare il meccanismo di
competitive learning tra le tre schede della rete e da questa competizione ne dovrebbe
uscire una vincente. Quello che è emerso dai test è che la rete presenta due comportamenti
distinti. Questi comportamenti sono dipendenti dalla probabilità di transizione delle
sinapsi. Da adesso in poi indicheremo questi due comportamenti con i nomi di probabilità
di transizione alta e probabilità di transizione bassa.
Le probabilità di transizione non possono essere calcolate poiché non è stato ancora
ultimato l’hardware che ci permetterà di acquisire da computer lo stato delle sinapsi
interstrato di tutte le schede di output.
4.3.1 Probabilità di transizione alta
Inizialmente le sinapsi interstrato si trovano tutte nello stato labile. Presentiamo il primo
pattern, In questo caso si ha che al momento dell’apertura della finestra temporale, le
sinapsi di una delle schede (non si sa a priori quale delle tre) transiranno quasi
istantaneamente verso i rispettivi stati potenziati e depressi innescando una inibizione tale
che le altre due schede non subiranno transizioni delle sinapsi. Alla chiusura della finestra
si ha una scheda che ha acquisito il pattern e quindi è in grado di riconoscerlo in una
eventuale ripresentazione, Le altre due schede hanno ancora tutte le sinapsi nello stato
labile. Presentando il secondo pattern, si ha lo stesso meccanismo, ma questa volta tra le
due schede rimaste. Quindi una seconda scheda imparerà il secondo pattern. Il terzo pattern
verrà appreso dalla scheda rimasta. La rete ha dimostrato di sapere riconoscere tre pattern
diversi. Infatti ripresentandoli in ingresso si ha l’attivazione del neurone di output
corrispondente all’unità che in fase di apprendimento aveva vinto. Non c’è stato però,
almeno in apparenza , quel fenomeno di competizione tra le schede. Vediamo di capire
cosa è successo. Nello stesso instante in cui una prima sinapsi ha subito una transizione
verso lo stato potenziato si è innescato un doppio effetto: sulla scheda stessa si è attivato il
neurone di output, il che ha portato ad un ulteriore aumento della probabilità di
IV-9
transizione*, mentre sulle schede rimanenti si è innescato il meccanismo di inibizione dato
dal neurone inibitore. Questo processo è corretto, ma l’alta probabilità di transizione fa si
che vinca la scheda 1N27S su cui è avvenuta la prima transizione verso uno stato
potenziato. E’ chiaro quindi che l’attivazione della scheda dipende, non tanto da un
fenomeno di competizione con le rimanenti schede, ma da delle asimmetrie
dell’elettronica, che favoriscono un’unità rispetto ad un’altra. Riportiamo nelle prossime
pagine le misure effettuate in queste condizioni. Nella tabella 2 sono indicati i tre pattern
utilizzati. I simboli “+” e “-“ stanno ad indicare, come detto, l’attivazione o meno del
neurone della LANN27. Si noti che abbiamo sempre indicato con il nome di pattern e mai
di attrattore le parole di 27 bit provenienti da LANN27. Questo perché attualmente la rete
di output non è in grado di distinguere se un pattern è un attrattore o meno. Una possibile
soluzione a questo problema sarà discussa nel sesto capitolo. Nella tabella 3 riportiamo le
configurazioni finali delle tre schede di output dopo aver appreso i tre pattern, i simboli
“+” e “-“ indicano lo stato potenziato e depresso delle sinapsi interstrato, il simbolo “o”
indica lo stato labile. Riportiamo qui di seguito i valori dei segnali globali con i quali sono
state effettuate le presentazioni.
Vthr 0.9 VNvthr -0.9 VJc/2 1.2 V
θθθθ -1.2 V
1 5 V0 -5 V
Finestra temporale 10 ms Tabella 1 Impostazione dei segnali globali
* si ricordi che nella sinapsi intersrato è presente un feed-back proveniente dal neurone di output che faaumentare le probabilità di transizione poiché agisce sulle soglie rumorose del circuito di refresh stocastico.
IV-10
1° set di presentazioni
P0 """"####""""""""############""""""""####""""####""""""""####""""""""################""""""""####""""""""####
P1 """"########""""####""""####""""####""""########""""####""""########""""""""""""####""""########""""""""""""
P2 """"""""""""""""""""####""""""""""""####""""""""####################""""####""""####""""################""""
Tabella 1 I tre pattern della LANN27
Presentato P0 con overlap 1 con finestra temporale di 10 ms
o#""###""#"#""#""####""#""# si attiva la scheda #3
Presentato P1 con overlap 1 con finestra temporale di 10 ms
o##"#"#"#"##"#"###""#"o#""" si attiva la scheda #4
Presentato P2 con overlap 1 con finestra temporale di 10 ms
#"""#"""#""#####"""#"o###" si attiva la scheda # 2Tabella 2 le configurazioni delle schede della rete di output dopo la presentazione dei tre pattern
IV-11
2° set di presentazioni
P0 ####""""""""####""""""""""""####""""############""""""""########""""""""########""""""""####""""########""""
P1 ####""""""""####""""####""""""""""""####""""""""""""####""""############""""####""""################""""####
P2 """"############""""""""""""########""""########""""""""""""""""########""""########""""############""""""""
Tabella 1 I tre pattern della LANN27
Presentato P0 con overlap 1 con finestra temporale di 20 ms
o#"#"""#"#o#"###"o##""o"##" si attiva la scheda #2
Presentato P1 con overlap 1 con finestra temporale di 20 ms
o#"#"#""o#"""#"##oo#"#o##"# si attiva la scheda #4
Presentato P2 con overlap 1 con finestra temporale di 20 ms
o###"""##""#""""#oo##"o#o"" si attiva la scheda # 3Tabella 2 le configurazioni delle schede della rete di output dopo la presentazione dei tre pattern
IV-12
3° set di presentazioni
P0 """"####""""""""############""""""""####""""####""""""""####""""""""################""""""""####""""""""####
P1 """"########""""####""""####""""####""""########""""####""""########""""""""""""####""""########""""""""""""
P2 """"""""""""""""""""####""""""""""""####""""""""####################""""####""""####""""################""""
Tabella 1 I tre pattern della LANN27
Presentato P0 con overlap 1 con finestra temporale di 20 ms
o#""###""#"#""#""####"o#""# si attiva la scheda #2
Presentato P1 con overlap 1 con finestra temporale di 20 ms
"o#"#"#"#"##"#"###""#"o#""" si attiva la scheda #4
Presentato P2 con overlap 1 con finestra temporale di 20 ms
"#"o"#"""#""#####"""#"o###" si attiva la scheda # 3Tabella 2 le configurazioni delle schede della rete di output dopo la presentazione dei tre pattern
IV-13
Su quest'ultima serie di pattern è stato fatto un ulteriore test. Si è voluto verificare, con
successo, che la rete fosse in grado di riconoscere pattern corrotti degli attrattori acquisiti.
Riportiamo nelle tabella 3 le misure effettuate generando sulla LANN27 dei pattern
corrotti dei tre imparati. Nella prima colonna sono indicati gli overlap dei tre pattern (in
colore rosso mostriamo il pattern più vicino ad uno già imparato), nella seconda è indicato
il numero del neurone corrispondente alla scheda che dovrebbe attivarsi e nella terza quello
che si attiva. L’overlap può variare tra –1 e +1. Vale –1 quando il pattern è esattamente
opposto a quello con cui viene fatto il confronto, vale 1 quando i due pattern sono identici,
vale 0 quando i pattern hanno metà bit uguali. Sono stati generati pattern con livelli di
corruzione tra l’8% e l’89%. In tutti i casi la rete ha dimostrato di essere in grado di
attivare l’unità giusta.
Pattern corrottiCon overlap di corruzione
Si dovrebbeattivare
Siattiva
Pattern corrotticon overlap di corruzione
Si dovrebbeattivare
Siattiva
P0 0.037P1 0.92
P2 0.037#4 #4
P0 -0.037P1 0.85P2 0.11
#4 #4
P0 0.62P1 -0.025P2 -0.40
#2 #2P1 -0.185P2 -0.037P3 0.85
#3 #3
P0 -0.11P1 -0.11P2 0.92
#3 #3P0 0.92
P1 0.037P2 -0,11
#2 #2
P0 -0.11P1 0.037P2 0.92
#3 #3P0 -0.92
P1 -0.037P2 0.11
#3 #3
Tabella 3 Attivazione dei neuroni di output con pattern corrotti di prototipi imparati
IV-14
4.3.2 Probabilità di transizione bassa
Descriviamo in questo paragrafo i test effettuati con probabilità di transizione bassa.
Abbiamo abbassato le probabilità di transizione modificando alcuni dei segnali globali,
regolabili tramite il software di gestione. Riportiamo nella seguente tabella i valori dei
segnali globali impostati in questa fase.
Vthr 1.0 VNvthr -1.0 VJc/2 1.2 V
θθθθ -1.2 V
1 4 V0 -4 V
Finestra temporale 20 ms Tabbella1 Impostazione dei segnali globali
Alla apertura della finestra temporale, a differenza del caso precedente, solo alcune sinapsi
subiranno transizioni verso lo stato depresso e potenziato. Per far vincere una delle unità si
dovrà ripresentare il pattern diverse volte riaprendo la finestra temporale.
In questo modo si instaura il processo di competizione tra le unità di output.
I test effettuati in questa fase sono divisi in due gruppi. I primi utilizzando pattern con
decodifica f=0.1 , cioè con soli tre neuroni attivi, creati da noi. I secondi con f=0.5, cioè
con pattern in cui la metà dei neuroni sono attivi e la metà sono disattivi, generati in modo
random e con distanza di hamming massima dal programma di gestione della LANN27.
Riportiamo nelle prossime pagine le misure effettuate. I pattern sono indicati con parole di
ventisette bit in cui con il segno “#” si è indicato lo stato attivo del neurone della
LANN27 e lo stato potenziato della sinapsi interstrato, con il segno”"” lo stato inattivo del
neurone e lo stato depresso della sinapsi, con il simbolo “0” lo stato labile della sinapsi.
Commenteremo nel prossimo paragrafo i risultati.
IV-15
1° Set di presentazioni con f = 0.1
1° patternP0 """"""""""""""""#### """""""""""""""""""" ####""""""""####"""" """""""""""""""""""" """""""""""""""""""" """"""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """"""""0000""""0000 00000000000000000000 00000000000000000000 00000000""""00000000 """"""""0000""""0000 """"""""
Scheda #3 """"00000000""""0000 00000000000000000000 0000000000000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 000000000000""""0000 00000000""""0000"""" 00000000""""0000"""" 00000000"""""""""""" 0000""""00000000"""" """"""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 """"""""0000""""0000 00000000""""00000000 00000000000000000000 00000000""""00000000 """"""""""""""""0000 """"""""
Scheda #3 """"00000000""""0000 """"""""000000000000 0000000000000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 0000""""0000""""#### 0000"""""""""""""""" ####""""""""00000000 """"00000000"""""""" """"0000""""00000000 """"""""
Configurazione delle schede dopo la 3° apertura della finestra temporale
Scheda #2 """"""""0000""""0000 00000000""""00000000 00000000000000000000 00000000""""00000000 """"""""""""""""0000 """"""""
Scheda #3 """"00000000""""0000 """"""""000000000000 0000000000000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 0000""""""""""""#### """""""""""""""""""" ####""""""""####"""" """"0000"""""""""""" """""""""""""""""""" """"""""
Si attiva l’unità #4, si osserva però che le sinapsi delle altre due unità hanno subito alcune
transizioni. Presentiamo il secondo pattern
IV-16
2° pattern
P1 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """""""""""""""""""" ####"""""""""""""""" """"""""
Configurazione iniziale delle schede
Scheda #2 """"""""0000""""0000 00000000""""00000000 00000000000000000000 00000000""""00000000 """"""""""""""""0000 """"""""
Scheda #3 """"00000000""""0000 """"""""000000000000 0000000000000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 0000""""""""""""#### """""""""""""""""""" ####""""""""####"""" """"0000"""""""""""" """""""""""""""""""" """"""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """""""""""""""""""" 0000""""""""00000000 """"""""0000""""0000 """"0000""""00000000 """"""""""""""""0000 """"""""
Scheda #3 """"""""""""""""0000 """"""""000000000000 0000""""00000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 0000""""""""""""#### """""""""""""""""""" ####""""""""####"""" """"0000"""""""""""" """""""""""""""""""" """"""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """"0000"""""""""""" """"""""""""""""0000""""""""
Scheda #3 """"""""""""""""0000 """"""""000000000000 0000""""00000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 0000""""""""""""#### """""""""""""""""""" ####""""""""####"""" """"0000"""""""""""" """""""""""""""""""" """"""""
Si disattiva l’unità #4 e si attiva l’unità #2. L’unità restante, la #3 ha il 59,2% di sinapsi
nello stato depresso. Presentiamo il terzo pattern
IV-17
3° pattern
P2 """""""""""""""""""" ####"""""""""""""""" """"####"""""""""""" """""""""""""""""""" """"""""""""""""#### """"""""
Configurazione iniziale delle schede
Scheda #2 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """"0000"""""""""""" """"""""""""""""0000""""""""
Scheda #3 """"""""""""""""0000 """"""""000000000000 0000""""00000000"""" 0000""""000000000000 0000""""00000000"""" 00000000
Scheda #4 0000""""""""""""#### """""""""""""""""""" ####""""""""####"""" """"0000"""""""""""" """""""""""""""""""" """"""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """"0000"""""""""""" """"""""""""""""0000""""""""
Scheda #3 """""""""""""""""""" """"""""000000000000 0000""""00000000"""" 0000""""0000""""0000 0000""""0000"""""""" 00000000
Scheda #4 0000""""""""""""#### """""""""""""""""""" ####""""""""####"""" """"0000"""""""""""" """""""""""""""""""" """"""""
Si disattiva l’unità #2 ma si attiva l’unità #4, questo perché l’unità #3 è stata “corrotta” dai
pattern P0 e P1 e non è più in grado di riconoscere un ulteriore pattern. Si può notare che in
corrispondenza dei neuroni attivi del pattern P2 le sinapsi dell’unità #3 sono nello stato
depresso e non hanno possibilità di transire verso quello potenziato. Discuteremo di questo
problema nelle conclusioni di questo capitolo. Presentiamo ora il secondo set di pattern.
IV-18
2° Set di presentazioni con f = 0.1
1° pattern
P0 """"####"""""""""""" """"""""####"""""""" """""""""""""""""""" """"""""""""####"""" """""""""""""""""""" """"""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 00000000""""""""0000 00000000000000000000 """"""""00000000"""" 00000000000000000000 00000000000000000000 00000000
Scheda #3 """"000000000000"""" 000000000000""""0000 00000000""""00000000 0000000000000000"""" 00000000000000000000 """"""""
Scheda #4 00000000000000000000 0000""""000000000000 000000000000""""0000 00000000000000000000 0000""""""""00000000 00000000
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 00000000""""""""0000 00000000000000000000 """"""""00000000"""" 00000000000000000000 00000000000000000000 00000000
Scheda #3 """"000000000000"""" 000000000000""""0000 00000000""""00000000 0000000000000000"""" 00000000000000000000 """"""""
Scheda #4 00000000000000000000 0000""""000000000000 000000000000""""0000 00000000000000000000 0000""""""""00000000 00000000
Configurazione delle schede dopo la 3° apertura della finestra temporale
Scheda #2 00000000""""""""0000 00000000000000000000 """"""""00000000"""" 00000000000000000000 00000000000000000000 00000000
Scheda #3 """"000000000000"""" 000000000000""""0000 00000000""""00000000 0000000000000000"""" 00000000000000000000 """"""""
Scheda #4 00000000000000000000 0000""""000000000000 000000000000""""0000 00000000000000000000 0000""""""""00000000 00000000
Si attiva l’unità #3, come nel caso precedente le sinapsi delle altre due unità hanno subito
alcune transizioni. Presentiamo il secondo pattern
IV-19
2° pattern
P1 """""""""""""""""""" """""""""""""""""""" """"""""############ """""""""""""""""""" """""""""""""""""""" """"""""
Configurazione iniziale delle schede
Scheda #2 00000000""""""""0000 0000""""""""00000000 """"""""00000000"""" 00000000000000000000 00000000000000000000 """"""""
Scheda #3 """"####"""""""""""" """"""""####"""""""" """""""""""""""""""" """"""""""""####"""" """"""""""""""""0000 """"""""
Scheda #4 """"00000000"""""""" 0000""""000000000000 000000000000""""0000 0000""""00000000"""" 0000""""""""00000000 00000000
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 00000000""""""""0000 0000""""""""00000000 """"""""00000000"""" 000000000000"""""""" 00000000""""0000""""""""""""
Scheda #3 """"####"""""""""""" """"""""####"""""""" """""""""""""""""""" """"""""""""####"""" """"""""""""""""0000 """"""""
Scheda #4 """"""""0000"""""""" 0000""""0000""""0000 000000000000""""0000 0000""""00000000"""" 0000""""""""00000000 0000""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """"0000"""""""""""" """"""""""""""""0000""""""""
Scheda #3 """""""""""""""""""" """"""""0000"""""""" """"""""""""########"""" 0000"""""""""""""""" """""""""""""""""""" """"""""
Scheda #4 """"""""0000"""""""" 0000""""0000""""0000 000000000000""""0000 0000""""00000000"""" 0000""""""""00000000 0000""""
Si disattiva l’unità #3 e si attiva l’unità #2. L’unità restante, la #4 ha il 55,5% di sinapsi
nello stato depresso. Presentiamo il terzo pattern
IV-20
3° pattern
P2 ####"""""""""""""""" """"""""""""####"""" """""""""""""""" """""""""""""""""""" """""""""""""""""""" """"####
Configurazione iniziale delle schede
Scheda #2 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """"0000"""""""""""" """"""""""""""""0000""""""""
Scheda #3 """""""""""""""""""" """"""""0000"""""""" """"""""""""########"""" 0000"""""""""""""""" """""""""""""""""""" """"""""
Scheda #4 """"""""0000"""""""" 0000""""0000""""0000 000000000000""""0000 0000""""00000000"""" 0000""""""""00000000 0000""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """""""""""""""""""" ####""""""""""""#### """""""""""""""""""" """"0000"""""""""""" """"""""""""""""0000""""""""
Scheda #3 """""""""""""""""""" """"""""0000"""""""" """"""""""""########"""" 0000"""""""""""""""" """""""""""""""""""" """"""""
Scheda #4 """"""""0000"""""""" 0000""""0000""""0000 000000000000""""0000 0000""""00000000"""" 0000""""""""00000000 0000""""
Con la presentazione del terzo pattern non si ha la disattivazione dell’unità che aveva
precedentemente vinto. Si sarebbe dovuta attivare l’unità #4, ma come nel caso
precedente, il livello di “corruzione è tale da impedire alle sinapsi afferenti ai neuroni della
LANN27 attivi di transire. L’attivazione dell’unità #4 è del tutto casuale, dovuta
probabilmente ad asimmetrie dell’elettronica, poiché le sinapsi afferenti ai neuroni attivi di
LANN27 si trovano tutte nello stato depresso quindi non possono contribuire al
potenziamento del neurone di output.. I prossimi pattern sono stati presentati con
decodifica f =0.5. Si è verificato in fasi precedenti che la rete di output funziona anche
con livelli di decodifica più alti di f=0.1
IV-21
1° Set di presentazioni con f = 0.5
1° pattern
P0 """"########""""####""""####""""####""""########""""####""""########""""""""""""####""""########""""""""""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 000000000000""""00000000000000000000""""000000000000000000000000000000000000000000000000000000000000""""""""
Scheda #3 """"00000000""""""""0000000000000000000000000000000000000000000000000000000000000000000000000000""""""""""""
Scheda #4 000000000000""""000000000000""""0000""""00000000""""0000""""00000000""""""""""""0000""""00000000""""""""""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 000000000000""""00000000000000000000""""000000000000000000000000000000000000000000000000000000000000""""""""
Scheda #3 """"00000000""""""""000000000000000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000####0000""""000000000000""""0000""""00000000""""0000""""####0000""""""""""""0000""""0000####""""""""""""
Configurazione delle schede dopo la 3° apertura della finestra temporale
Scheda #2 000000000000""""00000000000000000000""""000000000000000000000000000000000000000000000000000000000000""""""""
Scheda #3 """"00000000""""""""000000000000000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000########""""############""""####""""########""""""""""""####0000""""""""""""####""""########""""""""""""
Il pattern P0 fa attivare l’unità #4. Presentiamo il secondo pattern.
IV-22
2° pattern
P1 """"""""""""""""""""####""""""""""""####""""""""####################""""####""""####""""################""""
Configurazione iniziale delle schede
Scheda #2 000000000000""""00000000000000000000""""000000000000000000000000000000000000000000000000000000000000""""""""
Scheda #3 """"00000000""""""""000000000000000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000########""""############""""####""""########""""""""""""####0000""""""""""""####""""########""""""""""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """"""""""""""""00000000000000000000""""00000000000000000000000000000000""""0000""""0000000000000000""""""""
Scheda #3 """"""""""""""""""""0000""""""""000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000########""""############""""####""""########""""""""""""####0000""""""""""""####""""########""""""""""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 """"""""""""""""####00000000""""####""""""""####################0000####""""####""""################""""""""
Scheda #3 """"""""""""""""""""0000""""""""000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000########""""############""""####""""########""""""""""""####0000""""""""""""####""""########""""""""""""
Il pattern P1 fa attivare la scheda # 2. Presentiamo il terzo pattern.
IV-23
3° pattern
P2 """"####""""""""############""""""""####""""####""""""""####""""""""################""""""""####""""""""####
Configurazione iniziale delle schede
Scheda #2 """"""""""""""""####00000000""""####""""""""####################0000####""""####""""################""""""""
Scheda #3 """"""""""""""""""""0000""""""""000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000########""""############""""####""""########""""""""""""####0000""""""""""""####""""########""""""""""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """"""""""""""""####00000000""""####""""""""####################0000####""""####""""################""""""""
Scheda #3 """"""""""""""""""""0000""""""""000000000000000000000000000000000000""""""""""""0000""""00000000""""""""""""
Scheda #4 0000########""""############""""####""""########""""""""""""####0000""""""""""""####""""########""""""""""""
Il pattern P2 fa attivare la scheda # 4, la stessa che si era attivata con il pattern P0, quindi
l’unità #3 è troppo corrotta dai pattern P0 e P1 per attivarsi con il pattern P2, si attiva la
scheda #4 perché è quella che ha le sinapsi nella configurazione più vicina al pattern P2
IV-24
2° Set di presentazioni con f = 0.5
1° pattern
P0 ################""""########""""############""""""""""""########""""""""########""""""""""""""""""""####""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 0000000000000000000000000000""""0000000000000000""""""""000000000000000000000000000000000000""""""""00000000
Scheda #3 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000""""000000000000
Scheda #4 ####000000000000""""00000000000000000000000000000000000000000000""""""""00000000000000000000000000000000""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 0000000000000000000000000000""""0000000000000000""""""""000000000000000000000000000000000000""""""""00000000
Scheda #3 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000""""000000000000
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Configurazione delle schede dopo la 3° apertura della finestra temporale
Scheda #2 ####000000000000""""00000000""""0000000000000000""""""""000000000000000000000000000000000000""""""""0000""""
Scheda #3 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000""""000000000000
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Si attiva l’unità # 4. Presentiamo il pattren P1
IV-25
2° pattern
P1 """"####################""""########""""""""####""""""""""""########""""""""""""########""""""""""""########
Configurazione iniziale delle schede
Scheda #2 ####000000000000""""00000000""""0000000000000000""""""""000000000000000000000000000000000000""""""""0000""""
Scheda #3 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000""""000000000000
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 ####000000000000""""00000000""""0000000000000000""""""""""""00000000""""""""""""00000000""""""""""""0000""""
Scheda #3 """"####0000000000000000""""00000000""""""""0000000000000000000000000000""""0000000000000000""""00000000####
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 ####000000000000""""00000000""""0000000000000000""""""""""""00000000""""""""""""00000000""""""""""""0000""""
Scheda #3 """"####################""""########""""""""####0000""""0000########""""""""""""########""""""""0000########
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Si attiva la scheda #3. Presentiamo il pattern P2
IV-26
3° pattern
P2 ####################""""""""####""""####""""""""########""""################""""""""""""""""""""""""""""""""
Configurazione iniziale delle schede
Scheda #2 ####000000000000""""00000000""""0000000000000000""""""""""""00000000""""""""""""00000000""""""""""""0000""""
Scheda #3 """"####################""""########""""""""####0000""""0000########""""""""""""########""""""""0000########
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 ####000000000000""""00000000""""0000000000000000""""""""""""00000000""""""""""""00000000""""""""""""0000""""
Scheda #3 """"####################""""########""""""""####0000""""0000########""""""""""""########""""""""0000########
Scheda #4 ################""""########0000########""""""""""""""""####0000""""""""########""""""""""""""""""""0000""""
Il pattern P2 fa attivare la scheda # 3, la stessa che si era attivata con il pattern P1.
IV-27
3° Set di presentazioni con f = 0.5
1° pattern
P0 """"####""""####""""""""####""""############""""""""########""""""""########""""""""####""""########""""####
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 00000000""""00000000""""00000000000000000000""""""""000000000000""""00000000000000000000000000000000""""0000
Scheda #3 """"000000000000""""000000000000000000000000000000000000000000000000000000000000""""000000000000000000000000
Scheda #4 00000000""""0000000000000000000000000000000000000000000000000000000000000000""""0000000000000000000000000000
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 """"0000""""0000""""""""0000""""000000000000""""""""000000000000""""00000000000000000000""""00000000""""0000
Scheda #3 """"0000""""0000""""000000000000000000000000""""00000000000000000000000000000000""""0000""""00000000""""0000
Scheda #4 00000000""""0000000000000000000000000000000000000000000000000000000000000000""""00000000000000000000""""0000
Configurazione delle schede dopo la 3° apertura della finestra temporale
Scheda #2 """"####""""0000""""""""0000""""000000000000""""""""000000000000""""00000000000000000000""""00000000""""0000
Scheda #3 """"0000""""0000""""""""00000000000000000000""""00000000000000000000000000000000""""0000""""00000000""""0000
Scheda #4 00000000""""0000000000000000000000000000000000000000000000000000000000000000""""00000000000000000000""""0000
Configurazione delle schede dopo la 4° apertura della finestra temporale
Scheda #2 """"####""""####""""""""####""""############""""""""########0000""""########0000""""####""""########""""####
Scheda #3 """"0000""""0000""""""""00000000000000000000""""00000000000000000000000000000000""""0000""""00000000""""0000
Scheda #4 00000000""""0000000000000000000000000000000000000000000000000000000000000000""""00000000000000000000""""0000
Si attiva l’unità #2. Presentiamo il pattern P1
IV-28
2° pattern
P1 ########""""########""""""""############""""####""""################""""""""####""""""""""""####""""""""""""
Configurazione iniziale delle schede
Scheda #2 """"####""""####""""""""####""""############""""""""########0000""""########0000""""####""""########""""####
Scheda #3 """"0000""""0000""""""""00000000000000000000""""00000000000000000000000000000000""""0000""""00000000""""0000
Scheda #4 00000000""""0000000000000000000000000000000000000000000000000000000000000000""""00000000000000000000""""0000
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """"####""""####""""""""####""""############""""""""########0000""""########0000""""####""""########""""####
Scheda #3 """"0000""""0000""""""""""""0000000000000000""""""""0000000000000000000000000000""""0000""""00000000""""""""
Scheda #4 """"0000""""00000000""""00000000""""""""000000000000000000000000""""00000000""""00000000000000000000""""0000
Configurazione delle schede dopo la 2° apertura della finestra temporale
Scheda #2 """"####""""####""""""""####""""############""""""""########0000""""########0000""""####""""########""""####
Scheda #3 """"0000""""0000""""""""""""0000000000000000""""""""0000000000000000000000000000""""0000""""00000000""""""""
Scheda #4 """"####""""0000####""""""""####""""""""########""""####""""####""""########""""####""""############""""""""
Si attiva l’unità #4. Presentiamo il terzo pattern.
IV-29
3° pattern
P2 ########""""########""""""""############""""####""""################""""""""####""""""""""""####""""""""""""
Configurazione iniziale delle schede
Scheda #2 """"####""""####""""""""####""""############""""""""########0000""""########0000""""####""""########""""####
Scheda #3 """"0000""""0000""""""""""""0000000000000000""""""""0000000000000000000000000000""""0000""""00000000""""""""
Scheda #4 """"####""""0000####""""""""####""""""""########""""####""""####""""########""""####""""############""""""""
Configurazione delle schede dopo la 1° apertura della finestra temporale
Scheda #2 """"####""""####""""""""####""""############""""""""########0000""""########0000""""####""""########""""####
Scheda #3 """"0000""""0000""""""""""""0000000000000000""""""""0000000000000000000000000000""""0000""""00000000""""""""
Scheda #4 """"####""""0000####""""""""####""""""""########""""####""""####""""########""""####""""############""""""""
Il pattern P2 fa attivare la scheda # 4, la stessa che si era attivata con il pattern P1 .
IV-30
4.4 Analisi dei risultati
Le verifiche sistematiche dell’elettronica hanno dimostrato un perfetto comportamento
elettronico a basso livello
Dalle misure effettuate con l’ausilio della LANN27 sono emersi diversi aspetti interessanti.
Con probabilità di transizione alte la rete di output apprende e riconosce tre attrattori
distinti anche con valore di decodifica maggiore di 0,1 ma non si osserva, almeno
apparentemente, il fenomeno della competizione tra le unità. La rete ha comunque
dimostrato di saper riconoscere pattern corrotti e di attivare l’unità corrispondente al
prototipo da cui il corrotto è stato generato.
Con probabilità di transizione basse (in senso da definire) ci sono due comportamenti che
meritano la nostra attenzione.
Fino a quando nessuna sinapsi transisce verso lo stato potenziato esiste la possibilità che
una qualsiasi delle tre unità (a priori non si sa quale) possa vincere. Si instaura il
meccanismo della competizione per cui ad ogni apertura della finestra temporale si ha
l’attivazione di un’unita rispetto ad un’altra fino a che una non avrà un numero tale di
sinapsi transite verso gli stai potenziati, che il contributo all’efficacia sinaptica della scheda
e l’inibizione sulle altre due unità saranno tali da farla essere la vincente. Questo
comportamento è quello che si voleva che la rete avesse in fase di progettazione
Si osserva però un secondo aspetto non meno importante. Le schede subiscono una
corruzione in fase di apprendimento che fa si che la terza unità non riesca mai ad attivarsi
alla presentazione del pattern P2. Questo perché lo stato depresso e potenziato sono stati
definitivi in cui la sinapsi, una volta esserci transita, ci resta qualsiasi sia lo stimolo esterno.
L’impossibilità di effettuare transizioni verso lo stato labile è dovuta al gap troppo ampio
tra gli stati potenziato (depresso) e le soglie rumorose. In figura IV.4.1 riportiamo una
immagine acquisita tramite l’oscilloscopio in cui si mette in evidenza il ∆V che esiste tra la
Vthr e Jc
Si rende quindi necessaria una modifica che permetta alle sinapsi di effettuare delle
transizioni anche dallo stato potenziato e depresso. Si vuole ridurre il ∆V solo se la sinapsi
si trova in uno stato diverso da quello labile. Nel capitolo V mostreremo il circuito
elettronico che è stato implementato per avere questo effetto.
IV-31
Figura IV.4.A Immagine acquisita dall’oscilloscopio in cui si mostra una transizione verso lo stato
potenziato Jc durante l’apertura della finestra temporale. E’ evidenziato il gap ∆V presente tra lo statoJc e la soglia rumorosa Vthr. Si noti, durante l’apertura della finestra temporale, il contributo dello stimolo
esterno ed il contributo del neurone di output presente sulla soglia rumorosa.
V-1
Capitolo V “Quanto più innocua sembreràuna modifica, tanto più le sueconseguenze si estenderanno emaggiore sarà il numero di disegniche dovranno essere rifatti.”
A. Bloch
La modifica
Abbiamo mostrato nel precedente capitolo l’impossibilità da parte della sinapsi di
interstrato di effettuare transizioni verso lo stato labile una volta che questa abbia effettuato
una transizione verso lo stato potenziato (Jc) o depresso (-Jc). Si è resa quindi necessaria
una modifica che, in funzione dello stato in cui si trovi la sinapsi, sposti le soglie in modo
da avere una probabilità di transizione non nulla verso lo stato labile. Mostriamo in questo
capitolo la modifica che permette questo.
5.1 Un termine nuovo nelle equazioniVediamo ora cosa succede alle equazioni della dinamica sinaptica dopo l’aggiunta della
modifica.
Riprendiamo l’equazione (2.2G) senza soffermarci sui singoli termini che sono stati
ampiamente illustrati nel secondo e terzo capitolo:
τ s ij ij jJ t J t S f⋅ = − + +.
( ) ( ) Re (5.1.A)
dove il primo termine rappresenta l’efficacia sinaptica, il secondo termine rappresenta lo
stimolo esterno mentre l’ultimo termine rappresenta il refresh stocastico. E’ quindi questo
il termine che a noi interessa. Il termine di refresh è dato da:
[ ] [ ])t(JTJT)t(JJJfRe ijthcthijc0 −θ⋅+−θ⋅+= −−++ (5.1.B)
dove
T J f I tth th i± ±= +! ( ) ( )ω (5.1.C)
In questa ultima equazione viene aggiunto un nuovo termine
V-2
)J()t()I(fJT ijithth±±± Φ+ω+= ! (5.1.D)
La modifica quindi non fa altro che aggiungere un offset al termine Tth!. Dalle figure
V.1.A e V.1.B si può capire bene il perché di questa modifica. La prima mostra la
transizione della sinapsi interstrato dallo stato labile allo stato potenziato quando è presente
in ingresso uno stimolo esterno positivo. Appena il segnale Si incontra la soglia Vthr+ si ha
la transizione. In figura V.1.B si ha la sinapsi nello stato potenziato. In presenza di uno
stimolo esterno che tenda a portare la sinapsi nello stato depresso, non si ha nessuna
transizione per la presenza di un gap tra Jc e Vthr+ (∆V) troppo ampio.
Figura V.1.A Transizione dallo stato labile (J0) allo stato potenziato (Jc) in presenza di uno stimolo esterno
positivo
Figura V.1.B Presenza in ingresso alla sinapsi dello stimolo esterno negativo, con il neurone di output
inattivo
V-3
E’ quindi necessaria una modifica che sposti le soglie verso gli stati potenziato e depresso.
Si vuole inoltre che questo effetto non sia presente sulle sinapsi afferenti al neurone di
output attivo durante l’apertura della finestra temporale. Questo ci è garantito, come si
vede chiaramente in figura V.1.C, dalla presenza sulla soglia + rumore del contributo del
neurone di output fi.
Si vede chiaramente che in presenza di stimolo esterno negativo e neurone di output attivo
il gap tra lo stato Jc e la soglia aumenta, rendendo impossibile la transizione.
Figura V.1.C Presenza sulla sinapsi dello stimo esterno negativo, con il neurone di output attivo.
Quindi anche in presenza della modifica la transizione è comunque proibita. Ricapitolando,
quando la sinapsi si trova nello stato potenziato, e il neurone a cui afferisce è disattivo, la
soglia + rumore si sposta verso questo. Quando la sinapsi è nello stato labile non è presente
nessun effetto sulle soglie, mentre, quando il neurone a cui la sinapsi afferisce, è attivo,
l’effetto della modifica è annullato dalla presenza del contributo fi sulla soglia. Il
procedimento appena descritto vale, specularmente, anche per lo stato depresso.
V-4
5.2 Implementazione hardware
Per l’implementazione si è utilizzato il più semplice circuito raddrizzatore realizzabile con
un amplificatore operazionale. Poiché abbiamo la necessità di agire in modo separato sulla
soglia positiva e su quella negativa, sono stati realizzati due raddrizzatori, uno a semionda
positiva e uno a semionda negativa. I due circuiti sono mostrati in figura V.2.A e figura
V.2.B. Analizziamo il circuito a semionda positiva (fig.V.2.A) L’operazionale è utilizzato
in configurazione invertente.
Figura V.2.A Raddrizzatore a semionda positiva
Quando il segnale di ingresso (V0) è positivo, l’uscita (V1) è a una tensione negativa che
interdice il diodo D2. Quindi la controreazione attraverso la resistenza R0 è
interrotta. La tensione di uscita cresce fino a che non entra in conduzione il diodo D1
creando una linea di retroazione sull’operazionale. Quindi con ingressi positivi il circuito
ha uscita nulla. Quando l’ingresso è negativo, l’uscita è positiva, il diodo D2 conduce
mentre D1 è interdetto. In questo modo l’operazionale è controreazionato dalla resistenza
R1 con guadagno A=-R0/R1. Questo circuito ha una linearità perfetta poiché il diodo D2
entra in conduzione appena la tensione V0 vale V"/A0. Montando i diodi in modo opposto
si ottiene il raddrizzatore a semionda negativa
V-5
Figura V.2.B Raddrizzatore a semionda negativa
Mostriamo in figura V.2.C la funzione di trasferimento dei due raddrizzatori. Ai due
circuiti è stato mandato in ingresso il segnale di clipping della sinapsi. E’ chiaro che
quando questa è nello stato potenziato si attiva solo il raddrizzatore positivo, viceversa
quando è nello stato depresso. In figura V.2.D riportiamo lo schema a blocchi della sinapsi
modificata. Le uscite dei due raddrizzatori sono state collegate tramite un trimmer
multigiro all’ingresso dei due sommatori soglia+rumore. Lo scopo dei trimmer è quello di
poter regolare il guadagno del segnale proveniente dalla modifica. I trimmer sono da 10
KΩ, mentre la resistenza di controreazione dei sommatori vale 4.7 KΩ, questo ci porta ad
avere un guadagno regolabile, che può variare da .47 a valori ben al di sopra di 1. Si è
scelto di utilizzare l’operazionale LF 412 sia per l’estrema versatilità, sia per il costo
contenuto (visto che per la realizzazione della modifica ne sono stati utilizzati centootto).
Figura V.2.C Funzioni di trasferimento dei due raddrizzatori.
V-6
In figura V.2.E riportiamo lo schema elettrico completo di una singola sinapsi interstrato
con la propria modifica.
Figura V.2.D Schema a blocchi della sinapsi interstrato più la modifica.
5.3 Realizzazione della scheda di modifica
Per la realizzazione della scheda si è utilizzato il software Ace-Plus per gli schemi elettrici
e il software Board-Master per la realizzazione dello stampato. Le dimensioni della scheda
sono esattamente quelle del back-plane ( 8993 mils x 16800 mils), in modo tale da poterla
applicare, con appositi distanziatori esattamente sul back-plane.
Questa modifica deve essere realizzata individualmente per ogni sinapsi interstrato della
rete di output. Il numero di circuiti di modifica dipende, quindi, dal numero di schede
1N27S che si intende adoperare, come abbiamo già visto nel capitolo IV, in questa fase
abbiamo lavorato con massimo tre schede. Si è deciso quindi di implementare la modifica
per sole quattro schede. La scheda contiene 108 circuiti di modifica (27x4).
V-7
Questa scheda è stata realizzata in modo tale che la modifica non sia permanente. A tale
scopo sulla scheda sono presenti 4 connettori EURO da 96 pin nei quali possono essere
inseriti i connettori provenienti dalle singole schede 1N27S, uno per ogni scheda. Non
potendo riprogettare le schede 1N27S, le connessioni che collegano i circuiti di modifica
con le sinapsi interstrato sono state effettuate tramite fili da wire-wrape.
La scheda di modifica è stata realizzata su sei strati, su di essa sono presenti 432 diodi,
108 LF 412
216 trimmer e 432 resistenze. La realizzazione fisica della scheda è stata affidata alla ditta
Ermes.
Riportiamo nelle figure V.3.A ÷ V.3.G i layer della scheda. In figura V.3.H e V3.I
riportiamo le foto in scala della scheda completa e delle saldature che sono state effettuate
sulla scheda 1N27S. Discuteremo nel prossimo capitolo la fase di messa a punto e
regolazione riguardante la scheda di modifica.
Figura V.3.I Foto delle saldature con fili per wire-wrap sulle schede 1N27S.
V-8
VI-1
Capitolo VI “La conoscenza razionale è ricavatadall’esperienza che abbiamo deglioggetti e degli eventi del nostroambiente quotidiano. Essa appartieneal campo dell’intelletto, la cuifunzione è quella di discriminare,dividere, confrontare, misurare eordinare in categorie” Fritjof Capra - Il Tao della Fisica
Test finali e conclusioni
6.1 Regolazioni preliminari
Prima di effettuare i test sulla rete di output modificata si è proceduto alla regolazione dei
valori degli offset da sommare alle soglie rumorose quando le sinapsi inter strato si trovano
in uno stato diverso da quello labile. Questa fase è piuttosto delicata poiché da questa
regolazione dipenderanno le probabilità di transizione dagli stati potenziato e depresso a
quello labile. E’ chiaro che questa probabilità dipenderà anche dal valore che si assegna
alle due soglie rumorose tramite il software di gestione. Questo perché l’offset si somma al
valore impostato via software, quindi più questo è lontano dallo stato labile più sarà vicino
a quello potenziato e viceversa. Nelle figure VI.1.A e messo in evidenza questo aspetto. La
prima operazione da effettuare è quindi quella di fissare il valore delle soglie rumorose con
cui si vorrà lavorare. Nella tabella seguente mostriamo i valori delle due soglie rumorose
che sono stati fissati basandoci sui risultati ottenuti dai test preliminari illustrati nel
capitolo IV.
SEGANLE VALORE IMPOSTATOSoglia positiva (Vthr) 1 Volt
Soglia negativa (Nvthr) -1 Volt Tabella VI.1 Valori assegnati alle soglie rumorose per i test della rete modificata.
VI-2
Figura VI.1.A Immagine acquisita dall’oscilloscopio digitale in cui è mostrata una transizione verso lo stato
depresso durante l’apertura della finestra temporale, con la presenza del circuito di modifica
Nella figura sovrastante si mostra una transizione della sinapsi dallo stato labile allo stato
depresso durante l’apertura della finestra temporale con la presenza di uno stimolo esterno
che tende a deprimere la sinapsi. E’ presente l’effetto di spostamento delle soglie dovuto
alla modifica. Il ∆V’ è il valore che si assegna, via software, alla soglia rumorosa negativa
(Nvthr), il ∆V’’ è il valore che si assegna all’offset, questo valore è impostato dalla
regolazione hardware dei trimmer della soglia negativa presenti sulla scheda di modifica, il
∆V’’’ è la differenza tra il valore di clipping –Jc e la somma dei valori ∆V’ e ∆V’’. E’
evidente che il ∆V’’’ dipenderà, una volta fissato il ∆V’’, dal valore che viene assegnato
all’Nvthr tramite il software di gestione. Maggiore è il ∆V’(minore è quindi la probabilità
di transizione dallo stato labile a quello depresso) minore è il ∆V’’’(maggiore è quindi la
probabilità di transizione dallo stato depresso a quello labile). Bisogna quindi trovare un
compromesso tra l’ampiezza da assegnare all’offset e il valore della soglia impostato da
software. In realtà esistono altri parametri tramite cui si possono modificare le probabilità
di transizione, variando le ampiezze dello stimolo esterno si ha un aumento o una
diminuzione della probabilità di transizione che va nello stesso verso per tutte le transizioni
possibili.
VI-3
Un altro parametro che modifica la probabilità di transizione è il theta da cui dipende
l’ampiezza del segnale d’inibizione. Dal Jc/2 dipende invece l’ampiezza dell’efficacia
sinaptica. Inoltre bisogna considerare il fatto che la sinapsi dovrà transire solo quando il
contributo dato dal neurone a cui afferisce è nullo. Bisogna considerare quindi che il ∆V’’’
dovrà essere minore del ∆V’. Fissiamo quindi l’offset in modo tale da avere il ∆V’’’ (vedi
figura VI.1.A) sia pari a circa metà del ∆V’. Per capire bene quello che succede
guardiamo le figure VI.1.B.
Figura VI.1.B Transizioni con la presenza della modifica. Le finestre temporali sono tutte di 20 ms..
a) transizione dallo stato labile a quello potenziato.
b) transizione dallo stato labile a quello depresso.
c) transizione dallo stato potenziato a quello labile con neurone afferente disattivo.
d) impossibilità di transizione dovuta alla presenza del neurone afferente attivo
Nella figura a) si ha una transizione dallo stato labile a quello potenziato con relativo
spostamento della soglia verso Jc, nella b) si ha una transizione dallo stato labile a quello
depresso ed anche in questo caso si ha lo spostamento della soglia verso -Jc. Le figure c) e
d) sono le più interessanti. Nella prima è mostrata una transizione dallo stato potenziato a
quello depresso, si noti che durante l’apertura della finestra temporale non è presente sulla
soglia rumorosa il contributo dovuto all’attivazione del neurone di output a cui la sinapsi in
esame afferisce. Nella seconda, invece, è presente il contributo dovuto all’attivazione del
neurone di output. Quindi sia la soglia rumorosa che lo stimolo esterno subiscono uno
VI-4
spostamento nella stessa direzione, rendendo impossibile la transizione. Questo è proprio
quello che si vuole che accada. Le sinapsi, afferenti ad un neurone di output attivo durante
l’apertura della finestra temporale, non devono subire transizioni dagli stati potenziato e
depresso poiché stanno imparando a riconoscere l’attrattore.
Dai test descritti nel capitolo IV si osserva che la corruzione che impediva
l’apprendimento del terzo pattern era dovuto principalmente alla transizione delle sinapsi
nello stato depresso. Si è pensato quindi di sbilanciare leggermente i due offset in modo da
avere una probabilità di transizione maggiore dallo stato depresso a quello labile rispetto a
quella dallo stato potenziato a quello labile I valori assegnati ai trimmer che determinano
l’offset sono riportati nella tabella sottostante in cui è indicata anche l’amplificazione
dell’operazionale in configurazione di sommatore* e il valore del ∆V’’’ (figura VI.1.A) in
riferimento ai valori delle soglie della tabella VI.1
Valore del trimmer (ΩΩΩΩ) Guadagno del sommatore ∆∆∆∆V’’’ (mV)**
Offset Soglia Positiva 1650±±±±1*** -2.84±±±±0.05**** 532±±±±1Offìset Soglia Negativa 1400±±±±1 3.35±±±±0.05 620±±±±1Tabella VI.2 Impostazione dei valori dei trimmer del circuito di modifica
Nel prossimo paragrafo illustriamo i nuovi test effettuati sulla rete di output modificata
utilizzando la LANN27.
* Si veda lo schema elettrico della sinapsi inter strato modificata, nel capitolo V. I sommatori a cui si fariferimento sono quelli del circuito di refresh stocastico a cui vengono collegate le due uscite del circuito dimodifica (rappresentato in rosso). I sommatori sono montati in configurazione invertente e il valore dellaresistenza di controreazione che determina, insieme ai trimmer, il guadagno dell’amplificatore vale 4.7 KΩ±5%..** Il ∆V’’’ a cui si fa riferimento è quello indicato nella figura VI.1.A, cioè il gap tra lo stato potenziato odepresso e la soglia rumorosa dopo la transizione verso uno di questi stati. L’errore che è presente nellamisura è dovuto alla scala utilizzata nell’oscilloscopio per la misura*** L’errore nella misura del valore del potenziometro è determinato dallo strumento adoperato. In questocaso il tester digitale.**** Il calcolo dell’errore del guadagno è stato calcolato considerando sommando gli errori relativi dei valoridella resistenza di controreazione (±5%) e del trimmer (0.6%)
VI-5
6.2 I test con la modifica
Descriviamo in questo paragrafo i test conclusivi effettuati sulla rete di output con l’azione
della modifica sulle sinapsi inter strato.
6.2.1 Modalità di svolgimento dei test
Questa serie di test è stata effettuata con una modalità leggermente diversa da quella
descritta nel capitolo IV. La prima differenza rispetto ai test precedenti sta nell’apertura
della finestra temporale. In questo caso si è presentato il patten in ingresso per un tempo
fisso di 10 secondi. In questo modo è visibile il meccanismo di competizione tra le tre
unità e poiché le probabilità di transizione sono basse è garantito il clipping di tutte , o
quasi, le sinapsi dell’unità vincente. La seconda differenza sta nel fatto che si sono
presentati pattern in ingresso con decodifica che varia da 01 (tre neuroni attivi su
ventisette) a 0.5 (metà dei neuroni attivi). In particolare sono stati costruiti manualmente i
pattern con decodifica 0.1-0.2-0.3 mentre quelli con decodifica 0.5 sono stati generati in
maniera random e con distanza di hamming massima dal software di gestione della
LANN27. Si volgono i test con decodifica 0.5 per verificare il corretto comportamento
della rete di output in condizioni di massima efficienza di LANN27
6.2.2 Le misure
Nelle seguenti pagine sono riportate le tabelle contenenti i risultati dei test. La prima
tabella contiene i tre pattern utilizzati con il loro livello di codifica. Le successive
contengono i singoli pattern presentati in ingresso e i rispettivi stati delle unità (indicando
quella vincente in rosso) alla chiusura della finestra temporale di 10 secondi. Il
simbolo”!” indica che la sinapsi ha subito una transizione verso lo stato potenziato, il
simbolo “"” indica una transizione verso lo stato depresso, il simbolo “0” indica che la
sinapsi si trova nello stato labile. Poiché è presente l’azione della modifica, le sinapsi che
si trovano nello stato labile alla chiusura della finestra temporale possono aver subito delle
transizione durante la presentazione, ma poiché la loro unità non si è rilevata la vincente
sono transite verso lo stato labile.
VI-6
1° set di presentazioni con decodifica f=0.1 P0 """"""""!!!!""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!!!""""
P1 !!!!""""""""""""""""!!!!""""""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""
P2 """"""""""""""""""""""""""""""""""""""""!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""
1° patternP0 """"""""!!!!""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!!!""""
Unità #2 0000""""!!!!""""""""""""""""""""0000!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""00000000!!!!""""
Unità #3 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2° patternP1 !!!!""""""""""""""""!!!!""""""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""
Unità #2 0000""""!!!!""""""""0000""""""""0000!!!!""""""""""""""""0000""""""""""""""""""""""""0000""""""""0000!!!!""""
Unità #3 !!!!""""""""""""!!!!""""""""""""0000""""""""""""!!!!0000""""""""""""""""""""0000""""""""""""""""""""""""""""
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3° patternP2 """"""""""""""""""""""""""""""""""""""""!!!!""""""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""
Unità #2 0000""""!!!!""""""""0000""""""""0000!!!!""""0000""""""""0000""""""""0000""""""""""""0000""""""""0000!!!!0000
Unità #3 !!!!""""""""""""!!!!0000""""""""0000""""0000""""!!!!0000""""""""0000""""""""0000""""""""""""00000000""""0000
Unità #4 """"""""""""""""""""""""0000""""""""""""!!!!""""""""""""""""!!!!!!!!0000""""""""""""""""0000""""""""""""""""
Dopo l'apertura delle tre finestre temporali si osserva che si è attivata una unità di output
per ogni singolo pattern.
VI-7
2° set di presentazioni con decodifica f=0.1 P0 !!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
P1 """"""""""""!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
P2 """"""""""""""""""""""""!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
1° patternP0 !!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Unità #2 000000000000000000000000000000000000000000000000000000000000000000000000""""0000000000000000000000000000""""
Unità #3 00000000000000000000000000000000""""000000000000""""""""0000000000000000000000000000000000000000000000000000
Unità #4 !!!!!!!!!!!!""""""""""""""""""""""""""""0000""""""""""""""""""""""""""""""""""""""""""""""""""""""""0000""""
2° patternP1 """"""""""""!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Unità #2 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000""""
Unità #3 0000""""""""!!!!0000!!!!00000000""""""""""""""""""""0000""""""""""""""""""""""""0000""""""""""""""""""""""""
Unità #4 !!!!!!!!!!!!""""""""0000""""""""""""""""0000""""""""""""""""0000""""""""""""""""00000000""""""""""""0000""""
3° patternP2 """"""""""""""""""""""""!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Unità #2 """"""""""""""""""""""""!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Unità #3 0000""""""""!!!!0000!!!!00000000""""0000""""""""""""000000000000""""""""""""""""0000""""0000""""""""0000""""
Unità #4 !!!!!!!!!!!!""""""""0000""""""""0000""""0000""""0000""""""""00000000""""""""""""00000000""""""""""""0000""""
Anche in questo caso, dopo l'apertura delle tre finestre temporali si osserva che si è attivata
una unità di output per ogni singolo pattern.
VI-8
3° set di presentazioni con decodifica f=0.1 P0 !!!!""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""
P1 """"""""""""!!!!""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!!!
P2 """"""""""""""""""""""""""""""""!!!!""""""""!!!!""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""
1° patternP0 !!!!""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""
Unità #2 !!!!""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""
Unità #3 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2° patternP1 """"""""""""!!!!""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!!!
Unità #2 !!!!""""0000""""0000""""!!!!""""""""0000""""""""""""""""""""!!!!""""""""""""0000""""""""""""""""""""0000""""
Unità #3 00000000000000000000000000000000""""00000000000000000000000000000000000000000000""""000000000000000000000000
Unità #4 """"""""""""""""!!!!""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!!!
3° patternP2 """"""""""""""""""""""""""""""""!!!!""""""""!!!!""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""
Unità #2 !!!!""""0000""""0000""""!!!!""""""""000000000000""""0000""""!!!!""""""""""""0000""""""""00000000""""0000""""
Unità #3 """"""""""""""""""""""""""""""""!!!!""""""""!!!!""""""""""""""""""""""""!!!!""""""""""""""""""""""""""""""""
Unità #4 """"0000""""0000!!!!""""""""00000000""""""""!!!!""""""""""""0000""""0000""""""""0000""""""""0000""""""""!!!!
Anche in questo caso la rete di output si comporta in modo corretto e si attiva una unità per
ogni singolo pattern.
VI-9
1° set di presentazioni con decodifica f=0.2 P0 """"!!!!!!!!""""""""""""!!!!""""""""""""!!!!""""""""""""""""""""""""!!!!""""!!!!""""""""""""""""""""""""""""
P1 """"""""""""""""!!!!!!!!""""""""""""!!!!""""!!!!""""""""""""!!!!""""""""""""""""""""""""""""""""!!!!""""""""
P2 """"""""""""!!!!""""""""""""!!!!!!!!""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!
1° patternP0 """"!!!!!!!!""""""""""""!!!!""""""""""""!!!!""""""""""""""""""""""""!!!!""""!!!!""""""""""""""""""""""""""""
Unità #2 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #3 0000!!!!!!!!""""""""""""!!!!""""""""""""!!!!""""""""""""""""""""""""!!!!0000!!!!""""""""""""""""""""""""""""
Unità #4 0000000000000000000000000000000000000000""""0000000000000000000000000000000000000000000000000000""""00000000
2° patternP1 """"""""""""""""!!!!!!!!""""""""""""!!!!""""!!!!""""""""""""!!!!""""""""""""""""""""""""""""""""!!!!""""""""
Unità #2 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #3 0000!!!!!!!!""""0000""""!!!!0000""""""""!!!!""""""""""""0000""""""""!!!!0000!!!!""""""""0000""""""""00000000
Unità #4 """"""""""""""""!!!!!!!!""""""""""""!!!!""""!!!!""""""""""""!!!!""""0000""""""""""""""""""""""""!!!!""""0000
3° patternP2 """"""""""""!!!!""""""""""""!!!!!!!!""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""!!!!
Unità #2 """"""""""""!!!!""""""""""""!!!!!!!!""""""""""""!!!!!!!!""""""""""""""""""""""""""""""""""""""""0000""""!!!!
Unità #3 0000!!!!!!!!""""0000""""!!!!00000000""""!!!!0000""""""""0000""""""""!!!!0000!!!!""""""""0000""""""""00000000
Unità #4 00000000""""""""!!!!!!!!""""0000""""!!!!""""!!!!""""""""""""!!!!""""0000""""""""""""""""""""""""!!!!""""0000
Si noto che l'ordine di attivazione delle schede, nelle varie presentazioni è sempre diverso,
indice che esiste una simmetria tra le schede.
VI-10
1° set di presentazioni con decodifica f=0.3P0 !!!!""""!!!!""""!!!!""""!!!!""""!!!!""""""""""""!!!!""""""""!!!!""""""""""""""""""""""""!!!!""""""""!!!!""""
P1 """"!!!!""""!!!!""""!!!!""""""""""""!!!!!!!!""""""""""""""""""""""""""""!!!!""""""""!!!!""""""""!!!!""""!!!!
P2 """"""""""""""""""""""""""""!!!!""""""""""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!!!!!""""""""!!!!""""""""""""
1° patternP0 !!!!""""!!!!""""!!!!""""!!!!""""!!!!""""""""""""!!!!""""""""!!!!""""""""""""""""""""""""!!!!""""""""!!!!""""
Unità #2 0000""""!!!!""""!!!!""""!!!!""""!!!!""""""""""""!!!!""""""""!!!!""""""""""""""""""""0000!!!!""""""""!!!!""""
Unità #3 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #4 00000000000000000000000000000000000000000000""""000000000000000000000000000000000000000000000000000000000000
2° patternP1 """"!!!!""""!!!!""""!!!!""""""""""""!!!!!!!!""""""""""""""""""""""""""""!!!!""""""""!!!!""""""""!!!!""""!!!!
Unità #2 0000""""!!!!0000!!!!0000!!!!""""!!!!0000""""""""!!!!""""0000!!!!""""""""0000""""""""0000!!!!0000""""!!!!""""
Unità #3 """"!!!!""""!!!!""""!!!!""""""""""""!!!!!!!!""""""""""""""""""""""""0000""""""""""""!!!!""""0000!!!!""""!!!!
Unità #4 00000000000000000000000000000000000000000000""""000000000000000000000000000000000000000000000000000000000000
3° patternP2 """"""""""""""""""""""""""""!!!!""""""""""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!!!!!""""""""!!!!""""""""""""
Unità #2 0000""""!!!!0000!!!!0000!!!!""""!!!!0000""""""""!!!!""""0000!!!!""""""""0000""""""""0000!!!!0000""""00000000
Unità #3 """"!!!!0000!!!!""""!!!!""""!!!!""""!!!!!!!!""""""""0000""""""""""""0000""""""""""""!!!!""""0000!!!!""""!!!!
Unità #4 """"0000""""""""""""""""!!!!""""""""""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!!!!!""""""""!!!!""""""""""""
Anche con decodifica 0.3 la rete presenta un corretto comportamento.
VI-11
1° set di presentazioni con decodifica f=0.5P0 !!!!!!!!""""!!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""!!!!""""""""""""""""""""""""!!!!""""""""""""!!!!""""!!!!!!!!
P1 !!!!!!!!!!!!""""""""!!!!""""!!!!!!!!!!!!""""!!!!!!!!""""""""""""!!!!""""!!!!""""!!!!""""""""""""!!!!!!!!""""
P2 !!!!!!!!""""""""""""!!!!!!!!""""""""!!!!!!!!""""!!!!!!!!""""!!!!""""!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""
1° patternP0 !!!!!!!!""""!!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""!!!!""""""""""""""""""""""""!!!!""""""""""""!!!!""""!!!!!!!!
Unità #2 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #3 !!!!!!!!""""!!!!!!!!!!!!0000""""!!!!!!!!!!!!""""0000""""""""0000""""""""""""!!!!""""""""""""!!!!""""!!!!!!!!
Unità #4 0000000000000000000000000000000000000000000000000000""""000000000000000000000000000000000000000000000000
2° patternP1 !!!!!!!!!!!!""""""""!!!!""""!!!!!!!!!!!!""""!!!!!!!!""""""""""""!!!!""""!!!!""""!!!!""""""""""""!!!!!!!!""""
Unità #2 !!!!!!!!!!!!!!!!""""!!!!""""!!!!!!!!!!!!""""!!!!!!!!!!!!""""""""!!!!""""""""""""!!!!""""""""""""!!!!!!!!""""
Unità #3 !!!!!!!!""""!!!!!!!!!!!!0000""""!!!!!!!!!!!!""""0000""""""""0000""""0000""""!!!!""""""""""""!!!!0000!!!!!!!!
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3° patternP2 !!!!!!!!""""""""""""!!!!!!!!""""""""!!!!!!!!""""!!!!!!!!""""!!!!""""!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""
Unità #2 !!!!!!!!!!!!!!!!0000!!!!""""!!!!!!!!!!!!""""!!!!!!!!!!!!00000000!!!!""""0000""""!!!!""""""""0000!!!!!!!!""""
Unità #3 !!!!!!!!0000!!!!!!!!!!!!0000""""!!!!!!!!!!!!""""0000""""""""0000""""0000""""!!!!""""""""""""!!!!0000!!!!!!!!
Unità #4 !!!!!!!!""""""""""""!!!!!!!!""""0000!!!!!!!!""""!!!!!!!!""""!!!!""""!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""
I tre pattern utilizzati qui, sono generati da LANN con distanza di hamming massima, la
rete di output distingue anche questa volta i tre pattern.
VI-12
2° set di presentazioni con decodifica f=0.5P0 !!!!!!!!""""""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""!!!!""""!!!!!!!!""""!!!!!!!!!!!!!!!!""""!!!!""""""""
P1 !!!!!!!!""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""!!!!
P2 !!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""!!!!!!!!""""""""""""""""!!!!""""""""!!!!!!!!""""
1° patternP0 !!!!!!!!""""""""""""!!!!!!!!!!!!!!!!""""""""""""""""""""!!!!""""!!!!!!!!""""!!!!!!!!!!!!!!!!""""!!!!""""""""
Unità #2 000000000000000000000000000000000000""""00000000000000000000""""00000000000000000000000000000000000000000000
Unità #3 !!!!!!!!""""""""""""!!!!0000!!!!!!!!""""""""""""""""""""!!!!""""!!!!""""""""!!!!!!!!!!!!!!!!""""!!!!""""""""
Unità #4 0000000000000000000000000000000000000000""""00000000000000000000""""0000000000000000000000000000000000000000
2° patternP1 !!!!!!!!""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""""""!!!!!!!!""""""""""""""""""""""""!!!!
Unità #2 000000000000!!!!00000000000000000000""""00000000000000000000""""00000000000000000000000000000000000000000000
Unità #3 !!!!!!!!0000""""""""!!!!0000!!!!!!!!""""00000000""""""""!!!!""""!!!!0000""""!!!!!!!!!!!!!!!!""""!!!!0000""""
Unità #4 !!!!!!!!0000!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!""""!!!!""""""""""""""""""""""""!!!!
3° patternP2 !!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""!!!!!!!!""""""""""""""""!!!!""""""""!!!!!!!!""""
Unità #2 !!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""!!!!!!!!""""""""""""""""!!!!""""""""!!!!!!!!""""
Unità #3 !!!!!!!!0000""""""""!!!!0000!!!!!!!!""""00000000""""00000000""""!!!!0000""""!!!!!!!!!!!!!!!!""""!!!!0000""""
Unità #4 !!!!!!!!0000!!!!""""00000000!!!!!!!!!!!!!!!!!!!!""""""""000000000000!!!!""""!!!!""""""""000000000000""""0000!!!!
Il funzionamento con decodifica 0.5 è corretto. Per il primo pattern si attiva la scheda 3 per
il secondo la scheda 4, per il terzo la scheda 2
VI-13
3° set di presentazioni con decodifica f=0.5P0 """"""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!""""!!!!""""""""!!!!""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!
P1 """"!!!!!!!!""""!!!!!!!!""""""""!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""!!!!
P2 """"""""!!!!""""""""""""!!!!!!!!""""""""""""!!!!!!!!""""!!!!""""""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1° patternP0 """"""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!""""!!!!""""""""!!!!""""!!!!!!!!!!!!!!!!!!!!!!!!""""""""!!!!
Unità #2 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #3 """"""""""""""""""""""""""""!!!!!!!!!!!!!!!!!!!!""""!!!!""""""""!!!!00000000!!!!!!!!!!!!!!!!0000""""""""!!!!
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2° patternP1 """"!!!!!!!!""""!!!!!!!!""""""""!!!!""""""""""""""""""""""""""""""""!!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""!!!!
Unità #2 """"!!!!!!!!0000!!!!!!!!0000""""!!!!""""0000""""""""""""""""""""""""!!!!!!!!!!!!!!!!0000!!!!!!!!!!!!""""!!!!
Unità #3 0000""""""""0000""""""""""""!!!!!!!!!!!!!!!!!!!!""""!!!!""""""""!!!!00000000!!!!!!!!!!!!!!!!0000""""0000!!!!
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3° patternP2 """"""""!!!!""""""""""""!!!!!!!!""""""""""""!!!!!!!!""""!!!!""""""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Unità #2 """"!!!!!!!!0000!!!!!!!!0000""""!!!!""""0000""""000000000000""""""""!!!!!!!!0000!!!!0000!!!!!!!!!!!!""""!!!!
Unità #3 0000""""""""0000""""""""""""!!!!0000!!!!!!!!!!!!""""00000000""""!!!!00000000!!!!!!!!!!!!!!!!0000""""0000!!!!
Unità #4 """"""""!!!!""""""""0000!!!!!!!!""""0000""""!!!!!!!!""""!!!!""""""""!!!!0000""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!
La scheda 3 si attiva per prima poi la scheda 2 ed infine la 4.
VI-14
4° set di presentazioni con decodifica f=0.5P0 !!!!""""""""""""!!!!!!!!""""!!!!!!!!!!!!!!!!""""""""!!!!""""""""!!!!!!!!""""""""!!!!""""!!!!!!!!!!!!""""""""
P1 """"""""""""""""""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""!!!!!!!!""""
P2 """"!!!!""""!!!!!!!!""""!!!!""""""""!!!!!!!!!!!!""""""""""""!!!!""""!!!!""""""""!!!!!!!!!!!!!!!!""""!!!!""""
1° patternP0 !!!!""""""""""""!!!!!!!!""""!!!!!!!!!!!!!!!!""""""""!!!!""""""""!!!!!!!!""""""""!!!!""""!!!!!!!!!!!!""""""""
Unità #2 !!!!""""""""""""!!!!!!!!""""!!!!!!!!!!!!!!!!""""""""!!!!""""""""!!!!!!!!""""""""!!!!""""!!!!!!!!!!!!""""""""
Unità #3 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2° patternP1 """"""""""""""""""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""!!!!!!!!""""
Unità #2 !!!!""""00000000!!!!!!!!""""0000!!!!!!!!!!!!00000000!!!!""""""""!!!!!!!!""""""""!!!!0000!!!!!!!!!!!!""""""""
Unità #3 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #4 """"""""""""""""""""""""!!!!""""""""!!!!!!!!!!!!!!!!!!!!""""""""!!!!!!!!""""!!!!0000""""!!!!!!!!""""!!!!!!!!""""
3° patternP2 """"!!!!""""!!!!!!!!""""!!!!""""""""!!!!!!!!!!!!""""""""""""!!!!""""!!!!""""""""!!!!!!!!!!!!!!!!""""!!!!""""
Unità #2 !!!!""""00000000!!!!!!!!00000000!!!!!!!!!!!!00000000!!!!""""""""!!!!!!!!0000""""!!!!0000!!!!!!!!!!!!""""0000
Unità #3 """"!!!!""""!!!!!!!!""""!!!!""""""""!!!!!!!!!!!!""""""""""""!!!!""""!!!!""""""""!!!!!!!!!!!!!!!!""""!!!!""""
Unità #4 """"00000000""""0000""""!!!!00000000!!!!!!!!!!!!!!!!!!!!""""00000000!!!!""""!!!!0000""""!!!!!!!!""""!!!!!!!!0000
Anche con decodifica 0.5 l'ordine di attivazione delle schede è stocastico
VI-15
5° set di presentazioni con decodifica f=0.5P0 !!!!!!!!""""!!!!!!!!""""!!!!""""""""!!!!""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!""""!!!!""""""""""""""""!!!!
P1 !!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""""""""""!!!!!!!!!!!!""""""""""""""""!!!!""""""""!!!!""""!!!!""""""""""""
P2 !!!!""""""""!!!!""""!!!!""""""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""""""!!!!""""!!!!""""
1° patternP0 !!!!!!!!""""!!!!!!!!""""!!!!""""""""!!!!""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!""""!!!!""""""""""""""""!!!!
Unità #2 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Unità #3 !!!!!!!!""""!!!!!!!!""""!!!!""""""""!!!!""""!!!!""""!!!!!!!!""""!!!!00000000!!!!""""!!!!""""0000""""""""!!!!
Unità #4 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2° patternP1 !!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""""""""""!!!!!!!!!!!!""""""""""""""""!!!!""""""""!!!!""""!!!!""""""""""""
Unità #2 !!!!!!!!!!!!!!!!""""!!!!!!!!!!!!""""""""0000!!!!!!!!!!!!""""""""""""""""!!!!0000""""!!!!0000!!!!""""""""""""
Unità #3 !!!!!!!!0000!!!!!!!!""""!!!!00000000!!!!""""!!!!""""!!!!!!!!0000!!!!00000000!!!!""""!!!!""""0000""""""""!!!!
Unità #4 00000000000000000000000000000000""""0000000000000000000000000000000000000000""""00000000""""""""""""""""0000
3° patternP2 !!!!""""""""!!!!""""!!!!""""""""!!!!""""!!!!!!!!""""!!!!!!!!""""!!!!""""""""!!!!!!!!""""""""!!!!""""!!!!""""
Unità #2 !!!!!!!!!!!!!!!!0000!!!!0000!!!!""""""""0000!!!!!!!!!!!!""""00000000""""!!!!0000""""!!!!0000!!!!""""""""0000
Unità #3 !!!!!!!!0000!!!!!!!!""""!!!!00000000!!!!0000!!!!""""!!!!!!!!0000!!!!00000000!!!!!!!!""""0000""""0000!!!!
Unità #4 !!!!""""""""!!!!""""!!!!0000""""!!!!0000!!!!!!!!0000!!!!!!!!""""!!!!""""""""!!!!0000""""""""0000""""!!!!""""
Nel prossimo paragrafo commentiamo i risultati di questa fase di test.
VI-16
6.2.3 Commenti
Il principale problema che era stato riscontrato durante i test descritti nel capitolo IV era la
impossibilità da parte della rete di riconoscere tutti i pattern perché si presentava un effetto
di corruzione delle unità che risultavano non vincenti. Con la presenza della modifica è
scomparso questo effetto. Questo perché le sinapsi delle unità che non risultano le vincenti,
se si trovano in uno stato diverso da quello labile, hanno una certa probabilità di transire
verso lo stato labile. Dai test emerge però un particolare importante. Durante la
presentazione del secondo e terzo pattern, le unità che risultano vincenti, rispettivamente,
per il primo e secondo possono subire delle transizioni delle proprie sinapsi dagli stati
potenziato e depresso verso quello labile. Avendo impostato la probabilità di transizione
dallo stato depresso verso quello labile più alta di quella dallo stato potenziato a quello
labile, si ha che la scheda non perde totalmente l’informazione corrispondente al pattern
memorizzato. Questo si riflette in una parziale perdita di informazione che viene subito
recuperata se alla rete di output viene ripresentato il pattern originale. Si riscontra quindi
che la rete di output ha acquisito la proprietà di palinsesto, cioè è in grado di dimenticare
pattern che non vengono presentati su lunghe scale di tempo, e di memorizzare nuovi
pattern senza che ci sia bisogno di un intervento esterno per forzare le sinapsi nello stato
labile.
La rete di output ha dimostrato di funzionare correttamente anche con pattern con
decodifica maggiore di f=0.1. Questo è stato possibile avendo progettato l’interfaccia
digitale in modo da poter avere un ampio range di variazione dei segnali Jc/2 e θ.
Impostando i valori di Jc/2 e θ opportuni per ogni livello di decodifica si è verificato che la
rete risponde in modo ottimale anche con livelli paria a f=0.5, cioè il valore con il quale
lavora la LANN27. Effettuando test più specifici pensiamo che la rete possa essere in
grado anche di adattare le schede agli spostamenti degli attrattori della LANN27, in modo
tale da riconoscerlo sempre insieme al proprio bacino di attrazione.
VI-17
6.3 Conclusioni
La rete neuronale di output ha dimostrato di saper attivare una sola unità alla presentazione
di un pattern con un apprendimento di tipo stocastico non supervisionato. Ha dimostrato
ulteriormente, in corrispondenza di pattern corrotti, di attivare l’unità che aveva vinto con
il pattern da cui i corrotti sono stati generati. La modifica ha inoltre potenziato la rete
dotandola di proprietà di palinsesto, cioè su lunghe scale di tempo la rete è in grado di
dimenticare i pattern che non vengono più presentati.
Specifichiamo inoltre che la rete di output prescinde dall’utilizzo della LANN27, l è infatti
in grado di catalogare e quindi ridurre informazione da parole di 27 bit qualsiasi sia lo loro
origine.
Per quanto riguarda le prospettive future, siamo in attesa del completamento delle schede
che permetteranno la lettura delle sinapsi e quindi permetteranno test ad alto livello per il
calcolo delle probabilità di transizione.
Per quanto riguarda la impossibilità da parte della rete di distinguere patter da attrattori, è
stato previsto, ma non ha riguardato questo lavoro di tesi, la possibilità di presentare in
ingresso alle sinapsi interstrato, non più un valore traslato dello stato del neurone della
LANN27, ma il campo interno degli stessi neuroni. In questo modo si potrebbe risolvere
questo problema essendo questo segnale più forte quando la rete si trova in un’atrattore.
Il gruppo NALS sta tuttora completando i test sulla rete da 21 neuroni realizzata su chip in
tecnologia VLSI.
A-1
Appendice A
Il software
La rete di output ha richiesto lo sviluppo di tre distinti software, due ha bordo delle EPROM
rispettivamente sulla scheda di interfaccia e sulle unità slave per la lettura delle sinapsi, ed
uno per il controllo dell'intero sistema da Personal Computer. Quest'ultimo è stato sviluppato
in linguaggio C++.
! Il software dell'unità Master
Il software a bordo dell'unità Master svolge le seguenti operazioni:
-Controllo completo tramite RS232 mediante software su PC. Oppure tramite terminale.
-Set dei parametri di funzionamento della rete di OUT con risoluzione 12 bit :
-Soglie delle sinapsi(Thr,Nthr) regolabili in un range di 2.5Volt a partire da Voffset.
Voffset puo’ essere impostato ad un valore compreso tra 0.5 e 1 Volt per.
-Parametro JC_Mezzi (tra 0 e 2.5Volt)
-Parametro Theta del neurone inibitore (tra 0 e -2.5Volt)
-Valori dell’UNO e dello ZERO logici nell’adattatore di livello, Regolabili
separatamente . (Tra 0 e -5Volt per lo zero) (tra 0 e +5Volt per l’uno)
-Soglia dei comparatori per lettura neuroni (tra 0 e + 5Volt)
- Procedura di reset per le sinapsi. (agisce sulle sogli portandole fuori range e può essere sia
manuale che Software.
-Durata della presentazione dei dati provenienti da LANN
-Lettura valore analogico di 8 neuroni con risoluzione 12 Bit.
-Lettura del valore binario dei neuroni, con soglia regolable tra 0 e 5 Volt.
-Controllo trasparente della comunicazione con le schede SLAVE e quindi per la lettura delle
sinapsi.
A-2
! Il software dell'unità Slave
Il software a bordo dell'unità Slave si occupa della lettura dello stato delle sinapsi e del
neurone di output, inoltre gestisce l 'impacchettamento e la trasmissione dei dati alla unità
Master.:
-Controllo completo tramite BUS I2C.
-Selezione delle sinapsi da leggere (ne vengono lette 2 contemporaneamente)
-Impacchettamento dei valori letti in una stringa di 7 byte e sua trasmissione.
-Possibilità di automatizzare o sincronizzare la lettura con eventi esterni :
-Tipo interrupt
-Temporizzata
-Accumulo locale di un certo numero di letture.
! Il software di gestione da PC
Il software di gestione comunica con l'unità master tramite una interfaccia RS-232 e permette
il controllo di tutte le funzioni e la regolazione di tutti i parametri gestiti dal software
dell'unità master. Questo tramite un software scritto in C++.
Il programma, di cui nella figura A.1 si mostra la schermata principale, ci permette di
impostare tutti i valori dei segnali globali, e ci dà la possibilità di gestire l’apertura della
finestra temporale. Saranno disponibili nella prossima versione, la lettura dell’unità vincente
con il rispettivo valore di tensione, e la lettura di tutte le sinapsi interstrato, che ci permetterà
di poter effettuare misure di probabilità di transizione.
Tutti i valori delle variabili che possono essere impostate, vengono inserite con il reale valore
che si vuole che assumano, è stata implementata nel software la conversione da decimale a
BCD che ci permette di pilotare i convertitori Digitale- Analogico. Riportiamo nella tabella
A.1 tutti i comandi con la relativa descrizione. Il software, inoltre, gestisce gli eventuali errori
durante la trasmissione e gestisce la ricostruzione dei dati ricevuti se questi sono
impacchettati.
A-3
Figura A.1 Schermata iniziale del programma di gestione della rete di output
Le istruzioni “1” e “0” associano al segnale del neurone della LANN27 ( originariamente
TTL, 0 Volt se il neurone è inattivo e 5 Volt se è attivo) i valori impostati a seconda che
questo sia attivo o inattivo. La possibilità di regolarli tra 0 e ±5 Volt ci permette di la variare
la probabilità di transizione, poiché questo segnale è l’input della sinapsi interstrato. La
finestra temporale può essere regolata da un minimo di 10 ms ad un massimo di 10 secondi.
In futuro prevediamo la possibilità di regolarla anche per tempi infiniti ( finestra temporale
sempre aperta). Il software presenta anche un comando per l’impostazione dei segnali di
default che ci permette, premendo un solo tasto, di inviare alla scheda di interfaccia un
pacchetto di comandi precedentemente deciso.
Questo comando è estremamente utile una volta decisa quale sia la probabilità di transizione
con cui si vuole che la rete funzioni. E’ presente anche il comando per il reset di tutte le
sinapsi interstrato, questo comando non fa altro che spostare, per circa 5 ms, le soglie
rumorose sui valori di clipping Jc e Jc in modo da far transire tutte le sinapsi nello stato labile.
In figura A.1 è riportata la schermata DOS del programma eseguibile Neu_ro.EXE
A-4
COMANDO SEGNALE GLOBALECORRISPONDENTE
RANGE DIVARIAZIONE
UNITA’DI MISURA
N Soglia rumorosa negativa (Nvthr) -0.5 ÷÷÷÷ -2.5 V
V Soglia rumorosa positiva (Vthr) 0.5 ÷÷÷÷ 2.5 V
T Theta (θθθθ) 0.2 ÷÷÷÷ -2.5 V
J Jc/2 0 ÷÷÷÷ 2.5 V
1 Valore del neurone attivo di LANN27 0 ÷÷÷÷ 5 V
0 Valore del neurone inattivo di LANN27 0 ÷÷÷÷ -5 V
G Soglia di attivazione neurone di output 0 ÷÷÷÷ 5 V
F Apertura della finestra temporale 10 ÷÷÷÷ 10.000 ms
R Reset sinapsiD Imposta i valori di defaultX Esce dal programma
Tabella A.1 Tutti i comandi disponibili nel software di gestione della rete di output
B-1
Appendice B
I trimmer
B.1 I trimmer sul Back-plane
Sul back-plane sono presenti 3 trimmer per ogni slot per la regolazione degli offset delle
due soglie rumorose e per l’offset del Jc/2. Sono stati regolati in modo tale da avere in
ingresso alle schede 1N27S il valore realmente impostato via software.
Figura B.1 Schematizzazione della posizione dei trimmer sul back-plane della slot i-esima. Le frecce curve
indicano il verso in cui vanno girate le viti dei trimmer per aumentare o diminuire i valori degli offset.
B-2
B.2 I trimmer sulla scheda 1N27S
Sulle schede 1N27S sono presenti 27 trimmer, uno per sinapsi interstrato, per la
regolazione dell’ampiezza dei rumori del circuito di refresh stocastico
Figura B.2 Schematizzazione della posizione del trimmer per la regolazione del rumore del refresh
stocastico della sinapsi interstrato. Le frecce curve indicano il verso in cui va ruotata la vite del trimmer per
aumentarne o diminuirne l’ampiezza
B-3
B.3 I trimmer sulla scheda di modifica
Sulla scheda di modifica sono presenti duecentosedici trimmer, due per ognuno dei
centootto circuiti di modifica. Uno per la regolazione dell’offset della soglia rumorosa
positiva e uno per quella negativa.
Figura B.3 Scematizzazione della posizione dei trimmer del circuito di modifica. Le frecce curve indicano il
verso in cui vanno ruotate le viti dei trimmer per aumentare o diminuire l’ampiezza dell’offset da assegnare
alle soglie rumorose, positiva e negativa.
Appendice C
Schemi elettrici e documentazione
Bibliografia
[1] Amit D.J., 1989 Modelling Brain Function, Cambridge University Press
[6] Hebb D.O. 1949, The organization of behaviour, Wiley.
[8] Amit D.J. & Fusi S. 1994, Learning in neural network with material
synapses, Neural computation, 4, 957-982.
[9] Badoni D., Bertazzoni S., Buglioni S., Salina G., Amit D.J. & Fusi S.
Stochastic refresh mechanism and electornic noise in an analogue neural
network, in preparazione.
[2] Badoni D., Bertazzoni S., Buglioni S., Salina G., Amit D.J. & Fusi S.
1995, electonic implementation of an analogue attractor neural network
with stochastic learning, Network: Computation in neural system, 6 125-
157
[3] Amit D.J. & Fusi S. 1992 Constraints on learning in dynamic synapses,
Network, 3, 443.
[4] Nadal J.P., Toulouse G., Changeux J.P. & Dehaene S. 1986, Networks of
formal neurons and memory palimpseets, Europhys. Lett., 1, 535.
[5] Parisi G. 1986 A memory which forgets, J. Phys., A19 L617
[7] Badoni D., Bertazzoni S., Buglioni S., Salina G., Amit D.J. & Fusi S.
1995 LANN27: An electronic implementation of an analog attractor
neural network with stochastic learning Proceedings del convegno SPIE:
Applications and science of artificial neural network, (Orlando, Florida),
vol. 2492 1206-1217.
[10] Badoni D., Bertazzoni S., Buglioni S., Salina G., Amit D.J. & Fusi S.
Testing LANN27, in preparazione.
[11] Kohonen T. 1982 Self-organized formation of topologically correct
feature maps, Biogical Cybernetics, 43, 59.
[12] Kohonen T. 1989, Self-organization and associative memory, Springer-
Verlag.
[13] Hertz J., Krog A. & Palmer R. G. 1993, Introduction to the theory of
neural computation, Santa Fe Institute, Addison-Wesley Publishing
company
[14] Grossberg S. 1976, Adaptive pattern classification and universal recoding:
I. Parallel development and coding of neural feature detectors, Biological
Cybernetics, 23, 121-134.
[15] Rumelhart D.E. & Zipser D. 1985, Feature discovery by competitive
learning, Cognitive science, 9, 75-112.
[16] Battaglia F. 1994, Competitive Learning with selective synaptic
elimination, International journal of neural system, supp. 1995.
Proceedings of the third workshop: Neural Network: from biology to high
energy physics, World Scientific Publishing Company.
[17] Changeaux J.P. & Danchin A. 1976, Selectiv stabilisation of developing
synapses for the specification of neural network, Nature, 264, 705.
[18] Weisbuch G., Fogelman-Souliè F., 1985. Scaling laws for the attractors of
Hopfield model, J. Phisique Lett., 2, 337
[19] Amit D.J. & Brunel N. 1994, Learning internal representations in an
analog attractor neural network with analogue neurons. Preprint n. 1055
Dip. Di Fisica, Università di Roma “La Sapienza”, I.N.F.N. sezione di
Roma. 18 Ottobre 1994.
[20] Gatti E. Manfredi P.F. 1986, Processing the signal from solid-state
detectors in elementary-particle physics, Rivista del nuovo cimento, ser.3
Vol. 9.1 p. 72-83
[21] Van der Ziel A. 1970, Noise: sources, characterization, mesurement.
Prentice-Hall, Englewood cliffs, p. 106
[22] Gayakwad A. Ramakant 1990, Amplificatori operazionali e circuiti
integrati lineari, gruppo editoriale Jackson, Milano.
[23] Millman J., Halkias C.C. 1972, Integrated electronics: analog and digital
circuits and system, McGraw Hill New York.
[24] Badoni D., Bertazzoni S., Buglioni S., Salina G., Grande G.C., Salmeri
M., Salsano A. & Simonelli O. 1995, VLSI implementation of an attractor
neural network with analog neurons and synapses, International journal
of neural system, supp. 1995.
Proceedings of the third workshop: Neural Network: from biology to high
energy physics, World Scientific Publishing Company.
[25] Gilbert B. 1968, A precise four quadrant multiplier with subnanosecond
response, IEEE J. Solid State Circuits, SC-3, 365-73
[26] Mead C. 1989, Analog VLSI an neural system, Reading MA: Addison-
Wesley.
[27] Ramacher U. 1992 SYNAPSE- A neurocomputer that synthesizes neural
algorithms on a parallel systolic engine J. Parallel Distrib. Comput. 14
306-18.
[28] Il-Song Han & Ki-Hwan Ahn 1993 Implementation of million
connections neural hardware with URAN-I, Proc. of ICANN’93 pp 1030-
1033.
[29] Watanabe T., Kimura K., Aoki M., Sakata T. & Ito k. A single 1.5 V
digital chip for 106 synapse neural network IEEE Trans. Neural Networks
4 307-93.
[30] Morishita T., Tamura Y. & Otsuli T. 1990 A BiCMOS analog neural
network with dynamically updated weights Proc. IEEEE ISSCC ‘90 TPM
9.2, pp 144-5.
[31] Furman B., Abidi A.A. 1988 An analog CMOS backward error
propagation LSI, Proc. First Annual INNS Symp.
[32] Graf H.P. & Henderson D. 1990 A reconfigurable CMOS neural network
Proc. IJCNN ‘90, San Diego II, 551-5
[33] Linares-Barranco B., Sanchez-Sinencio E., Rodriguez-Verquez A. &
Huertas J.L. 1993 A CMOS analog adaptive BAM with on chip learning
and weight refreshing IEEE Trans. Neural Networks, 4, 445-55.
[34] Alspector J., Allen R.B., Hu V. & Satyanarayana S. 1988 Stochastic
learning networks and their electronic implementation Neural Information
Processing Systems ed. D.Z. Anderson (New York: American Institute of
physics).
Ringraziamenti
Il mio primo ringraziamento va al Dott. Gaetano Salina che con la sua disponibilità e
i suoi consigli mi ha dato l'opportunità di svolgere un lavoro cosi affascinante. Un
sentito ringraziamento va a Davide Badoni (dell’I.N.F.N. sezione Roma2 “Tor
Vergata”) e a Vittorio Dante (dell’I.N.F.N, dell’Istituto Superiore di Sanità) con cui
ho collaborato e stretto una vera e sincera amicizia, ed è sopra tutto, grazie alle loro
attenzioni, ai loro consigli e alla loro professionalità ed esperienza in campo
elettronico che questo lavoro di tesi è andato a buon fine.
Al Prof. Rinaldo Sintonico un grazie per essersi gentilmente prestato come relatore
interno. Al Prof. Daniel. J. Amit, al Dott. Paolo Del Giudice (dell’I.N.F.N,
dell’Istituto Superiore di Sanità), al Dott. Stefano Fusi (dell’I.N.F.N, sezione Roma1
“La Sapienza”) e a tutti coloro che fanno parte dell'esperimento NALS il mio grazie
per avermi accolto nell'esperimento dimostrando amicizia e disponibilità. L'ultimo
pensiero va alla mia famiglia ed ai miei amici, che per due anni hanno resistito ai
miei discorsi su sinapsi che non “clippavano” bene e neuroni che non volevano
imparare.