Esplorazione di architetture neurali wetware

annuncio pubblicitario
UNIVERSITÀ DEGLI STUDI DI MILANO
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica
Esplorazione di architetture neurali wetware
Relatore:
Prof.ssa Rita PIZZI
Correlatori:
Prof. Angelo VESCOVI
Prof. Giovanni DEGLI ANTONI
Tesi di Laurea di:
Francesca GREGORI
Matr. n.566549
Anno Accademico 2001/2002
“Il cervello fabbrica ricordi che modificano il modo con cui penseremo
in seguito. L'attività principale del cervello consiste, quindi,
nell'apportare modifiche a se stesso."
(Minsky, 1989)
Indice
Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. I neuroni e le cellule staminali
1.1 Il neurone biologico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Le cellule staminali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1. Le cellule staminali embrionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2. Le cellule staminali adulte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Interfaccia neuroni-silicio
2.1 I primi esperimenti di interfaccia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 L’esperimento del Max Planck di Monaco . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Reti neuronali biologiche: crescita e sinapsi. . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4 Risultati attuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3. Le reti neurali artificiali
3.1 Le reti neuralli e la teoria del connessionismo . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Architettura di una rete neurale artificiale . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.1. Architettura dei collegamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2. Tipo di apprendimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.3. Algoritmo di apprendimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.4. Tipo di utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3 Implementazione degli algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1. Rete di Kohonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
I
3.3.2. Memoria associativa bidirezionale (BAM) . . . . . . . . . . . . . . . . . . . 49
3.3.3. Perceptrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3.4. Rete di Hopfield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4. Il progetto
4.1 La scheda di acquisizione dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.1.1. Caratteristiche tecniche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.2 L’applicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.1. Inizializzazione della scheda di acquisizione . . . . . . . . . . . . . . . . . 67
4.2.2. Acquisizione analogica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.3. Scrittura digitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 Il circuito vivente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3.1. Realizazione circuitale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3.2. Il materiale biologico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5. Gli esperimenti
5.1 Il modello di Kohonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.1.1. Risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.2. Confronto con il modello artificiale . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.3. Conclusioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Conclusioni e Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Appendice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9
Ringraziamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 3
II
Introduzione
Negli ultimi anni sono stati condotti numerosi studi sull’impianto di
microelettrodi applicati a circuiti elettronici e inseriti all’interno di tessuto nervoso
a scopo di analisi dell’attività neuronale. Esistono, infatti, diverse interfacce
commerciali che permettono di controllare il computer usando gli impulsi nervosi
(bio-sensing). Il problema principale di queste protesi elettroniche, oltre alla
ricerca del miglioramento delle loro prestazioni, è la giunzione fra tessuto nervoso
ed elettrodi, che è soggetta al deterioramento delle funzionalità, e può comportare
lo sviluppo di infezioni. Per questo motivo la soluzione che viene ricercata
attualmente è quella di sostituire l’uso dei microelettrodi con una connessione
diretta neuroni/chip sperimentata per la prima volta da alcuni ricercatori
dell’istituto Max Planck di Monaco di Baviera. All’interno di lavori simili a
quello appena citato è stato possibile studiare la struttura delle reti di neuroni
biologici e il loro comportamento autoorganizzante.
Questo tipo di ricerca puo’ fornire anche parametri utili per implementare in
modo
realistico
i
modelli
informatici
di
reti
neurali.
Lo
studio
dell’interfacciamento diretto neuroni/chip sta diventando, quindi, di fondamentale
importanza sia per lo sviluppo di protesi riabilitative, sia per l’analisi della
dinamica neuronale a scopo di ricerca, sia per l’evoluzione della tecnologia
robotica.
L’obiettivo di questo lavoro consiste nell’esplorazione di architetture neurali
basate sui modelli software e realizzate attraverso l’utilizzo di neuroni biologici
connessi tra loro con del materiale conduttore. Utilizzando, quindi, un’interfaccia
Introduzione
2
diretta tra neuroni e materiale conduttore sono state analizzate le funzionalità di
alcune architetture neurali artificiali proposte in letteratura. Si è cercato di
indagare sui meccanismi di apprendimento dei neuroni naturali e sul loro possibile
utilizzo tecnologico.
In questa tesi vengono presentati gli algoritmi neurali scelti tra quelli
proposti in letteratura, per la loro affinità strutturale e comportamentale con le reti
neurali biologiche. A partire dai suddetti algoritmi sono stati creati dei modelli
circuitali di rete i cui nodi sono costituiti da materiale biologico contenente una
certa percentuale di neuroni umani differenziati a partire da cellule staminali,
mentre le connessioni tra i nodi sono state realizzate mediante conduttori.
Nel corso degli esperimenti fatti si è studiato il comportamento complessivo
della rete neurale ottenuta, sottoposta a particolari stimoli.
Il lavoro è articolato nei seguenti capitoli:
Capitolo 1
Descrizione introduttiva della struttura e del comportamento del neurone
biologico e dei diversi tipi di cellule staminali dalle quali vengono ricavati i
neuroni coinvolti negli esperimenti.
Capitolo 2
Descrizione degli esperimenti di interfacciamento tra neuroni e chip con
particolare attenzione a quello condotto al Max Planck Institute di Monaco.
Capitolo 3
Dopo una breve introduzione alle reti neurali artificiali e una descrizione delle
loro caratteristiche fondamentali, vengono presi in esame quei modelli di rete che
sono stati implementati per essere successivamente testati sul circuito vivente.
Per ognuno di essi è presentata la struttura classica e il modello realizzato per il
problema in esame, oltre che i risultati ottenuti a livello software.
Capitolo 4
Vengono descritte le fasi fondamentali del lavoro svolto: la realizzazione
hardware dei circuiti; la coltura delle cellule staminali e l’applicazione creata per
interfacciarsi con la periferica di acquisizione dei dati.
Introduzione
3
Capitolo 5
Sono riportati e descritti gli esperimenti e i risultati ottenuti nel corso delle
misurazioni effettuate.
Gli algoritmi, realizzati su modelli classici di reti neurali, sono stati
implementati nel linguaggio Java, mentre le misurazioni sul circuito sono state
condotte mediante l’utilizzo di una scheda di acquisizione dati (Personal Daq 56
dell’IOTECH) che si interfaccia al Personal Computer grazie ad un’applicazione
sviluppata in linguaggio Pascal ad oggetti in ambiente Delphi.
Capitolo 1
Neuroni e cellule staminali
1.1 Il neurone biologico
Il cervello umano è sicuramente la struttura più complessa dell’universo e può
essere considerato come una enorme rete neurale. Circa cento miliardi di neuroni
costituiscono i nodi di tale rete.
Studiare la struttura biologica e la fisiologia del cervello è un compito
tutt'altro che facile. Tuttavia a partire dall'inizio del nostro secolo sono stati fatti
dei grandissimi passi in avanti in questo campo e sono stati raggiunti notevoli
risultati studiando i danni e le disfunzioni riportate da persone cerebrolese.
In questo modo i neuroscienziati sono riusciti a capire che tutte le attività
intelligenti sono controllate dalla parte esterna del cervello chiamata corteccia
cerebrale. La corteccia è a sua volta divisa in diverse regioni specializzate: ogni
regione controlla una determinata facoltà cognitiva. I neuroscienziati, inoltre, sono
riusciti a ricostruire la struttura cellulare del cervello e a capirne almeno in parte il
funzionamento [Mar95].
La struttura di ogni neurone è complessa: dal corpo cellulare (soma), di
dimensioni comprese tra i 5 e 100 micron, partono numerose propaggini, di due
tipi diversi che corrispondono ai due diversi canali di comunicazione tra neuroni:
gli assoni e i dendriti. Gli assoni rassomigliano a dei fili di lunghezza molto
Capitolo 1 – Neuroni e cellule staminali
5
variabile (a partire da 0.1 millimetri fino a qualche metro) di sezione costante.
Lungo ogni assone principale si possono avere più propaggini assoniche. I
dendriti invece differiscono sensibilmente dagli assoni perchè tendono ad
assottigliarsi all’allontanarsi dal corpo cellulare; la loro lunghezza varia molto
meno di quella degli assoni (da 10 micron a 1 millimetro).
Le funzioni degli assoni e dei dendriti sono molto differenti; mentre i
dendriti convogliano l’informazione verso il corpo cellulare del neurone, gli
assoni portano all’esterno il segnale prodotto dal neurone. I dendriti, pertanto,
rappresentano i canali di input mentre gli assoni quelli di output.
Il neurone è dotato di una membrana che separa l’ambiente intracellulare da
quello extracellulare. In condizioni di riposo si stabilisce una differenza di
potenziale elettrico fra l’interno e l’esterno della cellula, causata dalla differente
composizione chimica tra queste due regioni: all’interno della cellula si ha
predominanza di potassio, mentre all’esterno prevale il sodio (entrambi in forma
ionica). Queste differenti concentrazioni sono dovute alle proprietà di
semipermeabilità della membrana che, in assenza di perturbazioni elettriche,
lascia fluire verso l’interno solo il potassio e rappresenta invece una barriera per il
sodio. L’interno della membrana è a potenziale negativo rispetto all’esterno (la
differenza di potenziale è di alcuni millivolts). Ogni neurone può ricevere dai
neuroni ai quali è collegato un insieme di segnali di origine chimica o elettrica. La
somma dei segnali provenienti dagli altri neuroni altera il valore del potenziale
all’esterno del corpo cellulare; se questo supera un certo valore di soglia la
permeabilità della membrana varia drasticamente, lasciando penetrare all’interno
del corpo cellulare gli ioni di sodio e ciò crea un impulso di corrente, generato
sulla superficie della cellula, che propaga l’informazione da un neurone ad an
altro. Questo segnale caratteristico (detto spike) viene poi propagato lungo gli
assoni. La tipica attività di un neurone consiste, quindi, nella trasmissione di una
serie di impulsi elettrici. Tale serie rappresenta un segnale di una certa intensità,
la cui frequenza costituisce un’ulteriore informazione.
Capitolo 1 – Neuroni e cellule staminali
6
Si può modellare il neurone come un sistema a due stati: uno è quello di
riposo; cioè quando la somma dei segnali che provengono dagli altri neuroni è
minore di un certo valore di riferimento (soglia) allora il neurone non emette
alcun segnale, cioè non propaga l’informazione che gli giunge; quando invece tale
somma supera la soglia il neurone passa nello stato attivo e comincia a trasmettere
l’informazione agli altri neuroni ai quali è collegato.
La connettività del sistema è determinata dalle sinapsi che sono degli
ispessimenti che si formano ai punti di contatto tra ramificazione assoniche e
dendritiche di due neuroni. L’interazione di due neuroni collegati da una sinapsi
può essere più o meno forte a seconda delle caratteristiche fisiche della
connessione. In prima approssimazione si possono distinguere due tipi di
connessioni; le sinapsi piuttosto sottili (dello spessore di circa 2 nanometri) e le
sinapsi più spesse (fino a 50 nanometri).
Le prime vengono dette sinapsi eccitatorie. Esse hanno una bassa resistenza
(un valore basso della soglia) e ciò consente al segnale di propagarsi quasi intatto
sino al dendrite del neurone ricevente che si attiva. Per le sinapsi spesse la
situazione è più complessa; si tratta di sinapsi chimiche che, in certi casi, possono
portare ad un innalzamento della soglia e pertanto ad inibire l’attivazione del
neurone ricevente: esse vengono definite sinapsi inibitorie. Il discreto
funzionamento del cervello anche in caso di lesioni (proprietà di robustezza del
cervello) evidenzia il carattere non localizzato dell’elaborazione. Vari esperimenti
hanno messo in evidenza la relazione tra l’azione di uno stimolo e l’efficacia delle
connessione sinaptica; si è visto che questa varia se lo stimolo è somministrato
ripetutamente. Sembra stabilito che solo le sinapsi relative a neuroni sensori
stimolati dall’esterno tendono a rafforzarsi. Questo legame tra stimolo ed efficacia
sinaptica è considerata la base per ogni tentativo di costruire una teoria
dell’apprendimento. A tale proposito ha notevole rilevanza l’ipotesi di Hebb
secondo la quale, se un neurone A ed un neurone B tendono ripetutamente ad
essere eccitati simultaneamente, questa concordanza di fase induce ad un aumento
delle sinapsi tra A e B (si dice che la sinapsi viene rafforzata). Secondo questa
Capitolo 1 – Neuroni e cellule staminali
7
ipotesi solo la correlazione tra l’attività di due neuroni è responsabile del rinforzo
delle sinapsi tra i due. Il tempo di commutazione di un neurone (acceso-spento) è
di un microsecondo contro un nanosecondo di un elaboratore: solo che nel
cervello le connessioni sono in gran numero e molto dense.
La capacità di memoria del cervello è stimata in 4*1015 bit con una capacità
di elaborazione di 4*1016 bit/secondo. E’ possibile comparare questi dati con il più
avanzato computer: ASCI White (maggio 2000) costituito da 32768 processori
POWER3-II a 375 megahertz ognuno dei quali esegue 4 calcoli in virgola mobile
contemporanemente. Questa macchina ha una memoria locale di 16384 gigabyte e
195 terabyte (1.71*1015 bit) di memoria esterna su disco. La prestazione di picco
del sistema è di 10 teraflop (1.28*1014 bit/secondo). La rete permette però di
sfruttare solo una frazione di questa potenza teorica [Ani01].
Capitolo 1 – Neuroni e cellule staminali
1.2
8
Le cellule staminali
Le cellule nervose, a differenza delle altre cellule dell'organismo umano,
non vanno incontro a ricambio. Il rinnovamento dei neuroni comporterebbe anche
la distruzione dei collegamenti neuronali e per questo motivo risulta attualmente
impossibile poter prelevare cellule nervose dal tessuto cerebrale senza
danneggiarlo.
Un’importante scoperta scientifica avvenuta negli ultimi anni e tuttora in
fase di studio riguarda l’isolamento e l’utilizzo delle cellule staminali, dalle quali
è possibile creare nuovi neuroni per poterli utilizzare negli esperimenti di ricerca.
Le cellule staminali non mostrano le caratteristiche tipiche di alcun tessuto
particolare ma sono contraddistinte da due capacità: moltiplicarsi a volontà, dando
vita a copie innumerevoli di se stesse; e differenziarsi in cellule di più tipi diversi.
Quando una popolazione di staminali si divide, alcune cellule figlie sono ancora
staminali, identiche alle madri, che mantengono intatta la riserva; altre figlie
iniziano invece un ciclo di trasformazioni che le porterà a divenire cellule
differenziate di un determinato tessuto. Anche le staminali, in realtà, sono molto
diverse tra loro; differiscono nella capacità di proliferare, di produrre un tessuto
oppure un altro, di rispondere a determinati segnali che ne guidano lo sviluppo.
Non si tratta però di differenze che balzano all'occhio: viste al microscopio, queste
cellule sono simili l'una all'altra. Le diversità sono più sottili e consistono nel
corredo di proteine che ciascuna staminale produce in un dato momento della sua
vita; le proteine sono necessarie per recepire determinati segnali e cambiare il
proprio comportamento di conseguenza. La presenza di determinate proteine e
l'assenza di altre contraddistingue ciascun tipo di staminale, proprio come la
presenza dei prolungamenti contraddistingue le cellule nervose. Quando i
ricercatori conoscono le proteine tipiche delle staminali di loro interesse, possono
metterle in luce e identificare così le cellule.
Una volta differenziate, le cellule perdono quasi del tutto la capacità di
proliferare. Nei tessuti soggetti a un ricambio rapido, come l'epidermide o il
Capitolo 1 – Neuroni e cellule staminali
9
sangue, per rimpiazzare le perdite resta anche nell'adulto una riserva di staminali,
rispettivamente alla base della pelle e nel midollo osseo. Queste cellule, però,
sono in grado di rigenerare solo il tessuto cui appartengono, o comunque una
gamma ristretta di tessuti. E' chiaro comunque che, per conquistare una completa
capacità rigenerativa, l'uomo non può contare sulle sue scarne doti naturali;
occorre imparare a prelevare cellule staminali adatte a generare i tessuti da
riparare, oppure "ringiovanire" le cellule già differenziate, restituendo loro la
capacità di proliferare. Le cellule staminali dovrebbero poi essere indotte a
svilupparsi nel senso voluto, fino a ottenere tessuti o addirittura interi organi da
introdurre nel corpo per riparare la lesione. Questa possibilità è apparsa per la
prima volta realizzabile quando, sul finire del 1998, due gruppi di scienziati
[Th&Al] hanno annunciato di avere isolato e fatto crescere in laboratorio cellule
staminali pluripotenti1, prelevate da embrioni e feti umani. Queste cellule, che si
indicano come cellule staminali embrionali, sono state la prima fonte a cui si è
potuto pensare di attingere. Restano però due grossi ostacoli da superare. Il primo
è di natura tecnica: il fatto che queste cellule siano potenzialmente in grado di
formare qualsiasi tessuto non vuol dire che, nel concreto, si sia capaci di farle
differenziare a piacimento per ricavarne i tessuti desiderati. Il secondo è un
ostacolo etico: per prelevare le staminali bisogna inevitabilmente distruggere
l'embrione, il che, per chi lo ritiene già un individuo umano a pieno titolo, è
inaccettabile.
1.2.1 Le cellule staminali embrionali
Nel novembre del 1998, dopo almeno sei anni di tentativi, l'équipe di James
Thomson, dell'Università del Wisconsin [Th&Al], ha reso noto di aver isolato e
fatto crescere in laboratorio le staminali pluripotenti prelevate da embrioni umani.
Ben prima che nella specie umana, le staminali erano state ricavate, nel 1981
1
Le cellule staminali pluripotenti mantengono le capacità proliferative durante tutta la vita
dell'individuo e nell'adulto sono in grado di ripopolare il comparto delle cellule differenzianti in
quei tessuti che presentano un alto ricambio dovuto a morte cellulare (ad esempio, l'epidermide) o
alla continua produzione di cellule specializzate. Le cellule staminali pluripotenti sono presenti
nell'embrione, nel feto ed in alcuni precisi distretti tissutali ben riconoscibili nell'individuo adulto.
Capitolo 1 – Neuroni e cellule staminali
10
[EvK81], da embrioni di topo; l'esperienza accumulata con questi animaletti è
stata preziosa per accertare in quale stadio dello sviluppo embrionale dei
mammiferi sono presenti le staminali pluripotenti e come si possa convincerle a
crescere in coltura senza che si differenzino. Per guidare lo sviluppo delle
staminali in laboratorio, si impiegano le stesse sostanze che ne dirigono il destino
all'interno dell'organismo. Durante lo sviluppo dell'embrione, ogni cellula viene
spinta a differenziarsi verso un determinato destino piuttosto che un altro da una
fitta serie di segnali che scambia ininterrottamente con le altre; i segnali sono
molecole di varia natura e sono detti, nell'insieme, fattori di crescita.
I fattori di crescita segnalano alle cellule che li ricevono quali geni
esprimere o spegnere e dunque quali proteine produrre; al variare dei fattori che
riceve, la cellula produce un insieme di proteine differente e man mano cambia
forma, prende a funzionare in modo diverso; procede, cioè, lungo un determinato
percorso di differenziamento. Sono stati individuati molti fattori di crescita che
possono essere estratti dai tessuti o prodotti in laboratorio. Dopo innumerevoli
tentativi, Thomson è infine riuscito a mettere a punto il cocktail giusto: nel brodo
da lui utilizzato, le staminali di blastocisti umane ricevono un segnale che indica
loro non di differenziarsi ma di restare pluripotenti. Va precisato che le sostanze
che danno questo segnale restano in gran parte ignote; le staminali, infatti, devono
essere coltivate in compagnia di un altro tipo di cellule (i fibroblasti di topo), che
evidentemente producono fattori di crescita sconosciuti, ma indispensabili per
evitare il differenziamento.
A pochi giorni da Thomson, il gruppo statunitense guidato da John Geahart,
della Johns Hopkins University di Baltimora, ha fatto un annuncio analogo. La
fonte era diversa: gli abbozzi delle gonadi di feti di uno o due mesi; nei genitali
dell'embrione infatti, come ha scoperto Geahart, alcune cellule restano
pluripotenti molto più a lungo che nel resto del corpo. Sia le staminali di Thomson
che quelle di Geahart hanno dimostrato proprietà molto simili e sono, dunque,
linee di cellule staminali pluripotenti umane.
Capitolo 1 – Neuroni e cellule staminali
11
Con due anni di ritardo si è affacciato sulla scena un terzo concorrente: il
gruppo di Martin Pera e Alan Trounson, della Monash University di Melbourne in
Australia, che è riuscito anch'esso a isolare e coltivare le staminali embrionali
umane inserendosi nella corsa. La sfida è divenuta a questo punto di imparare a
controllare il comportamento di queste cellule in laboratorio.
Anche sotto questo profilo le ricerche sul topo sono state punti di partenza
preziosi. Dalle staminali embrionali del topo sono state ricavate di volta in volta
cellule nervose, muscolari, endoteliali (che rivestono l'interno dei vasi sanguigni)
e del sangue. La chiave è sempre la stessa: il controllo delle condizioni in cui
crescono le cellule. Giocando con il brodo di coltura, aggiungendovi questo o quel
fattore di crescita e ponendo le staminali a contatto con un tipo di cellule o con un
altro, si può orientarne il differenziamento. Le ricette si scoprono spesso per
tentativi ed errori. A volte si parte da fattori di crescita noti e si cercano le dosi e
le combinazioni giuste; in altre occasioni si sfrutta un brodo in cui crescono bene
le cellule di un certo tipo. In un esperimento, per esempio, le staminali, messe nel
brodo che si usa di norma per le cellule degli alveoli polmonari, si sono
differenziate in tessuto polmonare.
Riguardo alle cellule umane, gli studi sono proceduti in fretta. L'équipe
australiana di Pera, partendo dall'osservazione fortuita che alcune staminali in
coltura tendono spontaneamente a trasformarsi in cellule nervose o muscolari, ha
per prima ottenuto in laboratorio neuroni umani. La Geron Corporation,
un'azienda biofarmaceutica statunitense, dal canto suo, ha annunciato di aver
prodotto i tre tipi principali di cellule nervose, nonché cellule del fegato e del
muscolo cardiaco. Un'équipe israeliana dell'Università di Haifa, che aveva
collaborato con Thomson, è riuscita a indirizzarne lo sviluppo in svariate direzioni
grazie a varie combinazioni di fattori di crescita.
Per il momento comunque il controllo sulle staminali embrionali, e
specialmente su quelle umane, resta piuttosto scarso. Anche solo coltivarle è
un'impresa: vari studiosi che le hanno ricevute da Thomson hanno faticato non
poco per riuscire a farle crescere senza che perdessero le loro preziose
Capitolo 1 – Neuroni e cellule staminali
12
caratteristiche. Non è ancora accertato, inoltre, se le cellule ottenute in vitro
rispecchino davvero sotto ogni aspetto i tessuti a cui sembrano assomigliare. In
definitiva le staminali embrionali sono potenti ma capricciose e restano difficili da
domare. Più docile, forse al prezzo di una minor vivacità, è l'altro grande gruppo
di cellule a cui si spera di ricorrere per la terapia riparativa: le staminali dei tessuti
adulti, dette cellule staminali adulte.
1.2.2 Le cellule staminali adulte
La visione tradizionale vuole che nell'adulto permangano solo pochi tipi di cellule
staminali, limitate in sostanza ai tessuti soggetti a un forte ricambio. La stessa
visione vuole inoltre che le staminali adulte, sebbene indifferenziate, abbiano
ormai il destino segnato e non siano in grado di formare tessuti diversi da quello a
cui appartengono; sono cioè multipotenti ma non pluripotenti. Entrambe le
convinzioni sono state fortemente ridimensionate negli ultimi anni. Cellule
staminali sono spuntate dai tessuti adulti più svariati, a partire da quello privo per
eccellenza di capacità autoriparativa: il sistema nervoso centrale. Quando sono
stati identificati i fattori che fanno crescere il tessuto nervoso, si è infatti
constatato che dal tessuto cerebrale di topi adulti, messo in coltura con la giusta
combinazione di fattori, si formano tutti i tipi principali di cellule nervose. Nel
sistema nervoso centrale dei mammiferi adulti si trova quindi una riserva di
cellule multipotenti, le staminali neurali, che in seguito, nel 1999, sono state
individuate con precisione dal gruppo di Jonas Frisén, del Karolinska Institute di
Stoccolma. Quale sia la loro funzione nessuno sa dirlo con certezza;
evidentemente non hanno un grosso ruolo riparativo, visto che sono incapaci di
entrare in azione per riparare le lesioni, e una delle ipotesi avanzate è che
prendano parte ai processi della memoria e dell'apprendimento. Ancor più inattesa
è stata la seconda sorpresa: la "trasformazione del cervello in sangue".
All'inizio del 1999 un'équipe guidata da Angelo Vescovi, dell'Istituto
neurologico Carlo Besta di Milano, ha reso noto che le staminali neurali sono in
grado di differenziarsi in cellule mature del sangue. La dimostrazione è avvenuta
nei topi. Gli animaletti sono stati irradiati, per distruggere le staminali
Capitolo 1 – Neuroni e cellule staminali
13
emopoietiche del midollo osseo. Di norma, in questi casi, per ricostituire le cellule
emopoietiche si trapianta un midollo sano. In questo esperimento, invece, i
ricercatori hanno iniettato nel sangue dei topi un certo numero di staminali
neurali, modificate geneticamente in modo da colorarsi di blu quando entrano a
contatto con un reagente chimico ed essere quindi facilmente riconoscibili. Dopo
qualche settimana, nel midollo dei topi sono state trovate staminali emopoietiche
che si coloravano di blu: a dispetto di quanto si era sempre ritenuto, le staminali
neurali sono state in grado di insediarsi nel midollo e di riconvertirsi, mettendosi a
produrre cellule del sangue. Le staminali adulte, dunque, hanno il destino segnato
solo fintanto che restano nel proprio tessuto e continuano a ricevere i segnali di
differenziamento tipici del tessuto stesso. Ma la capacità di formare tessuti diversi
non va del tutto persa e in un ambiente nuovo le cellule sono ancora sensibili a
segnali diversi.
Altri studiosi hanno mostrato capacità di trasformazione analoghe per altri
tipi di staminali. Per vedere fino a che punto si spingesse tanta versatilità, lo
svedese Frisén ha provato a iniettare le staminali neurali (modificate per colorarsi
in blu) all'interno di embrioni molto precoci di topo, allo stadio di blastocisti. I
topolini nati da questa manipolazione erano sani e identici a topolini normali e i
loro tessuti apparivano del tutto normali al microscopio. Quando però venivano
trattati con il reagente che colora di blu le staminali neurali, in alcuni casi si
vedevano comparire strisce azzurre, non solo nel tessuto nervoso ma anche
nell'intestino, nel fegato, nel cuore, nel rene e in altri tessuti. Le staminali
introdotte si erano quindi integrate perfettamente in tutti questi tessuti, tanto che
non si potevano distinguere dalle cellule originali del topolino se non dopo la
colorazione. La gamma di vie di differenziamento possibili, dunque, è davvero
ampia. Nell'uomo, per ovvi motivi, non si possono fare esperimenti simili. E’ stata
raccolta qualche informazione con studi in coltura: Vescovi, per esempio, ha
osservato che le staminali neurali umane, crescendo a contatto con i precursori
delle cellule muscolari, si trasformano a loro volta in cellule muscolari ben
differenziate [Dos02].
Capitolo 2
Interfaccia neurone-silicio
2.1 I primi esperimenti
Il cervello e il calcolatore lavorano entrambi elettricamente; l’idea di provare ad
interfacciare direttamente i due sistemi è una sfida intellettuale e allo stesso tempo
tecnologica.
Allo stadio attuale delle nostre conoscenze teoriche e della nostra tecnologia
non siamo in grado di stabilire che cosa ci riservi il prossimo futuro, se dovremmo
aspettarci tessuti cerebrali integrati nei computer oppure chip integrati
direttamente nel nostro cervello. Una cosa però è certa: qualunque siano le
ricerche svolte in questo campo, ci aiuteranno a capire meglio l’architettura del
cervello e porteranno ad uno sviluppo di applicazioni mediche e scientifiche fino
ad ora impensate.
Già dai primi anni novanta sono state condotte con successo delle ricerche
in tal senso, stabilendo per la prima volta un’interfaccia elettrica tra cellule
nervose e microstrutture semiconduttrici e viceversa. In particolare sono stati
utilizzati i neuroni delle sanguisughe, notoriamente grandi e quindi facili da
manipolare, uniti a transistor disposti su una piastra di silicio [Fro02].
Dopo questi primi, rudimentali, passi iniziali sono state seguite due precise
direzioni:
Capitolo 2 – Interfaccia neurone-silicio
1.
15
“Verso il basso”, si è studiata la natura microscopica della giunzione
neurone-silicio rispettandone la struttura e le sue proprietà elettriche, al fine di
descrivere in modo corretto tale giunzione per ottimizzare l’interfaccia
neuroelettronica.
2.
“Verso l’alto”, si sono assemblati semplici sistemi ibridi che
combinavano neuroni e reti neurali con dispositivi microelettronici
semiconduttori. Qui lo scopo è stata la supervisione di numerosi neuroni in
una rete definita da contatti non invasivi tra le cellule e il substrato
semiconduttore, e questo è necessario per lo studio di processi dinamici
distribuiti come l’apprendimento e la memoria.
Oltre alla giunzone dei neuroni con il silicio e di tutte le sue implicazioni,
sono stati svolti anche molti altri esperimenti differenti per scopo e natura.
Nel 1999 sono stati condotti dal professor William Ditto e dai suoi
collaboratori, presso l’università di Atlanta (Georgia), in collaborazione con
l’università di Bordeaux (Francia), alcuni esperimenti volti a creare delle semplici
computazioni attraverso i neuroni di sanguisughe.
L’esperimento consisteva nel collegare due neuroni tra di loro ed entrambi
ad un computer in grado di inviare dei segnali in modo selettivo ad ognuno di essi.
La difficoltà maggiore nella gestione dei segnali neurali sta nel fatto che questi,
nei sistemi biologici, non possono essere trattati come segnali digitali di tipo
“acceso” o “spento”, quindi le istruzioni software che governano l’invio dei
segnali utilizzano una branca della matematica nota come “teoria del caos”.
Attraverso questa teoria Ditto è stato in grado di far compiere ai due neuroni una
semplice addizione.
In realtà, attraverso delle simulazioni al computer, Ditto e Sudeshna Sinha,
presso l’Istituto di Scienze Matematiche di Madras (India), hanno mostrato come
grandi gruppi di neuroni siano in grado di compiere moltiplicazioni e operazioni
logiche.
Capitolo 2 – Interfaccia neurone-silicio
16
Le porte aperte da Ditto sono estremamente affascinanti perché ci si
prospetta un futuro in cui i biocomputer saranno in grado di trovare da soli, senza
l’aiuto di nessun programmatore, le soluzioni adatte ai vari problemi e forse di
sostituire in certi campi addirittura l’uomo.
Recentemente, nel 2002, un team di ricercatori guidati da Catherine Schmidt
dell’Università di Austin (Texas), è riuscito a posizionare un semiconduttore
esattamente nel punto desiderato della superficie di una cellula nervosa umana,
fatto di fondamentale rilevanza visto che fino ad ora le cellule nervose utilizzate
erano solo quelle di topi, sanguisughe e lumache.
Queste ricerche si spingono in due direzioni:
1.
Venire in aiuto di chi soffre di problemi neurologici cronici e
degenerativi, come epilessia e morbo di Parkinson.
2.
Venire in aiuto di chi ha perso il controllo delle funzioni motorie, ad
esempio conseguenze di un ictus.
L’obiettivo finale è quello di usare soluzioni elettroniche per aggirare il
danno inflitto a certe porzioni del cervello e permettere agli impulsi neurali di
arrivare comunque a stimolare un muscolo oppure un braccio meccanico.
E’ stato utilizzato un sistema di elettrodi inseriti nel cervello che hanno
permesso di tradurre in istruzioni per calcolatori i segnali elettrici trasmessi dalle
cellule neurali responsabili delle funzioni cognitive. Questi esperimenti, condotti a
partire già dal 1998, hanno avuto l’obiettivo a breve termine di stabilire la
possibilità di una linea di comunicazione con pazienti colpiti da paralisi totale.
Solo di recente i ricercatori hanno aperto la strada alla messa a punto di
congegni in grado di far svolgere a questi stessi pazienti semplici compiti di
routine come accendere e spegnere la luce. Sono infatti riusciti a dimostrare che è
possibile interpretare i messaggi neurali emessi dal cervello di una scimmia da
laboratorio e usarli per controllare un braccio robotico connesso ad un computer.
Nel 2000 un team di ricercatori della Northwestern University di Chicago,
dell’Università dell’Illinois e dell’Università di Genova, hanno presentato il
Capitolo 2 – Interfaccia neurone-silicio
17
risultato delle loro ricerche: la creazione di una strana creatura ibrida costituita da
un corpo meccanico controllato dal cervello di un pesce.
Sensori di luce alloggiati nel corpo meccanico forniscono al cervello gli
stimoli esterni. Il tessuto cerebrale processa queste informazioni per generare dei
segnali che vengono inviati al motore del robot per cambiare direzione in risposta
agli stimoli dell’ambiente.
Il robot possiede pochi neuroni prelevati dalla lampreda marina Petromyzon
marinus, un vertebrato primitivo simile alle anguille. Per creare questo “animale
artificiale”, come lo ha descritto Steve Grand1, i ricercatori hanno estratto il
cervello e parte della corteccia sotto anestesia totale e l’hanno mantenuta in una
soluzione salina ossigenata e refrigerata; hanno poi isolato un gruppo di poche
cellule, note con il nome di cellule di Müller, responsabili dell’interazione tra i
segnali provenienti dai sensori e i comandi inviati alle parti meccaniche, e utili per
l’orientamento della lampreda stessa. I neuroni tuttavia non sono stati posti
all’interno del corpo meccanico ma sono stati collegati ad esso con dei cavi.
Di fronte ad alcuni stimoli luminosi il robot ha presentato diversi
comportamenti: ha seguito la luce, ha evitato la luce, si è messo a “camminare” in
circolo.
La ricerca originariamente avrebbe dovuto studiare gli adattamenti delle
cellule del cervello di fronte a degli stimoli che cambiano in continuazione,
tuttavia Mussa-Ivaldi [Mus00] [Re&Al], lo scienziato italiano che ha partecipato
all’esperimento, sostiene che capire come i neuroni comunichino con le macchine
artificiali porterà sicuramente i suoi benefici.
Dal 1999 un altro gruppo di ricercatori2 ha condotto degli esperimenti sulle
“reti neurali coltivate”. Il loro scopo è stato quello di capire le correlazioni
morfologiche dell’apprendimento e della memoria utilizzando sistemi di neuroni
coltivati su di un substrato di silicio, sviluppato al Pine Lab.
1
2
Esperto di vita artificiale presso il Cyberlife Research di Somerset.
Steve M. Potter, Devi Thota, Michael P. Maher, Jerry Pine.
Capitolo 2 – Interfaccia neurone-silicio
18
I neuroni utilizzati vengono prelevati dall’ippocampo dei topi e vengono
fatti crescere sulla piastrina: essi formano rapidamente delle sinapsi e sviluppano
spontaneamente complessi schemi di connessione. Stimolando gruppi di neuroni
con vari schemi di “potenziali d’azione simulati” si spera di osservare dei
cambiamenti morfologici nelle reti di neuroni così coltivate, che possono indicare
come i neuroni, nei cervelli viventi, cambiano per imparare qualcosa di nuovo.
Questi segnali possono indurre cambiamenti nel numero o nella grandezza delle
sinapsi, nella crescita dendritica, nella formazione di spine dendritiche o nella
interazione con le cellule gliali.
Studiando i fenomeni base di come l’attività elettrica influenza la
morfologia neuronale, e come a sua volta questi cambiamenti influenzano le
proprietà elettriche della rete stessa, si potranno avere preziosi parametri per lo
studio delle reti neurali artificiali su computer. Questo permetterà di sviluppare
sistemi di apprendimento artificiali che si avvantaggiano dell’adattamento
intelligente presente nei sistemi biologici.
Capitolo 2 – Interfaccia neurone-silicio
19
2.2 L’esperimento del Max Planck di Monaco
Di particolare rilevanza sono gli ultimi esperimenti condotti da Peter Fromherz
presso il Max Planck Institute of Biochemistry che mostrano come in questi ultimi
anni si siano fatti passi da gigante nello studio e nell’implementazione, tuttavia
ancora allo stato embrionale, di interfacce tra neuroni e chip in silicio.
Il silicio è adatto a fungere da substrato elettronicamente conduttivo per tre
ragioni:
1.
Attualmente è disponibile una tecnologia molto avanzata e ben
stabilita dei semiconduttori per fabbricare dispositivi elettronici microscopici.
2.
Una crescita di una strato di biossido di silicio sopprime i processi
elettrochimici che possono portare alla corrosione e al danneggiamento delle
cellule.
3.
I chip di silicio rivestiti di biossido di silicio sono perfetti substrati
inerti per la coltura di cellule nervose.
Le cellule nervose, che hanno un diametro di 10-100 µm, sono circondate da
una membrana elettricamente isolante. Un sottile strato, spesso circa 5nm, separa
l’elettrolite intracellulare dall’ambiente. La corrente elettrica attraverso la
membrana è mediata da specifici canali proteici per il sodio e il potassio con una
conduttanza di circa 10-100 pS.
I neuroni e gli elettroliti sono conduttori di ioni, mentre il silicio è un
conduttore di elettroni. Una volta soppressa la corrente di Faraday all’interno
dell’interfaccia dal biossido di silicio, l’accoppiamento tra cellule e chip può
essere raggiunto solo attraverso la polarizzazione elettrica. Tuttavia, quando una
cellula nervosa cresce su di un supporto solido, non ci si deve aspettare che la
membrana lipidica e il biossido di silicio formino un dielettrico coerente che possa
perfettamente mediare un’interazione capacitiva.
Le molecole delle proteine, che si protendono dalla membrana della cellula
e che si depositano sul substrato, danno vita a una pellicola elettrolitica tra la
Capitolo 2 – Interfaccia neurone-silicio
20
cellula e il chip: questo fenomeno disaccoppia elettricamente il chip e la cellula.
Si crea allora una struttura a “sandwich” in cui un sottile strato conduttivo viene
separato dagli ambienti conduttivi di silicio e citoplasma grazie a sottili pellicole
isolanti di biossido di silicio e membrane lipidiche (Fig. 2.1).
Fig. 2.1 - Modello di contatto cellula-semiconduttore
La giunzione cellula-semiconduttore ha la natura fisica di un nucleo
conduttore isolato.
Le correnti elettriche e la diffusione degli ioni in questa struttura a
“sandwich” governano la stimolazione e la registrazione dell’attività neuronale sul
chip.
L’eccitazione di una cellula nervosa è dovuta al potenziale d’azione e
consiste in una veloce apertura dei canali di sodio con un concomitante flusso di
corrente all’interno della cellula e in una ritardata apertura dei canali di potassio
con un flusso di corrente diretto verso l’esterno.
Durante un potenziale di azione, le correnti capacitive e ioniche scorrono
attraverso la membrana del contatto. La corrente è spinta attraverso la resistenza
del nucleo dando così origine nella giunzione ad un voltaggio extracellulare Vj(t)
dipendente dal tempo. Se sufficientemente forte, questo stimolo è in grado di
influenzare la membrana cellulare, in particolare può aprire i canali di ioni
controllati dal voltaggio, in modo tale da ottenere eventualmente un potenziale
d’azione.
L’efficienza dell’accoppiamento neurone-silicio dipende dalla resistenza
della giunzione e dalla corrente che attraversa la membrana cellulare collegata alla
Capitolo 2 – Interfaccia neurone-silicio
21
stessa giunzione, ma non solo: è importante capire anche quale debba essere la
distanza che separa il chip dalla cellula e quale sia la sua resistenza elettrica.
La misurazione della distanza tra chip e cellula viene fatta attraverso una
procedura denominata FLIC ( fluorescence interference contrast) che si basa su
alcune proprietà del silicio, tra le quali quella di riflettere la luce visibile (Fig.
2.2).
Fig. 2.2 - Fluorescence interference contrast (FLIC)
Sono stati fabbricati chip in silicio con piazzole microscopiche di biossido
di silicio (2,5 x 2,5 µm2, con un’altezza di circa 20 nm) su cui sono state coltivate
cellule neurali per studiare il gap che divide la cellula dal chip.
Negli esperimenti condotti si è potuto notare che la distanza misurata si
attesta attorno ai 109 nm. Questa “grande” distanza è causata dalle forze
entropiche delle molecole proteiche che sono ancorate alla membrana e sono usate
per isolare il chip in modo da sviluppare la crescita cellulare.
Sono state utilizzati diversi tipi di cellula e vari tipi di rivestimenti: il
risultato migliore che si è ottenuto è di 40 nm.
Per quanto riguarda invece la resistenza del gap tra cellula e chip, in base ad
alcune misurazioni ed anche alla teoria questa si attesta attorno ai 10 MΩ.
Capitolo 2 – Interfaccia neurone-silicio
22
E’ molto affascinante combinare in un singolo esperimento due
fondamentali campi della scienza moderna, la tecnologia genetica e quella dei
semiconduttori, e osservare la diretta interazione degli elementi fondamentali
della dinamica del cervello e dei transistor: i canali di ioni nelle membrane e i
canali di elettroni dei transistor.
Un potenziale d’azione conduce una corrente elettrica attraverso la
membrana della cellula e attraverso il gap che separa cellula e chip. Il voltaggio
extracellulare Vj(t), che modula la struttura a banda del semiconduttore, nasce da
una sovrapposizione di tutte le correnti, ioniche e capacitive, presenti nel contatto.
La forma e l’ampiezza del segnale è controllata dall’accumulo e dal rilascio delle
conduttanze di ioni (nella membrana) e dalla specifica conduttanza della
giunzione.
Monitorando l’attività dei neuroni di sanguisughe, lumache e topi, si
possono osservare una certa varietà di segnali che possono in qualche modo essere
compattati in tre classi (Fig. 2.3):
1.
Il voltaggio extracellulare è proporzionale alla derivata prima del
potenziale d’azione. Questa risposta di tipo A-type avviene quando tutte le
conduttanze di ioni sono rilasciate nella giunzione e le correnti capacitive sono
controllate.
2.
Il voltaggio extracellulare è proporzionale al potenziale d’azione
stesso. Questa risposta di tipo B-type è stata osservata quando una non
specificata conduttanza prevale nel contatto in modo che una corrente ohmica
attraverso la membrana e il gap controlli il voltaggio extracellulare.
3.
Il voltaggio extracellulare assomiglia all’inversa della derivata prima
del potenziale d’azione. Il segnale si presenta quando tutte le conduttanze di
ioni pertinenti sono accumulate nella giunzione. Un intera classe di segnali (Ctype) è stata trovata per la selettiva accumulazione di vari canali di ioni nei
neuroni delle sanguisughe e dei topi.
Capitolo 2 – Interfaccia neurone-silicio
23
Fig. 2.3 - Le tre classi di segnali
La stimolazione del neurone attraverso l’interfaccia elettrica senza la
presenza di correnti di Faraday richiede un’alta capacità per area unitaria del chip,
per far in modo di iniettare corrente sufficiente nella giunzione. Sono stati
costruiti punti di stimolazione molto efficienti utilizzando silicio fortemente
drogato con un sottile strato di biossido di silicio [Fro02].
I neuroni delle sanguisughe possono essere stimolati da un singolo voltaggio
(un impulso) applicato ai punti di stimolazione sotto il neurone. Il meccanismo
della stimolazione, tuttavia, non è ancora chiaro ed alcuni risultati ottenuti sono da
interpretare. E’ noto che uno stimolo dà origine ad un voltaggio extracellulare
Vj(t) con velocità esponenziale che si presenta nel gap tra la membrana e il chip.
Quando si è in presenza di una giunzione B-type, come sempre accade con i
neuroni delle sanguisughe, il voltaggio Vj(t) inietta una corrente nel neurone che
ha come conseguenza la stimolazione del neurone stesso. Quando si è invece in
presenza di una giunzione A-type, la stimolazione del neurone avviene tramite un
voltaggio molto forte e improvviso applicato al chip.
Capitolo 2 – Interfaccia neurone-silicio
24
2.3 Reti neuronali biologiche: crescita e sinapsi
Una volta stabilita l’interfaccia elettrica di un singolo neurone, il passo successivo
è quello di creare una vera e propria rete neurale biologica interfacciata con il
chip. Se i neuroni potessero essere uniti tra di loro attraverso ben definite
connessioni sul chip, sarebbe possibile studiare sperimentalmente le complete
dinamiche delle reti neurali biologiche.
Per la costruzione di piccole reti neurali biologiche sono stati utilizzati i
neuroni degli invertebrati grazie alle loro grandi dimensioni, alla facilità di
manipolazione e soprattutto all’efficienza delle giunzioni neuro-elettriche.
I percorsi della matrice proteica extracellulare, dove far sviluppare le
connessioni, sono stati creati con la fotolitografia UV [F&S91]. Posizionando una
cellula in un’area di “partenza” si è osservato un preciso sviluppo delle
biforcazioni secondo i pattern stabiliti [F&S94] (Fig. 2.4).
Fig. 2.4 - Crescita dei neuriti sui pattern chimici
Tuttavia sussistono due problemi fondamentali con la guida chimica qui utilizzata:
1.
Inizialmente i neuriti seguono le guide chimiche tracciate, ma nelle
fasi successive si accorciano ed escono dalle linee guida (Fig. 2.4).
2.
I neuriti seguono tutti i pattern guida e non è possibile controllarne la
crescita su un solo pattern oppure in una specifica direzione.
Attualmente non si è in grado, facendo crescere i neuroni in coltura, di
Capitolo 2 – Interfaccia neurone-silicio
25
ottenere delle connessioni sinaptiche tra i neuriti. Tuttavia alcuni piccoli passi in
questa direzione sono stati fatti: sono stati isolati dei singoli neuroni di lucertola e
sono stati fatti crescere su di un chip sotto certe condizioni [P&F00]; sono stati
creati i pattern attraverso la fotolitografia e sono stati fatti crescere i neuroni uno
di fronte all’altro: dopo l’incontro si è potuto vedere come si fosse creata una
sinapsi tra i due neuriti. Purtroppo però per riuscire a creare una rete neurale in
grado anche solo di fare semplicissime computazioni è necessario superare tutta
una serie di problematiche:
1.
La formazione della rete deve essere in qualche modo controllata
durante la crescita dei neuroni.
2.
La struttura di crescita della rete deve essere meccanicamente stabilita.
3.
Le reti neurali create attraverso pattern chimici in definite posizioni
devono essere assemblate.
Il primo passo per l’interfacciamento tra una rete neurale e il chip è stata
l’implementazione di un semplice circuito neuroelettronico con un neurone
elettronicamente stimolato e uno per la registrazione delle risposte.
Un ulteriore passo in avanti è stato quello di posizionare i neuroni sopra i
punti di stimolazione e lasciarli crescere liberamente in modo da unire i loro
neuriti attraverso dei collegamenti sinaptici. Tuttavia le forze di interazione dei
neuriti hanno spostato le cellule dai punti di stimolazione e quindi l’interfaccia tra
due neuroni è avvenuta in pochissimi casi. Per ovviare questo problema sono stati
creati dei “picchetti” attorno ai punti di stimolazione, attraverso la fotolitografia
(Fig. 2.5).
Fig. 2.5 - Rete neurale
Capitolo 2 – Interfaccia neurone-silicio
26
Lo scopo è quello di imprigionare il neurone in modo che le forze in gioco
non possano spostarlo.
Purtroppo anche se si riesce in qualche modo a controllare lo spostamento
del neurone, non si può dire lo stesso della sua crescita. Al momento sembra
impossibile cercare di creare una vera e propria topologia della rete neurale
attraverso precise connessioni, considerando anche il numero dei neuroni che si
potrebbe voler connettere. Una soluzione, parziale, potrebbe essere quella di
creare una rete, diciamo, “caotica”, ossia lasciar crescere i neuroni liberamente sul
substrato di silicio e studiarne dopo le risposte ad eventuali stimoli esterni.
Per migliorare questo tipo di ricerca sarà necessario: per quanto riguarda i
semiconduttori, costruire le microstrutture in grado da una parte di registrare le
risposte dei neuroni tenendo conto del rumore e dall’altra di essere in grado di
stimolare i neuroni in modo “corretto”.
Per quanto riguarda invece le cellule, sarà necessario, sviluppare una
tecnologia in grado di far crescere i neuroni in modo predicibile e controllato per
poter creare reti neurali con precise caratteristiche topologiche [Fro02].
Capitolo 2 – Interfaccia neurone-silicio
27
2.4 Risultati attuali
In conclusione è possibile affermare che la ricerca sull’interfaccia neurone-silicio
sta facendo passi da gigante al punto che risulta difficile dare una precisa
catalogazione di tutti gli esperimenti che sono stati fatti in questi ultimi anni, sia
per scopo sia per natura.
Ad esempio l’esperimento condotto da Fromherz al Max Planck di
Monaco, tra l’altro uno dei pionieri in questo campo, pone la sua attenzione sugli
aspetti prettamente fisici della giunzione tra cellula e silicio, studiandone i
comportamenti dal punto di vista elettrico e, di sicuro, sarà la base per successivi e
più complessi esperimenti, in cui si porrà soprattutto l’attenzione sulle cellule
stesse e sul loro comportamento, in particolare sulla loro aggregazione e sulla
possibilità di farle crescere secondo un determinato schema morfologico.
Tuttavia ci sono molti altri team di ricerca che stanno portando avanti
ricerche analoghe a quella di Fromherz, ma con scopi del tutto diversi: ad esempio
le ricerche di Ditto volte a creare delle “computazioni biologiche”; le ricerche in
campo medico di Catherine Schmidt o ancora la creazione fantascientifica di un
cyborg da parte di Mussa-Ivaldi, Vittorio Sanguinetti e altri., e infine, ma non
meno importanti, le ricerche di Potter per cercare di capire come gli aspetti
morfologici del cervello possano influenzare l’apprendimento e la memoria.
Capitolo 3
Le reti neurali artificiali
3.1 Le reti neurali e la teoria del connessionismo
Le reti neurali artificiali sono il risultato delle prove effettuate per realizzare
alcune simulazioni delle strutture nervose del tessuto cerebrale. Un neurone del
tessuto cerebrale può essere visto come una cella (corpo cellulare) che ha molti
ingressi (dendriti) e una sola uscita (assone): una rete neurale biologica è
composta da molti neuroni i cui assoni vanno a collegarsi ai dendriti di altri
neuroni tramite un collegamento (la cui forza varia chimicamente in fase di
apprendimento e costituisce una "microinformazione") che viene chiamato
sinapsi.
Non sono ancora chiari i meccanismi di apprendimento del cervello degli
esseri viventi e le reti neurali artificiali sono attualmente solo un sistema di
trattamento dell’informazione in modo distribuito con algoritmi di apprendimento
dedicati. Bisogna sottolineare però che le reti neurali hanno caratteristiche
sorprendentemente simili a quelle del cervello umano, come la capacità di
apprendere; la scarsa precisione associata all’alta elasticità di interpretazione
dell’input e una buona capacità di generalizzazione. L’elasticità di interpretazione
dell’input viene comunemente chiamata "resistenza al rumore" o "capacità di
comprendere dati rumorosi": un sistema programmato ha bisogno di un input ben
Capitolo 3 – Le reti neurali artificiali
29
preciso per dare una risposta corretta, mentre una rete neurale è in grado di dare
una risposta abbastanza corretta ad un input parziale o impreciso rispetto a quelli
utilizzati negli esempi di addestramento. [Mar95]
La base cognitiva delle reti neurali artificiali è la teoria del
connessionismo, la quale ritiene che i processi cognitivi siano fondati
sull'interazione di moduli elementari molto semplici e che il comportamento,
estremamente complesso, di un sistema formato da molti di questi moduli derivi
dall'interazione tra questi.
La teoria del connessionismo parte dalla considerazione che le reti artificiali
sono in grado di apprendere dall'esperienza tramite semplice modulazione della
forza delle connessioni tra le unità. Questa teoria, oltre ad avvicinare ovviamente
questi sistemi a quelli biologici, risulta estremamente importante dal punto di vista
teorico perché offre una convincente alternativa all'apprendimento basato sulla
costruzione di regole esplicite: non vi è nessun "centro di costruzione di regole"
nel sistema; semmai le regole emergono in una descrizione di livello più astratto,
mentre ad un livello più basso tutta l'informazione è immagazzinata nelle
connessioni tra le unità; i sistemi distribuiti possono generalizzare le loro
prestazioni a casi sui quali non sono stati addestrati (ad esempio, una rete neurale
che è stata addestrata a riconoscere caratteri di scrittura a mano, riconoscerà anche
una scrittura che non ha mai "visto" prima, purché questa non sia troppo diversa
dalle altre); i sistemi distribuiti riescono meglio proprio in quei compiti che
richiedono la considerazione simultanea di un gran numero di variabili. In breve,
il connessionismo ha avvicinato alla microstruttura (reti di neuroni) dei sistemi
biologici, consentendo di assistere all'emergenza di fenomeni che finora avevano
eluso il campo della simulazione artificiale.
A partire dalla teoria del connessionismo, la cui prima formulazione risale
ad un saggio di W. McCulloch e W. Pitt del 1943 [McP43], sono state realizzate
numerose applicazioni delle reti neurali in vari domini: per esempio nella
simulazione dei comportamenti elementari di specie inferiori, spesso associata alla
costruzione di robot reali. In questo settore specifico il primo esperimento
Capitolo 3 – Le reti neurali artificiali
30
importante è stato il Perceptron di Rosenblatt [Ros58]: un robot in grado di
muoversi in un ambiente evitando gli ostacoli.
Un altro settore in cui il paradigma connessionista ha avuto larga diffusione
è quello dello studio e dell’emulazione dei processi soggiacenti alla percezione,
ambito nel quale l’impostazione computazionale classica ha mostrato notevoli
limiti.
Capitolo 3 – Le reti neurali artificiali
31
3.2 Architettura di una rete neurale artificiale
Una rete neurale artificiale può essere schematizzata come in Fig.3.1:
x1
x2
.
.
.
xn
Funzione di
attivazione
w1
w2
Uscita
a
f
Σ
y
wn
Pesi
θ
Soglia
Fig.3.1 – Schema di una rete neurale artificiale
Esistono n canali di ingresso x1..xn a ciascuno dei quali è associato un peso. I
pesi wi sono numeri reali che corrispondono al segnale prodotto dalle sinapsi. Se
wi>0 il canale è detto eccitatorio, se wi<0 il canale è inibitorio. Il valore assoluto
di un peso rappresenta la forza della connessione.
L’uscita, cioè il segnale con cui il neurone trasmette la sua attività
all’esterno è calcolato applicando la funzione di attivazione alla somma pesata
degli ingressi.
Indicando con
n
a = ∑ wi xi
(3.1)
i =1
la somma pesata degli ingressi si ottiene
 n

y = f (a ) = f  ∑ wi xi 
 i =1

(3.2)
La funzione di attivazione f (a) è detta anche funzione di trasferimento.
Capitolo 3 – Le reti neurali artificiali
32
Nel modello di rete rappresentato in Fig.1 è stata inclusa anche una soglia
(θ) che ha l’effetto di abbassare il valore in ingresso della funzione di attivazione.
Quindi la 3.2 diventa:
 n

y = f (a ) = f  ∑ wi xi = θ 
 i =1

In questo caso interpretando la soglia come il peso associato ad un ulteriore canale
in ingresso x0, di valore sempre costante pari a -1 si può scrivere:
 n

y = f (a ) = f  ∑ wi xi 
 i =0

con w0=θ
La funzione di attivazione definisce l’uscita di un neurone in relazione al livello di
attivazione (3.1)
L’uscita può essere un numero reale, un numero reale appartenente ad un certo
intervallo, oppure un numero appartenente ad un intevallo discreto (tipicamente
{0,1} oppure {-1,+1})
Esistono diversi tipi di funzione di attivazione:
•
Funzione a soglia
L’uscita di un neurone che usa una funzione di attivazione a soglia è:
se a ≥ 0
se a < 0
1
y=
0
f(a)
1
0
a
Fig. 3.2 – Funzione di attivazione a soglia
Capitolo 3 – Le reti neurali artificiali
•
33
Funzione lineare
L’uscita di un neurone che usa una funzione di attivazione lineare è:
f (a) = a
f(a)
0
a
Fig. 3.3 – Funzione di attivazione lineare
•
Funzione lineare a tratti
L’uscita di un neurone che usa una funzione di attivazione lineare a tratti è:
0
se a ≤ −0,5


f (a) = a + 0,5 se − 0,5 < a < 0,5

1 se a ≥ 0,5

f(a)
1
-0,5
0
0,5
a
Fig. 3.4 – Funzione di attivazione lineare a tratti
Capitolo 3 – Le reti neurali artificiali
•
34
Funzione sigmoide
Assieme alla funzione di soglia, le funzioni sigmoidi sono tra le più usate.
Un esempio di funzione sigmoide è la funzione logistica definita come:
f (a) =
1
1 + exp(−a )
f(a)
1
-0,5
0,5
0
a
Fig. 3.5 – Funzione di attivazione sigmoidale
Si può osservare che mentre la funzione a soglia assume solo valori 0 e 1,
una funzione sigmoide assume tutti i valori da 0 a 1. Notiamo, inoltre, che la
funzione sigmoide è derivabile ovunque mentre la funzione a soglia non lo è.
Le funzioni di attivazione viste finora assumono valori tra 0 e +1 (esclusa la
funzione lineare). A volte è opportuno che la funzione di attivazione assuma
valori tra –1 e +1. In particolare la funzione a soglia viene ridefinita così:
+ 1

f (a) =  0
− 1

se a > 0
se a = 0
se a < 0
Tale funzione è nota come funzione segno [Laz99].
Esistono molti tipi di reti neurali che sono differenziati sulla base di alcune
caratteristiche fondamentali:
•
architettura dei collegamenti;
•
tipo di apprendimento;
•
algoritmo di apprendimento;
•
tipo di utilizzo;
Capitolo 3 – Le reti neurali artificiali
35
3.2.1 Architettura dei collegamenti
Le reti neurali si differenziano in base alla loro architettura, cioè in base al modo
in cui i nodi si dispongono su uno o più strati: in particolare si distinguono reti a
uno strato, reti a due strati e reti a tre o più strati. In questi ultimi due tipi gli strati
esterni svolgono rispettivamente la funzione di strato di input e strato di output, un
po' come nel cervello ci sono cellule che sono in contatto diretto con gli organi di
senso e cellule che governano il movimento e l'emissione di messaggi vocali.
Si possono identificare diversi tipi di architettura di rete. Di seguito ne vengono
presentate alcune.
Reti completamente connesse (non stratificate)
Fig. 3.6 – Rete completamente connessa
In una rete completamente connessa ogni neurone è connesso (in modo
bidirezionale) con tutti gli altri.
Le connessioni tra i neuroni di una rete completamente connessa sono
rappresentate mediante una matrice quadrata W, di dimensione pari al numero di
neuroni, il cui generico elemento wij rappresenta il peso della connessione tra il
neurone i ed il neurone j
Capitolo 3 – Le reti neurali artificiali
36
Reti stratificate
Nelle reti stratificate si individuano degli strati di neuroni tali che ogni neurone è
connesso con tutti quelli dello strato successivo, ma non esistono connessioni tra i
neuroni all’interno dello stesso strato, né tra neuroni di strati non adiacenti.
Il numero di strati ed il numero di neuroni per strato dipendono dallo specifico
problema che si intende risolvere.
Strato d’ingresso
Strato di uscita
Fig. 3.7- Rete stratificata
Dato che nello strato di ingresso non avviene alcuna computazione (i
neuroni di ingresso devono semplicemente passare allo strato successivo i segnali
ricevuti dall’ambiente esterno), la rete nella figura precedente viene di solito
considerata come una rete con un solo strato. Inoltre, dato che i segnali viaggiano
dallo strato di ingresso verso lo strato di uscita, si parla di rete feedforward .
Se nella rete ci fossero delle connessioni di ritorno (retroazione) avremmo
delle strutture di tipo recurrent (o feedback); si tratta di reti dinamiche le cui
uscite, opportunamente modificate, vengono retroazionate agli ingressi causando
una sequenza di valori di uscità fino al raggiungimento della stabilità
Nella Fig.3.8 viene mostrata una rete stratificata feedforward contenente
uno strato nascosto , cioè uno strato i cui neuroni non comunicano direttamente
con l’esterno. In generale, possono esserci uno o più strati nascosti. I neuroni
Capitolo 3 – Le reti neurali artificiali
37
nascosti permettono alla rete di costruire delle opportune rappresentazioni interne
degli stimoli in ingresso in modo da facilitare il compito della rete.
Strato d’ingresso
Strato nascosto
Strato di uscita
Fig. 3.8 – Rete stratificata con uno strato nascosto
Le connessioni tra i neuroni di una rete stratificata sono rappresentate
mediante tante matrici quante sono le coppie di strati adiacenti. Ogni matrice
contiene i pesi delle connessioni tra le coppie di neuroni di due strati adiacenti
[Laz99].
3.2.2 Tipo di apprendimento
Il corretto funzionamento della rete neurale dipende dall’architettura della rete
(cioè dal numero di strati e dal numero di neuroni per strato), dalla funzione di
attivazione dei neuroni e dai pesi. I primi due parametri sono fissati prima della
fase di addestramento. Il compito dell’addestramento è quindi quello di aggiustare
i pesi in modo che la rete produca le risposte desiderate.
Uno dei modi più usati per permettere ad una rete di imparare è l’
apprendimento supervisionato, che prevede di presentare alla rete, per ogni
esempio di addestramento, la corrispondente uscita desiderata.
Di solito i pesi vengono inizializzati con valori casuali all’inizio
dell’addestramento, poi si cominciano a presentare, uno alla volta, gli esempi
Capitolo 3 – Le reti neurali artificiali
38
costituenti l’insieme di addestramento (training set1). Per ogni esempio presentato
si calcola l’errore commesso dalla rete, cioè la differenza tra l’uscita desiderata e
l’uscita effettiva della rete. L’errore è usato per aggiustare i pesi.
Il processo viene ripetuto ripresentando alla rete, in ordine casuale, tutti gli
esempi del training set finchè l’errore commesso su tutto il training set (oppure
l’errore medio sul training set) risulta inferiore ad una soglia prestabilita.
Dopo l’addestramento la rete viene testata controllandone il comportamento
su un insieme di dati, detto test set , costituito da esempi non utilizzati durante la
fase di training. La fase di test ha quindi lo scopo di valutare la capacità di
generalizzazione della rete neurale. Diremo che la rete ha imparato, cioè è in
grado di fornire risposte anche per ingressi che non le sono mai stati presentati
durante la fase di addestramento.
Ovviamente le prestazioni di una rete neurale dipendono fortemente
dall’insieme di esempi scelti per l’addestramento. Tali esempi devono quindi
essere rappresentativi della realtà che la rete deve apprendere e in cui verrà
utilizzata. L’addestramento è in effetti un processo ad hoc dipendente dallo
specifico problema trattato.
Nel modello ad apprendimento non supervisionato, l’ambiente esterno non
fornisce esempi di configurazioni da apprendere; viceversa, indipendentemente
dal compito svolto, si forniscono al sistema parametri che danno una misura della
qualità di rappresentazione richiesta alla rete.
La rete esplora non i dati d’ingresso ma la struttura sottostante a questi dati:
ad esempio calcola le correlazioni fra le configurazioni di ingresso e da esse
organizza queste configurazioni in classi e categorie.
La rete diventa capace di formare rappresentazioni interne in cui si
codificano le caratteristiche tipiche dell'ingresso.
1
Insieme di dati preclassificati: {(x1,y1),(x2,y2)…(xn,yn)} dove xt =dati e yt=etichette e la coppia
(xi,yi) è detta esempio del training set.
Capitolo 3 – Le reti neurali artificiali
39
3.2.3 Algoritmo di apprendimento
L’apprendimento della rete si esprime attraverso la seguente formula di
aggiornamento dei pesi
wij(t)=wij (t-1) + ∆wij
(3.3)
dove t il passo attuale e ∆wij è la variazione dei pesi che può essere ottenuta
attraverso diverse leggi.
La regola più usata per aggiustare i pesi di un neurone è la Delta rule o regola di
Widrow- Hoff .
Sia x = (x1 ,…,xn ) l’ingresso fornito al neurone.
Se y’ ed y sono, rispettivamente, l’uscita desiderata e l’uscita neurale,l’errore è
dato da
d = y’-y
La delta rule stabilisce che la variazione del generico peso wi . è:
∆wi = η δ xi
(3.4)
dove η è un numero reale compreso tra 0 e 1 detto learning rate . Il learning rate
determina la velocità di apprendimento del neurone. La delta rule modifica in
maniera proporzionale all’errore solo i pesi delle connessioni che hanno
contribuito all’errore (cioè che hanno xi diverso da 0). Al contrario, se xi =0, wi
non viene modificato poiché non si sa se ha contribuito all’errore. Il nuovo valore
dei pesi è quindi:
wi = wi + ∆wi (3.5)
Un’altra legge comunemente usate è la Legge di Hebb, già citata nel capitolo 3
per il suo significato biologico.
Siano x = (x1 ,…,xn ) l’ingresso fornito al neurone e y = (y1 ,…,ym ) l’uscita
desiderata; la variazione dei pesi avverrà secondo la seguente legge
∆wij = xi y j
(3.6)
Capitolo 3 – Le reti neurali artificiali
40
3.2.4 Tipo di utilizzo
Dal punto di vista del tipo di utilizzo possiamo distinguere tre categorie basilari:
•
memorie associative;
•
simulatori di funzioni matematiche complesse (e non conosciute);
•
classificatori.
Memorie associative.
Le memorie associative possono apprendere associazioni tra patterns (insieme
complesso di dati come un insieme di pixels di una immagine) in modo che la
presentazione di un pattern A dia come output il pattern B anche se il pattern A è
impreciso o parziale (resistenza al rumore). Esiste anche la possibilità di utilizzare
la memoria associativa per fornire in uscita il pattern completo in risposta ad un
pattern parziale in input.
Simulatori di funzioni matematiche.
Sono in grado di comprendere la funzione che lega output con input in base a
degli esempi forniti in fase di apprendimento.
Dopo la fase di apprendimento, la rete è in grado di dare un output in
risposta ad un input anche diverso da quelli usati negli esempi di addestramento.
Ne consegue una capacità della rete di interpolazione ed estrapolazione sui dati
del training set.
Tale capacità è facilmente verificabile addestrando una rete con una
sequenza di dati input/output proveniente da una funzione nota e risulta, invece,
utile proprio per il trattamento e la previsione di fenomeni di cui non sia chiaro
matematicamente il legame tra input e output. In ogni caso la rete si comporta
come una "black box", poiché non svela in termini leggibili la funzione di
trasferimento che è contenuta al suo interno. Di questo tipo fa parte la rete a
retropropagazione dell’ errore o error back propagation che è quella attualmente
più utilizzata per efficacia e flessibilità.
Capitolo 3 – Le reti neurali artificiali
41
Classificatori.
Con essi è possibile classificare dei dati in specifiche categorie in base a
caratteristiche di similitudine. In questo ultimo tipo di rete esiste il concetto di
apprendimento non supervisionato o "autoorganizzante", nel quale i dati di input
vengono distribuiti su categorie non predefinite.
L’algoritmo di apprendimento di una rete neurale dipende essenzialmente dal tipo
di utilizzo della stessa, così come l’architettura dei collegamenti. Le reti
multistrato prevedono ad esempio l’algoritmo a retropropagazione dell’errore o
sono addestrate tramite algoritmi genetici.
Capitolo 3 – Le reti neurali artificiali
42
3.3 Implementazione degli algoritmi
Dovendo analizzare il comportamento di una rete di neuroni biologici, si è
pensato in una prima analisi, di concentrarsi su una rete neurale artificiale basata
sul modello di Kohonen, per la sua particolare proprietà di non prevedere una fase
di addestramento; successivamente sono stati realizzati modelli software che
implementano una rete di Hopfield, l’algoritmo del Perceptrone, e quello della
memoria assciativa bidirezionale.
Gli ultimi due richiedono una fase di addestramento utilizzando una serie di
esempi preclassificati.
3.3.1 Rete di Kohonen
Il primo tipo di rete neurale preso in considerazione è stato quello di Kohonen, sia
per la sua semplicità architetturale sia perchè le reti realizzate secondo questo
modello hanno una certa analogia con alcune strutture neurobiologiche e una
buona capacità di auto-organizzazione.
Per quanto riguarda l’analogia neurobiologica, si rivela che sulla corteccia
del cervello (animale e umano) si vengono a formare in base all’autoapprendimento, mappe corticali tali che i neuroni vicini sono attivati da stimoli
simili.
Per quanto riguarda l’auto-organizzazione, le reti di Kohonen (dette anche
SOM Self Organizing Map) apprendono senza la necessità di un supervisore,
quindi senza richiedere un training set di esempi noti. Esse modificano
autonomamente i propri pesi sinaptici, in funzione di stimoli esterni. Partendo da
una situazione iniziale di non organizzazione, esse si auto-organizzano nel senso
che, grazie ad interazioni semplici e puramente locali, evolvono verso
l’emergenza di un ordine globale. [Cam97]
Capitolo 3 – Le reti neurali artificiali
43
L’algoritmo.
La SOM e’ stata sviluppata negli anni 80 da T. Kohonen sulla base di precedenti
studi di neurofisiologia. La struttura di una rete di Kohonen consiste in uno strato
di N elementi, detto strato competititvo. Ciascuno di questi riceve n segnali
x1,…,xn che provengono da uno strato di input di n elementi, le cui connessioni
hanno peso wij. Se lo strato competitivo e’ di tipo matriciale, i neuroni vengono
collegati tra loro secondo uno schema quadrato, esagonale o romboidale. Se e’ di
tipo vettoriale, i neuroni sono semplicemente connessi fra loro a formare una
catena.
Si determina l’intensità I dell’input di ciascun elemento i dello strato di Kohonen
come segue:
Ii = D(wi , x)
D(wi,x) e’ una qualche funzione distanza, ad esempio quella euclidea, tale distanza
è calcolata tra l’input e ciascun neurone dello strato competitivo.
A questo punto viene messa in atto una competizione per valutare quale elemento
ha la minore intensità di input (ossia quale wi e’ il piu’ vicino ad x).
La SOM prevede a questo punto un meccanismo cosiddetto di inibizione
laterale, che e' presente anche in natura sotto forma di trasformazioni chimiche a
livello sinaptico. Nella regione corticale del cervello, infatti, neuroni fisicamente
vicini ad un neurone attivo mostrano legami piu' forti, mentre ad una certa
distanza da questo iniziano a mostrare legami inibitori. In questa architettura,
ciascun elemento riceve sia stimoli eccitatori da parte degli elementi adiacenti (la
cosiddetta neighborhood), sia stimoli inibitori da parte degli elementi piu' lontani,
secondo la cosiddetta forma "a cappello messicano" (Fig. 3.9).
Fig. 3.9 – Forma a cappello messicano.
Capitolo 3 – Le reti neurali artificiali
44
L'esistenza della neighborhood e' utile per non polarizzare la rete su pochi
neuroni vincenti.
In tal modo vengono attivati solo gli elementi con distanza al di sotto di un certo
valore, in casi restrittivi solo l'unità con minima distanza.
A questo punto ha luogo la fase di apprendimento, secondo la cosiddetta "Winner
Take All Law" (WTA). I dati di training consistono in una sequenza di vettori di
input x e i pesi vengono modificati secondo la legge
winew = wiold +η (x-wiold )zi
(3.7)
dove 0<η<1 e decresce lentamente nel tempo con una legge del tipo
η (t) = η[1 - t/d]
dove d e' un'opportuna costante.
Essendo zi>0 solo per il neurone vincitore, i pesi dei neuroni vincenti ruotano
sempre piu' verso gli stimoli vettorialmente più vicini, fino a sovrapporsi
idealmente con essi.
La SOM effettua così una quantizzazione vettoriale, ossia una mappatura da
uno spazio a molte dimensioni in uno spazio con numero minore di dimensioni,
conservando la topologia di partenza. In altre parole viene effettuata una forma di
clustering di tipo Nearest Neighbor (NN), in cui ogni elemento dello strato
competititvo viene a rappresentare la classe di appartenenza degli elementi di
input. La classificazione NN classifica un pattern a seconda del più piccolo valore
ottenuto fra tutte le distanze da un insieme di pattern di riferimento. Questo
metodo è utile per separare classi rappresentabili da segmenti di iperpiani. Per
questo motivo la SOM classifica bene pattern topologicamente ben distribuiti, ma
si trova in maggiore difficoltà nel caso di distribuzioni non lineari. Inoltre appare
evidente l'importanza della configurazione iniziale dei pesi, che deve essere il più
possibile simile alla topologia di input.
Capitolo 3 – Le reti neurali artificiali
45
Implementazione dell’Algoritmo.
Dapprima è stato necessario determinare la configurazione della rete ed in
particolare il numero (N) di neuroni dello strato di input e quello (K) dello strato
di output.
Essendo l’implementazione finalizzata alla realizzazione di un circuito composto
da neuroni biologici e materiale conduttore è stato necessario concentrarsi su cosa
si voleva che la rete facesse per trovare poi la minima configurazione possibile
(con il minor numero di collegamenti tra i neuroni) per cui la rete riuscisse
comunque a classificare nel migliore dei modi. La scelta della semplicità
architetturale è dettata da esigenze implementative: un numero basso di neuroni
comporta anche un numero basso di collegamenti tra di essi e quindi la
realizzazione circuitale risulta semplificata.
Si è pensato così di realizzare un modello di rete in grado di discriminare tra due
diversi ingressi: 0 e 1; e dopo diversi tentativi si è riusciti a definire la minima
configurazione che risulta formata da nove neuroni appartenenti allo strato di
input e tre dello strato di output.
Fig. 3.10 – Modello della rete
E’ possibile considerare i dati in ingresso come semplici bitmap
Capitolo 3 – Le reti neurali artificiali
46
1 1 1
1 0 1
1 1 1
Fig. 3.11 - Bitmap che raffigura il carattere “0”
Fig. 3.12 - Rappresentazione numerica
0 1 1
0 0 1
0 0 1
Fig. 3.13 - Bitmap che raffigura il carattere “1”
Fig. 3.14 - Rappresentazione numerica
L’input x della rete è espresso come un vettore di 0 e 1
La bitmap che rappresenta il carattere 0 avrà una rappresentazione vettoriale del
tipo [111101111] mentre la bitmap che rappresenta il carattere 1 avrà la seguente
rappresentazione vettoriale:[000100111].
Il matrice dei pesi 9x3 racchiude i pesi dei ventisette collegamenti tra i neuroni e
viene inizializzata a valori reali casuali.
Il cuore dell’algoritmo è il seguente:
Dapprima si stabilisce quale neurone dello strato competitivo dista di meno
dall'input.
//scelgo il neurone con distanza minima
double min=dist[0];
int vincente=0;
for (int j=0;j<=K-1 ;j++ ){
if (dist[j]<=min){
min=dist[j];
vincente=j;
}
}
//min è il peso del neurone vincente j*
Si stabilisce poi un certo intorno (bidimensionale o anche unidimensionale) del
neurone vincente nello strato competitivo all'interno del quale i neuroni vengono
variati allo stesso modo del neurone vincente.
Tutti quelli esterni all’intervallo definito “di vicinato” rimangono invariati.
Capitolo 3 – Le reti neurali artificiali
47
//aggiorno il vettore dei pesi
int inizio,fine;
if (vincente-vicini<0) inizio=0;
else inizio=vincente-vicini;
if (vincente+vicini>=K) fine=K-1;
else fine=vincente+vicini;
for (int i=0;i<=N-1 ;i++ ){
for (int j=inizio; j<=fine ;j++ ){
w[i][j]=w[i][j]+ (eta*(x[i]-w[i][j]));
}
}
//aggiorno il vicinato e il parametro eta
eta= eta* (1-1/d);
if (vicini!=0)vicini--;
Esecuzione.
Come già espresso precedentemente la rete di Kohonen non prevede la fase di
apprendimento; è stato necessario, dunque, affinchè la rete potesse riconoscere la
bitmap in ingresso, simulare una sorta di addestramento facendo ciclare
l’algoritmo più volte sullo stesso dato in modo che la rete si autorganizzasse per il
particolare tipo di ingresso e la sua risposta convergesse ad un unico neurone
vincente. Tale procedimento è stato effettuato per differenti ingressi.
I parametri η e d sono stati inizializzati in modo da far convergere la soluzione
non troppo velocemente, e senza farla ricadere in una situazione di indecisione
(oscillazione).
In particolare se η è maggiore di 1 l’algoritmo sbaglia più volte in fase di test e si
verifica spesso che il neurone vincente è lo stesso per bitmap differenti.
Come valore ottimale del parametro d si è scelto 0,5 poichè si è visto che per un
valore maggiore le soluzioni convergevano troppo velocemente al nodo con
minore distanza dall’input, mentre per valori troppo inferiori la soluzione ricadeva
in uno stato di perenne oscillazione.
Risultati.
L’algoritmo di Kohonen fornisce in output il “nome” del neurone vincente, cioè di
quel nodo della rete che si è maggiormente rinforzato del corso della
computazione.
Capitolo 3 – Le reti neurali artificiali
48
Si è verificato che durante i cicli di apprendimento delle “bitmap” l’algoritmo si
assestava su un singolo nodo diverso per il caso dela bitmap 1 rispetto a quella
raffigurante lo 0.
Successivamente provando ad eseguire dei test dando in input un’immagine
sconosciuta, l’algoritmo rispondeva correttamente, dando in uscita il “nome” dello
stesso nodo che era risultato migliore nell’apprendimento.
La fase di addestramento è stata forzata per far riconoscere tre diverse bitmap
cercando di ottenere tre differenti risposte. Questo, però, non si è verificato a
causa delle ridotte dimensioni della rete e nonostante la risposta in uscita fosse
coerente con quanto prodotto in fase di apprendimento, si verificava che lo stesso
neurone risultava vincente per più di una bitmap. Quindi la configurazione
minima prescelta è funzionale limitatamente all’apprendimento di due bitmap.
Capitolo 3 – Le reti neurali artificiali
49
3.3.2 Memoria associativa bidirezionale (BAM)
Una memoria associativa è una memoria i cui i contenuti possono essere
recuperati sulla base di informazioni parziali.
Si è scelto questo modello come approccio successivo a quello di Kohonen
poichè descrive in modo realistico ciò che avviene nel cervello, facendo delle
associazioni di concetti in base ai contenuti. Questo algoritmo fornisce maggiori
informazioni rispetto al precedente; non si limita ad indicare un unico nodo, ma
utilizza i tre nodi dello strato di output per codificare la risposta corretta. Con
l’algoritmo della memoria associativa la rete neurale potrebbe idealmente dare
32=9 risposte differenti al contrario delle tre dell’algoritno di Kohonen2.
In una memoria associativa il recupero delle informazioni non implica la
nozione di indirizzo; invece dell’indirizzo viene utilizzata una parte della stessa
informazione da recuperare.
Una caratteristica importante delle memorie associative è la capacità di
recuperare l’informazione memorizzata anche in presenza di errori in ingresso.
[But93]
Con il termine memoria associativa si intende un dispositivo in grado di
contenere informazioni sotto forma di associazione fra dati. Un sinonimo di
memoria associativa può essere memoria accessibile per contenuto, il contrario è
memoria accessibile per indirizzo. Una memoria associativa, dunque, effettua la
classica associazione di idee. [Maz91]
Una buona memoria associativa comporta l’idea di operare in presenza di
dati incompleti o errati. Importante è anche la capacità di accedere alle
informazioni memorizzate con prestazioni indipendenti dalla quantità di dati
immagazzinati, in altre parole il tempo di accesso ad un’informazione deve essere
lo stesso sia in una base di dati di poche righe che di migliaia.
2
3 corisponde al numero di nodi sullo strato di uscita e 2 sono i possibili stati (-1,1) di ciascun
nodo.
Capitolo 3 – Le reti neurali artificiali
50
Questo suggerisce l’ipotesi di un supporto di memoria che non comporti
l’elencazione sequenziale dei dati, come avviene nei database, ma la
sovrimposizione dei dati in una stessa struttura.
Una rete neurale è particolarmente adatta per realizzare memorie associative
poiché l’informazione risiede nell’insieme delle connessioni fra le varie unità e il
singolo dato da memorizzare non è concentrato in celle di memoria ma è
distribuito su una moltitudine di unità da qui il nome di memoria associativa
distribuita.
L’algoritmo.
La Memoria associativa bidirezionale (BAM) è una delle memoria associative
più semplici; essa è formata da due livelli di unità (X eY) con connessioni totali
tra i due livelli e nessuna connessione all’interno del livello. Questo significa che
ogni unità del livello X è connesso con ogni unità Y ma con nessun’altra di X.
Sono indicate con N le unità del livello X e con K le unità del livello Y,
ogni unità può assumere due valori: +1 e -1 e per questo vengono dette bipolari.
La scelta tra { +1, -1} anziché {0,1} è dovuta al fatto che questo facilità le
formule matematiche e migliora la capacità di memoria della rete. Le connessioni
tra le unità sono bidirezionali e simmetriche, cioè wij=wji. La funzione di
trasferimento T è un semplice gradino centrato sullo 0, cioè la soglia oltre la quale
l’unità scatta è il valore di attivazione 0.
Le formule che governano la rete sono
+ 1
xi = 
− 1
se Σ(wij yi ) < 0
se Σ(wij yi ) ≤ 0
(3.8)
(3.9)
+ 1
yj = 
−1
se Σ(wij xi ) < 0
se Σ(wij xi ) ≤ 0
(3.10)
(3.11)
Capitolo 3 – Le reti neurali artificiali
51
La formula di apprendimento di una rete di questo tipo è la semplice formula di
Hebb (3.6)
Implementazione dell’algoritmo.
Si è mantenuto lo stesso modello di rete realizzata per l’algoritmo di Kohonen
composto da nove neuroni nello strato di input e tre nello strato di output e anche
in questo caso l’algoritmo è stato testato sulla capacità di riconoscere le bitmap
raffiguranti il carattere zero o uno.
Il vettore dei pesi viene inizializzato a 0 e la fase di apprendimento si effettua
utilizzando l’apposita procedura :
void addestra (int[] x, int[] y){
this.x=x;
this.y=y;
for (int i=0; i<=N-1 ;i++ ){
for (int j=0;j<=M-1 ;j++ ){
w[i][j]=w[i][j]+(x[i]*y[j]); (Formula di Hebb)
}
}
}
La procedura riceve in ingresso il vettore con la bitmap da riconoscere e la
risposta che deve associare a tale input. I vettori di input e di output hanno la
dimensione dei corrispondenti strati della rete.
Il test di una immagine non nota viene effettuato attraverso la seguente procedura:
void esegui(int[] x){
int cambio=1;
this.x=x;
for (int j=0;j<=M-1 ;j++)y[j]=0;
while (cambio!=0){
cambio=0;
for (int j=0;j<=(M-1) ;j++ ){
A=0;
for (int i=0;i<=(N-1);i++){
A=A+(w[i][j]*x[i]);
}
if (T(A)!=y[j]){
y[j]=T(A);
cambio++;
}
}
Capitolo 3 – Le reti neurali artificiali
}
int T(int A){
}
52
for (int i=0;i<=N-1 ;i++ ){
A=0;
for (int j=0;j<=M-1;j++){
A=A+w[i][j]*y[j];
}
if (T(A)!=x[i]){
x[i]=T(A);
cambio++;
}
}
if (A>0) return 1; else return -1;
}
La funzione T esegue la formula espressa in (3.8) (3.9) (3.10) (3.11).
Esiste un ciclo principale che viene eseguito fino a che non ci sono più
cambiamenti del vettore dei pesi. Il vettore y (che conterrà la risposta) viene
inizializzato a zero.
La procedura “esegui” riceve in input il vettore corrispondente alla bitmap da
testare e cerca di riconoscere se appartiene ad una di quelle note. Ogni elemento
del vettore dei pesi viene moltiplicato con l’input; il valore della sommatoria così
ottenuta va ad aggiornare l’output secondo le regole (3.10) (3.11)
Con la risposta creata e contenuta nel vettore y si tenta poi di effettuare
riscostruzione dell’input.
Esecuzione.
La fase di addestramento si risolve con un’unica invocazione della procedura
“apprendi” descritta nel precedente paragrafo. Il vettore dei pesi aggiornato da
questa procedura contiene già valori che riescono a dare risultati corretti in fase di
test anche se la bitmap prevista non risulta esattamente uguale a quella appresa.
Per avvicinarsi alla bitmap dell’input è necessario eseguire più volte la procedura
di apprendimento.
Capitolo 3 – Le reti neurali artificiali
53
Risultati.
Avendo utilizzato la medesima struttura di rete per tutti gli algoritmi la risposta
dell’algoritmo di memoria associativa è la somma dello stato dei tre neuroni di
output, quindi risponde y=[1,1,1] per riferirsi al carattere 1 e y=[-1,-1,-1] per
riferirsi al carattere 0.
Dopo aver fatto apprendere sia la bitmap corrispondente al carattere 0 sia al
carattere 1 l’algoritmo è in grado di riconoscere se l’immagine sottoposta a
verifica corrisponde ad una di quelle apprese.
Esso, inoltre, riconosce le immagini anche se contengono del rumore
Esempio
L’algoritmo risponde “1” anche se in input si danno le seguenti bitmap:
Fig. 3.15– Test classificati come “1”
Oppure risponde “0” nei casi in cui, anche se incompleta o affetta da disturbo,
l’immagine si avvicina a quella dello zero.
Fig. 3.16 – Test classificati come “0”
Capitolo 3 – Le reti neurali artificiali
54
3.3.3 Perceptrone
Il perceptrone fu proposto da Rosenblatt (1958-1962) per il riconoscimento e la
classificazione di forme o “patterns”. Esso riconosce se una generica forma,
presentata in input, appartiene oppure no ad una determinata classe F; inoltre
apprende il riconoscimento della classe F partendo da una configurazione casuale
di pesi sinattici, modificandoli opportunamente nel corso di una serie di
presentazioni in input sia di esempi positivi (forme di classe F), sia di esempi
negativi (forme non-F). [Cam97]
L’algoritmo.
L’algoritmo è molto semplice. Dapprima si inizializza il vettore dei pesi a zero.
I dati memorizzati nel vettore dei pesi permettono di predirre l’etichetta della
nuova istanza:
∧
y = sgn(wx)
dove w rappresenta la matrice dei pesi sinattici e x il vettore contenente i dati da
classificare e
∧
y
è la predizione dell’etichetta da assegnare al dato x
Se questa predizione è errata, cioè è diversa dall’etichetta y passata in input in fase
di apprendimento, allora viene aggiornato il vettore dei pesi secondo la regola
w = w + yx
(3.12)
Se la predizione è corretta il vettore dei pesi rimane invariato; e il processo riparte
dal successivo esempio.
L’uso
più
comune
dell’algoritmo
del
perceptrone
consiste
nell’apprendimento di un training set di esempi precedentemente classificati su
cui l’algoritmo continua a ciclare. Il ciclo termina nel momento in cui non sono
necessari ulteriori cambiamenti del vettore dei pesi.
Block (1962), Novikoff (1962), Minsky and Papert (1969)
hanno
dimostrato che se i dati sono linearente separabili, allora l’algoritmo del
perceptrone dopo aver commesso un numero finito di errori ciclando sul training
Capitolo 3 – Le reti neurali artificiali
55
set convergerà ad un vettore in grado di classificare correttamente tutti gli esempi.
(Teorema di convergenza del Perceptrone).
Implementazione dell’algoritmo.
L’algoritmo del Perceptrone effettua l’elaborazione avvalendosi di una rete con un
certo numero di nodi in ingresso, ma con un unico nodo di uscita che può
assumere valore pari a “1” se la classificazione è avveuta correttamente o “-1” se
si è commesso un errore.
Nel presente lavoro però esiste il vincolo di mantenere la stessa struttura di rete
realizzata per i precedenti algoritmi, che prevede la presenza di tre neuroni sullo
strato di uscita.
E’ stato necessario dunque creare una matrice dei pesi anzichè un vettore e nella
fase di aggiornamento viene analizzato lo stato di ogni singolo neurone di output
controllando se il suo valore supera quello della soglia; in caso affermativo tutti i
collegamenti dallo strato di input al nodo in esame vengono aggiornati secondo la
regola espressa in 3.12
for (int j=0;j<K ;j++ ){
if (output[j]!=risposta[j]){
System.out.println("aggiorno vettore dei pesi");
for (int i=0;i<N;i++) {
w[i][j]=w[i][j]+(risposta[j]*input[i]);
ho_cambiato=true;
}
}
}
Il vettore output racchiude la soluzione predetta mentre il vettore risposta
contiene la risposta effettiva che l’algoritmo dovrebbe restituire per quel
particolare ingresso.
La fase di apprendimento è inserita all’interno di un ciclo che continua fino a
quando non ci sono più aggiornamenti della matrice dei pesi.
Lo stesso confronto espresso in 2.9 viene effettuato in fase di classificazione di un
elemento non noto.
Capitolo 3 – Le reti neurali artificiali
56
for (int i=0;i<N;i++){
for (int j=0;j<K ;j++ ){
ris[j]=ris[j]+(w[i][j]*test[i]);
}
}
for (int j=0;j<=K-1 ; j++){
if (ris[j]>soglia) output[j]=1;
else output[j]=-1;
System.out.println(output[j]);
}
Il vettore test rappresenta il dato da classificare; nel vettore ris si ricostruisce la
risposta utilizzando il vettore dei pesi aggiornato in fase di apprendimento e dopo
aver effettuato il confronto con la soglia si costruisce la risposta finale
dell’algoritmo (output).
Il valore della soglia viene stabilito in modo empirico e il suo ordine di grandezza
dipende dal formato dei dati ingresso.
Esecuzione.
E’ stato creato un training set di esempi formato da alcune possibili configurazioni
delle bitmap da riconoscere. Si è scelto dunque quali bitmap potessero essere
classificate come “1” e quali come “0”. E’ stato effettuato quindi il ciclo
sull’insieme di esempi; tale ciclo termina quando la matrice dei pesi non viene più
aggiornata.
Nella fase di apprendimento sono state classificate come “1” le seguenti bitmap:
Fig. 3.17 – Apprendimento delle bitmap“1”
Sono state classificate come “0” le seguenti bitmap:
Fig. 3.18 – Apprendimento delle bitmap “0”
Capitolo 3 – Le reti neurali artificiali
57
Risultati.
Anche per l’algoritmo del perceptrone la risposta è stata forzata in modo da essere
uguale a [1,1,1] quando la bitmap testata viene classificata come “1“ e [-1,-1,-1]
quando la bitmap testata non è riconosciuta come “1” cioè, nel nostro caso è “0”.
Vengono qui riportati alcuni test effettuati con le relative risposte:
[1,1,1]
[-1,-1,-1]
[-1,-1,-1]
Fig. 3.19 – Test sull’algoritmo del perceptrone
[-1,-1,-1]
Capitolo 3 – Le reti neurali artificiali
58
3.3.4 Rete di Hopfield
Quasi contemporaneamente alla publicazione dell’algoritmo di retropropagazione
il fisico J.J. Hopfield in una serie di articoli dal 1982 al 1985 (l'ultimo in
collaborazione con D.W. Tank, [Ta&Ho]) presentò un modello di reti neurali ad
alta connessione che porta ora il suo nome e che rappresentò un'altra forte
motivazione per la ripresa delle ricerche nell'area del connessionismo.
La rete di Hopfield permette di memorizzare dei vettori e richiamarli
successivamente. È inoltre di particolare rilevanza la robustezza della rete; cioè se
viene presentato un vettore “vicino” ad uno di quelli memorizzati, quest’ultimo
viene necessariamente richiamato.
L’algoritmo.
La rete consiste di n neuroni a connessione totale, senza autoconnessioni come
mostrato in fig. 3.19
Fig. 3.20 –Schema di una rete di Hopfield con 6 neuroni
Detto wij il peso della connessione tra il neurone i ed il neurone j si ha che
wij = w ji per i ≠ j
wij = 0 per i = j
Inoltre ad ogni neurone i è associata una soglia θi.
Capitolo 3 – Le reti neurali artificiali
59
Al tempo t il neurone i si trova in uno stato binario
+ 1
si (t ) = 
− 1
Il potenziale al quale si trova il neurone i al tempo t è ovviamente
Pi = ∑ ( wij s j ) − θ i
i≠ j
La legge di attivazione del neurone i è
1
si (t + 1) = 
− 1
se Pi ≥ 0
se Pi < 0
(3.13)
Tale legge di attivazione viene usualmente applicata in modo asincrono, cioè
sequenzialmente. La sequenza può inoltre essere una sequenza random.
Supponiamo ora che i pesi wij siano stati assegnati e sia
s (t ) = ( s1 (t ),..., s n (t ))
Alla rete è associata una funzione E, denominata energia per un’analogia formale
con l’energia meccanica, che diminuisce monotonicamente nel tempo t. [Cam97]
E (s) = −
1
∑ wij si s j + ∑j θ i S j
2 i≠ j
Allora si ha
δE
= − Pi
δs i
Pertanto:
•
se Pi > 0, per la 3.13 si ha:
2
∆si = si (t + 1) − si (t ) = 
0
e quindi
∆E =
δE
∆si = − Pi ∆si ≤ 0
δs i
Capitolo 3 – Le reti neurali artificiali
•
60
se Pi < 0,
− 2
∆si = si (t + 1) − si (t ) = 
0
e anche in questo caso
∆E =
δE
∆si = − Pi ∆si ≤ 0
δs i
Ne segue che E è una funzione non crescente dello stato del sistema come
conseguenza della legge di attivazione 3.13; il sistema evolve verso uno stato
caratterizzato da un’energia minima.
Viene descritto ora il procedimento per scegliere i pesi wij in modo da
memorizzare m forme distinte.
E’ necessario normalizzare le m forme in m vettori binari ortogonali sk, con
k=1,..., m, e tali che
s k st = nδ kt
Una scelta possibile per i pesi wij è la seguente:
j = 1,...n
 θj =0
m

i≠ j
wij = ∑ s ki s kj
1
k
=

wii = 0

(3.14)
La 3.14 può anche essere scritta più sinteticamente nella forma
m
wij = ∑ ( s ki s kj − nδ ij )
k =1
infatti si può verificare che
m
wij = ∑ ( s ki s kj − nδ ij ) = nm − nm = 0
k =1
Capitolo 3 – Le reti neurali artificiali
61
Con la scelta 3.14 risulta
n
1 m

E ( s ) = − ∑ ( s k s ) 2 − ∑ s ki2 si2 
2  k =1
i =1

Quindi E(s) risulta limitata inferiormente nell’insieme degli stati. Più
precisamente
E (s) ≥ −
n2m
2
in quanto |sk s| < n.
Le m forme memorizzate s1,...,sm corrispondono ai minimi locali della funzione
E(s).
La rete funziona perciò nel modo seguente. Essendo E(s) non crescente, se ad essa
viene presentato un vettore s', “leggermente” diverso da sl, la dinamica della rete
dopo un certo tempo essa si rilasserà sul minimo locale più prossimo a s' cioè sl .
In base ad esperimenti si vede che se N è il numero di neuroni, si possono
memorizzare m = 0.14N forme. [Ani00]
Implementazione dell’algoritmo.
L’architettura realizzata per implementare gli algoritmi descritti precedentemente,
non è adatta per rappresentare una rete di Hopfield. E’ stato necessario, dunque,
definire un nuovo modello circuitale in cui ogni nodo della rete viene connesso a
tutti gli altri.
Il nuovo modello è rappresentato in fig. 3.21.
Fig. 3.21 - Modello della rete di Hopfield
Capitolo 3 – Le reti neurali artificiali
62
La rete non prevede strati di input e di output distinti, tutti i nove nodi
(neuroni) che la compongono ricevono contemporaneamente i segnali di ingresso
ed emettono quelli di uscita.
Il numero di neuroni è tale da poter rappresentare le bitmap 0 e 1 nello
stesso formato (matrice 3x3) utilizzato per gli algoritmi precedenti.
La matrice dei pesi viene inizializzata secondo la 3.14 in modo da poter
riconoscere la bitmap che descrive il carattere 0 e quella che descrive il carattere
1.
for (i=0;i<=N-1;i++ ){
for (j=0;j<=N-1;j++ ){
somma=0;
if (i==j)
w[i][j]=0;
else {
for (int k=0;k<=numpat-1;k++)
somma = somma +(p[k][i]*p[k][j]);
w[i][j]=somma;
}
}
}
La fase di test viene eseguita calcolando il potenziale di ogni neurone e in
base al suo valore se ne prevede lo stato al tempo (t+1), se questo è differente dal
precedente viene modificato il vettore dei pesi e si ricalcola nuovamente il
potenziale per il nuovo stato, altrimenti il ciclo termina pochè si è giunti alla
configurazione di minima energia.
while ((uguali(preRisp,risp)!=true) || (primo!=false)){
primo=false;
//Viene salvato lo stato precedente
for (int h=0;h<=N-1 ;h++ ){
preRisp[h]=risp[h];
}
for (i=0;i<=N-1 ;i++ ){
for (j=0;j<=N-1 ;j++){
//viene calcolato il potenziale di ogni neurone
pot[i]=pot[i]+(w[i][j]*pat[j]);
}
//viene disegnato lo stato futuro
if (pot[i]>0) risp[i]=1;
else if (pot[i]<0) risp[i]=-1;
Capitolo 3 – Le reti neurali artificiali
63
else risp[i]=pat[i];
}
//si aggiorna il valore della matrice dei pesi
for (i=0;i<=N-1;i++ ){
for (j=0;j<=N-1;j++ ){
if (i==j) w[i][j]=0;
else w[i][j] = w[i][j]+(pot[i]*pot[j]);
}
}
}
Esecuzione.
L’output della rete consiste nella configurazione dei nove neuroni della rete.
La particolarità della rete è quella di portare l’input ad uno dei possibili stati che
ha imparato a riconoscere. In questo modo se una bitmap contiene del rumore
viene ripulita e l’uscita corrisponde all’immagine originale.
L’uscita è data dallo stato dei nove neuroni che compongono la struttura.
Risultati ottenuti
La rete raggiunge la configurazione propria della bitmap “0” anche ricevendo i
seguenti input:
La rete raggiunge la configurazione propria della bitmap “1” anche ricevendo i
seguenti input:
Capitolo 4
Il progetto
4.1 La scheda di acquisizione dati
L’interfacciamento tra il circuito neurale composto da cellule biologiche e le
applicazioni software necessarie per l’elaborazione dei segnali provenienti dal
suddetto circuito è stato realizzato con l’ausilio di un dispositivo di acquisizione
dati.
Il dispositivo che si è scelto è il Personal Daq/56 dell’IOTECH.
Fig. 4.1-Dispositivo Personal Daq/56
Esso è un apparecchio per l’acquisizione dei dati che si avvale dell’utilizzo
della porta USB. Tanto più il dispositivo si avvicina al punto della misurazione,
maggiore sarà l’esattezza dei dati ottenuti, poichè meno inquinati dal rumore; per
questo motivo l’apparecchio può essere situato fino a cinque metri di distanza dal
computer al quale è collegato.
Capitolo 4 – Il progetto
65
Il collegamento tra il Personal Daq e il Personal Computer avviene
attraverso la porta USB che è in grado di garantire sia l’alta velocità di
comunicazione sia l’alimentazione al dispositivo.
E’ possibile utilizzare più dispositivi Personal Daq collegati tra loro in
cascata
a
seconda
del
numero
di
segnali
che
si
devono
trattare
contemporaneamente. Negli esperimenti sviluppati nel corso del lavoro che si sta
descrivendo, è stato necessario analizzare un massimo di otto canali, quindi è
bastato un unico dispositivo.
La scheda di acquisizione è dotata di due porte digitali ognuna composta da
otto canali dai quali si possono inviare i segnali provenienti dal computer verso
l’esterno; e da due porte analogiche, ciascuna formata da cinque canali
differenziali (o dieci asimmetrici), dai quali, invece, è stato possibile acquisire i
segnali elettrici provenienti dal circuito esterno.
4.1.1 Caratteristiche tecniche
Il collegamento con USB
Il collegamento con la porta USB risulta ideale per le applicazioni di acquisizione
dati. Attraverso esso è possibile sia fornire l’alimentazione alla periferica
collegata sia disporre di un’alta velocità di trasferimento dei dati che permette
l’acquisizione in tempo reale senza avere la necessità di aggiungere una memoria
supplementare nel dispositivo di acquisizione.
Il collegamento USB sostiene i dati di trasferimento fino a 12 Mbytes al secondo.
Isolamento ottico
Il dispositivo Personal Daq/56 è isolato otticamente dall’elaboratore che lo ospita.
Uno sbalzo di tensione eventualmente applicato alla scheda di acquisizione, non
avrà dunque nessun effetto sul personal computer e ciò permette di effettuare
misure più esatte e non intaccate da un eventuale rumore.
Capitolo 4 – Il progetto
66
Intervalli di input
E’ possibile selezionare gamme di valori differenti per ogni canale di
acquisizione. Un canale, ad esempio, può essere utilizzato per la tensione (volt) ed
un altro per la temperatura. Il software associato al Personal Daq imposta
automaticamente le unità di misura appropriate per il tipo di parametro
selezionato.
L’intervallo massimo della tensione di input varia tra -10 V e +20 V
L’intervallo minimo di tensione di input varia tra -31 mV e +31 mV.
Configurazione Analogica degli input
Il dispositivo Personal Daq comprende dieci canali per l’acquisizione di input
analogici che possono essere utilizzati tutti in modo asimmetrico, in modo
differenziale o come come combinazione degli input asimmetrici e differenziali
con, al massimo, dieci collegamenti.
Il numero di canali dell'entrata analogica può essere aumentato utilizzando uno o
più moduli di espansione. Esistono due tipi di moduli di espansione: il primo tipo
permette di aggiungere venti input asimmetrici (o dieci differenziali), un secondo
tipo aggiunge quaranta input asimmetrici (oppure venti differenziali).
Input/Output digitale
Ognuno dei canali digitali può essere programmato come canale d’ingresso o
come canale di uscita.
Le linee digitali possono essere acquisite come componenti di un’eventuale
sequenza analogica e possono essere lette oltre cento volte al secondo; le linee di
uscita possono essere aggiornate in qualunque momento dell’acquisizione.
[Daq01]
Capitolo 4 – Il progetto
67
4.2 L’applicazione
Poichè il software DaqView associato al dispositivo hardware non prevede la
possibilità di impostare sequenze cicliche di invio di segnali digitali di output, è
stato necessario creare un’applicazione “ad hoc” per le nostre necessità.
Per realizzare le procedure che implementano l’interfaccia e la gestione della
scheda di acquisizione si sono utilizzate le funzioni di gestione della periferica
contenute nel file pdaqx.dll
L’applicazione è stata realizzata nel linguaggio Pascal ad Oggetti in ambiente
Delphi. Sono state implementate soltanto le funzionalità di supporto alle
misurazioni realmente eseguite e descritte nel capitolo successivo.
4.2.1 Inizializzazione della scheda di acquisizione
L’inizializzazione della periferica stabilisce un canale di comunicazione tra
l’applicazione e la scheda di acquisizione dati. L’apertura di tale canale fa sì che
nessun’altra applicazione possa interfacciarsi con la periferica prima che sia
avvenuta la sua chiusura.
L’inizializzazione è realizzata attraverso la sezione di codice che segue.
daqGetDeviceCount(@deviceCount);
daqGetDeviceList(@deviceList[0], @deviceCount);
UnitData.handle := -1;
for deviceIndex := 0 to (deviceCount) do
begin
daqGetDeviceProperties(deviceList[deviceIndex].daqName, @deviceProps);
if ((deviceProps.deviceType = PersonalDaq55) or
(deviceProps.deviceType = PersonalDaq56)) then
begin
UnitData.handle := daqOpen(deviceList[deviceIndex].daqName);
break;
end;
end;
La procedura daqGetDeviceCount rileva quante periferiche sono collegate e ad
ognuna di esse la procedura daqGetDeviceList assegna un nome.
Capitolo 4 – Il progetto
68
Se il valore del parmetro handle restituito dalla suddetta procedura è -1 la
periferica ha generato un errore e l’applicazione viene terminata, in caso contrario
il dispositivo viene aperto attraverso la procedura daqOpen creando il canale di
comunicazione per lo scambio di dati che rimmarrà attivo fino a che non si esegue
la procedeura daqClose.
4.2.2 Acquisizione analogica
La finestra dell’applicazione che gestisce la lettura dei segnali provenienti dal
circuito esterno è rappresentata in fig.4.2
Fig. 4.2- Schermata dell’acquisizione
E’ possibile impostare il numero di canali analogici da cui si desidera acquisire
dati, la frequenza di lettura, espressa in Hz, e il numero di scansioni per la
frequenza impostata; la combinazione di questi ultimi due parametri determina la
durata della lettura. Esiste inoltre la possibilità di specificare il nome del file in cui
salvare i risultati dell’operazione di acquisizione.
Capitolo 4 – Il progetto
69
Se la sequenza di istruzioni di inizializzazione è avvenuta con successo nel
seguito del programma ci si riferirà al dispositivo di acquisizione dati attraverso il
suo handle impostato in fase di inizializzazione.
Vengono ora descritte le principali istruzioni che permettono la lettura sui
canali analogici.
Inizialmente è necessario impostare una serie di parametri utili per configurare il
tipo di acquisizione.
L’acquisizione viene settata per poter leggere da zero a scancount (numero di scan
impostati dall’utente)
daqAdcSetAcq(UnitData.handle, DaamNShot, 0, ScanCount);
La frequenza di acquisizione viene assegnata uguale al valore freq determinato
dall’utente.
daqAdcSetRate(UnitData.handle, DarmFrequency, DaasPostTrig, freq, @actualRate);
Successivamente viene configurato un buffer buf per la memorizzazione dei dati
analogici letti.
daqAdcTransferSetBuffer(UnitData.handle, buf, scanCount, DatmWait);
Infine, la procedura
daqAdcArm(UnitData.handle);
attiva la possibilità di effettuare il trasferimento di dati;
solo quando viene
invocata la procedura
daqAdcTransferStart(UnitData.handle);
il suddetto trasferimento ha effettivamente inizio.
4.2.3 Scrittura digitale
La finestra dell’applicazione che gestisce l’invio di segnali digitali verso il
circuito esterno è rappresentata in fig. 4.3.
Capitolo 4 – Il progetto
70
Fig. 4.3 - Schermata dell’invio di bitmap
Attraverso tale interfaccia è possibile disegnare il tipo di bitmap che si desidera
inviare alla scheda; impostare il numero di cicli della sequenza scelta, il tempo di
attesa (in ms) tra due sequenze successive e il nome del file in cui salvare la
configurazione inviata. Anche se le bitmap sono rappresentate da nove celle in
realtà soltanto otto di esse risultano significative per la descrizione dell’immagine.
La cella centrale che corrisponderebbe al canale nove viene ignorata, per
semplicità; considerare otto canali (un byte) semplifica notevolmente i calcoli.
La seguente sezione di codice esegue l’invio dei segnali sul dispositivo Personal
Daq/56 collegato.
for i:=1 to contBitmap do
begin
daqIOWrite(UnitData.handle, DiodtPDaqDigIO, DiodpPDaqPort1, 0, DioepP1, digVal[i]);
delay(intervallo);
daqIOWrite(UnitData.handle, DiodtPDaqDigIO, DiodpPDaqPort1, 0, DioepP1, 0);
delay(intervallo);
end;
Capitolo 4 – Il progetto
71
La procedura daqIOWrite invia contemporaneamente sugli otto canali digitali
della porta DiodpPDaqPort1 la bitmap digVal[i]
Il ciclo viene eseguito per tutte le bitmap “disegnate” dall’utente; i segnali che
descrivono una bitmap vengono inviati per il tempo (in ms) specificato dalla
costante intervallo.
Capitolo 4 – Il progetto
72
4.3 Il “circuito vivente”
4.3.1 Realizzazione circuitale
La connessione diretta neuroni-PC ha comportato una serie di problemi non
facilmente risolvibili con i pochi mezzi attualmente a disposizione. Il problema
principale
è
stata
la
perfetta
realizzazione
di
un
interfacciamento
neurone/elettrodo, indispensabile per estrarre ed inviare i segnali elettrici
necessari.
Il problema della giunzione tra neurone ed elettrodo, è di fondamentale
importanza: i materiali utilizzati devono essere biocompatibili con l’ambiente di
coltura dei neuroni, e gli stessi devono attecchire in modo solidale all’elettrodo
per avere la massima conducibilità.
Inizialmente, si è provato a creare colture di neuroni su un supporto di
Kapton (film in polyimide utilizzato per cavi in avionica) equipaggiato d’elettrodi
in lega di tungsteno.
Il suddetto materiale risultava biocompatibile con la coltura ma le grosse
dimensioni degli elettrodi impedivano ai neuroni di innestarsi in modo efficace,
probabilmente per problemi d’elettrolisi i neuroni migravano lontano dagli
elettrodi.
Si sono provati altri materiali quali dei PCB (printed circuit board) utilizzati
in elettronica per la connessione dei vari componenti, ma i risultati sono stati
deludenti poiché la non trasparenza del supporto impediva il controllo al
microscopio della cultura.
Successivamente è stato reperito un supporto idoneo allo scopo (Fig. 4.6).
Esso è costituito da un disco in vetro dove sono riportati dei piccoli elettrodi in
tungsteno.
Ogni singolo elettrodo è connesso tramite una sottile pista isolata ad una
piazzola adibita al collegamento esterno del sistema.
Capitolo 4 – Il progetto
73
Il disco comprende quattro parti, ognuna delle quali è a sua volta suddivisa
in cinque piccole aree contenenti circa tredici elettrodi ciascuna (Fig. 4.4).
Fig. 4.4 – Sezione di un’area del supporto hardware.
Approssimativamente il numero totale degli elettrodi presenti sull’intero disco
ammonta a circa 300 connessioni.
La distanza tra gli elettrodi (Fig. 4.5) varia in funzione del layout presente in ogni
singola area, mediamente tale distanza si aggira tra i 70 e 100 µm.
Fig. 4.5 - Elettrodi presenti on ogni area
Primo esperimento
Il primo esperimento condotto riproduce la rete neurale necessaria per
implementare l’algoritmo di Kohonen. In questa fase del lavoro ci si è concentrati
su una sola area di quelle presenti sul supporto, isolandola da tutto il resto; per far
ciò è stato necessario costruirle attorno una vaschetta di plastica entro la quale è
stata disposta la coltura dei neuroni (Fig. 4.6).
Capitolo 4 – Il progetto
74
Fig. 4.6 - Supporto Hardware per la coltura.
Dei novantacinque elettrodi presenti nell’area delimitata dalla vaschetta, ne
sono stati selezionati otto, utilizzati come input, tre come output e tre come
ground. Tutti gli elettrodi sono stati collegati, tramite fili di rame isolato, ad una
morsettiera che è servita per la successiva connessione ai circuiti esterni (Fig. 4.7)
Fig. 4.7 – Schema circuitale della rete di Kohonen
L’intero circuito e i fili necessari per i collegamenti sono stati protetti
tramite la deposizione di un particolare silicone. Questa operazione è essenziale
per proteggere tutte le connessioni elettriche dai liquidi della coltura dei neuroni, e
Capitolo 4 – Il progetto
75
impedire che alcuni materiali o sostanze tossiche (es. lo stagno e relativo
disossidante utilizzato per la saldatura dei conduttori) vengano a contatto con la
coltura uccidendo così le cellule. Tutti i materiali utilizzati si sono rivelati idonei
allo scopo.
Tramite la morsettiera, solidale con il supporto della coltura, si sono
connessi i fili necessari per portare e ricevere i segnali elettrici dalle
apparecchiature esterne. Gli otto conduttori, connessi agli input, sono stati
collegati ad un generatore di pattern, costruito appositamente per stimolare
elettricamente i neuroni costituenti la rete da sperimentare, mentre i tre conduttori
di output sono stati collegati agli ingressi analogici della scheda per l’acquisizione
dei dati che, a sua volta, è stata connessa ad un computer per la registrazione e
l’analisi dei segnali provenienti dal circuito vivente.
Il cuore del generatore di pattern è costituito da un microprocessore della
STM programmato per ottenere in uscita delle word di otto bit. Le uscite del
microprocessore sono connesse ad un circuito elettronico che genera una tensione
positiva costante di 30 mV necessaria per stimolare i neuroni senza danneggiarli
(Fig. 4.8).
Fig. 4.8 – Microprocessore per l’invio dei segnali
Capitolo 4 – Il progetto
76
Secondo esperimento
Sulla base dei risultati precedenti si è andati realizzando un secondo esperimento.
Per questo scopo si è utilizzato sempre lo stesso supporto per realizzare la
giunzione dei neuroni con il mondo esterno e su di esso sono state sono state
installate quattro vaschette per le colture in modo da realizzare più esperimenti
contemporaneamente (Fig. 4.9)
Fig. 4.9 Supporto hardware per il secondo esperimento
È stata rimossa la morsettiera e sostituita con un connettore con 40 pin. Il
cavo di collegamento è un conduttore flat a 40 conduttori schermato contro le
emissioni EMI.
Fig. 4.10 – Schemi circuitali del secondo esperimento
Capitolo 4 – Il progetto
77
In fig. 4.10 è descritta la configurazione circuitale delle quattro aree del
suppporto hardware di fig. 4.9. La prima area ha permesso di rifare l’esperimento
descritto precedentemente; la terza è stata realizzata per un esperimento di non
località quantistica e la quarta è utilizzata solo per prove di conducibilità dei
liquidi di coltura; la seconda area, invece, è destinata a ricreare una rete di
Hopfield: sono stati selezionati nove elettrodi tra quelli presenti, e sono stati
collegati al connettore, otto di essi rappresenteranno i canali verso cui inviare e
ricevere i segnali sui nodi della rete di Hopfield, mentre uno è necessario per
depolarizzare il circuito.
Il circuito elettronico del generatore di pattern è stato completamente rifatto
(fig. 4.11). Tale circuito non necessita di un microprocessore, ma riceve i pattern
direttamente dalla porta digitale della scheda d’acquisizione e fornisce in uscita le
corrette tensioni da inviare ai neuroni. Per evitare il problema dell’elettrolisi ogni
bit generato è preceduto da un impulso negativo avente lo scopo di depolarizzare
l’elettrolita della cultura. È stato migliorato il generatore di tensione costante che
prevede in uscita, su ogni singolo segnale, un circuito operazionale che si
preoccupa di generare gli impulsi necessari.
La nuova configurazione circuitale consente di mantenere costante la
tensione d’uscita mantenendola perfettamente squadrata e livellata. E’ possibile
variare la tensione in uscita, sia positiva sia negativa separatamente, da un minimo
di 5 mV ad un massimo di 100 mV.
Fig. 4.11 – Circuito elettronico per il controllo della tensione
Capitolo 4 – Il progetto
78
4.3.2 Il materiale biologico
Anche se fino a questo momento si è parlato di neuroni per indicare la materia
biologica utilizzata negli esperimenti, è doveroso fare alcune precisazioni.
All’interno della vaschetta costruita attorno al circuito elettrico (Fig. 4.6) è stato
inserito un liquido all’interno del quale sono presenti una certa percentuale di
cellule nervose: neuroni, astrociti e oligodendrociti.
Le suddette cellule nervose sono state ricavate a partire da cellule staminali
prelevate da tessuti cerebrali di feti che hanno subito aborti spontanei. [Gr&Al]
Le cellule staminali sono state poste in una soluzione progettata ad “hoc”
per favorirne il differenziamento e dopo alcuni giorni quando, seppur non ancora
mature, possono dirsi cellule nervose, vengono inserite in un liquido di coltura: un
composto organico basato su siero bovino con ph neutro che contiene delle
sostanze indispensabili per il nutrimento delle cellule.
E’ da notare che a causa degli strumenti messi a disposizione per questi
esperimenti, non è stato possibile collocare le cellule esattamente nei punti
desiderati; in sostanza, le architetture elettriche realizzate hanno costituito una
sorta di letto sul quale sono state depositate le cellule che hanno potuto, così,
creare collegamenti tra loro al di là di quelli elettrici. Tuttavia si ritiene che questo
non snaturi gli esiti degli esperimenti per i seguenti motivi:
•
Nel modello di rete presentato da Kohonen i neuroni disposti sullo
strato competivo sono tra loro connessi e stabiliscono delle relazioni
di vicinato tali per cui un segnale che arriva ad uno solo di essi si
propaga anche in un certo intorno. I segnali d’uscita, inoltre,
vengono prelevati da un elettrodo ben preciso il quale, fornisce
l’attività delle cellule realmente poste su di esso.
•
Nel modello di Hopfield i neuroni sono tutti interamente
interconnessi quindi, le connessioni che si stabiliscono tra le cellule
nervose corrispondono alle connessioni presenti nel modello
software.
Capitolo 5
Gli esperimenti
5.1 Il modello di Kohonen
Il primo esperimento condotto è stato finalizzato all’analisi del circuito che
realizza il modello proposto da Kohonen e descritto in 3.3.1.
Si è predisposta una sequenza di input con i quali stimolare il circuito. Al fine di
rendere più realistico il confronto con i risultati ottenuti via software anche la rete
hardware è stata testata sull’acquisizione di bitmap che descrivono i caratteri 0 e
1.
Carattere 0
Carattere 1
Le nove celle che formano la bitmap corrispondono ai nove collegamenti sullo
strato di input della rete e quindi ai nove canali sulla porta digitale della scheda di
acquisizione dati secondo il seguente schema:
1 8 7
2 9 6
3 4 5
Dove i numeri da 1 a 9 rappresentano il canale/neurone di input della rete.
Capitolo 5 – Gli esperimenti
80
In realtà il canale contrassegnato con il numero nove sarà sempre lasciato al
valore zero; questo permette di lavorare soltanto con otto canali (1 byte) che dal
punto di vista dell’elaborazione semplifica notevolmente il lavoro.
CARATTERE 0Æ {1,1,1,1,1,1,1,1}
CARATTERE 1Æ {0,0,0,0,1,1,1,1}
Poichè l’algoritmo classico di Kohonen ha la capacità di classificare esattamente
anche pattern affetti da rumore, è stata predisposta una configurazione di bitmap
che il modello software aveva riconosciuto correttamente.
Bitmap riconducibili al carattere “0”
{01110111}
{01111111}
{11111101}
Bitmap riconducibili al carattere “1”
{00001110}
{00000111}
{00011110}
Sui nodi di input del circuito sono stati inviati i pattern sopra descritti in
diverse configurazioni e a differenti frequenze e sono stati misurati i segnali di
uscita sui tre nodi dello strato di output.
Capitolo 5 – Gli esperimenti
81
Le misurazioni sulle uscite sono state eseguite contemporaneamente rispetto
all’invio dei segnali d’ingresso. E’, inoltre, utile specificare che l’invio di un bit
zero sul canale equivale a non inviare nulla, mentre mandare un bit uno significa
far passare una tensione di 0,35 V.
5.1.1 Risultati ottenuti
Dapprima si è misurato l’output del circuito prima di sottoporlo a stimoli
particolari. Le uscite sui tre canali sono rappresentate in fig.5.1
Misurazione libera delle cellule nervose
0,1
0,08
0,06
0,04
V
0,02
0
-0,02
-0,04 1
5
9
13
17
21
25
29
33
37
41
45
49
53
57
61
65
69
73
77
81
85
89
93
97
-0,06
-0,08
Numero di letture
Canale 1
Canale 2
Canale 3
Fig. 5.1 – Grafico del comportamento delle cellule senza stimolazioni
Per avere la certezza che tali segnali rappresentassero l’attività dei neuroni,
e non un possibile comportamento conduttivo del liquido di coltura in cui sono
inserite le cellule, è stato necessario verificare il comportamento del solo siero per
la coltura, privato delle cellule nervose. I risultati ottenuti da tale misurazione
sono riportati in fig.5.2
Capitolo 5 – Gli esperimenti
82
Liquido di coltura prima di subire stimolazioni
0,1
0,08
0,06
0,04
V
0,02
0
-0,02
1
9
17
25
33
41
49 57
65
73
81
89
97 105 113 121 129 137 145 153 161 169 177 185 193
-0,04
-0,06
-0,08
Numero di letture
Canale 1
Canale 2
Canale 3
Fig. 5.2 – Grafico del comportamento del liquido di coltura senza stimolazioni
Confrontando i risultati si deduce che i segnali di fig.5.1 rappresentano
effettivamente l’attività elettrica dei neuroni.
Successivamente il circuito è stato sottoposto a particolari stimolazioni
durante le quali sono stati inviati sui canali di input i pattern rappresentanti le
bitmap sopra descritte.
In fig.5.3 sono riportate le risposte all’invio della prima sequenza. L’invio
dei segnali è avvenuto ad una frequenza di 1 Hz, mentre la lettura è avvenuta a 4
Hz, quindi sono state necessarie quattro letture per poter leggere ogni pattern
inviato.
I dati sulle ascisse rappresentano il numero di scansioni effettuate dal
dispositivo di acquisizione dati, cioè, il numero di volte in cui sono avvevute delle
letture sui canali. Dalla lettura 4 alla 7 si può notare l’uscita dei tre canali mentre
viene data in input una bitmap zero. Dalla lettura 8 alla 11 si può notare l’uscita
dei tre canali mentre viene data in input una bitmap uno. Dalla 12 alla 22 si ha la
risposta all’invio delle tre bitmap che l’algoritmo software ha classificato come
zero e tra 23 e 34 quella per le tre bitmap classificate come uno.
Capitolo 5 – Gli esperimenti
83
Prima stimolazione
0,1
0,08
0,06
0,04
0,02
40
37
34
31
28
25
22
19
16
13
10
1
7
0
-0,02
4
V
-0,04
-0,06
-0,08
Canale 1
Canale 2
Canale 3
Numero di letture
Fig. 5.3 – Risposta all’invio della prima sequenza
Nella fig. 5.4 sono raccolte le risposte all’invio della stessa sequenza
rappresentata in fig 5.3, avvenuta però con una frequenza di 2 Hz e ripetuta ad
intervalli regolari. La frequenza di lettura è rimasta del valore di 4 Hz quindi per
identificare un pattern sono sufficienti due scansioni. Dalla lettura numero 6 alla
numero 7 si ha la risposta all’invio di una bitmap “zero”; dalla 8 alla 9 è stata
inviata una bitmap “uno”, dalla numero 10 alla numero 15 ha ricevuto tre possibili
pattern “uno”, mentre dalla 16 alla 21 tre possibili “zero”. Come si può notare dal
grafico il ciclo riprende poi ad intervalli regolari.
Seconda stimolazione
0,1
0,08
0,06
V
0,04
0,02
0
-0,02 1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
-0,04
-0,06
-0,08
Numero di letture
Fig. 5.4 – Risposta all’invio della seconda sequenza
Canale 1
Canale 2
Canale 3
Capitolo 5 – Gli esperimenti
84
La stessa sequenza di pattern è stata inviata numerose volte con frequenze
differenti. Tutti i segnali d’uscita sono stati registrati e hanno mostrato un
comportamento analogo a quello appena descritto: l’uscita in prossimità di bitmap
graficamente simili assume valori piuttosto vicini. Tali risultati sono consultabili
nell’Appendice.
In fig. 5.5 è descritta la risposta del circuito all’invio di sei bitmap
raffiguranti l’immagine “zero”. Il segnale d’uscita sui tre canali in risposta
all’input è visualizzato nelle zone di più bassa tensione (dallo scan 9 al 24, dal 44
al 59, ecc.). Ricordando che la bitmap zero è elettricamente rappresentata da
11111111, al suo invio viene mandata nel circuito una tensione alta rispetto agli
altri pattern, eppure la risposta è costituita dai segnali più bassi.
Stimolazione con sole bitmap "0"
0,1
0,08
0,06
V
0,04
0,02
-0,04
Numero di letture
193
185
177
169
161
153
145
137
129
121
113
105
97
89
81
73
65
57
49
41
33
25
17
-0,02
9
1
0
Canale 1
Canale 2
Canale 3
Fig. 5.5 – Risposta all’invio di sole bitmap “0”
A rendere ancora più singolare quanto appena detto si aggiunge il fatto che
il comportamento del solo liquido di coltura è totalmente differente. Essendo un
composto organico, si comporta come un conduttore e in corrispondenza dei
pattern zero risponde con valori di tensioni più alti che negli altri casi (Fig. 5.6)
Capitolo 5 – Gli esperimenti
85
Liquido stimolato con bitmap 0
0,9
0,8
0,7
0,6
V
0,5
0,4
0,3
0,2
0,1
0
1
14 27 40 53 66 79 92 105 118 131 144 157 170 183 196 209 222 235 248 261 274 287 300
Canale 1
Canale 2
Canale 3
Numero di letture
Fig. 5.6 – Risposta all’invio di sole bitmap “0” sul liquido di coltura
Al termine dell’esperimento si è misurato nuovamente lo stato dei tre
segnali di uscita senza sottoporre il circuito a nessun tipo di input per verificare se
le stimolazioni hanno influito o meno sullo stato dei neuroni. In fig. 5.7 è riportata
la risposta dei neuroni dello strato di output.
Cellule nervose dopo le stimolazioni
0,14
0,12
0,1
V
0,08
0,06
0,04
0,02
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
Numero di letture
86
91
96
Canale 1
Canale 2
Canale 3
Fig. 5.7 – Comportamento finale delle cellule senza stimolazioni
Si può notare che l’andamento del segnale risulta molto diverso rispetto a
quello di fig.5.1 misurato nelle stesse condizioni. Ciò ha fatto pensare, in una
prima analisi, che le cellule nervose avessero, in qualche modo, trattenuto
l’informazione e che un nodo (il canale 1) si fosse rinforzato più degli altri nel
Capitolo 5 – Gli esperimenti
86
corso delle stimolazioni. Questa considerazione potrebbe apparire un po’
azzardata poichè anche il liquido di coltura, dopo aver subito una serie di
stimolazioni assume l’andamento descritto in fig. 5.8.
Liquido di coltura dopo le stimolazioni
0,14
0,12
0,1
0,08
V
0,06
0,04
0,02
0
1
5
9
13
17
21
25
29
33
37
41
45
49
53
57
61
65
69
73
77
81
85
Numero di letture
89
93
97
Canale 1
Canale 2
Canale3
Fig. 5.8 – Comportamento finale del liquido senza stimolazioni
Tuttavia mentre il liquido di coltura ritorna ad avere un comportamento
simile a quello precedente le stimolazioni (fig. 5.2), lo stesso non si può dire per il
composto contenente le cellule nervose.
5.1.2 Confronto con il modello artificiale
Lo stesso tipo di input è stato inviato anche in ingresso all’algoritmo software. La
matrice che rappresenta i valori che i neuroni hanno come loro potenziale di
partenza viene inizializzata a valori reali casuali.
La fig. 5.9 riporta il numero di volte in cui, l’algoritmo arriva a convergere
verso un unico nodo. Si può notare che per qualsiasi valore random di
inizializzazione il nodo che si rafforza maggiormente nella computazione è lo
stesso che al termine degli esperimenti sul circuito risultava avere il potenziale
maggiore.
Capitolo 5 – Gli esperimenti
87
Risultati software
6000000
5000000
4000000
Numero di
3000000
Vittorie
2000000
1000000
0
Canale 1
Canale 2
Canale 3
Canali
Fig. 5.9 – Grafico dei risultati software
5.1.3 Conclusioni
Alla fine dell’esperimento i neuroni sono risultati ancora tutti vivi, dimostrazione
che le tensioni e correnti calcolate sono corrette.
Si è constatato che la frequenza più bassa ha dato i peggiori risultati (cfr.
Appendice pag. 96), poiché le correnti elettriche circolanti nella coltura generano
fenomeni d’elettrolisi, e molto probabilmente anche perché le velocità di
“trasmissione” dei neuroni sono superiori.
La presenza dell’oscillatore al quarzo del microprocessore unito al clock
generato dal microprocessore stesso, installato sullo circuito del generatore di
corrente, creano un leggero rumore di sottofondo che si propaga alla rete.
I cavi che portano i segnali dalla morsettiera della rete alla scheda
d’acquisizione non sono schermati e, visti i deboli segnali in gioco, raccolgono
ulteriore rumore ambientale.
Conclusioni e Sviluppi futuri
Per quanto un’analisi completa dei segnali registrati esuli dagli scopi di
questa tesi, è importante fare alcune considerazioni emerse da uno studio
preliminare dei risultati. Sono stati presi in esame i segnali di output ricavati dalla
misura dei neuroni prima degli stimoli, durante l’apprendimento e al termine,
nella cosiddetta fase di “testing”. Tali segnali sono stati elaborati utilizzando la
Recurrence Quantification Analysis. Questo strumento di analisi non lineare si
basa sullo studio di serie temporali ricostruite con delay-time embedded, ossia
estese in uno spazio multi-dimensionale. Si ottiene così uno spazio delle fasi in
cui la serie temporale è il sistema dinamico da analizzare.
Una volta ricostruita la serie si possono usare dei Recurrence Plots per
mostrare quali vettori, nello spazio ricostruito, sono lontani o vicini tra loro.
Vengono calcolate le distanze euclidee tra tutti gli accoppiamenti tra i vettori e
queste vengono poi codificate attraverso dei colori.
Essenzialmente, il Recurrence Plot è una tabella di codici di colori, in cui i
colori caldi (giallo, rosso ed arancio) possono essere associati con le piccole
distanze fra i vettori, mentre i colori freddi (azzurro, nero) possono essere usati
per mostrare le grandi distanze.
Per segnali random la distribuzione dei colori è completamente uniforme.
Quanto più deterministico è il segnale, tanto più strutturato sarà il Recurrence
Plot. In pratica il determinismo del segnale è dato dall’ampiezza delle porzioni di
spazio in cui il sistema si sofferma più a lungo rispetto alla casualità.
Conclusioni e Sviluppi futuri
89
Dalla suddetta analisi si sono ottenuti i risultati mostrati in fig. a, fig. b, fig.
c. e fig.d.
La prima immagine descrive lo stato di organizzazione di un canale prima di
ricevere degli stimoli. Essa è costituita da colori freddi e disorganizzati che
segnalano la mancanza di autosimilarità e quindi di autoorganizzazione della serie
temporale.
La fig. b, calcolata sul segnale ottenuto in fase di stimolazione con il ciclo di
pattern descritto in precedenza, è a sua volta disorganizzata anche se con un
andamento molto diverso da quello del canale di output prima della stimolazione.
Nella fig. c, invece, che corrisponde al segnale emesso da un canale di
output in fase di “testing” con il pattern zero, si vedono ampie bande uniformi di
colore giallo e rosso, mentre i colori freddi sono limitati agli estremi del
diagramma.
La fig. d rappresenta, infine, il Recurrence Plot di un canale di output dopo
la fine della somministrazione dei pattern. In questo caso le bande di colori caldi
si sono ulteriormente allargate, a dimostrazione di un altissimo grado di
autoorganizzazione.
E’ evidente da questa analisi che l’introduzione di stimoli organizzati ha
modificato il segnale proveniente dalle cellule aumentandone il contenuto
informativo in misura rilevante.
Quel che è più importante, è che l’organizzazione del segnale di output
permane anche dopo la cessazione dello stimolo, lasciando aperta la possibilità di
interpretare questo evento come una forma di apprendimento o memorizzazione.
Conclusioni e Sviluppi futuri
90
Fig.a – Prima delle stimolazioni
Fig. b – Durante una stimolazione
Fig. c – Durante la presentazione
Fig. d – A riposo dopo la stimolazione
di un pattern “appreso”
Gli elementi raccolti invece dall’analisi qualitativa dei segnali registrati
emergono soprattutto dal confronto fra il comportamento del solo liquido di
coltura e quello del composto completo.
ƒ
Il liquido di coltura si è comportato come un conduttore, lasciando
passare verso le uscite gran parte della tensione applicata agli
ingressi, ma è ugualmente possibile rilevare che nel composto
completo di cellule nervose le tensioni in gioco risultano più basse e,
in particolare, quando il solo liquido risponde con valori “alti” di
Conclusioni e Sviluppi futuri
91
tensione, il composto fornisce in uscita i suoi valori più bassi; ciò
dipende probabilmente dal valore di soglia che fa sì che le cellule
nervose
si
attivino
solo
in
particolari
condizioni.
Questo
comportamento può far pensare ad una possibile capacità dei neuroni
di immagazzinare la tensione (informazione) applicata agli ingressi
per rilasciarla poi in un secondo momento.
ƒ
Inoltre, al termine delle stimolazioni l’uscita che descrive l’attività
delle cellule non presenta più un andamento oscillatorio tra valori
positivi e negativi come, invece, faceva all’inizio dell’esperimento,
ma varia con oscillazioni via via sempre meno ampie fino a
diventare impercettibili su alcuni valori di tensione diversi per i tre
canali e comunque molto più bassi di quanto non faccia il solo
liquido di coltura. Anche quest’ultimo, dopo essere stato sottoposto
agli stimoli, presenta in uscita valori diversi per i tre canali, che però
appaiono molto simili a quelli misurati prima degli input.
ƒ
Va infine sottolineato che a valori graficamente simili, cioè quando
vengono inviate bitmap che si assomigliano, corrispondono valori
simili nonostante le tensioni applicate agli ingressi non siano molto
differenti.
In definitiva le considerazioni sopra riportate concordano nell’evidenziare
che se da una parte le reazioni del solo liquido di coltura sono sostanzialmente
prevedibili, quelle delle cellule nervose sembrano suggerire che una sorta di
informazione si sia aggiunta all’interno delle cellule e permanga dopo la
cessazione dello stimolo elettrico.
E’ importante sottolineare che i risultati dell’analisi qualitativa concordano
con quelli portati dalla Recurrence Quantification Analysis, e portano quindi a
poter affermare con un certo grado di affidabilità che dopo la presentazione dei
pattern i neuroni hanno assunto un comportamento altamente organizzato che non
era presente in precedenza; i canali di output, inoltre, presentano caratteristiche fra
loro differenti il cui significato sarà da indagare nei successivi esperimenti.
Conclusioni e Sviluppi futuri
92
Il lavoro svolto nell’ambito di questa tesi è la prima fase di una ricerca più
ampia che si renderà necessaria per interpretare le misure già effettuate e per
portare avanti altri esperimenti.
Attualmente sono in corso gli esperimenti atti a testare il comportamento
della rete di Hopfield implementata in questo lavoro di tesi e di altri circuiti
predisposti per ricercare effetti quantistici a livello neuronale.
Nel prossimo futuro verranno migliorati sia i supporti per la crescita
cellulare che i metodi di misurazione, monitorando più a lungo ciascun segnale e
minimizzando le interferenze.
Potrà inoltre essere incrementato il numero di connessioni in modo da
permettere di testare l’apprendimento su più tipi di pattern e di creare reti sempre
più complesse.
Contestualmente verrà portata avanti l’analisi dei segnali raccolti, attraverso
metodi standard, tecniche non lineari e reti neurali artificiali, alla ricerca di una
possibile interpretazione del contenuto informativo conservato nei segnali di
output.
Se sarà possibile determinare dalle analisi effettuate la natura del
meccanismo di apprendimento neuronale, si aprirà allora concretamente la via per
creare reti viventi sempre più estese e complesse, in modo da renderle realmente
funzionali a scopi computazionali e clinici.
Appendice
Segnale inviato: una sequenza degli otto pattern.
Frequenza scrittura: 0,5 Hz
Frequenza lettura: 4 Hz
Channel:
Scan1:
Scan2:
Scan3:
Scan4:
Scan5:
Scan6:
Scan7:
Scan8:
Scan9:
Scan10:
Scan11:
Scan12:
Scan13:
Scan14:
Scan15:
Scan16:
Scan17:
Scan18:
0
0,00275
0,03816
0,00346
0,03601
0,00588
0,00937
0,0094
0,01082
0,00934
0,00912
0,01163
0,00962
0,02087
0,01939
0,02107
0,01964
0,01992
0,02059
1
0,03692
0,08448
0,03654
0,08448
0,03544
0,00938
0,0092
0,00909
0,00908
0,00944
0,00923
0,0091
0,01676
0,02582
0,01614
0,02479
0,01724
0,02454
Scan19:
Scan20:
Scan21:
Scan22:
Scan23:
Scan24:
Scan25:
Scan26:
Scan27:
Scan28:
Scan29:
Scan30:
Scan31:
Scan32:
Scan33:
Scan34:
Scan35:
Scan36:
Scan37:
2
-0,0637
0,07344
-0,0615
0,08449
-0,0605
0,01141
0,00927
0,00924
0,00915
0,00913
0,00922
0,00919
0,02568
0,00928
0,02482
0,01125
0,02788
0,01141
0,02055
0,00899
0,00895
0,01118
0,00914
0,0106
0,00911
0,00892
0,00922
0,01109
0,0105
0,01121
0,00924
0,01143
0,00931
0,00907
0,00916
0,01032
0,00912
0,01682
0,00893
0,00903
0,00895
0,01045
0,00897
0,00916
0,00975
0,00912
0,00919
0,0105
0,00946
0,00911
0,00906
0,00904
0,00919
0,00911
0,01098
0,00932
0,02673
0,01074
0,00896
0,00906
0,00913
0,00925
0,00896
0,00915
0,00899
0,00956
0,00935
0,00933
0,01072
0,00918
0,01225
0,00915
0,00927
0,00916
0,01198
0,00907
0,0092
0,00919
0,00911
0,02904
0,02648
0,03076
0,02983
0,0306
0,02992
0,03247
0,02862
0,03352
0,02746
0,03224
0,02217
0,03203
0,02633
0,028
Scan38:
Scan39:
Scan40:
Scan41:
Scan42:
Scan43:
Scan44:
Scan45:
Scan46:
Scan47:
Scan48:
Scan49:
Scan50:
Scan51:
Scan52:
Scan53:
Scan54:
Scan55:
Scan56:
0,01
0,0096
0,00918
0,00987
0,02815
0,02925
0,02559
0,02666
0,0301
0,0281
0,02787
0,02662
0,02443
0,02722
0,02384
0,02615
0,02677
0,02826
0,01644
0,00918
0,0109
0,0096
0,01003
0,02478
0,02839
0,02469
0,0291
0,02803
0,02971
0,02977
0,0263
0,02391
0,02539
0,02847
0,0267
0,02778
0,02362
0,01684
Scan57:
Scan58:
Scan59:
Scan60:
Scan61:
Scan62:
Scan63:
Scan64:
Scan65:
Scan66:
Scan67:
Scan68:
Scan69:
Scan70:
0,01045
0,02825
0,01434
0,02665
0,00904
0,02755
0,06498
0,04149
0,08448
0,02968
0,08448
0,0228
0,08448
0,01846
0,02545
0,01701
0,02376
0,01581
0,02645
0,01595
0,03493
0,0684
0,00607
0,06597
-0,0028
0,06585
-0,0088
0,06663
0,01644
0,01746
0,0169
0,01772
0,01834
0,01838
0,05655
0,0336
0,04713
0,02502
0,04693
0,01828
0,04819
0,01089
Terza stimolazione
0,1
0,08
0,06
0,04
V
0,02
0
-0,02
1
3
5
7
9
11 13
15
17 19
21
23 25
27
29 31
33
35 37
39
41 43
45
47 49
51
53 55
57 59
61
63 65
67
69
-0,04
-0,06
-0,08
Numero di letture
93
Canale 1
Canale 2
Canale 3
Channel:
Scan1:
Scan2:
Scan3:
Scan4:
Scan5:
Scan6:
Scan7:
Scan8:
Scan9:
Scan10:
Scan11:
Scan12:
Scan13:
Scan14:
Scan15:
Scan16:
Scan17:
Scan18:
Scan19:
Scan20:
Scan21:
Scan22:
0
0,01449
0,01186
0,00921
0,00931
0,02824
0,01084
0,03033
0,01407
0,00896
0,00912
0,00925
0,0109
0,00916
0,01186
0,00922
0,00906
0,00991
0,0096
0,02689
0,02801
0,02932
0,02777
1
0,01006
0,00917
0,01152
0,00969
0,01675
0,02555
0,0154
0,02787
0,01205
0,00907
0,00902
0,00913
0,01136
0,01199
0,0092
0,00905
0,01031
0,00948
0,0252
0,03236
0,0224
0,03071
Scan23:
Scan24:
Scan25:
Scan26:
Scan27:
Scan28:
Scan29:
Scan30:
Scan31:
Scan32:
Scan33:
Scan34:
Scan35:
Scan36:
Scan37:
Scan38:
Scan39:
Scan40:
Scan41:
Scan42:
Scan43:
Scan44:
Scan45:
2
0,00953
0,01259
0,00974
0,00941
0,02039
0,01774
0,02082
0,01615
0,00894
0,01185
0,00932
0,00979
0,00905
0,01029
0,00898
0,00913
0,00976
0,01114
0,02983
0,02381
0,03156
0,0211
0,02932
0,0294
0,02917
0,02585
0,02231
0,0165
0,01974
0,06957
0,05644
0,05701
0,05254
0,01154
0,00912
0,00915
0,01471
0,02018
0,01574
0,01991
0,00914
0,00998
0,0091
0,00886
0,01087
0,0231
0,03187
0,02693
0,03139
0,01251
0,02427
0,01384
0,03001
0,06488
0,01836
0,05289
0,01192
0,00921
0,00962
0,01546
0,01668
0,01601
0,01652
0,00905
0,01134
0,009
0,00928
0,00937
0,02955
0,02317
0,02923
0,02095
0,02571
0,00849
0,02155
0,08442
0,01115
0,07974
0,00393
0,00926
0,00929
0,01144
0,01688
0,01304
0,01621
0,01259
0,00898
0,00906
0,00949
0,00916
0,00909
0,00964
0,00906
0,01163
0,00925
0,01043
0,00915
0,03068
0,02632
0,03023
0,02126
0,03135
0,02319
0,02978
0,00879
0,02467
0,00888
0,02514
0,07795
0,05499
0,07825
0,00982
0,01074
0,00952
Scan46:
Scan47:
Scan48:
Scan49:
Scan50:
Scan51:
Scan52:
Scan53:
Scan54:
Scan55:
Scan56:
Scan57:
Scan58:
Scan59:
Scan60:
Scan61:
Scan62:
Scan63:
Scan64:
Scan65:
Scan66:
Scan67:
Scan68:
Appendice
Segnale inviato: un ciclo di sequenze degli otto pattern.
Frequenza scrittura: 1 Hz
Frequenza lettura: 4 Hz
0,00966
0,01146
0,01156
0,00949
0,0131
0,00949
0,02115
0,03202
0,02222
0,03022
0,0224
0,03197
0,02188
0,0261
0,01134
0,02502
0,00915
0,02109
0,08446
0,00553
0,00922
0,00995
0,00928
0,00919
0,00913
0,00916
0,00916
0,00903
0,0092
0,02702
0,02187
0,02371
0,02042
0,02365
0,01876
0,02664
0,01135
0,01759
0,00942
0,08047
0,08002
0,02706
0,0791
0,01058
0,00934
0,00949
Scan69:
Scan70:
Scan71:
Scan72:
Scan73:
Scan74:
Scan75:
Scan76:
Scan77:
Scan78:
Scan79:
Scan80:
Scan81:
Scan82:
Scan83:
Scan84:
Scan85:
Scan86:
0,00913
0,01934
0,01414
0,01605
0,00902
0,00898
0,01108
0,0089
0,01187
0,00904
0,00918
0,00923
0,00907
0,00902
0,01127
0,02284
0,02491
0,02129
0,01047
0,00884
0,02488
0,00859
0,00895
0,01132
0,00898
0,01135
0,009
0,01109
0,00907
0,01167
0,01148
0,00918
0,01071
0,01696
0,02875
0,0232
0,00916
0,022
0,00881
0,02446
0,00942
0,00995
0,00908
0,0099
0,00958
0,00914
0,00914
0,00905
0,00916
0,00906
0,01152
0,03046
0,01628
0,02707
Quarta stimolazione
0,1
0,08
V
0,06
0,04
0,02
0
1
4
7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
Numero di letture
52
55
58
61
64
67
70
73
76
79
82
85
Canale 1
Canale 2
Canale 3
94
0
-0,0113
0,07729
-0,0112
0,07487
-0,0102
0,07265
-0,0084
0,06957
-0,008
0,06681
-0,0071
0,0639
-0,0052
0,06133
-0,003
0,05875
-0,0011
0,05635
0,00163
0,00954
0,00921
0,00938
0,01208
0,01338
0,0091
0,00923
0,00959
0,00922
0,01095
0,01065
0,00914
0,00947
0,00917
0,01111
0,00925
0,0092
0,01137
0,00923
1
0,08084
-0,0449
0,08013
-0,0469
0,07911
-0,0676
0,07703
-0,0662
0,07567
-0,0642
0,07345
-0,0619
0,07042
-0,0584
0,06753
-0,0557
0,06398
0,00587
0,06069
0,009
0,00945
0,00913
0,01196
0,00918
0,01153
0,01095
0,00909
0,00954
0,00924
0,00942
0,00964
0,00935
0,00927
0,00924
0,0091
0,0091
0,0091
0,00917
2
0,08447
0,08447
0,08447
0,04727
0,08447
0,04812
0,00871
0,05263
0,08447
-0,0056
0,08447
-0,0236
0,08447
0,06022
0,08447
-0,0134
0,08447
0,06688
0,0798
0,00917
0,00916
0,00914
0,00917
0,00921
0,00909
0,00913
0,00912
0,00916
0,01158
0,00922
0,00924
0,00956
0,0092
0,00935
0,01152
0,00918
0,00904
0,00948
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
0,00945
0,00938
0,00914
0,00921
0,00933
0,00915
0,01146
0,00907
0,00913
0,00841
0,0088
0,01419
0,00883
0,01919
0,00864
0,0132
0,00974
0,01679
0,00877
0,01473
0,00884
0,01652
0,00885
0,01745
0,00915
0,01558
0,00909
0,01348
0,00891
0,01593
0,00889
0,01479
0,00899
0,01821
0,00927
0,01672
0,0103
0,01984
0,00914
0,00944
0,00925
0,00915
0,00909
0,00921
0,01
0,0092
0,00914
0,00912
0,00956
0,01123
0,01141
0,01306
0,01066
0,015
0,01097
0,01768
0,01226
0,01874
0,00962
0,01393
0,0116
0,01621
0,00937
0,01562
0,01028
0,0167
0,00878
0,01635
0,00876
0,01532
0,00871
0,01546
0,00878
0,01698
0,00897
0,01349
0,00883
0,00919
0,00922
0,00912
0,00992
0,0092
0,00938
0,00914
0,0092
0,00918
0,00918
0,00909
0,01243
0,00889
0,01115
0,0093
0,01195
0,00892
0,01091
0,00897
0,0124
0,01206
0,01324
0,01102
0,01091
0,01104
0,01047
0,01142
0,0093
0,01336
0,01048
0,01504
0,00862
0,01083
0,00853
0,01667
0,00865
0,01799
0,00878
0,01547
0,00908
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
0,00906
0,00916
0,00909
0,00914
0,01074
0,00916
0,00909
0,00914
0,00931
0,00908
0,01188
0,00943
0,01186
0,0092
0,00924
0,00919
0,0091
0,00901
0,00908
0,00956
0,00915
0,01165
0,01082
0,00937
0,00922
0,0116
0,0102
0,0091
0,01099
0,00917
0,00919
0,0092
0,00915
0,00914
0,00918
0,0092
0,00917
0,00918
0,00954
0,0129
0,00972
0,0091
0,01121
0,00941
0,01164
0,00913
0,01023
0,01232
0,01083
0,00923
0,00942
0,00924
0,00917
0,00905
0,00903
0,0113
0,0091
0,00951
0,00904
0,00934
0,00905
0,00901
0,00924
0,00913
0,01189
0,00918
0,00906
0,0115
0,011
0,0092
0,0091
0,01227
0,01157
0,00915
0,00968
0,01
0,00916
0,00955
0,0091
0,00907
0,01153
0,0091
0,00915
0,00999
0,01197
0,00997
0,0092
0,00925
0,01175
0,00923
0,01166
0,00916
0,00967
0,00911
0,00915
0,00915
0,0107
0,00915
0,0091
0,00914
0,01062
0,00937
0,00906
0,00915
0,00986
0,00916
0,00912
0,00922
0,00923
0,00916
0,00953
0,01097
0,00921
0,01052
0,01052
0,00988
0,00917
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
0,01375
0,01308
0,0134
0,00929
0,01004
0,00913
0,00914
0,00939
0,01111
0,0092
0,01154
0,00943
0,01109
0,00937
0,01041
0,01055
0,01108
0,00914
0,00979
0,01048
0,00917
0,00994
0,00925
0,00934
0,00964
0,00911
0,00906
0,00913
0,00922
0,00919
0,00919
0,00925
0,00924
0,00921
0,0119
0,00913
0,00913
0,00924
0,00952
0,01268
0,00915
0,00909
0,00919
0,00956
0,01185
0,0091
0,00907
0,00919
0,00925
0,00915
0,00914
0,00923
0,00918
0,00924
0,00923
0,00926
0,00915
0,00916
0,00927
0,00945
0,00911
0,00916
0,0092
0,00899
0,00915
0,0091
0,00918
0,00915
0,00921
0,00926
0,00972
0,00908
0,00952
0,01121
0,01159
0,0098
0,00909
0,00907
0,00911
0,00908
0,01106
0,00917
0,01142
0,00913
0,00985
0,00912
0,00917
0,01009
0,01167
0,00918
0,00922
0,00915
0,01097
0,0092
0,00999
0,00977
0,00924
0,00912
0,00924
0,00953
0,00916
0,0091
0,00964
0,00925
0,01134
0,0092
0,00949
0,00908
0,00911
0,00925
0,00918
0,00922
0,01043
0,00919
0,00925
0,00921
0,00961
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
0,0111
0,0092
0,00912
0,00911
0,00919
0,01129
0,0095
0,01675
0,01361
0,01684
0,01541
0,01998
0,01667
0,01961
0,01644
0,01919
0,01738
0,01842
0,01669
0,01812
0,01759
0,01791
0,02005
0,0178
0,02104
0,01705
0,02308
0,01736
0,02429
0,01701
0,023
0,01665
0,02717
0,01707
0,02776
0,01701
0,02928
0,01669
0,00915
0,00919
0,00938
0,00917
0,00912
0,00921
0,01156
0,01009
0,02654
0,01169
0,02883
0,01613
0,02887
0,01573
0,02524
0,01509
0,029
0,0175
0,02505
0,01569
0,02239
0,01631
0,02629
0,01609
0,02217
0,01855
0,02299
0,01873
0,02221
0,01932
0,02096
0,01928
0,02063
0,02021
0,02055
0,02385
0,01991
0,02132
0,0094
0,01055
0,01
0,00921
0,00917
0,00947
0,00915
0,02405
0,01062
0,02546
0,00853
0,0254
0,00893
0,02818
0,00969
0,0284
0,01027
0,02894
0,0111
0,0269
0,0131
0,02563
0,01496
0,02912
0,01606
0,02603
0,01603
0,02832
0,01615
0,02351
0,01589
0,02384
0,01643
0,02398
0,0183
0,02528
0,01667
0,02049
95
Ch:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
Appendice
Segnale inviato: una sequenza degli otto pattern.
Frequenza scrittura: 0,25 Hz
Frequenza lettura: 4 Hz
Appendice
Quinta stimolazione
0,1
0,08
0,06
0,04
0,02
V
0
-0,02
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
103 109 115 121 127 133 139 145 151 157 163 169 175 181 187 193
-0,04
-0,06
-0,08
Numero di letture
Canale 1
Canale 2
Canale 3
OSSERVAZIONE:
Nei segnali mostrati nel grafico la variazione del segnale in risposta ai differenti input non è evidente. Ciò è causato dalla bassa
frequenza di trasmissione che con molta probabilità è troppo inferiore alla velocità di trasmissione delle cellule nervosa.
96
Appendice
Segnale inviato: due sequenze degli otto pattern.
Frequenza scrittura: 2 Hz
Frequenza lettura: 4 Hz
Channel:
Scan1:
Scan2:
Scan3:
Scan4:
Scan5:
Scan6:
Scan7:
Scan8:
Scan9:
Scan10:
Scan11:
Scan12:
0
0,01738
0,0196
0,00932
0,00904
0,00935
0,01154
0,01039
0,02273
0,01636
0,02782
0,01649
0,01767
1
0,02405
0,00953
0,00909
0,01026
0,00997
0,00912
0,01157
0,01063
0,02936
0,01219
0,02892
0,00887
Scan13:
Scan14:
Scan15:
Scan16:
Scan17:
Scan18:
Scan19:
Scan20:
Scan21:
Scan22:
Scan23:
Scan24:
Scan25:
2
0,00887
0,0223
0,00917
0,00898
0,00955
0,00926
0,00909
0,02711
0,01
0,02763
0,01046
0,01619
0,0091
0,07528
0,06539
0,07006
0,06583
0,06547
0,06403
0,0622
0,03663
0,05849
0,00912
0,01673
0,00936
0,01647
0,06501
0,05331
0,06694
0,04133
0,08348
0,02636
0,08448
0,07808
0,07748
0,00925
0,00927
0,01419
0,00955
0,05207
0,06831
0,05026
0,08022
0,0845
0,08347
0,0845
0,02881
0,00919
0,00921
0,0096
0,00898
Scan26:
Scan27:
Scan28:
Scan29:
Scan30:
Scan31:
Scan32:
Scan33:
Scan34:
Scan35:
Scan36:
Scan37:
Scan38:
0,01117
0,00911
0,00908
0,00913
0,01063
0,00918
0,01753
0,0122
0,01548
0,00971
0,01212
0,05072
0,07142
0,0115
0,00903
0,00923
0,00975
0,00959
0,00957
0,00911
0,02284
0,0086
0,01173
0,00895
0,08102
0,0586
0,00906
0,00916
0,01168
0,00978
0,00939
0,00895
0,0265
0,00878
0,02261
0,00912
0,00844
0,04737
0,07737
Scan39:
Scan40:
Scan41:
Scan42:
Scan43:
Scan44:
Scan45:
Scan46:
Scan47:
Scan48:
Scan49:
Scan50:
0,05718
0,0789
0,05698
0,07527
0,06539
0,07281
0,06429
0,06972
0,06705
0,06736
0,06631
0,06303
0,06896
0,06373
0,06112
0,06898
0,05412
0,07623
0,04826
0,07495
0,04338
0,08335
0,03883
0,08424
0,05763
0,0682
0,06341
0,07861
0,06497
0,0336
0,06966
0,03029
0,07785
0,02725
0,08024
0,0845
Sesta stimolazione
0,1
0,08
0,06
V
0,04
0,02
0
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
Numero di Letture
31
33
35
37
39
41
43
45
47
49
Canale 1
Canale 2
Canale 3
97
Ch
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
0
0,01207
0,00884
0,00935
0,01713
0,01899
0,02231
0,06575
0,01047
0,00924
0,00909
0,01136
0,02563
0,01564
0,01512
0,05773
0,00933
0,00929
0,00917
0,00908
0,01829
0,01121
1
0,02626
0,01044
0,00905
0,01318
0,03012
0,00879
0,01322
0,01053
0,02117
0,00921
0,00906
0,00996
0,02849
0,00894
0,06638
0,00917
0,00916
0,0092
0,00912
0,01043
0,02574
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
2
0,01037
0,00985
0,00909
0,02873
0,0156
0,01731
0,06521
0,00921
0,00903
0,01144
0,01137
0,0274
0,01098
0,01368
0,06731
0,0107
0,00999
0,01146
0,00923
0,02456
0,01206
0,01223
0,00939
0,01073
0,01136
0,00917
0,00916
0,01783
0,01578
0,05639
0,00916
0,00833
0,00959
0,00911
0,01126
0,01642
0,00898
0,05796
0,0093
0,00876
0,00907
0,00902
0,01208
0,00896
0,0091
0,00892
0,00929
0,00911
0,0096
0,00942
0,01324
0,03927
0,00919
0,00903
0,0092
0,00913
0,00905
0,01015
0,01253
0,04743
0,01075
0,00903
0,00906
0,00925
0,01755
0,00861
0,00918
0,00865
0,01098
0,01082
0,00908
0,02499
0,00901
0,08428
0,0092
0,00882
0,00948
0,01153
0,00896
0,02253
0,00983
0,08378
0,00936
0,00895
0,00912
0,0113
0,00972
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
0,01685
0,00978
0,05826
0,00918
0,00898
0,00908
0,00933
0,01613
0,014
0,00885
0,05607
0,00972
0,00902
0,0092
0,00925
0,01694
0,01087
0,04113
0,00914
0,00902
0,01272
0,00913
0,01152
0,00829
0,054
0,00906
0,00921
0,00936
0,00921
0,01787
0,00858
0,00847
0,04624
0,00911
0,00921
0,00913
0,00922
0,01726
0,01156
0,05656
0,00912
0,00885
0,0094
0,00919
0,01433
0,00909
0,08412
0,00924
0,00905
0,00919
0,01146
0,00886
0,0163
0,00917
0,00956
0,01165
0,00924
0,00947
0,01189
0,00887
0,00858
0,03374
0,00917
0,00916
0,00921
0,00908
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
Appendice
Segnale inviato: un ciclo di sequenze degli otto pattern.
Frequenza scrittura: 4 Hz
Frequenza lettura: 4 Hz
0,00941
0,01204
0,01042
0,05483
0,00977
0,00889
0,01143
0,00929
0,00896
0,0142
0,00898
0,05817
0,00921
0,00885
0,00927
0,01004
0,00893
0,01426
0,009
0,0557
0,01012
0,00918
0,00927
0,01359
0,00905
0,05656
0,00922
0,00933
0,00918
0,00934
0,00944
0,01377
0,00901
0,05739
0,00944
0,00903
0,0092
0,00916
0,01404
0,01287
0,00896
0,05954
0,01138
0,01098
0,00918
0,00883
0,00887
0,0394
0,00912
0,00905
0,01143
0,00913
0,01396
0,01013
0,00892
0,03968
0,00943
0,00913
0,00976
0,00908
0,01324
0,00883
0,00895
0,03743
0,00906
0,00922
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
0,00909
0,0092
0,00876
0,01365
0,01606
0,00919
0,00929
0,01043
0,00936
0,01156
0,00883
0,00904
0,0301
0,0092
0,00942
0,01245
0,01125
0,03665
0,00923
0,00899
0,00918
0,00917
0,00922
0,01383
0,00926
0,0551
0,00924
0,00996
0,01415
0,00892
0,05631
0,00923
0,0091
0,00913
0,00936
0,00919
0,0123
0,00906
0,05702
Settima stimolazione
0,1
0,08
V
0,06
0,04
0,02
0
1
4
7
10
13
16
19
22
25
28
31
34
37
40
43
46
49
52
55
Num ero di letture
58
61
64
67
70
73
76
79
82
85
88
91
94
97 100
Canale 1
Canale 2
Canale 3
98
Bibliografia
Referenze citate nel testo:
[Ani01]
A. Anile, www.dmi.unict.it/~anile/mathapp/retineuro/retineuro.html,
(Maggio 2001)
[B&F02]
Brigitte Bels and Peter Fromherz, Transistor array with an
organotypic brain slice: field potential records and synaptic currents,
European Journal of Neuroscience, vol 15, pp. 999-1005, (2002)
[BoFr02] Paolo Bonifazi and Peter Fromherz, Silicon Chip for Electronic
communication between nerve cells by non-invasive interfacing and
analog-digital processing, Advanced Material, n. 17, (Settembre
2002)
[But93]
Giorgio C.Buttazzo, Introduzione al Calcolo Neurale (2000)
[Cam97]
Silvio Cammarata, “Reti neuronali. Dal Perceptron alle reti caotiche
neuro-fuzzy”, (1997)
[Daq01]
Personal Daq User’s Manual USB Data Acquisition Modules, (2001)
[Dos02]
http://www.lesionispinali.org/ricerca_file/dossier/dossier27_3.html,
(Marzo 2002)
[EvK81]
Evans e Kaufman, Nature 292, 154-6, (1981)
[F&S94]
Fromherz P and Schaden H, Defined neuronal arborisations by
guided outgrowth of leech neurons in culture Eur J Neuroscience n.6,
(1994)
[Fro02]
Electrical Interfacing of Nerve Cells and Semiconductor chips,
Chemphyschem, vol 3, pp. 276-284, (2002)
Bigliografia
100
[FSc98]
Yoav Freund, Robert E. Schapire, Large Margin Classification using
the perceptron Algorithm, Machine Learning (1998)
[Gr&Al]
Angela Gritti, Barbara Rosati, Marzia Lecchi, Angelo L. Vescovi e
Enzo Wanke, Excitable properties in astrocytes derived from human
embryonic CNS stem cells, European Jurmal of Neuroscience, vol
12, pp 3549-3559, (2000)
[JMF00]
Martin Jenker, Bernt Muller, Peter Fromherz, Department of
Neurophysics, Max Planck Institute for Microelectronics, 29
Settembre (2000)
[Laz99]
Beatrice Lazzerini, Introduzione alle reti neurali artificiali
[Mar95]
Luca Marchese, Reti neurali su personal computer + fuzzy logic,
(1995)
[Maz91]
Alessandro Mazzetti, Reti neurali artificiali. Introduzione ai
principali modelli e simulazione su personal computer, (1991)
[McP43]
W. Mc Culloch e W. Pitt, A Logical Calculus of the Ideas
Immanente in Nervous Activity, Bulletin of Mathemátical
Biophysics, vol. 5, pp. 115-133, (1943)
[Mus00]
Reger, B, Fleming, KM, Sanguineti, V, Simon Alford, S, MussaIvaldi, FA. Connecting Brains to Robots: The Development of a
Hybrid System for the Study of Learning in Neural Tissues. Artificial
Life VII, Portland, Oregon, (August 2000).
[P&F00]
Prinz A and Fromherz P, Electrical synapses by guided growth of
cultured neurons from the snail Lymnaea stagnalis Biol. Cybern.,
(2000)
[Par99]
D. Parisi, Mente, “I nuovi modelli della vita artificiale”, Il mulino, p.
80 (1999)
[Re&Al]
Reger, B, Fleming, KM, Sanguineti, V, Simon Alford, S, MussaIvaldi, FA. “Connecting Brains to Robots: An Artificial Body for
Studying the Computational Properties of Neural Tissues” Artificial
Life 6: 307-324, (2000)
[Ros58]
Rosenblatt, The perceptron: a probabilistic model for information
storage and organization in the brain. Psychological Review, n. 65,
pp. 386-408, (1958)
[S&F98]
R. Schatzthhauer and P. Fromherz, Neuron-silicon junction with
voltage-gated ionic currents, European Journal of Neuroscience, vol
Bigliografia
101
10, pp. 1956-1962, (1998)
[Ta&Ho] D.W. Tank and J.J. Hopfield, Neural architecture and biophysics for
sequence recognition in Neural Models of Plasticity, Academic
Press, 363-377, (l989)
[Th&Al]
Thomson et al., Science 282 1145-7, (1998)
[Z&F01]
Zeck and Fromherz, Noninvasive neuroelectronic interfacing with
synaptically connected snail neurons on a semiconductor chip.
Proceedings of the National Academy of Sciences, 98, 10457-10462,
(2001)
Altri articoli pertinenti:
Akin T, Najafi K, Smoke RH and Bradley RM, A micromachined silicon
electrode for nerve regeneration applications, IEEE Trans Biomed Eng n.41, pp.
305-313 Michigan USA, (1994)
Borkholder DA, Bao J, Maluf NI, Perl ER and Kovacs GT, Microelectrode arrays
for stimulation of neural slice preparations J, Neuroscience Methods n. 77, pp.6166, (1997)
Bove M, Martinoia S, Grattarola M and Ricci D, The neuron-transistor junction:
Linking equivalent electric circuit models to microscopic descriptions Thin Solid
Films n. 285 pp.772-775, (1996)
Braun D. and Fromherz P., Fast Voltage Transients in Capacitive Silicon-to-Cell
Stimulation Detected with a Luminescent Molecular Electronic Probe. Physical
Review Letters n. 86 (13), pp. 2905-8 (2001)
Breckenridge LJ, Wilson RJA, Connolly P, Curtis ASG, Dow JAT, Blackshaw SE
and Wilkinson CDW, Advantages of using microfabricated extracellular
electrodes for in vitro neuronal recording J Neuroscience Research, n.42 pp. 266276, (1995)
Egert U, Schlosshauer B, Fennrich S, Nisch W, Fejtl M, Knott T, Muller T and
Hammerle H, A novel organotypic long-term culture of the rat hippocampus on
substrate-integrated microelectrode arrays, Brain Resource Protoc, n.2, pp. 22942, (1988)
Jenkner M and Fromherz P, Bistability of membrane conductance in cell adhesion
observed in a neuron transistor, Phys Rev Lett n. 79 pp. 4705-4708 (1997)
Bigliografia
102
Jimbo Y. and Robinson H.P.C., Propagation of spontaneous synchronized activity
in cortical slice cultures recorded by planar electrode arrays, Bioelectrochemistry
n. 5, pp.107-115,(2000)
Maher MP, Dvorak-Carbone H, Pine J, Wright JA and Tai YC, Microstructures
for studies of cultured neural networks, Med Biol Eng Comput n. 37, pp. 110-8
Caltech USA, (1999)
Maher MP, Pine J, Wright J and Tai YC, The neurochip: a new multielectrode
device for stimulating and recording from cultured neurons, Neuroscience
Methods n. 87, pp. 45-56 Caltech USA, (1999)
School M, Sprössler C, Denyer M, Krause M, Nakajima K, Maelicke A, Knoll W,
Offenhässer, Ordered networks of rat hippocampal neurons attached to silicon
oxide surfaces, Neuroscience Methods, n. 104 pp. 65-75(2000)
Thomas C. A., Springer P.A. Jr., Loeb G. E., Berwald-Netter Y. and Okun L. M.,
A miniature microelectrode array to monitor the bioelectric activity of cultured
cells, Exp. Cell Res., n. 74 pp. 61-66, (1972)
Vassanelli S and Fromherz P, Transistor records of excitable neurons from rat
brain, Appl Phys A(66) pp. 459-63 , (1998)
Vassanelli S and Fromherz P, Transistor probes local potassium conductances in
the adhesion region of cultured rat hippocampal neurons, Neuroscience n. 19, pp.
6767-73, (1999)
Wilson, R.J., L. Breckenridge, S.E. Blackshaw, P. Connolly, J.A.T. Dow, A.S.G.
Curtis, and C.D.W. Wilkinson, Simultaneous multisite recordings and stimulation
of single isolated leech neurons using planar extracellular electrode arrays,
Neuroscience Methods, n.53, pp. 101-110 (1994)
Ringraziamenti
…alla professoressa Rita Pizzi per la disponibilità e l’entusiasmo che ha
dimostrato nel corso di questo lavoro,
…a Danilo Rossetti e a Fabrizio Gelain per il loro prezioso contributo e per
l’interessante scambio professionale;
… al dott. Antonio Malgaroli, professore di fisiologia presso l’Università Vita e
Salute del San Raffaele, per aver fornito la strumentazione necessaria per svolgere
gli esperimenti;
…agli amici dell’Università perché hanno saputo rendere straordinario ogni
giorno passato insieme in questi anni;
…a tutti i miei Amici che in tempi e modi diversi mi hanno aiutato a crescere;
…alla mia famiglia per aver sempre creduto in me;
… ad Andrea per la gioia e la tranquillità che sa trasmettermi;
…GRAZIE di cuore!
Scarica