Sei sulla pagina 1di 115

Università degli Studi di Palermo

FACOLTÀ DI SCIENZE LAUREA IN FISICA

RETI NEURALI:
MODELLI E ASPETTI APPLICATIVI

TESI DI LAUREA DI:


LETTERIO IACHETTA
RELATORE:
Prof. STEFANO MICCIANCIO
_____________________________________________________________
anno accademico 1988-89
Reti Neurali: modelli e aspetti applicativi 2

SOMMARIO

1. - INTRODUZIONE 5

1.1 - DEFINIZIONE DEL PROBLEMA 5


1.2 - CONTENUTO DEI CAPITOLI SUCCESSIVI 6

2. - COMPUTAZIONE CLASSICA E MODELLI CONNESSIONISTICI 7

2.1- INTRODUZIONE 7
2.2 - ALGORITMI E MACCHINE DI TURING 8
2.3 - I NEURONI FORMALI DI MC CULLOCK E PITTS 11
2.4 - L'ELABORATORE DI VON NEUMANN 13
2.5 - LIMITI DELL'ARCHITETTURA DI VON NEUMANN 15
2.6 - CERVELLO E CALCOLATORI 17
2.7 - SISTEMA NERVOSO, CERVELLO E NEURONI 18
2.8 - NATURA E COMPUTAZIONE 21

3. - MODELLI DI RETI NEURALI 23

3.1 - INTRODUZIONE 23
3.2 - ORIGINE DELLE RETI NEURALI 23
3.3 - ARCHITETTURA ASTRATTA DI UNA RETE NEURALE 26
3.4 - DEFINIZIONE DI RETE NEURALE 32
3.5 - CLASSIFICAZIONE DELLE RETI NEURALI 33

4. - RETI DI HOPFIELD E MACCHINA DI BOLTZMANN 34

4.1- INTRODUZIONE 34
4.2 - MODELLO DISCRETO DELLA RETE DI HOPFIELD 34
4.3 - CONSIDERAZIONI ENERGETICHE SULLA RETE DISCRETA DI HOPFIELD 37
4.4 - REGOLA DI APPRENDIMENTO DI HEBB E APPLICAZIONI C.A.M. DEL
MODELLO DISCRETO DI HOPFIELD 39
4.5 - MODELLO CONTINUO DELLA RETE DI HOPFIELD 42
4.6 - ANNEALING E ANNEALING SIMULATO 49
Reti Neurali: modelli e aspetti applicativi 3

4.7 - MACCHINA DI BOLTZMANN 52


4.8 - REGOLA DI APPRENDIMENTO PER LA MACCHINA DI BOLTZMANN 54

5. - ALTRI MODELLI: PERCEPTRONI E RETI DI KOHONEN 56

5.1 - INTRODUZIONE 56
5.2 - PERCEPTRONE A SINGOLO STRATO 57
5.3 - LIMITI DEL PERCEPTRONE A SINGOLO STRATO 60
5.4 - PERCEPTRONI MULTISTRATO 63
5.5 - REGOLA DI APPRENDIMENTO BACK-PROPAGATION 65
5.6 - RETI AUTO-ORGANIZZANTI DI KOHONEN 68

6. - APPLICAZIONI DELLE RETI NEURALI 70

6.1 - INTRODUZIONE 70
6.2 - RAPPRESENTAZIONE DEI DATI 71
6.3 - APPLICAZIONE DEL MODELLO CONTINUO DI HOPFIELD 73
6.3.1 - CONVERTITORE ANALOGICO/DIGITALE 73
6.3.2 - SCOMPOSIZIONE DI SEGNALI ANALOGICI 76
6.3.3 - IL PROBLEMA DEL COMMESSO VIAGGIATORE (TSP) 79
6.3.4 - PROGRAMMAZIONE LINEARE 82
6.3.5 - IL PROBLEMA DI HITCHCOCK 84
6.3.6 - SISTEMA DI EQUAZIONI LINEARI 88
6.4 - COMPLESSITÀ' COMPUTAZIONALE DI UNA RETE NEURALE 89
6.5 - APPLICAZIONE DI PERCEPTRONI MULTISTRATO CON REGOLA BACK-
PROPAGATION: RETE NETTALK 91

7. - MEMORIE ASSOCIATIVE BASATE SUL MODELLO DISCRETO DI HOPFIELD


E NUOVI ALGORITMI DI MEMORIZZAZIONE 94

7.1 - INTRODUZIONE 94
7.2 - PROBLEMI ALEATORI E MEMORIE ASSOCIATIVE 95
7.3 - CONSIDERAZIONI SUL MODELLO DISCRETO DI HOPFIELD 97
7.4 - NUOVI ALGORITMI DI MEMORIZZAZIONE 99
7.5 - ALGORITMO DI MEMORIZZAZIONE DI S.H. OH 101
7.6 - SIMULAZIONI AL CALCOLATORE DI MEMORIE ASSOCIATIVE 103
7.6.1 - SIMULAZIONE 1 105
Reti Neurali: modelli e aspetti applicativi 4

7.6.2 - SIMULAZIONE 2 105


7.6.3 - SIMULAZIONE 3 106
7.6.4 - SIMULAZIONE 4 106
7.6.5 - SIMULAZIONE 5 107
7.7 - MEMORIE OTTICHE ASSOCIATIVE 108
7.8 - CONCLUSIONI 110

8. - BIBLIOGRAFIA 111

9. - INDICE DELLE FIGURE 113


Reti Neurali: modelli e aspetti applicativi: Cap 1 - Introduzione 5

1. - INTRODUZIONE

1.1 - DEFINIZIONE DEL PROBLEMA

Esiste una vasta gamma di problematiche nelle quali i convenzionali computer digitali
ad architettura Von Neumann rivelano i loro limiti. Si tratta di problemi come il
riconoscimento di forme, la comprensione del linguaggio naturale e la
rappresentazione della conoscenza, che sono qualitativamente diversi da quelli
classicamente implementabili nei computer. Ad esempio i problemi posti dal
riconoscimento delle forme costituiscono un sottoinsieme dei problemi detti aleatori.
Anche la classe dei cosiddetti problemi di ottimizzazione combinatoria non si presta ad
una soddisfacente soluzione algoritmica se implementata nei computer tradizionali. Sia
i problemi aleatori, sia quelli di ottimizzazione combinatoria sono caratterizzati da
un altissimo numero di soluzioni, e il solo modo per risolverli è di ridurre
drasticamente tale numero. I metodi di riduzione utilizzati sono noti come metodi
euristici, e non sono applicabili in generale a tutti i problemi. I metodi euristici richiedono
quasi sempre un grandissimo sforzo computazionale da parte dei calcolatori e spesso i
tempi di risoluzione di un problema sono completamente inaccettabili. Da un po’ di
tempo per la soluzione dei problemi ad alto numero di soluzioni ci si è rivolti ad
algoritmi ed architetture completamente differenti. Molti ricercatori, provenienti da
diversi settori, hanno studiato e progettato innovative macchine ad architettura
parallela, emulanti l'organizzazione e le funzioni del cervello, che si sono dimostrate
in grado di risolvere sia i problemi aleatori sia quelli di ottimizzazione combinatoria non
alla portata dei computer attuali. Tali macchine sono comunemente chiamate reti o
sistemi neurali. La loro architettura definisce i cosiddetti modelli connessionistici o
modelli di elaborazione parallela distribuita (Parallel Distributed Processing -
P.D.P.). Le reti neurali si basano sull'idea di realizzare un processo di computazione
attraverso l'interazione di un grande numero di semplici elementi chiamati neuroni.
La novità principale di tali modelli rispetto i computer tradizionali è la non
necessita di programmazione. Quest'ultima viene sostituita dalla possibilità di impostare
sulla rete neurale una sorta di apprendimento che può essere spontaneo o guidato
attraverso esempi. L'approccio mediante reti neurali consente sia di realizzare
sistemi computazionali che posseggono caratteristiche simili a quelle dei sistemi
Reti Neurali: modelli e aspetti applicativi: Cap 1 - Introduzione 6

biologici, sia di impostare in modo nuovo i problemi fondamentali dell'intelligenza


artificiale. La teoria delle reti neurali si propone anche di riorganizzare i rapporti
tra lo studio astratto e formale delle funzioni mentali (scienza cognitiva), e quello
concreto del cervello visto come una macchina fisica (neuroscienze).
I segni di un ravvicinamento tra scienza cognitiva e neuroscienze sono giustificati
sia dagli sviluppi tecnologici, che consentono la costruzione dei sistemi neurali,
sia dai progressi delle ricerche, condotte da fisici, psicologi e neurofisiologi, sullo
studio fisico del cervello . La tesi si propone di fornire un quadro generale degli studi
attuali sulle reti neurali, con particolare riguardo alle applicazioni computazionali e
alla costruzione di memorie associative. Le memorie associative sono dei dispositivi
in grado di recuperare i dati memorizzati mediante la presentazione di copie
incomplete o distorte di questi ultimi. E' facile comprendere che l'argomento delle reti
neurali, interessando svariati campi della ricerca, assume vastissime proporzioni,
pertanto la tesi ha focalizzato i principali modelli di una teoria ancora giovane cercando
di evidenziare le applicazioni a problemi reali.

1.2 - CONTENUTO DEI CAPITOLI SUCCESSIVI

Il lavoro inizia evidenziando l'origine comune tra i primi modelli neurali, la macchina
algoritmica di Turing e l'elaboratore di Von Neumann. Un breve accenno alla struttura
e al funzionamento del cervello, necessario per capire il senso con cui le nuove
macchine di calcolo vi si ispirano, conclude il secondo capitolo. La descrizione
dell'architettura generale e delle proprietà dei sistemi neurali, insieme a una sommaria
classificazione, costituisce l'argomento del terzo capitolo. Il quarto e il quinto capitolo
si soffermano sulla teoria delle reti di Hopfield, dei perceptroni e delle reti di Kohonen.
Una collezione di applicazioni computazionali delle reti di Hopfield e dei
perceptroni è presentata nel quinto capitolo. Tale capitolo lascia intravedere la vastità
dei possibili orizzonti applicativi. Nel sesto e ultimo capitolo sono raccolte una serie
di simulazioni al calcolatore fatte dall'autore. Le simulazioni riguardano memorie
associative basate sulle reti di Hopfield e su diverse regole di funzionamento.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 7

2. - COMPUTAZIONE CLASSICA E MODELLI CONNESSIONISTICI

2.1- INTRODUZIONE

L'originale modello di rete di neuroni è elaborato dai matematici Mc Cullock e Pitts


negli anni di sviluppo della prima cibernetica, parallelamente allo studio da parte di Von
Neumann della sua architettura di elaboratore. In questo secondo capitolo si
evidenziano le analogie tra la macchina di Turing, prototipo di macchina ideale e
universale di calcolo, e le reti di neuroni formali di Mc Cullock e Pitts.
Successivamente si analizza l'architettura dell'elaboratore di Von Neumann, che
deriva direttamente da quella della macchina di Turing. In conclusione i limiti
dell'elaboratore di Von Neumann sono confrontati con le peculiarità del cervello.
Il capitolo, partendo dai fondamenti della teoria matematica della computazione,
arriva a generalizzare un processo di calcolo all’evoluzione dinamica di sistemi fisici
diversi dai calcolatori e intrinsecamente non programmabili, lasciando intuire la
possibilità di nuove architetture.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 8

2.2 - ALGORITMI E MACCHINE DI TURING

La teoria della computabilità studia la risolvibilità algoritmica di un problema.


Un algoritmo è una procedura completamente definita, articolata in un numero finito
di passi, eseguibili meccanicamente in un tempo finito, e corrispondente a
un'espressione scritta in un determinato linguaggio. I problemi per la cui soluzione
esiste un algoritmo definiscono la classe delle funzioni computabili. Le funzioni
computabili possono essere espresse per mezzo di un tipo di definizione molto generale
detta ricorsiva che sarà definita più avanti. Il problema di definire in maniera rigorosa
la classe delle funzioni computabili porto nel 1930 il matematico Turing1 al progetto di
una macchina di calcolo ideale descritta in figura 2.1.
Gli elementi costituenti la macchina di Turing sono:

1. un unità esterna di memoria o nastro


2. una testina di lettura e scrittura
3. una unità di controllo A a stati finiti.

Per la macchina di Turing è definito un alfabeto esterno di simboli Xi, e un alfabeto


interno di simbolo Qi . Gli ingressi della macchina sono i simboli dell'alfabeto esterno
X, mentre l'uscita della macchina corrisponde ad un'operazione di scrittura di un simbolo
sull'unità esterna di memoria oppure ad un movimento della testina sul nastro. Lo
stato interno della macchina è espresso mediante i simboli Qi dell'alfabeto interno
della macchina. Il funzionamento della macchina consiste nell'esecuzione di una serie
di passi elementari, in ciascuno dei quali la macchina assume una configurazione totale
determinata dallo stato in cui si trova la macchina, dalla cella in esame dall'unità di
controllo e dal contenuto di ogni cella della memoria esterna. Si definisce
computazione o calcolo di una macchina di Turing una sequenza di configurazioni totali
che terminano in uno stato di halt Q0. Lo stato di halt non ammette una
configurazione successiva. Il tipo d'algoritmo implementato da una particolare macchina
di Turing è definito dalla tavola funzionale della macchina, che corrisponde al

1
A. Turing, “On computable numbers, with an application to the entscheidungsproblem”,
Proceedings of the London Mathematical Society, Num. 2 Vol XLII, 1936.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 9

programma dell'unità logica. Il concetto di macchina di Turing può essere esteso


definendo una macchina di Turing universale in grado di eseguire gli algoritmi di
una qualsiasi macchina di Turing dotata di una qualunque tavola funzionale. La macchina
universale opererà a partire da una configurazione iniziale che prevede la registrazione
su nastro sia della matrice funzionale della macchina da imitare che della configurazione
iniziale di questa. La macchina di Turing universale equivale concettualmente ad un
computer Von Neumann general purpose. La caratteristica della macchina universale di
avere tavole funzionali e simboli dell'alfabeto esterno memorizzati insieme nella memoria
esterna equivale, nel caso di un elaboratore Von Neumann, ai programmi e ai dati
contenuti contemporaneamente in memoria. L’universalità della macchina di Turing viene
evidenziata dalla tesi di Church, la quale restringe il concetto di computabilità a una
classe precisa ma molto generale di funzioni, le funzioni parziali ricorsive.
Una funzione di n-argomenti f(x1 ,x2 ,...,xn ) è detta ricorsiva se è definibile mediante le
equazioni2 :

2.1
Nella 2.1 g e h sono funzioni note, S(x) è la funzione successore definita come: S(x) =
x + 1. La funzione ricorsiva f è detta parziale quando essa non ha un valore definito per
ogni n-upla di argomenti (x1 ,x2 ,...,xn ) ed è quindi definita per un set limitato di
argomenti. Un esempio di definizione ricorsiva di funzione riguarda l'operazione di
addizione, indicando f col simbolo + si ha:

2.2
Nella 2.2 +(x,S(y)) è definito in termini di +(x,y) e della funzione nota successore (h =
S). Anche l'operazione di moltiplicazione può essere definita in tal modo, indicando f
col simbolo * si ha:

2.3

2
Robert McNaugthon, “Elementary Computability, Formal Languages and Automata”, Prentice
Hall International 1982.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 10

Nella 2.3 *(x,S(y)) è definito in termini di *(x,y) e della funzione nota addizione (h = +).
La tesi di Church afferma che qualunque algoritmo scritto con qualsiasi formalismo può
essere calcolato da una macchina di Turing. La formulazione forte di questa tesi dice che
qualsiasi sistema fisico reale può essere simulato da una macchina di Turing, con un
grado di approssimazione arbitrariamente elevato, con l'ipotesi di poter ignorare i limiti
di lunghezza del nastro della macchina e il tempo disponibile per la computazione.
Questa tesi evidentemente non può essere dimostrata, esistono però significativi
argomenti a suo sostegno. Innanzitutto metodi alternativi elaborati per definire la
computabilità hanno sempre portato a classi di funzioni computabili coincidenti con le
funzioni parziali ricorsive. Per completare il discorso non si può trascurare l'esistenza di
funzioni che non sono parziali ricorsive, per la tesi di Church queste funzioni non sono
Turing-calcolabili, e quindi sono ignorate dalla macchina di Turing. Un altro problema
non risolvibile è quello noto come problema dell'arresto di una macchina di Turing. Si
consideri una macchina di Turing A con configurazione totale iniziale data da una
tavola funzionale T e da una parola W contenuta nella memoria esterna, non esiste
un'altra macchina di Turing B che con l'input di T e W possa calcolare se la computazione
di T si ferma o cicla.

FIGURA 2.1 - Rappresentazione della Macchina di Turing, in alto il dispositivo A e l'unità di


controllo, in basso si ha il nastro coi simboli dell'alfabeto esterno in ingresso, sopra il
nastro in grigio e posizionata la testina di lettura. (FONTE COMMUNICATIONS OF ACM
5/85/M.CONRAD)
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 11

2.3 - I NEURONI FORMALI DI MC CULLOCK E PITTS

Il neurofisiologo Mc Cullock e il matematico Pitts nel 1943 introdussero il concetto di


neurone formale3 che è alla base del loro progetto di rete neuronica. Nel loro modello
il neurone formale assume due possibili stati, uno attivo l'altro inattivo e definisce
una classe di oggetti caratterizzati come segue:

• un numero r finito di ingressi ciascuno suscettibile di assumere i valori 0 o 1;


• un'unica uscita i cui valori possibili sono 0 o 1;
• un valore di soglia s intero positivo;
• una regola di funzionamento espressa da:

2.4

Mediante i neuroni formali si può costruire una macchina detta semiautoma con un
numero finito r di input x e un numero finito s di stati q della macchina.
Successivamente si costruisce una matrice di neuroni formata da r righe e s colonne
corrispondenti rispettivamente agli input e agli stati (vedi figura 2.2a).
La programmazione di questa macchina consiste in un tipo di istruzione molto semplice,
espressa nella forma generale q x q , la cui esecuzione consiste nel connettere tutti i
neuroni della i-esima colonna col j-esimo neurone della k-esima colonna. Da notare che
la rete di neuroni formali definita e caratterizzata da connessioni precostituite, senza
alcuna possibilità di modifica successiva. Mc Cullock e Pitts dimostrarono che, per
ogni funzione computabile da una macchina di Turing, esiste un semiautoma di
neuroni formali in grado di calcolare la stessa funzione. Da quanto detto segue che il
modello di Turing e il semiautoma composto da neuroni formali sono dal punto di vista
computazionale equivalenti. Le capacità di calcolo del modello dipendono non tanto
dalle caratteristiche dei singoli neuroni quanto dal modo in cui sono connessi.

3
W.S. McCullock e W. Pitts, “A logical Calculus of the Ideas Immanent in Nervous Activity”,
Bullettin of Mathematical Biophysics, Num. 5 1943, pag. 115-133.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 12

FIGURA 2.2a - (a) Neurone formale di Mc Cullock e Pitts (b) Rete di neuroni formali
costituente un semiautoma strutturalmente programmabile. (FONTE COMMUNICATIONS
OF ACM 5/85/M.CONRAD)

FIGURA 2.2b - Una rappresentazione più generale della regola di funzionamento del neurone
artificiale di McCullock e Pitts detto anche TLU (Threshold Logic Unit), x(i) sono gli ingressi,
w(i) sono i pesi, θ è il valore della soglia per la funzione di attivazione. Si noti che nella formula
semplificata 2.4 i pesi w(i) sono tutti uguali a 1.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 13

2.4 - L'ELABORATORE DI VON NEUMANN

I moderni computer digitali sono quasi tutti basati su un'architettura definita nel 1945
dal matematico John Von Neumann nel progetto dell'elaboratore EDVAC4
L'elaboratore di Von Neumann è costituito da due organi di base, il processore e la
memoria centrale (vedi figura 2.2c). Le operazioni di tutti i computer convenzionali
possono essere modellate nell’esecuzione del ciclo seguente:

1. preleva un istruzione dalla memoria


2. preleva i dati richiesti da tale istruzione dalla memoria
3. esegui l’istruzione
4. memorizza i risultati in memoria
5. vai al punto 1

FIGURA 2.2c - Semplice rappresentazione dell’architettura di Elaboratore Von Neumann

4
John Von Neumann, “Primo abbozzo di relazione sull'EDVAC (Electronic Discrete
Variable Computer)”, Princeton University 1945.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 14

L’elaboratore di Von Neumann è una macchina di calcolo equivalente a quella di Turing,


ed è caratterizzata come segue5 :

• Linguaggi di programmazione. Tali linguaggi sono utilizzati per esprimere gli


algoritmi e sono costituiti da statement che si ottengono applicando un insieme finito
di regole di composizione a un numero finito di simboli base.
• Programmabilità. Si intende in tal modo la possibilità concreta di comunicare
all'elaboratore il programma scritto alla macchina. Dal punto di vista dell'utente tale
processo di comunicazione può essere mediato da un compilatore.
• Universalità. Essendo equivalente a una macchina di Turing, un calcolatore Von
Neumann può calcolare qualsiasi funzione computabile e quindi, per la tesi di
Church, simulare qualsiasi sistema fisico.
• Sequenzialità. Un computer di Von Neumann ha un architettura sequenziale, esegue
infatti una singola operazione elementare alla volta.
• Inefficienza. I computer di Von Neumann utilizzano in modo non ottimizzato le
risorse di spazio, tempo ed energia. Il processore, a causa della sequenzialità con
cui esegue le istruzioni, è inattivo per la maggior parte del tempo.
• Programmabilità strutturale. Per spiegare questa caratteristica ci si deve riferire
alla definizione di semiautoma vista in precedenza. Un calcolatore di Von Neumann
si dice strutturalmente programmabile perché si può dimostrare che
sostanzialmente è un semiautoma, cioè il calcolatore può essere rappresentato come
un insieme di switch o elementi capaci di eseguire una operazione logica semplice.
La definizione di programmabilità strutturale è legata alla tesi forte di Church, e
stabilisce che una macchina strutturalmente programmabile è capace di simulare
qualsiasi sistema fisico a condizione che le risorse di tempo e di spazio riservate alla
computazione siano illimitate. Inoltre gli algoritmi, espressi in un calcolatore digitale
in simboli primitivi di un linguaggio di alto livello, possono essere espressi
direttamente in termini di primitive computazionali di switching, che
corrispondono alla programmazione di una rete di neuroni formali. La
programmabilità strutturale sarà utile per analizzare i limiti generali
dell'architettura di Von Neumann.

5
Michael Conrad, "On Design Principles for a Molecular Computer", Communications of
the ACM 1, Vol. 28, Num. 5, Maggio 1985.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 15

La formulazione forte della tesi di Church, valida anche per gli elaboratori di Von
Neumann, suggerisce un legame tra i modelli formali di computazione e i processi
dinamici simulabili su un calcolatore. Pensare a un sistema fisico come realizzazione di
una computazione significa :

1. identificare gli argomenti o input della funzione computabile considerata con i


parametri di descrizione di un certo stato del sistema.
2. considerare i parametri di descrizione di un successivo stato del sistema il
risultato della computazione cioè l'output.

L'elaboratore di Von Neumann è una realizzazione fisica di un sistema formale che esegue
semplici operazioni su stringhe di simboli. Si dice che un computer simula un sistema
fisico, mediante le primitive computazionali sopra definite, se gli stati del computer
possono essere associati agli stati del sistema con un alto grado di approssimazione,
non è necessario comunque che ogni stato della macchina corrisponda a uno stato del
sistema. Si è visto che un sistema fisico è simulabile con l'elaboratore Von
Neumann, tuttavia molti fenomeni computazionali osservati in natura fanno ritenere
che è possibile definire delle macchine di calcolo che incorporano il processo fisico
stesso come primitiva computazionale. In tal caso si perde sia il carattere discreto
delle primitive computazionali, sia la possibilità di comunicare queste ultime sotto forma
di algoritmo alla macchina.

2.5 - LIMITI DELL'ARCHITETTURA DI VON NEUMANN

L'architettura dell'elaboratore di Von Neumann presenta dei limiti di applicabilità e di


capacità di calcolo che non potranno essere superati dal solo progresso tecnologico,
ossia dal miglioramento delle prestazioni dei processori e delle memorie. Tali limiti sono
intrinseci al disegno stesso dell'elaboratore di Von Neumann, e sono di seguito esaminati:

• Irreversibilità operativa. La modalità in cui un computer tradizionale elabora


l'informazione è un processo irreversibile. La funzione logica AND è un esempio di
perdita di informazione in un computer. La tabella 2.5 mostra che non è possibile,
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 16

esaminando le uscite della tabella, risalire agli ingressi che le hanno prodotte.
Tabella della verità della Funzione Logica AND.
INPUT OUTPUT
0 0 0
0 1 0
1 0 0
1 1 1

• Alta dissipazione termica. In un computer digitale i segnali elettrici originano dei


cambiamenti di potenziale in diverse regioni spaziali del sistema. Gli elettroni
operano con un disturbo termico che in termini di potenziale è circa kT/q Volt dove
k è la costante di Boltzmann, T è la temperatura Kelvin assoluta e q è la carica
dell'elettrone, a temperatura ambiente (290 K) kT/q = 0.025 Volt. Le operazioni
logiche in un computer digitale devono avvenire con potenziali maggiori di 0.025
Volt. In definitiva si osserva che il valore alto di kT/q richiede un'alta dissipazione
di potenza che caratterizza come processi irreversibili le operazioni logiche
fondamentali di un computer digitale di Von Neumann.
• Lentezza operativa. Un risultato del modo di operare seriale dell'architettura di
Von Neumann è il cosiddetto "collo di bottiglia di Von Neumann". Esso è
originato dalla lentezza con cui il processore accede alla memoria.
Il trasferimento di dati e istruzioni dalla memoria al processore, prima che
quest'ultimo cominci il suo lavoro computazionale, comporta un intervallo di tempo
in cui il processore è inattivo. Alla fine della computazione il trasferimento dei
risultati alla memoria origina un altro periodo di inattività del processore.

Alle inefficienze elencate si aggiunge un generale limite connesso alla


programmazione strutturale, infatti una macchina di calcolo reale non dispone di
risorse di tempo e di spazio illimitate come richiesto dalla tesi forte di Church per
macchine strutturalmente programmabili. Costruire una macchina strutturalmente
programmabile significa essenzialmente convogliare lungo canali precisi il fenomeno
utilizzato per ottenere la realizzazione fisica della computazione. Controllare un
fenomeno fisico significa ridurre il numero di gradi di libertà, e quindi di
interazioni, del fenomeno stesso, riducendo in tal modo anche le risorse della
computazione.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 17

2.6 - CERVELLO E CALCOLATORI

Si esamineranno brevemente alcune differenze fondamentali tra il cervello e le architetture


delle macchine di calcolo viste prima. Il cervello umano è costituito da una rete di
moltissimi neuroni (1011 ÷ 1012 ) collegati tra loro da un numero elevato di connessioni
dette sinapsi (103 ÷ 104 sinapsi per ogni neurone). In totale il numero di sinapsi del
cervello varia da circa 1014 a 1016 . Ogni sinapsi può essere inibitoria o eccitatoria per
cui il numero delle configurazioni possibili è uguale a 2 elevato al numero totale di
neuroni nel cervello è:

Si pensa che questo altissimo numero di configurazioni sia responsabile delle


eccezionali prestazioni del cervello. Benché moltissimi processi cerebrali non siano
ancora noti o perfettamente compresi è noto che l'apprendimento e la memoria a lungo
termine si attuano con la formazione di nuove sinapsi. Sono elencate di seguito alcune
peculiarità del cervello:

• Parallelismo e lentezza dei neuroni. Studi non tanto recenti hanno mostrato che
il cervello elabora le informazioni in modalità parallela, questa affermazione nasce
da semplici considerazioni. Un'operazione base viene effettuata da un neurone in
tempi dell' ordine di decine di millisecondi, mentre il cervello è in grado di risolvere
complicatissimi problemi di visione e linguaggio in circa 500 ms. Tenendo conto dei
tempi di ritardo di propagazione del segnale tra neuroni, si può dire che il lavoro
computazionale del cervello è fatto in meno di 100 passi, e consiste nell'esecuzione in
parallelo da parte di neuroni di operazioni base molto semplici.
• Bassa dissipazione termica. L'energia termica dissipata da un neurone in una
elementare operazione di calcolo è circa 3 x 10-3 erg che in confronto ai 3 x 10-14 erg
dissipati in una porta logica di un computer convenzionale è 11 ordini di grandezza
superiore. L'intero cervello dissipa meno di 100 Watt.
• Elementi base di natura analogica. I neuroni sono degli elementi che operano in
maniera analogica. Essi operano su un ingresso sinaptico e generano un uscita a
valori continui.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 18

• Alta ridondanza. Tale proprietà permette al cervello di essere un sistema


estremamente flessibile a superare disastri locali nella sua struttura senza perdita
significativa di prestazioni. Molti neuroni muoiono ogni giorno e il cervello continua
ad operare.

E' interessante paragonare il modello di cervello visto con le specifiche di un calcolatore


elettronico: un supercomputer moderno è dotato di almeno 1000 megabyte di memoria
centrale, che corrispondono al massimo a 1010 transistor, e usa meno di 108 transistor in
funzioni logiche. Un processore compie un operazione logica base in un ciclo di circa
10-9 secondi. La potenza dissipata dal computer è dell'ordine di 105 Watt. In un computer
la tolleranza ai malfunzionamenti locali è un fattore estremamente critico, vengono tollerati
disastri solo in parti della memoria e mai nel processore. Un'altra caratteristica del
cervello umano è che le interconnessioni tra i neuroni interessano uno spazio
tridimensionale mentre nella maggioranza dei computer le piastrine di silicio hanno uno
schema di connessioni piano, anche se recentemente sono stati costruiti chip di silicio
con schema di connessioni tridimensionale. Si può concludere osservando che i
componenti base del cervello sono molto più numerosi, più connessi e più lenti dei
componenti di un computer.

2.7 - SISTEMA NERVOSO, CERVELLO E NEURONI

Sono qui sintetizzati alcuni concetti fondamentali sul sistema nervoso e sulla struttura
del cervello. Il sistema nervoso si divide in due parti principali: periferico e
centrale. Il primo svolge funzioni di interfaccia tra il sistema nervoso centrale e
l'ambiente esterno. I segnali trattati comprendono gli ingressi sensoriali, le uscite si
manifestano con stimoli motori, dolori, immagini visive, percezioni varie.
Il sistema nervoso centrale è costituito dalla spina dorsale e dal cervello, formato a sua
volta da talamo, ipotalamo, gangli basali, sistema limbico e neocorteccia.
L'unità costitutiva di tutto il sistema nervoso è il neurone, la cui anatomia e mostrata in
figura 2.3. Un neurone è una cellula dotata di corpo cellulare dal quale si dipartono
molte brevi ramificazioni di ingresso (dendriti) e una sola lunga ramificazione di
uscita (assone). I neuroni comunicano tra loro mediante impulsi particolari detti
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 19

spike, generati da processi elettrochimici. In condizione di riposo esiste una differenza


di potenziale di circa -70 ÷ -90 milliVolt tra l'interno e l'esterno della membrana
cellulare del neurone, ed è dovuta alle diverse concentrazioni di ioni sodio e potassio tra
le due pareti della membrana. Queste differenze sono causate da un apposito enzima-
pompa capace di muovere gli ioni. Quando un evento esterno come la scarica di altri
neuroni provoca una variazione del potenziale della membrana, viene aumentata la
permeabilità della membrana stessa agli ioni di sodio. Questi ioni si riversano all'interno
della cellula dove la loro concentrazione è minore, causando una corrente elettrica.
Contemporaneamente la differenza di potenziale tra l'interno e l'esterno della membrana
cambia di segno e diventa circa +40 ÷ +50 mV. Dopo il passaggio degli ioni sodio si
apre in canale analogo anche per gli ioni potassio che ristabilisce la situazione di
concentrazioni e potenziali precedente. La rapidissima inversione del potenziale di
membrana origina lo spike o potenziale d'azione e costituisce il messaggio trasportato
lungo l'assone. Il livello di tensione a cui la membrana da origine allo spike è detto
soglia di eccitazione. Lo spike si propaga, quasi senza attenuazione, lungo l'assone
liberando energie locali. Sulla sinapsi lo spike provoca l'emissione di particolari
sostanze dette neurotrasmettitori, i quali raggiungono i dendriti del neurone successivo
e provocano una variazione della permeabilità della membrana, consentendo la
trasmissione del segnale tra i neuroni connessi. In generale un singolo potenziale
d'azione che raggiunge una sinapsi non è sufficiente a generare la produzione di altri
potenziali d'azione nel prossimo neurone. L'effetto additivo di più potenziali d'azione sui
dendriti del neurone postsinaptico e capace di superare la soglia di eccitazione del
neurone, generando un potenziale d'azione. Il numero medio di potenziali d'azione
nell'unità di tempo in funzione della corrente positiva in ingresso a un neurone è
rappresentato in figura 2.4. Questa funzione ha la forma di una sigmoide che va da 0 per
correnti negative fino a un livello massimo di saturazione di 100 ÷ 1000 spike per
secondo per correnti positive molto alte.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 20

FIGURA 2.3. - Anatomia di un sistema di tre neuroni interagenti. (FONTE


NEUROPHYSIOLOGY:A PRIMER WILEY/1966/C.F. STEVENS)

FIGURA 2.4 - Grafico rappresentante il numero medio di potenziali d'azione nell'unità di


tempo in funzione della corrente positiva in ingresso a un neurone. (FONTE PROCEDINGS OF
THE NIELS BOHR CENTENARY SYMPOSIUM 10/85/J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 21

2.8 - NATURA E COMPUTAZIONE

In natura esistono fenomeni di trattamento delle informazioni diversi da quelli utilizzati


nella costruzione dei calcolatori digitali a tecnologia elettronica.6 Nella genetica
molecolare si realizzano veri meccanismi di computazione, nei quali la computazione
è definita da tre elementi concettuali: un ingresso, un'uscita e una unità di calcolo.
La traduzione del DNA nella struttura di una proteina, la costruzione di un
complesso organismo dalle istruzioni del DNA sono esempi di computazione biologica.
Il processo di creazione di più proteine da parte di una cellula in crescita è analogo
alla computazione di una macchina di Turing (vedi figura 2.5). In questo processo
l'informazione memorizzata nell'RNA messaggero (mRNA) è utilizzata come
istruzione per costruire la proteina. Il nastro con l'alfabeto esterno in ingresso è
costituito dall'mRNA, l'uscita finale è la proteina che consiste in un polimero di amino-
acidi con struttura tridimensionale. L'mRNA è un polimero costituito da quattro tipi di
unità A, U, G e C. La proteina è un polimero fatto da venti tipi diversi di aminoacidi,
glicina, alanina, tirosina,...etc. La sintesi della proteina è fatta da un composto
polimolecolare, formato da proteine e RNA detto ribosoma, che può essere visto come
l'unità di controllo della macchina di Turing del processo. Il ribosoma legge l'input
dell'mRNA (nastro di ingresso) e inserisce sequenzialmente il corrispondente
amminoacido nella proteina. Le operazioni logiche descritte sono fatte da particolari
reazioni chimiche della cui logica non è noto quasi nulla. Le operazioni logiche fatte
sono descritte dalla sequenza:

1. Leggi le prossime tre celle dall'nRNA tape


2. Cerca l'aminoacido corrispondente nel dizionario genetico
3. Aggiungi l'aminoacido alla proteina
4. Muovi l'input tape di tre celle

Il programma contiene anche una possibile istruzione di stop nel dizionario genetico.
La computazione biologica è molto poco accurata rispetto quella digitale. La proteina

6
J.J. Hopfield, "Physics, biological computation, and complementarity", Proceedings of
Niels Bohr Centenary Symposium, Copenhagen 4 Ottobre 1985.
Reti Neurali: modelli e aspetti applicativi: Cap 2 - Computazione Classica e Modelli Connessionistici 22

formata dal processo esaminato risulta esatta in quasi tutti i casi con un livello di errore
di circa 1/3000. Questo livello di errori nel produrre l'output è certamente molto alto nel
caso di computazioni digitali, mentre è accettabile per computazioni biologiche.
Le osservazioni fatte in relazione alla computazione biologica permettono di affermare
che è possibile definire i principi costruttivi di nuove macchine di calcolo capaci di
superare i limiti degli elaboratori di Von Neumann, basate su fenomeni fisici diversi da
quelli attualmente utilizzati, con particolare riguardo alla imitazione di strutture
biologiche o fenomeni microbiologici. Più avanti si approfondirà lo studio di macchine di
calcolo basate sulla imitazione strutturale di entità biologiche come il cervello umano.
Queste macchine sono chiamate reti o sistemi neurali, mentre la loro architettura
definisce i cosiddetti modelli connessionistici. Gli algoritmi su cui si basa l'intelligenza
animale sono implementati nel cervello. Utilizzando questo particolare hardware il
cervello raggiunge le altissime prestazioni che si conoscono. L'idea base dei sostenitori
dei sistemi neurali è che la specializzazione della nostra intelligenza sia una peculiarità
dei sistemi biologici ad altissimo grado di connessione. La semplicità dei neuroni e
delle sinapsi e la loro universalità biologica fa supporre che imitando tali componenti
sia possibile costruire sistemi artificiali di analoghe prestazioni.

FIGURA 2.5 - Processo di creazione di più proteine da parte di una cellula in crescita, analogo
alla computazione di una macchina di Turing .Il nastro in uscita contiene gli amminoacidi
costituenti la proteina.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 23

3. - MODELLI DI RETI NEURALI

3.1 - INTRODUZIONE

In questo capitolo, dopo una breve esposizione delle origini storiche delle reti neurali,
vengono definiti i principi e gli elementi che caratterizzano un sistema neurale,
distinguendoli nettamente da quelli alla base di un computer digitale ad architettura Von
Neumann. Nell'ultimo paragrafo sono elencati i principali modelli che verranno
utilizzati nelle applicazioni dei capitoli successivi.

3.2 - ORIGINE DELLE RETI NEURALI

Lo studio delle reti neurali risale ai primi tentativi di tradurre in modelli matematici i
principi dell'elaborazione biologica. Le più antiche teorie del cervello e dei processi
mentali sono state concepite dai filosofi Greci Platone (427-347 A.C) e Aristotele
(384-322 A.C). Queste teorie furono riprese molto più tardi da Cartesio (1586-1650) e
nel XVIII secolo dai filosofi empiristi. Le prime realizzazioni di macchine cibernetiche,
categoria alla quale appartengono i sistemi neurali, appaiono negli anni quaranta col
nascere di una scienza nuova, la cibernetica. La cibernetica è definita come scienza che
studia i processi intelligenti e fu fondata da Norbert Wiener nel 1947. Ross Ashby, un
altro padre della cibernetica, costruisce nel 1948 l'omeostato uno dei primi sistemi con
connessioni interne regolabili, capace quindi di variare la sua configurazione interna
adattandola a stimoli esterni. Il neurofisiologo W.S. MC Cullock e il matematico W.A.
Pitts (1943) di Chicago sono stati i primi a formulare l'approccio cibernetico
fondamentale alla struttura del cervello elaborando il primo modello di rete neurale.
John Von Neumann, dopo aver formulato l'architettura base dei moderni calcolatori,
comincia nel 1948 lo studio delle reti di automi cellulari precursori di nuovi modelli
computazionali. Nel 1949 il neurofisiologo Donald Hebb, dagli studi sul processo di
apprendimento dei neuroni, dedusse la prima regola di apprendimento applicata nelle
reti neurali. Contemporaneamente gli studi di Lashley sulla mente umana indicavano
che l'organizzazione della conoscenza e la memoria si basava su rappresentazioni
distribuite. Nei primi anni sessanta si costruiscono le prime macchine in grado di
presentare primitive forme di apprendimento spontaneo e guidato, sono il Perceptron
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 24

di Frank Rosemblatt della Cornell University e l'Adaline (Adaptive linear element) di


Bernard Windrow di Stanford. Il Perceptron è una rete neurale costituita da
dispositivi logici in grado di risolvere semplici problemi di riconoscimento di
forme. Esso rappresento un prototipo delle strutture che vennero elaborate più
avanti. Anche in Italia si sviluppano iniziative particolarmente importanti. Eduardo
Caianello, dell’Università di Napoli, sviluppa la sua teoria sui processi e le
macchine pensanti sulla base delle idee di Mc Cullock, Pitts e Hebb. A Genova viene
realizzata da Augusto Gamba una macchina derivata dal Perceptron. Nel 1969 Marvin
Minsky e Seymour Papert, del Massachusetts Institute of Technology, pubblicano
un'analisi molto critica delle macchine tipo il Perceptron . Essi dimostrarono
matematicamente le limitazioni delle reti neurali nel risolvere problemi quali la
determinazione della parità di un numero binario, il calcolo di una funzione XOR di 2
bit o la classificazione delle immagini in base alla loro connettività. Questi
problemi potevano essere risolti solo da reti neurali omniconnesse in cui ogni
neurone è connesso con tutti gli altri neuroni della rete, in una simile rete il numero
delle connessioni crescerebbe esponenzialmente all'aumentare del numero di neuroni
contrariamente a quanto avviene nei sistemi biologici nei quali le connessioni crescono
linearmente. Minsky era uno dei sostenitori di un approccio rivale alle reti neurali,
l'Intelligenza Artificiale (A.I.) classica basata su computer tradizionali. In seguito alle
tesi di Minsky il campo delle reti neurali fu abbandonato dalla maggior parte degli
studiosi, i quali si rivolsero al campo dell'A.I. apparentemente più promettente. Secondo
chi scrive comunque, questo cambiamento di interessi fu causato anche dal fatto che la
tecnologia allora disponibile rendeva molto difficoltosa o addirittura impossibile la
sperimentazione nel campo delle reti neurali, ne vi erano computer abbastanza veloci
per simulare reti neurali complesse. Negli anni sessanta e settanta la ricerca
continuo con contributi teorici e poche applicazioni. Alcuni ricercatori come
Shunichi Amari, Kunihiko Fukushima e Shephen Grossberg tentarono di simulare
il comportamento di neuroni cerebrali con reti di unità di calcolo operanti in modalità
parallela. Inoltre formularono teorie matematiche ed architetture per individuare e
classificare i tratti caratteristici delle forme da riconoscere e per costruire le prime
memorie associative. In queste ultime vengono utilizzate informazioni parziali come
chiavi per recuperare dati memorizzati.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 25

L'interesse sviluppatosi nei primi anni 80 per i modelli neurali è sicuramente dovuto a
diversi fattori, che sono elencati di seguito:

• i progressi compiuti nella comprensione di alcuni fenomeni computazionali biologici,


la disponibilità di potenti computer in grado di simulare i nuovi modelli neurali.
• lo sviluppo di tecnologie VLSI e ottiche che si prestano alla costruzione di circuiti di
tipo neuronico.
• la determinazione dei limiti dell'A.I., i quali sono strettamente legati ai limiti dei
computer seriali di Von Neumann.

John Hopfield del California Institute of Technology propone nel 1982 un modello
computazionale basato su concetti energetici e pertanto applicabile in svariati campi.
Questo nuovo modello permise di studiare il comportamento globale di reti molto più
complesse dei perceptron, non analizzabili con metodi classici. In particolare era
possibile studiare reti con neuroni nascosti. Con questo risultato termina la
"preistoria" dello studio delle reti neurali e inizia la cronaca di un settore in rapida
evoluzione. Nel 1987 la CEE promuove il progetto BRAIN (Basic research in
adaptive intelligence and neurocomputing), inoltre si tiene a S.Diego la prima
conferenza internazionale sulle reti neurali con 2000 partecipanti provenienti sia dalle
università sia dall'industria. Alla luce dei risultati ottenuti, Minsky e Papert rivedono
le loro critiche e indicano nuove direzioni di sviluppo nell'area delle reti neurali.
I principali settori cui la ricerca attuale è indirizzata sono:

• la rappresentazione della conoscenza


• la visione
• il riconoscimento di forme
• la comprensione del linguaggio naturale
• le memorie associative
• la robotica e la sensorica
• l'inferenza
• la risoluzione di particolari problemi computazionali.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 26

3.3 - ARCHITETTURA ASTRATTA DI UNA RETE NEURALE

Si descriverà adesso l'architettura generale di un modello di rete neurale, elencando e


analizzando una serie di caratteristiche comuni:
1. unità di computazione base
2. stato delle unità
3. attività della rete
4. insiemi di connessioni
5. funzione di attivazione
6. regola di apprendimento
7. topologia del modello
8. rappresentazione dei dati

- Unità di computazione base. Nel contesto di una rete neurale, l'unità base sulla
quale è costruito il modello è un elemento computazionale semplice disposto in una
architettura a rete . L'elemento accetta dei segnali in ingresso, li elabora secondo
determinate regole, e sulla base di questi segnali, del proprio stato interno e degli stati
precedenti calcola un segnale in uscita Vi , che viene inviato alle unità a cui esso risulta
connesso. Il modo in cui avviene tale processo nella rete è parallelo, nel senso che
molte unità lavorano simultaneamente. In generale l'ingresso di un neurone i è
rappresentato dalla sommatoria di tutte le uscite Vj dei neuroni j ai quali è connesso:

3.1
Tij è l’intensità della connessione, e si esaminerà più avanti. Le unità risultano divise
in tre categorie: unità di ingresso, unità di uscita e unità nascoste. Le prime
ricevono ingressi da sorgenti esterne al sistema, le unità di uscita inviano segnali
all'esterno del sistema mentre le unità nascoste sono collegate solo con input e output
interni. L'unità base può essere identificata col termine neurone. Diversi autori hanno
elaborato un modello dell'unità fondamentale di calcolo di un sistema di neuroni, si può
dire che essa è un emulazione semplificata delle funzioni del neurone biologico. I vari
modelli di neuroni elaborati si distinguono generalmente per il tipo di risposta che
essi presentano a uno stimolo in ingresso. In questa differenziazione i modelli di
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 27

neurone rispecchiano i diversi tipi di neurone biologico.

- Stato dell'unità. Ad ogni unità è associato un valore numerico detto stato dell'unità
che generalmente viene fatto corrispondere al valore della variabile in uscita V (t). Per
N unità lo stato Vi(t) è un vettore di N componenti in cui ciascuna componente
rappresenta l'attivazione di un'unità. I valori dello stato possono essere continui o
discreti. Lo stato della rete di neuroni al tempo t è descritto dall'insieme di variabili che
descrivono lo stato delle unità semplici.

- Attività della rete. L'attività della rete è il numero di neuroni attivi al tempo t:

3.2

- Insiemi di connessioni. Le unità sono interconnesse. In generale l'ingresso di un


unità è determinato dalla somma pesata delle uscite a cui essa risulta connessa.
L’intensità della connessione tra due unità è data dal generico peso Tij. Il peso Tij è
positivo se l'unità j esercita un'azione eccitatrice sull'unità i ed è negativo in caso contrario.
E' possibile associare ad un sistema di interconnessioni una matrice di pesi T nella quale
il generico elemento Tij specifica l’intensità della connessione tra l'unità j e l'unità i.
L'insieme dei pesi delle connessioni determina come il modello risponderà ad un ingresso
arbitrario e di conseguenza costituisce la "conoscenza o memoria del sistema". Con una
terminologia più vicina ai sistemi biologici l’intensità della connessione tra due unità
neuroniche è detta sinapsi.

FIGURA 3.1a -
Rappresentazione
grafica della
funzione di
attivazione V(t+1),
che dipende dall’
ingresso del
neurone Ui e dallo
stato Vi al tempo t.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 28

- Funzione di attivazione. Una caratteristica importante delle unità di una rete neurale
è il modo in cui i vari segnali di ingresso vengono combinati per determinare il
segnale complessivo. Una funzione di attivazione è data da:

3.3
La funzione di attivazione associa allo stato e agli ingressi attuali un nuovo stato di
attivazione. La Fi [ ] , nei casi più semplici, è la funzione identità, cioè lo stato Vi
dell'unità coincide con l'ingresso totale U , e la funzione Fi [ ] risulta lineare. In altri casi
Fi [ ] è una funzione a soglia per cui l'ingresso totale deve superare un determinato valore
per contribuire al nuovo stato dell'unità. Alcune forme caratteristiche della funzione
di attivazione sono visualizzate nella figura 3.1b . Si notino le tre forme base non lineari
di Fi [ ]: hard limiter, threshold logic e sigmoide. Un'altra caratteristica importante
delle funzioni di attivazione è il loro carattere che può essere deterministico
(stocastico) o non deterministico. Nel primo caso, un neurone cambia sempre il suo stato
se l'input eccede una certa soglia. La dinamica della rete è in questo caso definita
markoviana, cioè lo stato della rete al tempo t+τ dipende solamente dallo stato della rete
al tempo t, e non dagli altri stati precedenti. Nel secondo caso la funzione di attivazione
è probabilistica (macchina di Boltzmann), per cui anche se l'input supera il valore della
soglia, non è detto che il neurone cambi stato.

FIGURA 3.1b - Rappresentazione dell'ingresso pesato di un neurone e delle tre principali


funzioni di attivazione. (FONTE IEEE ASSP MAGAZINE 4/1987 R.P. LIPPMANN
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 29

- Regola di apprendimento. Si è detto che la conoscenza di un sistema neurale è


codificata dai pesi delle connessioni tra le unità, per cui apprendere equivale a modificare
i pesi di tali connessioni. A tal fine sono state elaborate varie regole che simulano
elementari forme di apprendimento per diversi modelli di reti. I meccanismi di
apprendimento possono essere con supervisione (guidati) o senza (spontanei)7 .
Nei primi un supervisore fornisce alla rete degli ingressi e confronta la risposta della rete
con quella corretta nota a priori. In base a questo confronto vengono stabilite le
modalità di modifica dei pesi di interconnessione. L'apprendimento guidato
consente alla rete di imparare tramite i molti esempi forniti dal supervisore, in una
modalità che ricorda l'apprendimento umano. La regola di apprendimento spontanea più
semplice è quella definito da Hebb8 , la cui idea base Hebb è di aumentare il peso T se
l'unità i-esima riceve in ingresso l'uscita dell'unità j-esima e le due unità sono
contemporaneamente attive. La regola di Hebb è espressa come segue:

3.4
Le altre regole di apprendimento spontanee sono delle evoluzioni di quella di Hebb
oppure si basano su altri principi. Un'altra fondamentale regole di apprendimento è la
regola back-propagation utilizzata universalmente in quasi tutte le reti di neuroni che
incorporano livelli "nascosti".

- Topologia. Fissate le caratteristiche delle singole unità si analizza adesso il modo in cui
tali unità sono connesse tra loro cioè la topologia della rete neurale. Alcuni esempi di
topologie di reti neurali sono rappresentate in figura 3.2. In alcuni modelli le
connessioni seguono schemi predeterminati, in altri schemi casuali. Molti modelli
vengono organizzati in più livelli di unità, oppure in diversi strati di connessioni tra
unità. Analizzando una rete a più livelli bisogna distinguere tra livelli "visibili",
costituiti da unità di ingresso o uscita, e livelli "nascosti". Analizzando le
connessioni tra le unità si possono distinguere modelli feedforward, nei quali
esistono connessioni solo tra le uscite e gli ingressi di unità di livelli successivi, e
modelli con meccanismi di retroazione detti anche modelli feedback (reti di Hopfield).

7
T. J. Sejnowsky, "Neural Network Learning Algorithms", NATO ASI Series, Vol. F41,
Springer-Verlag, Berlino 1988.
8
Donald O. Hebb, “The Organization of Behavior”, Wiley, New York 1949.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 30

In questi ultimi modelli si possono avere connessioni tra le uscite di unità di un livello e
le entrate di unità di un livello precedente, inoltre, come si vede in figura 3.2, il tipo
di feedback può essere ordinato o amorfo. Nei modelli gating le uscite delle unità
agiscono sui pesi delle connessioni. Altre distinzioni si possono fare riguardo la
connettività laterale, cioè le connessioni di elementi dello stesso strato. Nel tipo
cooperativo-competitivo ogni elemento è connesso ai suoi vicini mediante connessioni
alternativamente eccitatorie e inibitorie, nel tipo "on-center/off-surround" le
connessioni laterali sono tutte inibitorie, nel tipo a campo ricettivo (reti di Kohonen)
ogni ingresso ha una determinata distribuzione sull'intero livello e la connessione
laterale può essere di qualunque tipo.

- Rappresentazione dei dati. Nei sistemi neurali i dati in ingresso sono rappresentati
definendo lo stato di un particolare insieme di unità di ingresso. Ogni dato complesso
viene rappresentato da un insieme di elementi subsimbolici e non dalla modifica arbitraria
di un simbolo. Ad esempio le unità di ingresso possono rappresentare la presenza di
una lettera in una determinata posizione in una parola, oppure lo stato di un ricettore
immaginario su una retina artificiale. La scelta dello schema rappresentativo dei dati
contribuisce a determinare la potenza computazionale del sistema. Analogamente
l'uscita di una rete neurale viene definita dallo stato di un insieme predeterminato di
unità. In molti modelli lo stato delle singole unità di uscita rappresenta la verità o falsità
di una determinata proposizione.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 31

FIGURA 3.2 - Tipi generali di architetture di reti neurali


Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 32

3.4 - DEFINIZIONE DI RETE NEURALE

Una definizione generale di rete neurale potrebbe essere la seguente:

• una rete neurale è un insieme di semplici unità di elaborazione (neuroni)


altamente interconnesse tra di loro, che interagiscono tra loro e con gli oggetti
del mondo esterno mediante lo scambio di segnali in modo simile alle strutture
neurali biologiche.

Le differenze tra una rete neurale e un computer digitale convenzionale sono state
adeguatamente sintetizzate dal fisico Kohohen9 :

• I principi della logica digitale non sono applicabili a un sistema neurale. I neuroni
non possono essere circuiti logici a soglia, perché ogni neurone ha migliaia di input
variabili e la stessa soglia e dipendente dal tempo. L'accuratezza e la stabilita di un
circuito normale non è sufficiente a definire una variabile booleana. Inoltre i processi
collettivi, che sono di fondamentale importanza nel calcolo neurale, non sono
implementabili mediante semplici circuiti logici.
• I neuroni e le sinapsi non sono elementi di memoria bistabili come dei flip-flop.
I neuroni sembrano comportarsi come dei sistemi integratori analogici di natura non
lineare, le sinapsi sono delle connessioni la cui efficacia varia gradualmente.
• Una rete neurale non ha istruzioni o codici di controllo che regolano lo stato
funzionale del sistema.
• Lo schema di interconnessione di un sistema neurale non permette il calcolo
ricorsivo, per cui è impossibile implementare algoritmi di calcolo.

9
Kohonen Teuvo. “An Introduction to Neural Computing”, Neural Networks, Vol. 1. 1988,
pag 3-16.
Reti Neurali: modelli e aspetti applicativi: Cap 3 -Modelli di Reti Neurali 33

3.5 - CLASSIFICAZIONE DELLE RETI NEURALI

Sebbene le reti neurali siano in rapida evoluzione è possibile fare una classificazione
dei principali modelli, riferendoci con essa a evidenziare i diversi approcci di vari
autori. Una prima suddivisione può essere fatta in base all'ingresso dei neuroni che
può risultare continuo o discreto. La successiva divisione è determinata dal tipo di
regola di apprendimento che può essere con o senza supervisione. Un altro aspetto
importante è il tipo di funzione di attivazione che può essere o non essere
deterministica. Nei modelli deterministici e stocastici l'evolversi della dinamica del
sistema è spesso prevedibile a lungo termine (reti di Hopfield). Nei modelli non
deterministici, che simulano più da vicino i sistemi biologici, si ha una funzione
d'attivazione probabilistica (Macchina di Boltzmann). La simmetricità della matrice delle
connessioni origina una ulteriore suddivisione in reti simmetriche che sono
tipicamente le reti di Hopfield, e asimmetriche come i perceptroni. Si formano a questo
livello diverse famiglie di reti neurali .10 Nel presente lavoro saranno esaminati i
seguenti modelli:

• Reti di Hopfield discrete e continue


• Macchina di Boltzmann
• Perceptrone e Perceptrone multistrato
• Reti auto-organizzanti di Kohonen

10
Richard P. Lippmann, "An Introduction to Computing with Neural Nets", IEEE ASSP
Magazine, Aprile 1987, pag 4-22 .
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 34

4. - RETI DI HOPFIELD E MACCHINA DI BOLTZMANN

4.1- INTRODUZIONE

Si esamineranno in questo capitolo le reti neurali simmetriche di Hopfield11 e la


macchina di Boltzmann. Queste reti, come si vedrà nel prossimo capitolo, sono
particolarmente adatte alla risoluzione di problemi di ottimizzazione combinatoria ad
altissimo numero di soluzioni, oppure alla implementazione di memorie associative.
Si comincerà con l'originale modello discreto di Hopfield del 1982 basato su unità con
ingressi binari e prototipo di successivi modelli. Una evoluzione del modello discreto di
Hopfield è il modello continuo, proposto dallo stesso Hopfield nel 1984 capace di ottime
prestazione nella risoluzione di problemi particolarmente complessi. In tale modello i
neuroni sono realizzati fisicamente da dispositivi elettronici analogici. La macchina di
Boltzmann, esaminata successivamente, permette al contrario dei modelli di Hopfield di
avvicinarsi alla soluzione ottimale del problema cui è applicata.

4.2 - MODELLO DISCRETO DELLA RETE DI HOPFIELD

Il modello discreto di rete neurale proposto da Hopfield è formato da N semplici


unità di calcolo detti neuroni reciprocamente interconnessi (vedi Fig. 4.1). Ogni
neurone può assumere due stati interni descritti dalla variabile V :

4.1
Lo stato del neurone coincide col valore in uscita dell'unità stessa. Lo stato del sistema a
un dato istante è definito dall'insieme degli N valori della variabile di stato Vi per cui può
essere rappresentato da un vettore di stato di N bit, V = [V1 , V2 , ... ,VN]. L'ingresso di
ciascun neurone è espresso nella forma seguente:

11
J.J.Hopfield, "Neural Networks and Physical Systems with Emergent Collective
Computational Abilities", Proc. Natl. Acad. Sci. 179, pag. 2554 (1982).
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 35

4.2
In tale relazione N è il numero dei neuroni, Tij è un elemento di una matrice di
interconnessione T rappresentante l'intensità di connessione tra il neurone i e j, Vj
esprime l'uscita del neurone j, mentre Ii è un ingresso esterno che viene fornito al
neurone i. Gli interruttori SWj commutano in modo asincrono con ritardi casuali e
permettono la realizzazione della retroazione tra le uscite e l'ingresso della rete.
Nelle simulazioni software del capitolo 7 si assume che la chiusura degli interruttori
SWi sia sincronizzata. Quando l'i-esimo interruttore si chiude, lo stato interno dell'i-
esimo neurone si evolve seguendo la funzione di attivazione seguente:
Vi (t+1) = stp [Vi (t)] 4.3
Nella 4.3 il tempo t assume valori discreti, stp(x) è una funzione a gradino uguale a 1 se
x ≥ Si , 0 se x < S , S è un valore definito soglia di attività del neurone i.
Senza nessuna perdita di generalità si possono assumere nulle le soglie di tutti i neuroni
della rete. Con questa assunzione si può definire la funzione d'attivazione nella forma:

4.4
Per le reti di Hopfield è definita anche una regola di apprendimento che definisce il
valore dei componenti della matrice di interconnessione T. La regola di apprendimento
utilizzata da Hopfield è la regola di Hebb, si esaminerà in dettaglio più avanti il legame
tra tale regola e le applicazioni della rete. L'evoluzione del modello discreto di Hopfield
nel suo spazio di configurazioni segue le leggi dinamiche dei processi stocastici, per
cui lo stato della rete al tempo t+1 è determinato unicamente dallo stato al tempo t
precedente. Per determinare lo stato della rete al tempo t+1, non è richiesta quindi
alcuna informazione per tempi precedenti l'istante t.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 36

FIGURA 4.1a - In alto è mostrata la funzione di attivazione di una rete discreta di Hopfield, il cui
schema è mostrato in basso. (FONTE P.N.A.S. 79/1982 J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 37

4.3 - CONSIDERAZIONI ENERGETICHE SULLA RETE DISCRETA DI HOPFIELD

Hopfield ha definito per il suo modello una funzione energia che rivela importanti
proprietà della rete. Considerando una matrice T di pesi di connessione simmetrica e
con elementi diagonali nulli si definisce la funzione energia computazionale come
segue:

4.5
Si consideri adesso la variazione di energia ∆E dovuta alla variazione dello stato Vi di
un neurone, si assuma la variazione del neurone i da uno stato inattivo a uno attivo, si
ha:

4.6
La variazione di stato -∆Vi è uguale a 1 nel caso considerato per cui si ha:
∆Ei= -∆
∆Vi Ui (t+1)= -∆
∆Vi Vi (t+1) = -1 < 0 4.7
Si noti che nel caso di un neurone che passa da uno stato Vi(t) = 1 a uno stato Vi(t+1)=0
si ha ∆Vi = -1 , mentre per la 4.7 ∆Ei = 0. La variazione totale di energia della rete è:

se ∆Ei ≤ 0 allora ∆E ≤ 0 4.8


Da queste considerazioni Hopfield concluse che l'energia computazionale, al variare
dello stato del sistema neurale, decresce monotonicamente fino a raggiungere un minimo
locale. Dalla simmetria della definizione dello stato di un neurone risulta che se un
vettore corrisponde a uno stato stabile della rete allora anche il vettore complemento sarà
stabile. Se consideriamo lo stato dei neuroni espresso mediante le variabili µi = ±1 che
sono legate alle Vi dalla relazione µi = 2Vi - 1, i vettori rappresentanti lo stato della rete
possono essere rappresentati nello spazio degli stati, tale spazio composto dalle N
componenti µi corrisponde a un ipercubo con coordinate ±1 . I vettori che
minimizzano E corrispondono ai vertici dell'ipercubo N-dimensionale. (vedi figura 4.3).
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 38

Hopfield dimostrò l'esistenza di una funzione di Ljapunov nello spazio degli stati della
suo modello di rete neurale, tale funzione di Ljapunov corrisponde all'energia
computazionale. Seguono adesso alcune importanti definizioni legate alle funzioni di
Ljapunov:

• Una funzione H : S ⇒ℜ è detta di Ljapunov se, dato un qualunque s(to) ∈ S vale:


( ∀ t ≥ t0 ) : s(t + 1) ≠ s(t) ⇒ H(s(t + 1)) ≤ H(s(t))
s(t) = {si (t)} i=1,2,...n è lo stato del sistema al tempo t
• Un punto s ∈ S è di equilibrio se:
( ∃ t ) : s(t) = s ⇒ ( ∀ t ≥ t’ ) s(t’ ) = s
• Un punto s ∈ S è di attrazione se è di equilibrio ed esiste un intorno I di s tale che ∀ s’
∈ I vale:
s(t) = s’ ⇒ ( ∀ t ≥ t’ ) s(t’ ) = s

Hopfield studiò il comportamento della rete mediante simulazioni software,


verificando sia che la funzione energia fosse una funzione di Ljapunov, sia la presenza
dei punti attrattori di energia minima verso i quali la rete evolveva.

FIGURA 4.1b - Sequenza


di transizioni di un sistema
fisico da uno stato iniziale
V1 ad uno finale stabile V8,
corrispondente ad un
minimo di energia.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 39

Come già detto la rete di Hopfield corrisponde a un sistema fisico descritto nello spazio
degli stati del sistema di coordinate V1 ,V2 ,..VN e caratterizzato da punti di
attrazione o minimi locali V1 ,V2. Se il sistema viene fatto partire da una
configurazione iniziale V sufficientemente vicina a una configurazione di attrazione,
ad esempio V = V1 + ∆, esso evolverà nel tempo fino a raggiungere la configurazione
stabile V1 (vedi figura 4.1b). Un sistema fisico la cui dinamica nello spazio delle
configurazioni è dominata da un certo numero di stati attrattori può trovare
applicazioni nel campo delle memorie indirizzabili per contenuto C.A.M. (Content
Addressable Memory o Memorie Associative) o come si vedrà più avanti col modello
continuo di Hopfield nella risoluzione di problemi di ottimizzazione. Nel primo caso si
vedrà che gli stati attrattori corrispondono all'informazione memorizzata mentre la
configurazione iniziale è una conoscenza parziale dell'informazione.

4.4 - REGOLA DI APPRENDIMENTO DI HEBB E APPLICAZIONI C.A.M. DEL


MODELLO DISCRETO DI HOPFIELD

Una C.A.M. o memoria associativa è un nuovo modello di memoria capace di


restituire l'informazione memorizzata in risposta ad un ingresso rappresentato da una
conoscenza parziale dell'informazione (vedi fig 4.1c). Al contrario in un memoria
convenzionale i contenuti sono ricavati tramite gli indirizzi delle locazioni dove sono
memorizzati. Il modello discreto della rete di Hopfield si presta naturalmente ad
implementare una memoria associativa . Si supponga di voler memorizzare un set di M
vettori binari V(s) s=1,2,...,M , Hopfield suggerisce di utilizzare una rete neurale
facendo corrispondere gli stati stabili della rete con i vettori da memorizzare. L'algoritmo
di memorizzazione proposto è la regola di apprendimento di Hebb, mediante la
quale si costruisce una matrice T di pesi definita come segue:

4.9
Si deve avere inoltre Tii = 0 e Tij = Tji . Si noti che utilizzando le variabili di stato
µi=±1, la regola di Hebb viene espressa in una forma molto usata in alcuni lavori:
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 40

4.10
In generale una rete neurale operante come memoria associativa opera nelle due fasi
descritte di seguito:

1. Fase di apprendimento. Questa fase consiste nella costruzione della matrice di


interconnessioni T. Vengono presentati in ingresso alla rete neurale gli M vettori
binari V(s) che sono i dati da memorizzare, la rete setta le connessioni tra i
neuroni in accordo alla regola di apprendimento descritta dalle equazioni 4.9 e 4.10.
2. Fase operativa della memoria. In questo periodo avviene il richiamo delle
informazioni memorizzate. La rete viene inizializzata con un qualsiasi vettore in
ingresso, e comincia in tal modo l'evoluzione temporale della rete nello spazio
delle configurazioni, seguendo la funzione di attivazione 4.4 definita in
precedenza. Se il vettore iniziale rappresenta una parte di un dato memorizzato, la
rete evolve raggiungendo una configurazione finale stabile di energia computazionale
minima. La configurazione finale può risultare uno dei vettori memorizzati oppure
uno stato particolare detto metastabile, che è un minimo locale di energia non
corrispondente a nessuno dei vettori memorizzati. Nella rappresentazione nello spazio
degli stati della rete uno stato metastabile è rappresentato come tutti i minimi di
energia da uno dei vertici dell'ipercubo N-dimensionale che rappresenta la superficie
energetica. Per particolari condizioni iniziali la rete presenta un comportamento
oscillatorio per cui non viene mai raggiunto uno stato finale stabile.

La rete di Hopfield utilizzata come memoria associativa presenta due limiti non
trascurabili. Il primo limite fissa il numero massimo di vettori memorizzabili e
richiamabili con sufficiente accuratezza. Hopfield ha mostrato che il numero massimo di
vettori memorizzabili è Mmax ≅ 0.15*N, N è il numero di neuroni della rete. Un altro
limite consiste nella difficoltà di memorizzare vettori con molti bit in comune e vettori
con forti sbilanci tra bit ad 1 e bit a 0. Tali limiti saranno esaminati nel capitolo 7.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 41

FIGURA 4.1c - In alto è lo schema architetturale del modello discreto di Hopfield che implementa
una memoria associativa, in basso si vede il proncipio di funzionamento
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 42

4.5 - MODELLO CONTINUO DELLA RETE DI HOPFIELD

Nel lavoro successivo Hopfield12 propone un nuovo modello di rete di neuroni basato su
unità di elaborazione analogiche, che segue la dinamica di un sistema fisico in uno spazio
di configurazioni continuo. Nel nuovo modello si ha un'analogia più marcata tra i
fenomeni fisici osservati nei neuroni biologici e descritti dalla neurodinamica classica e
quelli che governano il funzionamento della rete artificiale. Lo stato del neurone è
descritto dalla variabile in ingresso U , la funzione di uscita è continua e limitata:
Vi (t) = gi (Ui (t)) Vi0 ≤ Vi (t) ≤ Vi1 g (-∞) = 0 g(+∞) = 1
La funzione di uscita Vi (t) è una sigmoide monotona crescente con asintoti Vi0 e Vi1.
La rete continua di Hopfield è progettata per essere facilmente realizzabile fisicamente
(si veda la figura 4.2). Le unità di elaborazione sono costruite mediante amplificatori
operazionali con tempo di risposta trascurabile, e la cui caratteristica ingresso-uscita
corrisponde alla funzione di uscita Vi (t) . In questo caso Vi (t) = gi (Ui (t)) è la tensione
di uscita del i-esimo amplificatore mentre Ui(t) è la tensione in ingresso.
La connessione tra un amplificatore j e uno i è realizzata mediante resistenze di
conduttanza Tij . Ogni amplificatore è dotato di due uscite, una normale e una inversa, in
modo da realizzare connessioni eccitatrici e inibitrici. Il valore dell'uscita normale è
compreso tra 0 e 1, mentre l'uscita inversa da i valori tra 0 e -1. Tra l'ingresso di
ciascun amplificatore e la massa è inserito un gruppo parallelo, costituito da una
resistenza ρi e una capacità Ci, che definisce le costanti di tempo della rete. La
corrente in ingresso totale di ciascun unità di elaborazione è composta da due termini, il
primo è la sommatoria di tutte le correnti provenienti da tutte le unità connesse, il
secondo è una corrente di alimentazione esterna . A questo punto si può descrivere la
dinamica del sistema degli N amplificatori interagenti mediante le equazioni
differenziali seguenti:

4.11

12
J.J Hopfield, “Neuron with graded response have collective computational properties like
two-state neurons”, Proc. Natl. Acad Sci. 81, pag. 3088 (1984).
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 43

FIGURA 4.2a - In alto è mostrata la funzione di attivazione di una rete continua di Hopfield, in
basso è mostrato lo schema elettrico della rete. (FONTE P.N.A.S. 81/1984/J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 44

FIGURA 4.2b - In alto è mostrato lo schema elettrico di una rete continua di Hopfield.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 45

dove Ri è data dalla relazione :

4.12
ρi è la resistenza in ingresso dell'amplificatore i, si assume che l'impedenza in uscita
all'amplificatore sia nulla. L'interpretazione biologica del modello continuo di Hopfield è
quasi immediata. La neurodinamica classica porta alle seguenti considerazioni:

1. L'uscita Vi del unità computazionale i può essere identificata col numero medio di
potenziali d'azione nell'unità di tempo emessi dal neurone i.
2. Il voltaggio in ingresso Ui all'unità i è analogo al debole potenziale prodotto nel
neurone i postsinaptico quando i potenziali d'azione dei neuroni presinaptici
raggiungono la sinapsi e liberano i neurotrasmettitori chimici. L'input totale del
neurone i è Σ j Tij Vi + Ii , dove Tij rappresenta l'efficienza della sinapsi tra il neurone
i e il neurone j.
3. La resistenza e la capacità della membrana cellulare del neurone i sono espresse
dalle costanti ρi e Ci .

Le equazioni dinamiche che descrivono il modello neurale biologico definito sono


quelle definite da Hopfield per il suo modello continuo di rete neurale. Queste
equazioni omettono l'effetto della quantizzazione dei potenziali d'azione, inoltre
considerano infinita la velocità di propagazione di tali potenziali. Conoscendo i valori
delle tensioni Ui al tempo t = 0, le equazioni dinamiche permettono di ricavare una
descrizione completa dell'evoluzione temporale dello stato del sistema. Analogamente al
modello discreto, Hopfield ha trovato che, nell'ipotesi di simmetria della matrice di
connessione, le equazioni dinamiche del modello continuo conducono alla
convergenza verso stati stabili, cui corrispondono i minimi dell'energia computazionale.
Nell'ipotesi che la matrice T abbia gli elementi diagonali nulli e sia simmetrica
l'energia computazionale è definita come segue:

4.13
Hopfield ha dimostrato che la derivata rispetto al tempo dell'energia computazionale
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 46

nell'ipotesi di una matrice T simmetrica, è minore o uguale a zero, si ha infatti:

4.14
-1
Dato che gi (Vi ) è una funzione monotona non decrescente e Ci è sempre positivo, ogni
termine della somma 4.14 non è negativo per cui si ha:
dE/dt ≤ 0 , dE/dt = 0 quando dVi /dt = 0 ∀ i
Si può affermare che l'energia computazionale è una funzione di Ljapunov per il sistema.
Inoltre se la curva di guadagno dell'amplificatore è molto stretta l'ultimo termine di questa
equazione è nullo, per cui E è espressa nella stessa forma del modello discreto. Il
modello continuo di Hopfield è deterministico, analogamente al modello stocastico lo
stato della rete al tempo t determina unicamente lo stato della rete al tempo t + τ.
Hopfield studiando il comportamento dei due modelli descritti ha osservato che il
modello continuo deterministico continuo conserva le stesse proprietà del modello
discreto stocastico, ma si rivela più veloce nel risolvere difficili problemi
computazionali. Si vedranno adesso le relazioni tra gli stati stabili dei due modelli.
Siano fatte per semplicità le seguenti assunzioni:
gi (0) = 0, Vi0 = -1, Vi1 = 1, Ii = 0 ∀ indice i

L'energia per il caso considerato e:

4.15
Si ricercano adesso i massimi e i minimi del primo termine di E nel dominio dell'ipercubo
definito mediante i vertici -1≤ V≤ 1 ∀i. Nel caso discreto stocastico l'energia E è
rappresentata solo dal primo termine della 4.15, e si è detto che gli stati stabili
corrispondono ai vertici dell'ipercubo N-dimensionale rappresentante lo spazio degli stati.
Dato che E è una funzione lineare di Vi con Vj costante, allora i minimi di energia del
primo termine di E che ha variabili di stato continue nell'intervallo -1≤ V≤ 1
corrispondono a quelli del caso discreto con variabili di stato µi = ±1. Il secondo termine
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 47

di E altera tale interpretazione , consideriamo adesso la variabile Vi definita non più


da gi (Ui ) ma mediante il parametro λ ( si vedrà che nella macchina di Boltzmann il
parametro λ-1 assumerà il significato virtuale di una temperatura), si ha:
Vi = gi (λ Ui) e Ui = (1/λ)g-1(Vi)

FIGURA 4.3 - In alto è mostrata la superficie energetica nello spazio delle coordinate r ed E,
in basso si ha la stessa superficie vista dall'alto. (FONTE P.N.A.S. 81/1984
J.J.HOPFIELD; PHYSICAL D 1986/J.S DENKER)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 48

Il parametro λ cambia la forma della funzione sigmoide g(x) senza alterarne gli asintoti
(vedi figura 4.4). Il secondo termine di E diventa:

4.16
L'integrale 4.16 è nullo per Vi = 0 e positivo altrimenti, e assume un valore molto alto
per Vi tendente a ±1. Riferendosi alla figura 4.3 che rappresenta la superficie
corrispondente alla funzione energia nello spazio di coordinate Vi ed E, si ha che
per λ >> 1 i minimi di energia sono dislocati verso l'interno rispetto i vertici
dell'ipercubo, al crescere di λ i minimi di E si spostano verso l'esterno tendendo a
posizionarsi sui vertici dell'ipercubo. Nel limite λ → ∞ (la sigmoide diventa una
funzione a gradino come si vede in alto alla figura 4.4) tale termine diventa trascurabile
e la posizione dei minimi di energia nello spazio degli stati è la stessa del modello
discreto stocastico. Nel limite opposto λ << 1 si ha un solo minimo per Vi = 0.

FIGURA 4.4 - (a) La funzione di attivazione tipica di un neurone. (b) La funzione V=g(λu)
mostrata per tre valori del parametro l. ((c) Relazione inversa u=g-1 (V) della funzione V=g(λu).
(d) Il contributo di g all'energia della relazione 4.15 in funzione di V. (FONTE P.N.A.S.
81/1984/J.J. HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 49

La figura 4.3 mostra il contorno energetico per un sistema di due neuroni, i due assi Va
e Vb sono le uscite dei due amplificatori. Le frecce della figura 4.3 indicano la
direzione privilegiata dell'evoluzione degli stati. Viene mostrata anche la deformazione
del contorno energetico derivante dall'applicazione di correnti esterne. Si può
pensare al processo di computazione di una rete di Hopfield come l'evoluzione di un
punto rappresentante lo stato del sistema nella superficie energetica visualizzata,
tale evoluzione è strettamente vincolata dalla presenza di punti attrattori corrispondenti
alle valli della superficie. In definitiva il modello continuo di rete neurale non rimpiazza
il modello discreto ma ne è un'importante evoluzione. Il modello discreto ha il
vantaggio di poter essere facilmente simulato mediante software su un computer
digitale ed è spesso più pratico per sviluppare idee e simulazioni su modelli biologici
di reti neurali.

4.6 - ANNEALING E ANNEALING SIMULATO

Si è visto che le reti di Hopfield nella loro evoluzione nello spazio degli stati
convergono verso stati di energia computazionale minima. Questi stati spesso
corrispondono a minimi locali di energia, e se la rete implementa la soluzione di un
problema, il minimo trovato non è detto che corrisponda alla soluzione ottimale.
Kirkpatrick ed altri13 hanno introdotto nel 1983 una nuova procedura per avvicinarsi al
minimo globale della funzione energia. La procedura elaborata deriva da
un'applicazione della meccanica statistica alla ricerca delle soluzioni di problemi di
ottimizzazione combinatoria, in particolare essa deriva dal metodo Monte Carlo di
Metropolis, che permette un efficiente simulazione di un sistema fisico in equilibrio
termico ad una data temperatura. La rete cui si applica la nuova procedura è la macchina
di Boltzmann. Si vedranno adesso le considerazioni che hanno portato
all'elaborazione della macchina di Boltzmann. Lo scopo della meccanica statistica è di
elaborare metodi per analizzare sistemi fisici composti da un numero N molto alto di
particelle. Lo stato di questi sistemi fisici è detto microstato, e corrisponde a un punto
nello spazio delle fasi, le cui coordinate sono i 6N valori di coordinate e momenti che

13
S. Kirkpatrick ,C.D. Gelatt, M.P. Vecchi, “Optimization by simulated annealing”, Science Vol.
220, Num. 4598, 13 Maggio 1983, pag 671-680.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 50

descrivono il sistema. La densità di probabilità che il sistema sia in un dato microstato è


la funzione di distribuzione del sistema. Per gli scopi di questa trattazione è
sufficiente considerare particelle classiche identiche con tre gradi di libertà , sistemi fisici
che siano rappresentati da insiemi canonici cioè a contatto con un termostato a
temperatura T (in tali sistemi sono fissi il numero delle particelle N, il volume V e la
temperatura T). La funzione distribuzione del microstato v di energia Ev per gli insiemi
canonici è definita come:

4.17
Z è la funzione di partizione degli insiemi canonici che è legata all'energia libera di
Helmholtz dalla relazione: F = - kT ln(Z). La 4.17 esprime che la densità di probabilità
di una particolare configurazione del sistema corrispondente al microstato v è
proporzionale a exp(-Ev/kT), e corrisponde alla distribuzione di Boltzmann. Con le
premesse fatte si esaminerà adesso il metodo Monte Carlo di Metropolis, che permette
di generare possibili configurazioni di un sistema fisico canonico di N particelle.
Le regole sono:
1. seleziona a caso una particella;
2. seleziona uno spostamento casuale ∆q delle coordinate della particella;
3. calcola il corrispondente cambio di energia ∆E;
4. se ∆E ≤ 0 la nuova configurazione viene accettata;
5. se ∆E > 0 seleziona un numero reale a caso h tra 0 e 1;
6. se exp(∆E/kT) < h conserva la configurazione attuale;
7. se exp(∆E/kT) ≤ h accetta la nuova configurazione;

Le regole elencate vengono ripetute iterativamente molte volte, consentendo di campionare


lo spazio delle fasi di un sistema a contatto con un termostato a temperatura T con una
probabilità proporzionale alla densità degli stati. Come si vede nell'algoritmo di Metropolis
il caso ∆E > 0 viene trattato probabilisticamente: la probabilità che la nuova
∆E) = exp(∆
configurazione venga accettata è P(∆ ∆E/kT). Tale scelta permette al sistema
di evolvere seguendo la distribuzione di Boltzmann. La macchina di Boltzmann è
essenzialmente una rete discreta di Hopfield con una funzione di attivazione
probabilistica, nella cui modalità operativa è implementata una forma dell'algoritmo di
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 51

Metropolis detta annealing simulato utilizzata per raggiungere l'equilibrio. Il termine


14
annealing simulato deriva dall'analogia con il processo di annealing utilizzato per
portare un sistema fisico nello stato più basso del potenziale termodinamico
corrispondente alle condizioni esterne imposte. In un sistema generico la condizione di
equilibrio termodinamico è raggiunta massimizzando l'entropia e minimizzando l'energia
interna. Per un solido l'energia interna minima corrisponde a quella di un cristallo
perfetto, ma un solido reale è caratterizzato da difetti nella struttura cristallina
(vacanze di atomi o dislocazioni dei piani reticolari). A temperatura T si hanno degli
effetti contrastanti, la formazione di difetti reticolari aumenta l'entropia del solido,
mentre l'eliminazione dei difetti diminuisce l'energia interna: la condizione di
equilibrio di un cristallo è lo stato di energia libera di Helmholtz F=U-TS minima. In
un cristallo si può definire la concentrazione di difetti all'equilibrio ad una data
temperatura Ndequ(T), la quale cresce con la temperatura. Se esiste una concentrazione
di difetti in un cristallo, esisterà anche una diffusione di difetti, caratterizzata dalla
costante di diffusione D(T). All'equilibrio i difetti saranno uniformemente distribuiti.
Un atomo interstiziale o una vacanza può diffondere, se riesce a superare una barriera
di energia potenziale dovuta al reticolo. Se la temperatura è alta la costante di diffusione
D(T) sarà anch'essa alta, e il cristallo raggiungerà velocemente la concentrazione Ndequ(T).
Per temperature basse la mobilita dei difetti è ridotta, dato che può risultare molto
improbabile il superamento della barriera di potenziale del reticolo Ep . In questo caso
la concentrazione dei difetti reale Nd potrà essere maggiore di Ndequ(T). Per poter
eliminare i difetti reticolari di un cristallo si ricorre alle tecniche di annealing: il
solido viene portato quasi fino al punto di fusione, quindi viene ridotta lentamente la
temperatura attraverso trasformazioni quasi reversibili. La rapidità con cui viene ridotta
la temperatura deve consentire al sistema di mantenersi in equilibrio termodinamico, in
modo che si abbia sempre Nd= Ndequ(T). Abbassando la temperatura T si abbassa anche
Ndequ(T) e quindi anche l'energia libera F. Kirkpatrick ed altri hanno notato che trovare lo
stato a di minima energia di un sistema è essenzialmente un problema di ottimizzazione
simile a quelli di ottimizzazione combinatoria. I metodi che la meccanica statistica adotta
per sistemi a molte particelle possono essere utili anche in problemi di ottimizzazione
combinatoria, i quali sono caratterizzati da un altissimo numero di soluzioni
corrispondenti al minimo globale di una funzione energia computazionale.

14
C. Kittel , “Introduzione alla Fisica dello Stato Solido”, Boringhieri 1971, Terza edizione.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 52

4.7 - MACCHINA DI BOLTZMANN

L'idea base della macchina di Boltzmann è di introdurre nei processi di cambiamento


stato dei neuroni una componente di casualità che generalizzi il concetto di temperatura.
Questa considerazione porta a incorporare nel processo decisionale del neurone dei
contributi di rumore che permettono il cambiamento di stato del neurone con una
funzione di attivazione probabilistica, che classifica la macchina di Boltzmann
nell'insieme di reti neurali non deterministiche. Allo scopo di definire la funzione di
attivazione si consideri la rete di Hopfield. In tale modello la variazione di energia
dovuta al cambiamento di stato di un neurone e con correnti Ii nulle:

Se ∆Ei è il gap di energia tra lo stato 1 e lo stato 0 del neurone i della rete, la probabilità
che il neurone i si setti allo stato 1 è data dalla regola di decisione seguente:

4.18
tale probabilità è indipendente dallo stato precedente del neurone. T è un parametro
che si comporta come la temperatura. La funzione probabilità pi è mostrata nella
figura 4.5.

FIGURA 4.5 - Funzione di attivazione probabilistica della macchina di Boltzman


Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 53

Utilizzando le generalizzazioni espresse per le reti neurali, si può esprimere lo stato Vi


del neurone i mediante la funzione di attivazione probabilistica seguente:

4.19

4.20
La 4.20 è la funzione di attivazione della macchina di Boltzmann, essa è una
sigmoide ed esprime la probabilità di attivazione del neurone i (vedi figura 4.4). La
regola di probabilità espressa dalla funzione 4.18 è uguale alla distribuzione di
probabilità di un sistema fisico a due stati di energia A e B. Un sistema di particelle a
contatto con un termostato a una data temperatura raggiungerà l'equilibrio termico, e la
probabilità di trovare il sistema in un dato stato globale segue la distribuzione di
Boltzmann. In modo concorde una rete di neuroni che segue la regola di decisione 4.20,
raggiungerà uno stato di equilibrio termico a temperatura T nel quale la probabilità
relativa dei due stati della rete segue la distribuzione di Boltzmann:
pa/pb = exp(-Ea - Eb)/T) 4.21
in tale relazione pa e pb sono rispettivamente le probabilità che il sistema si trovi nello
stato A o B di energia Ea e Eb . Si noti che l'equilibrio termico corrisponde a una
distribuzione di probabilità sugli stati stabile. Per un valore di T=0, il sistema si
comporta come una semplice rete di Hopfield discreta, la 4.20 diventa una funzione a
gradino come nella rete discreta di Hopfield. Per valori elevati di T, pi è pari circa a 0.5
ed il sistema presenta stati di attivazione casuali. Gli stati metastabili della macchina
di Bolzmann sono legati al parametro T della 4.20, infatti il loro numero cresce con la
temperatura T. Per quanto detto è possibile pensare ad una analogia tra gli stati
metastabili della macchina di Boltzmann e la configurazione dei difetti reticolari.
L'annealing simulato implementato nella macchina di Boltzmann non è un vero
algoritmo di apprendimento, piuttosto è una procedura utilizzata nella fase di
funzionamento della rete successiva all'apprendimento. La macchina di Boltzmann viene
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 54

fatta funzionare presentando in ingresso un vettore e seguendo l'evoluzione spontanea


della rete fino alla produzione di un vettore finale di uscita. All'inizio della fase di
funzionamento, analogamente al processo di annealing, la temperatura T ha un valore
elevato. La funzione di attivazione in questo caso è pari a 0.5, per cui se il sistema si
trova in un minimo locale di energia (stato metastabile) , il valore elevato di T provoca
un evoluzione casuale dello stato della rete favorendo l'allontanamento da tale
minimo. Infatti lo stato della macchina di Boltzmann può fluttuare anche per un vettore
in ingresso costante corrispondente a uno stato metastabile. Questo comportamento è
analogo a quello degli atomi di un solido che per temperature elevate riescono a
superare la barriera di potenziale , in modo da rendere uniforme la concentrazione di
difetti Ndequ(T) . Ogni volta che la rete produce un uscita, quest'ultima viene
retroazionata all'ingresso della rete, in questa fase viene ridotto il parametro
temperatura della funzione di attivazione. In tal modo si riducono sia gli stati metastabili
accessibili , sia le possibilità della macchina di uscire da uno stato metastabile
raggiunto. In definitiva quando la temperatura T tende a 0, lo stato raggiunto dalla rete si
avvicinerà di molto a un minimo globale dell'energia computazionale.

4.8 - REGOLA DI APPRENDIMENTO PER LA MACCHINA DI BOLTZMANN

Hinton ed altri hanno recentemente definito per la macchina di Boltzmann un algoritmo


di apprendimento15 di tipo guidato, che consente alla rete di imparare come associare
ad un determinato vettore in ingresso il corrispondente vettore di uscita. Si consideri la
macchina di Boltzmann costituita da livelli di unità visibili e nascoste. L'apprendimento
avviene in due fasi distinte, una positiva ed una negativa, seguite da un processo di
modificazione dei pesi delle connessioni:
1. Fase positiva di training. Questa è la fase di addestramento della rete.
Vengono presentate alle unità visibili della rete, una alla volta, delle coppie di vettori
ingresso-uscita. Ogni volta la rete viene gradualmente portata all'equilibrio
termico, partendo da un alto valore di T fino a T = 1. All'equilibrio il sistema viene
mantenuto per alcuni cicli. Alla fine di questa fase viene calcolata per ogni

15
S.E. Fahlman G.E. Hinton. “Connectionist Architectures for Artificial Intelligence”. IEEE
Computer, Gennaio 1987, pag. 100-109.
Reti Neurali: modelli e aspetti applicativi: Cap 4 Reti di Hopfield e Macchina di Boltzmann 55

connessione la probabilità pij+ che le unità i e j siano entrambe attive durante


l'equilibrio termico.
2. Fase negativa di test. La fase di verifica dell'addestramento è analoga, ma in
questo caso vengono presentati solo i vettori di ingresso e vengono calcolate
all'equilibrio le probabilità pij- . Se la rete alla fine delle due fasi presenta le
stesse distribuzioni di probabilità pij+ e pij- non viene effettuata nessuna modifica ai
pesi di connessione. Se invece le probabilità pij+ e pij- sono diverse allora si deve
modificare il peso della connessione. Precisamente indicando con G una misura
teorica fra il comportamento effettivo della rete e quello desiderato, Ackley e
Hinton hanno dimostrato che :
δG/δT = -(1/T) (pij+ - pij-) 4.22

Da quanto detto è chiaro che per ottenere il comportamento desiderato dal sistema è
necessario introdurre una regola di apprendimento in modo che i pesi di tutte le
connessioni per le quali risulta pij+ ≠ pij- , si modifichino spontaneamente in modo da
annullare la derivata di G rispetto il peso. Il principale limite della macchina di
Boltzmann è la bassa velocità di convergenza al minimo globale dell'energia.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 56

5. - ALTRI MODELLI: PERCEPTRONI E RETI DI KOHONEN

5.1 - INTRODUZIONE

In questo capitolo si approfondiranno gli sviluppi di uno dei primi modelli di rete di
neuroni ad apprendimento spontaneo, il perceptrone di Rosemblatt. Il perceptrone nasce
come un modello semplificato del sistema nervoso, di cui avrebbe dovuto duplicare le
funzioni cognitive. Rosemblatt proponeva il modello non come un dispositivo logico
equivalente alla macchina di Turing, bensì come un sistema capace di effettuare
associazioni fra stimoli simili. Le sue differenze rispetto un sistema logico erano notevoli,
infatti le sue risposte a stimoli nuovi non erano a priori prevedibili, essendo
determinate dai concetti appresi precedentemente, inoltre esso riusciva a funzionare
anche in presenza di rumore sul segnale di ingresso. Saranno esposti più avanti i principi
di funzionamento del perceptrone semplice che deriva direttamente dal modello di
Rosemblatt e dell'evoluzione successiva costituita dal perceptrone multistrato.
Nell'ultimo paragrafo viene presentata la regola di apprendimento back-
propagation, inizialmente applicata a perceptroni multistrato ed estesa recentemente a
moltissimi modelli di reti neurali.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 57

5.2 - PERCEPTRONE A SINGOLO STRATO

L'originale modello di perceptrone proposto da Rosemblatt16 è una primitiva rete neurale


composta da unità di calcolo dette neuroni lineari a soglia (vedi figura 5.1 in alto).
I neuroni sono disposti generalmente a tre livelli e la topologia della rete e di tipo
feedforward. Il primo livello è la griglia retinica o retina (unità Si ) alla quale vengono
presentati gli ingressi, il secondo livello (unità Ai ) svolge funzioni di classificazione o
riconoscimento, il terzo livello (unità-R) presenta l'uscita discreta 0 o 1 prodotta dalla
macchina. L'apprendimento del perceptrone si manifesta con la modifica dei pesi P delle
connessioni tra il secondo e il terzo livello di neuroni, per tale caratteristica il modello è
detto anche singolo-strato (single-layer). Le connessioni tra il livello d'ingresso e quello
centrale rimangono sempre fisse e servono solo per dare una codifica ai dati di
ingresso. Da quest'ultima osservazione risulta che è possibile eliminare il livello di
neuroni di ingresso senza nessuna perdita di generalità. In tal modo si può definire un
modello generalizzato di perceptrone a singolo strato di connessioni e a due livelli di
neuroni come si nota in basso alla figura 5.1. Il primo livello di neuroni riceve
direttamente gli ingressi ed e connesso con sinapsi variabili al secondo livello (costituito
per semplicità da un solo neurone) che produce l'output. La funzione di attivazione è:

5.1
Si è la soglia di attività del neurone i, stp[x] è una funzione non lineare limitata a
gradino (hard-limiter). La funzione principale attuata da un perceptrone è quella di
classificatore di forme. Si consideri la semplice unità di figura 5.1, questo neurone
computa la somma pesata degli input sottrae la soglia Si e tramite la funzione di
attivazione produce un output +1 o 0. Il tipo di uscita permette di decidere, per
convenzione, quale delle due classi A o B appartiene l'ingresso. Una utile tecnica per
analizzare il comportamento di un perceptrone e di tracciare un grafico come quello di
figura 5.1, nel quale sono mappate in uno spazio le cui coordinate sono gli ingressi del
neurone i, le regioni di appartenenza degli input alle varie classi, separate da un

16
Frank Rosemblatt, “The perceptron, a probabilistic model for information storage and
organization in the brain”, Psychological review, 65 pag 386-408.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 58

iperpiano detto regione di decisione. La posizione dell'iperpiano, che nel caso di due
variabili di ingresso della figura è una retta, dipende dai pesi di connessione Tij . I
pesi delle connessioni e le soglie di un perceptrone possono essere scelte e modificate
mediante diversi algoritmi. L'originale regola di apprendimento di un perceptrone fu
sviluppata da Rosemblatt. Questa regola permette di attuare un tipo di apprendimento
con supervisione in base al quale viene presentato al perceptrone una forma da
classificare, la risposta della rete viene confrontata con quella nota a priori, l'eventuale
differenza trovata viene utilizzata per modificare i pesi di connessione dei neuroni che
forniscono una risposta scorretta. La regola delta è:

5.2
Vi* è l'uscita desiderata, η è un numero positivo minore di 1, Ui e Vi sono
rispettivamente l'ingresso e l'uscita del perceptrone. La scelta di η controlla la
stabilità e la velocità di convergenza dell'apprendimento al giusto risultato.
L'apprendimento avviene in modo iterativo secondo la procedura seguente:
1. Inizializzazione pesi e soglie. In questa fase vengono inizializzati a caso, a valori
diversi da zero, i pesi e la soglia del neurone di uscita.
2. Fase di apprendimento. In questa fase viene presentato un nuovo ingresso al
perceptrone ed è calcolata l'uscita, in base alla quale viene applicata
iterativamente la regola delta esposta. Nei casi semplici l'algoritmo converge, per
cui dopo un certo numero di passi le modificazioni da apportare ai pesi sono
nulle, e la risposta fornita dalla rete è quella giusta.

Una versione leggermente modificata della regola di Rosemblatt è stata proposta da B.


17
Widrow e M. Hoff ed è chiamata regola LMS. La regola LMS (Least Mean-Square)
viene applicata al modello di perceptrone di Widrow noto come Adaline uguale nella
struttura al perceptrone mostrato in figura 5.1. L'Adaline differisce dal perceptrone di
Rosemblatt per la funzione di attivazione che è lineare senza alcuna soglia di attivazione:

17
B. Widrow e M. Hoff, “Adaptive switching circuits”, Institute of Radio Engineers, 1960
WESCON Convention, Record Part IV, pag 96-104.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 59

L'algoritmo LMS consiste in una procedura per trovare i pesi Tij che minimizzano
l'errore εi ed è data da un espressione equivalente alla regola delta, si ha infatti:

con εi=(Vi-Vi*)

FIGURA 5.1a - Sono mostrati due schemi dell'originale perceptrone di Rosemblatt.. (FONTE
IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN)
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 60

FIGURA 5.1b - Perceptrone a singolo strato, che classifica un vettore in ingresso in due classi
denominate A e B. Tale rete divide lo spazio degli ingressi in due regioni separate dalla linea
tratteggiata. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN)

5.3 - LIMITI DEL PERCEPTRONE A SINGOLO STRATO

Rosemblatt ha provato che se gli ingressi delle due classi presentati al perceptrone sono
separabili (cioè esiste un iperpiano che le divide nello spazio degli input in due
regioni), allora la procedura su esposta converge sempre. Uno dei problemi della
procedura di convergenza del perceptrone è che essa può oscillare continuamente
quando gli input non sono separabili. Ad esempio un perceptrone non può calcolare un
OR esclusivo, poiché vi è una sovrapposizione di classi. Questo limite originò l'aspra
critica di Minsky e Papert ai modelli basati sul perceptrone. Consideriamo il problema
dello XOR18 la tabella della verità della funzione logica è la seguente:
Tabella della verità della Funzione Logica XOR. (5.4)
INPUT OUTPUT
0 0 0
0 1 1
1 0 1
1 1 0

18
D. E. Rumelhart, J. L. McClelland, “Exploration in Parallel Distributed Processing”, The
MIT Press, Cambridge 1989.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 61

Applicando la funzione di attivazione 5.1 al problema dello XOR si ha:

E' evidente il paradosso sui pesi T1 e T2 , i quali devono essere ambedue maggiori della
soglia S mentre la somma T1 + T2 è minore di S. Il problema dello XOR è
rappresentato in figura 5.2 nello spazio degli stati degli ingressi. La figura 5.2 mostra
che è impossibile tracciare una retta corrispondente alla regione di decisione per il
problema XOR, mentre si nota la risolvibilità delle operazioni logiche AND e OR.
La retta di separazione corrisponde per 2 input all'equazione: S = V1T1 + V2T2.
Con 3 input si ha il piano S = V1T1 + V2T2 + V3 T3. In generale la regione di
decisione corrisponde a un iperpiano:

Tutte le funzioni per le quali esiste una regione di decisione sono dette linearmente
separabili. Consideriamo adesso la funzione logica seguente:
Tabella della verità della Funzione Logica XOR.
INPUT OUTPUT
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

Questo problema tridimensionale corrisponde al problema XOR per i primi due input, il
terzo input è l'uscita AND dei primi due. La figura 5.3, rappresentante il problema,
mostra che l'aggiunta della terza dimensione permette di risolvere la funzione XOR.
La terza dimensione corrisponde ad aggiungere un livello nascosto di unità, che
definisce il semplice perceptrone multistrato di figura 5.3.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 62

FIGURA 5.2 - (A) Semplice Perceptrone a singolo strato e 2 input (B) Rappresentazione grafica
delle funzioni logiche AND, OR e XOR, e della loro solubilità tramite il perceptrone.
(FONTE Exploration in P.D.P 1989/D. E. RUMELHART)

FIGURA 5.3 - Perceptrone con uno strato di neuroni nascosto e 3 nodi in grado di risolvere la
funzione XOR, la cui rappresentazione grafica e mostrata a destra. (FONTE Exploration in
P.D.P 1989/D. E. RUMELHART)
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 63

5.4 - PERCEPTRONI MULTISTRATO

I limiti del perceptrone di Rosemblatt sono stati superati con l'introduzione di nuove
regole di apprendimento e nuove topologie di rete. I perceptroni multistrato sono reti
con uno o più livelli di neuroni nascosti tra i neuroni di ingresso e uscita.
Un perceptrone a tre livelli è mostrato in figura 5.4a. La mancanza di adeguate regole di
apprendimento non ha permesso in passato la diffusione dei perceptroni multistrato.
Solo recentemente sono state introdotte nuove regole di apprendimento che, sebbene non
ne sia stata provata la convergenza, si sono dimostrate utili nella maggior parte dei
problemi cui sono state applicate. Si considerano adesso perceptroni multistrato feed-
forward con funzione di attivazione hard-limiter e con un solo nodo di uscita, ai quali
viene applicata la regola delta di apprendimento . Si è già visto che la regione di decisione
di un perceptrone a singolo strato è un iperpiano di dimensioni uguale a N-1 dove N e il
numero di neuroni di ingresso. Un perceptrone a due strati ha una regione di decisione
convessa illimitata di forma arbitraria. La regione di decisione convessa è formata dalle
intersezioni degli iperpiani di decisione dei perceptroni semplici del primo livello. Tali
regioni convesse sono formate al massimo di un numero di lati uguale ai neuroni di uscita
dei perceptroni semplici del primo strato, detti per semplicità nodi . Questa analisi porta
a adeguare il numero di nodi di un perceptrone multistrato alla complessità del un
problema da risolvere. Ad esempio due livelli sono sufficienti a risolvere il problema
dello XOR come è mostrato nella figura 5.3. Rumelhart ed altri hanno provato che in un
perceptrone feed-forward sono sufficienti tre strati di neuroni per generare una regione di
decisione arbitrariamente complessa per complicati problemi di classificazione. Inoltre il
numero di nodi del secondo strato deve essere maggiore di uno quando le regioni di
decisione sono disconnesse nel caso peggiore deve essere uguale al numero di
disconnessioni (vedi figura 5.5).
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 64

FIGURA 5.4 - Perceptroni a tre strato di connessioni e N input e M output. (FONTE IEEE
ASSP MAGAZINE 4/1987/R. P. Lippmann)
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 65

FIGURA 5.5 - Tipi di regioni di decisione che possono essere formate da perceptroni a uno, due
e tre strati. I nodi utilizzano una funzione di attivazione hard-limiter non lineare. (FONTE
IEEE ASSP MAGAZINE 4/1987/R. P.Lippmann)

5.5 - REGOLA DI APPRENDIMENTO BACK-PROPAGATION

Si descriverà adesso un nuovo algoritmo di apprendimento noto come back-propagation,


proposto da Rumelhart ed altri nel 198619 . Tale algoritmo si applica ad una rete di
neuroni corrispondente ad un perceptrone multistrato con nodi di uscita multipli e con
funzione di attivazione sigmoidale che esprime l'uscita del neurone i al tempo t+1 come:

5.5

è l'input totale del neurone al tempo t+1

19
D. E: Rumelhart, G. Hinton e R.J. Williams, “Learning representations by back-propagating
errors”, Nature Vol. 323, 9 ottobre 1986.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 66

Per convenzione si sono chiamati ui e vi rispettivamente le entrate e le uscite di un


nodo interno della rete mentre Ui e Vi denotano l'entrata e l'uscita dei livelli visibili della
rete. La rete è dotata inoltre oltre gli ingressi normali di un ulteriore ingresso detto offset,
settato quasi sempre a 1, il cui peso di connessione è detto bias. Il comportamento di
queste reti rispetto ai perceptroni visti prima è più complicato. Le regioni di decisione
sono tipicamente delle curve e non più degli iperpiani. L'algoritmo back-
propagation è una generalizzazione della regola delta e consiste in una tecnica per trovare
un insieme di pesi Tij che minimizza una funzione costo che corrisponde all'errore tra
l'uscita prodotta e quella desiderata. L'errore totale della rete è definito come:

5.6
Vi è l'uscita dell'ultimo livello della rete, Vi* è l'uscita desiderata. Per minimizzare ε e
necessario calcolare la derivata di e rispetto i pesi T si ha:

5.7
La 5.7 si applica partendo dai nodi di output e andando indietro fino al primo strato
nascosto. Tij(t) è il peso della connessione tra un nodo nascosto i al nodo j, oppure il
peso tra l'ingresso i e il nodo j. Si noti che si ha:

La regola back-propagation diventa:

5.8
Nella 5.8 v è l'uscita del nodo i oppure un ingresso, mentre la derivata δe/δδu è un
termine che esprime l'errore per il nodo j. Se il nodo è di uscita si ha vi = Vi .

5.9
Nel caso di nodi interni nascosti si ha:
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 67

dove k è un indice su tutti i nodi del livello successivo al nodo j. δk e la derivata


δe/δu per il nodo k. L'apprendimento mediante l'algoritmo back-propagation è
composto dalle seguenti fasi:

1. Inizializzazione dei pesi e degli offset;


2. Presentazione coppie ingresso-uscita. In tale fase viene presentato un vettore con N
componenti Vi e viene specificato il vettore di uscita desiderato di componenti Vi* ;
3. Calcolo uscite. Mediante la funzione sigmoide 5.5 vengono calcolate gli output
intermedi vi e finali Vi ;
4. Adattamento connessioni. Utilizzando l'algoritmo di back-propagation esposto si
adattano i pesi di ciascun strato cominciando dall'ultimo fino al primo corrispondente
alle connessioni di ingresso. La procedura viene ripetuta con la presentazione di una
nuova coppia di ingressi-uscite;

L'algoritmo back-propagation è stato applicato con successo a problemi come l'OR


esclusivo, riconoscimenti di forme, sintesi del linguaggio, rappresentazione della
conoscenza. Una dimostrazione della potenza di questo algoritmo è l'applicazione
di sintesi del linguaggio fatta da Sejnowsky. Una difficoltà notata nell'applicazione
della regola back-propagation è l'alto numero (> 100) di coppie ingresso-uscita
richiesto per far convergere l'algoritmo. Recentemente alcuni autori20 hanno
applicato la regola back-propagation in perceptroni con feedback, caratterizzati
dall'esistenza di ingressi in un livello provenienti da livelli successivi di neuroni. Esiste
uno stretto legame tra i perceptroni con feedback e le reti di Hopfield, infatti
imponendo la simmetria e forzando a 0 le autoconnessioni tra le unità si ottiene una rete
formalmente equivalente al modello continuo di Hopfield.

20
Luis B. Almeida, "Backpropagation in perceptron with feedback", NATO ASI Series 1, Vol.
F41 Neural Computers Springer-Verlag Berlino 1988.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 68

5.6 - RETI AUTO-ORGANIZZANTI DI KOHONEN

Si accenna brevemente al modello di rete di neuroni di Teuvo Kohonen.


La rete è formata da neuroni formali simili a quelli a risposta continua di Hopfield, la cui
topologia del tipo a connettività laterale, ricalca alcune strutture nervose biologiche.
La rete apprende con un algoritmo sprovvisto di supervisione che provvede alla
modifica dei pesi delle connessioni dei neuroni che meglio campionano i vettori in
ingresso . La funzione di attivazione è una sigmoide espressa da:

5.11
Una rete di Kohonen è formata da una matrice bidimensionale di M neuroni che
costituiscono anche le M uscite della rete (vedi in figura 5.6), le connessioni laterali tra i
neuroni sono nulle. Ognuno degli N input Ui è connesso a ogni neurone della matrice
mediante una connessione variabile. La rete viene addestrata come segue:
1. Inizializzazione pesi. In questa fase vengono settati i pesi delle connessioni degli N
ingressi agli M neuroni di uscita, viene settato inoltre il raggio iniziale dell'intorno
del neurone di risonanza.
2. Presentazione ingresso. Il vettore di ingresso composto dalle componenti continue V
è presentato alla rete.
3. Calcolo distanza di tutti i nodi. Viene calcolata la distanza tra l'ingresso e il
neurone di uscita mediante la relazione:

4. Selezione neurone j con MIN (dj ).


5. Aggiornamento pesi. Vengono aggiornati i pesi delle connessioni tra il neurone
j* e le entrate appartenenti all'intorno del neurone definito dall'insieme NEj*(t)
secondo regola di apprendimento nota come legge di adattamento:

5.12
Il procedimento viene ripetuto presentando un nuovo ingresso.
Reti Neurali: modelli e aspetti applicativi: Cap 5 Altri modelli: Perceptroni e Reti di Kohonen 69

FIGURA 5.6 - Matrice bidimensionale di nodi di uscita rappresentante una rete di Kohonen.
Ogni ingresso è connesso a tutti i nodi di uscita tramite una connessione variabile. In basso è
mostrato un intorno del nodo j a tempi variabili t. In basso si vede l’evoluzione temporale di
una rete autoorganizzante di Kohonen. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. Lippmann)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 70

6. - APPLICAZIONI DELLE RETI NEURALI

6.1 - INTRODUZIONE

I modelli di reti esaminati nei capitoli precedenti si prestano a diverse applicazioni.


La combinazione di potenza e di velocità computazionale del modello continuo di
Hopfield, può essere applicata alla risoluzione di problemi riconducibili alla
minimizzazione di una funzione con caratteristiche analoghe all'energia
computazionale. In generale le reti di Hopfield e la macchina di Boltzmann possono
essere applicate a molti problemi di ottimizzazione combinatoria, i quali costituiscono
una classe di problemi ad altissimo numero di soluzioni la cui risoluzione consiste nel
trovare nel modo più rapido una o più soluzioni esatte o approssimate. Un esempio di
questi problemi è quello del commesso viaggiatore (TSP Traveling Salesman
Problem), nel quale si deve minimizzare il percorso di quest'ultimo attraverso N
città. Il TSP appartiene all’estesa classe dei problemi NP-completi (problemi
nondeterministici polinomiali completi). Per la risoluzione di tali problemi sono stati
utilizzati i cosiddetti metodi euristici, che riducono notevolmente il numero di
soluzioni, tuttavia non è noto attualmente un metodo generale di risoluzione valido
per tutti i gradi di complessità del problema (nel caso del TSP la complessità è
proporzionale al numero N delle città). Il tempo di computazione richiesto dai
metodi euristici cresce in maniera inaccettabile al crescere della complessità del
problema, quindi l'utilizzo di reti neurali, che forniscono una soluzione accettabile in
un tempo paragonabile alle costanti di tempo del circuito elettrico che le costituisce, è
un interessante campo di ricerca.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 71

6.2 - RAPPRESENTAZIONE DEI DATI

Si è già accennato al fatto che la potenza computazionale di una rete neurale è


determinata anche dalla scelta dello schema rappresentativo dei dati. In molti
problemi di interesse pratico le soluzioni sono descritte da un set di numeri, per cui la
possibilità di utilizzare per la loro risoluzione le reti neurali è subordinata alla
possibilità di codificare tali numeri con le variabili di stato V dei neuroni della rete.
Per realizzare rappresentazioni numeriche simili a quelle utilizzate nei calcolatori
digitali, il valore delle variabili Vi ,alla fine del processo di minimizzazione della
funzione energia, deve essere binario 0 o 1. Si considerano adesso dei metodi21 per
rappresentare la classe Z dei numeri interi positivi nello spazio degli stati della rete
neurale:

• Rappresentazione binaria. Nei computer convenzionali la forma di


rappresentazione dei numeri interi positivi si basa sul codice binario. Il numero di bit
utilizzati per un numero N è lg2 (N + 1). Se nel modello di rete neurale ad ogni unità
corrisponde un bit, si ha una corrispondenza biunivoca tra il numero N ∈ Z+ e i lg2 (N
+ 1) neuroni rappresentanti il numero N nella rete neurale. La limitazione della
rappresentazione binaria è l'alta sensibilità agli errori.
• Rappresentazione della somma semplice. In questo schema un valore numerico è
rappresentato dalla somma delle unità attive. Per rappresentare il numero N
occorrono almeno N unità. In questo metodo si ha una minore sensibilità agli errori
rispetto al sistema binario, inoltre un numero dato N possiede più rappresentazioni. La
ridondanza di un sistema di rappresentazione di dati è un vantaggio in termini di
convergenza, infatti grazie all'alto numero di configurazioni associate a uno stesso
valore numerico, la rete offre più possibilità di giungere rapidamente alla corretta
soluzione.
• Rappresentazione gruppi-pesi. Lo schema gruppi-pesi mantiene le proprietà di
ridondanza e di affidabilità della rappresentazione somma-semplice, tuttavia introduce

21
Mitsuo Takeda e Joseph W. Goodman, "Neural networks for computation: number
representations and programming complexity", Applied Optics, Vol. 25, Num. 18, 15 Settembre
1986, pag. 3033-3046.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 72

un numero minore di elementi di elaborazione. In questa rappresentazione si


divide il numero totale q di bit in K gruppi, ciascuno dei quali contiene M bit (q
= KM), l'espressione formale per il numero generico N sarà:

6.1

Ad esempio, con q=6, K=2, M=3, le configurazioni associate al numero 5 sono 100 100,
010 001, 001 010, 100 001, e cosi via, infatti applicando la formula 6.1 si ha:

Per esprimere il numero N si devono impiegare M lgM+1 (N+1) elementi. Si noti che gli
schemi descritti precedentemente si possono ottenere come casi particolari dello
schema gruppi-pesi. Ponendo M = 1 e K = q si ha lo schema binario, mentre con M = q
e K = 1 si ottiene lo schema somma semplice. Altre rappresentazioni sono utilizzate
per numeri interi positivi e negativi, numeri complessi e numeri reali. Per numeri interi
positivi e negativi si può adottare la seguente espressione:

6.2

dove l'operazione fornisce il più grande valore intero minore di X e il termine 0,5
[(M+1k-1)] è pari alla metà del massimo valore esprimibile mediante la 6.2. Numeri
complessi con parte immaginaria e reale intere vengono espressi nella forma C = A + jB
dove A e B sono nella forma 6.2. Numeri reali e complessi possono essere espressi
introducendo nuove unità le cui variabili di stato hanno indici negativi. Si ha la forma:

6.3
Si possono esprimere in tal modo i valori compresi fra 0 e [(M + 1)k-1 - (M + 1) -(k’-1)],
-(k’-1)
con un incremento minimo pari a (M + 1) . I sistemi di rappresentazione visti si
basano tutti su una corrispondenza lineare fra lo spazio numerico e lo spazio degli
stati della rete. Altri sistemi basati su corrispondenze non lineari, come il sistema a
virgola mobile, non possono essere utilizzati in quanto non conducono ad una funzione
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 73

energia in forma quadratica rispetto le variabili di stato, come è richiesto per le reti di
Hopfield.

6.3 - APPLICAZIONE DEL MODELLO CONTINUO DI HOPFIELD

6.3.1 - CONVERTITORE ANALOGICO/DIGITALE

Il modello continuo di rete neurale di Hopfield si presta ad essere utilizzato come


convertitore A/D (analogico/digitale).22 Per semplicità di trattazione si considera un
convertitore a 4 bit, il cui schema circuitale è mostrato in figura 6.1.
Il circuito è costituito da quattro amplificatori (sono richieste solo le uscite invertite)
corrispondenti alle unità di calcolo, da una rete di resistenze che connettono le uscite
con gli ingressi delle resistenze (feedback), infine un altro insieme di resistenze che
collega le unità della rete con l'ingresso x al quale viene applicata la grandezza
analogica da convertire. Si assuma che le tensioni di uscita Vi degli amplificatori possano
variare da 0 a 1 Volt, inoltre l'ingresso x espresso in Volt corrisponda al valore numerico
da convertire. La rete opera correttamente quando il valore x è pari alla parola binaria
V3 V2 V1 V0 , cioè si ha:

6.4
La conversione analogica/digitale di x può essere ricondotta alla minimizzazione della
forma quadratica:

6.5
Per garantire che i valori delle tensioni di uscita Vi degli amplificatori, alla fine del
processo di minimizzazione siano sufficientemente vicini a 0 o 1, in modo da poter
essere identificati come livelli logici digitali, bisogna aggiungere ad E il termine seguente:

6.6
Tale termine è minimo per V = 1 o V = 0. L'introduzione del termine 6.6 è necessaria

22
J.J. Hopfield,"Computing with Neural Circuit: A Model",Science,Num.233,1986, pag.625-633.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 74

anche per permettere l'eliminazione dei termini diagonali della matrice delle
connessioni caratteristica delle reti di Hopfield . La funzione energia ottenuta dalla
somma dei due termini visti diventa:

6.7
Confrontando tale funzione con l'energia computazionale della rete continua di Hopfield
si ottengono per i pesi delle connessioni le seguenti espressioni:

6.8
Nel circuito descritto in figura 6.1 la prima condizione 6.8 si traduce con le connessioni
dell'uscita invertita di ogni amplificatore all'ingresso degli altri mediante resistenze di
conduttanza 2(i+j) . La seconda condizione 6.8 consiste nel fornire le correnti di
ingresso attraverso resistori di conduttanza pari a 2i collegati alla tensione di ingresso x,
più altri resistori di conduttanza 2(2i-1) collegati a un potenziale di riferimento di -1 Volt
(vedi matrice delle connessioni in figura 6.1).
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 75

FIGURA 6.1 - In alto


si ha un grafico
rappresentante la
parola digitale V3 V2
V1 V0 computata
dal convertitore
A/D in funzione
dell'ingresso
analogico x. In basso
si ha lo schema
circuitale della rete
neurale di Hopfield
corrispondente al
convertitore A/D.
(FONTE IEEE
TRANSACTIONS
CAS/TANK E
HOPFIELD/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 76

6.3.2 - SCOMPOSIZIONE DI SEGNALI ANALOGICI

Uno dei problemi ricorrenti nei processi di elaborazione dei segnali analogici è quello di
riconoscere un segnale avente forma e ampiezza note in presenza di altri segnali.
In particolare si consideri il problema della scomposizione di un segnale analogico x(t)
23
dipendente dal tempo ottenuto dalla combinazione lineare di impulsi di forma
gaussiana nota (vedi figura 6.2). Siano x (i = 1,...,N) i campioni del segnale x(t) presi
ai tempi t1 ,t2 ,...,tN , e si assuma N ≅ 100. L'impulso singolo è descritto dalla
seguente funzione gaussiana:

6.9
in tale funzione il parametro ρ può assumere un numero finito di possibili valori, mentre
l'istante di tempo t, in corrispondenza del quale si ha il valore massimo normalizzato
dell'impulso, coincide con uno degli istanti N fissati. Gli impulsi che costituiscono
l'insieme delle funzioni base dello spazio di x(t), sono descritti dagli indici ρ e t e
ognuna di esse avrà un coefficiente binario Vρt che corrisponde all'uscita
dell'amplificatore i e che rappresenta la presenza di ogni funzione base nella
composizione del segnale xi(t). Il valore xi (t) del segnale può essere espresso dalla
seguente combinazione lineare di impulsi:

6.10
La funzione che deve essere minimizzata per risolvere il problema di scomposizione e:

6.11

23
David W. Tank, John J. Hopfield, "Simple 'Neural' Optimization Networks: An A/D
Converter, Signal Decision Circuit, and a Linear Programming Circuit", IEEE Transactions
on Circuits and Systems, Vol. CAS-33, Num. 5, Maggio 1986.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 77

La 6.11 ha la forma dell'energia di Hopfield, e in essa il secondo termine è introdotto per


annullare gli elementi diagonali della matrice delle connessioni. A questo punto si
possono definire un set di pesi di connessioni e di correnti in ingresso per ogni
amplificatore:

6.12
Il circuito della rete è mostrato in figura 6.2. Il segnale xi entra in parallelo nella rete e
produce delle correnti negli ingressi degli amplificatori attraverso le resistenze di
ingresso. Al termine del processo di minimizzazione, i valori digitali Vρt delle uscite
degli amplificatori indicheranno la presenza o meno del corrispondente impulso nella
forma d'onda da scomporre. Il convertitore A/D descritto nel paragrafo precedente
può essere visto come un caso particolare del circuito generale appena visto.
Nel convertitore A/D il segnale di ingresso è unidimensionale e consiste di un solo
valore analogico campionato in un solo punto. Il set di funzioni base è 2n n = 0,...,(n-1).
Il vettore binario in uscita dal circuito comprende i coefficienti che descrivono la
somma più vicina a x nel set di funzioni base considerato. Si noti che per i due problemi
considerati la base non è ortogonale, questo allo scopo di non annullare i termini che
definiscono i pesi delle connessioni.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 78

FIGURA 6.2 - (A) Andamento


temporale di un segnale analogico
ottenuto mediante la combinazione
lineare di inpulsi di forma
gaussiana. (B) Singoli impulsi che
compongono il segnale in (A).
(C) Schema circuitale della rete
neurale di Hopfield per il
problema della scomposizione di
un segnale analogico. (FONTE
IEEE TRANSACTIONS CAS/TANK
E HOPFIELD/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 79

6.3.3 - IL PROBLEMA DEL COMMESSO VIAGGIATORE (TSP)

Un esempio classico di problema di ottimizzazione è il già citato problema del


commesso viaggiatore o TSP (Traveling Salesman Problem). La formulazione del
TSP è molto semplice: siano assegnate n città A, B, C,..., e le distanze dij fra esse
esistenti , il problema consiste nella determinazione di una sequenza di città da visitare
in modo che ogni città venga visitata una sola volta, minimizzando il percorso
seguito e ritornando alla città di partenza. Il problema può essere risolto mediante una
rete continua di Hopfield. Si associ ad ogni città un numero di unità pari ad n,
ciascuna corrispondente ad una delle n posizioni che costituiscono la sequenza di
città da visitare. La presenza di una determinata città in i-esima posizione corrisponde ad
un valore 1 della tensione di uscita Vi dell'unità relativa alla città e alla posizione i
considerata. Se il numero delle città è 6 e la città A occupa la seconda posizione nella
sequenza finale, la configurazione degli stati delle unità ad essa associata è la seguente A
0 1 0 0 0 0. Per n città la rete deve essere formata da N = n2 neuroni. Lo stato di uscita
di queste N unità può essere descritto mediante una matrice quadrata di dimensioni
n X n. Riferendosi all'esempio in cui si hanno 5 città la matrice ha la forma seguente:

6.13
In questo caso la sequenza finale soluzione del problema è D ⇒ B ⇒ F ⇒ C ⇒ A ⇒ E ,
mentre la lunghezza del cammino è ddb + dbf + dfc + dca + dae + ded (vedi figura 6.3).
Una matrice che rappresenta una soluzione corretta è caratterizzata da un solo
elemento 1 in ogni riga e colonna dato che una città può essere visitata solo una
volta, allora le 2N configurazioni possibili si riducono a un sottoinsieme pari al
numero delle permutazioni delle n righe della matrice n!. Le possibile sequenze inoltre
non sono tutte distinte, poiché si considerano coincidenti sia sequenze del tipo
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 80

DBFCAE, BFCAED, CAEDBF etc, sia le sequenze DBFCAE e EACFBD, per cui il
numero di soluzioni distinte del problema diventa n!/2n. La variabile di uscita Vxi di
ogni unità sarà caratterizzata dai due indici x e i il primo indice è relativo alla città, l'altro
alla posizione nel percorso. Le soluzioni finali del TSP descritte mediante una rete
continua di Hopfield porta alle seguente espressione per l'energia computazionale:

dove α, β, γ, η sono costanti positive per le quali non esiste un criterio definito di
scelta. La 6.14 può essere facilmente spiegata: il primo addendo, essendo costituito da
termini che rappresentano tutti i possibili prodotti tra due elementi appartenenti ad una
riga, è pari a 0 se la riga x contiene un solo elemento pari ad 1; analogamente il secondo
termine è pari a 0 solo se la colonna i-esima presenta un solo elemento pari a 1; il terzo
addendo, poiché è una forma quadratica della differenza fra la somma di tutti gli
elementi della matrice e il numero totale di elementi n, è 0 se la somma è n.
La minimizzazione di questi tre termini di E corrisponde alla scelta di una possibile
soluzione del problema. Infine la minimizzazione dell'ultimo addendo individua il
percorso più breve. I valori dei pesi delle connessioni e delle correnti esterne sono:

La rete continua di Hopfield costruita per il problema TSP permette di trovare una delle
soluzioni possibili, in tempi molto brevi.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 81

FIGURA 6.3 - Una figura stilizzata della rete implementate il problema TSP. Ogni neurone e
simbolicamente indicato da un quadrato. La soluzione del problema e rappresentata dai
quadrati scuri come nella matrice 6.14. Sono indicate anche le connessioni di due differenti
neuroni.(FONTE SCIENCE VOL.33/HOPFIELD)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 82

6.3.4 - PROGRAMMAZIONE LINEARE

Un problema di programmazione lineare consiste nel minimizzare una funzione


costo, associata alle variabili in gioco, nel rispetto di un insieme di vincoli sulle variabili.
La funzione costo è l'insieme dei vincoli possono essere

6.16
V è un vettore le cui N componenti rappresentano le variabili del problema , A e Dj sono
vettori di N dimensioni, i cui elementi costanti costituiscono i coefficienti delle
variabili, rispettivamente nella funzione costo e nell'equazione del vincolo, infine B
sono termini costanti. La figura 6.4 mostra una rete di neuroni che può risolvere un
problema di programmazione lineare di due variabili con quattro equazioni di
vincolo. Il circuito comprende N amplificatori le cui uscite Vi rappresentano il vettore
V, M amplificatori di uscita Ψj cui sono associati l'insieme dei vincoli , j indica se è
soddisfatta la corrispondente equazione di vincolo. L'uscita normale Vi dell'amplificatore
i è connessa all'ingresso dell'amplificatore, cui corrisponde la j-esima equazione di vincolo
mediante una resistenza di conduttanza Dji . L'uscita inversa j dell'amplificatore j è
connessa all'ingresso dell'amplificatore i con una resistenza con conduttanza -Dji .
All'ingresso degli N amplificatori con uscita Vi si ha una corrente ottenuta dalla somma
di una corrente esterna proporzionale al coefficiente -A e le correnti fornite dagli altri
M amplificatori. La corrente in ingresso agli M amplificatori di uscita Ψj è data dalla
somma di una corrente esterna proporzionale a -B e le correnti fornite dagli N
amplificatori. Gli amplificatori Vi presentano un ingresso collegato a massa mediante
un gruppo parallelo costituito da una capacità Ci e una resistenza ρi , hanno inoltre una
funzione di attivazione Vi = g(Ui ) non lineare. Gli amplificatori j hanno una
funzione di attivazione non lineare definita come:

6.17
nella 6.18 si ha f(z) = 0 per z ≥ 0, f(z) = -z per z < 0. Tale funzione fa assumere una
uscita positiva Ψj.>> 1 all'amplificatore j corrispondente a un'equazione di vincolo
violata. Considerando trascurabile il tempo di risposta degli M amplificatori Ψj rispetto
quello degli N amplificatori Vi , le equazioni dinamiche del circuito calcolate per le
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 83

sole uscite Vi sono:

Si consideri adesso la funzione energia seguente:

6.19
nella 6.20 si ha f(z)= dF(z)/dz. Tank e Hopfield hanno dimostrato che dE/dt ≤0 , e i
minimi di E corrispondono a buone soluzioni del problema con funzioni costo e
violazioni ai vincoli minimizzate. Il problema di Hitchcock esposto nel prossimo
paragrafo è un esempio di problema di programmazione lineare.

FIGURA 6.4 -
Schema
circuitale della
rete neurale di
Hopfield per un
problema di
programmazione
lineare.
(FONTE
APPLIED
OPTICS
TAKEDA/GOOD
MAN/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 84

6.3.5 - IL PROBLEMA DI HITCHCOCK

Il problema di ottimizzazione di Hitchcock può essere risolto mediante la rete


continua di Hopfield. Tale problema viene formulato come segue: vi siano m centri di
produzione (X = 1,...,m) per una data merce, sia Sx il quantitativo di prodotto
disponibile nel centro X, inoltre vi siano n depositi (Y = 1,...,n), ciascuno con una
richiesta pari a DY . Se CXY è il costo unitario della spedizione dal centro X al
deposito Y, si deve trovare per ogni coppia XY il flusso di merce f che soddisfa le
richieste è contemporaneamente minimizza il costo totale. La funzione da minimizzare è:

6.20
nel rispetto dei vincoli:

6.21
Nella figura 6.5 sono riportati un esempio di matrice di costo ed un esempio di
soluzione in forma di matrice di flusso. La figura 6.5 mostra come può essere
descritta la matrice di flusso in termini dei valori di attivazione Vi delle unità della rete
neurale. Ogni elemento fXY di tale matrice viene codificato mediante q neuroni in tal
modo il numero totale di neuroni necessario per rappresentare la matrice di flusso è
N= qmn. Lo stato di attivazione di ciascun neurone viene indicato con VXY,i dove gli
indici XY si riferiscono all'elemento della matrice di flusso mentre i è un indice sui q
neuroni. Utilizzando lo schema di rappresentazione gruppi-pesi l'elemento fXY assume
la forma:

6.22
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 85

Si costruisce adesso la funzione energia E avente forma quadratica rispetto le variabili V:

6.23

dove α, β, γ, η sono dei fattori positivi per i quali non esiste un criterio definito di scelta.
Si analizzano in dettaglio i singoli addendi dell'espressione 6.23: il primo termineè la
somma estesa a tutte le variabili di stato di funzioni del tipo:
F(V) = - (1 - 2V)2 (0 ≤ V ≤ 1), le quali assumono valore minimo per V = 0 o V = 1;
di conseguenza la minimizzazione di tale termine assicura che la soluzione finale sia
data da una rappresentazione binaria; il secondo e terzo termine sono espressioni
quadratiche che servono a minimizzare le violazioni alle relazioni di vincolo;
l'ultimo termine è il quadrato della funzione costo che si vuole minimizzare.
Le soluzioni che minimizzano E non necessariamente comportano il raggiungimento
del minimo della funzione costo nel rispetto dei vincoli, comunque la scelta di opportuni
fattori α, β, γ e η porta a buone soluzioni che minimizzano E. Con riferimento al
problema in esame l'energia può essere scritta nella forma di Hopfield:
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 86

6.24

in questa espressione è il peso della connessione


tra il neurone in posizione [(k-1)M+i] nell'elemento XY e il neurone in posizione
[(k'-1)M+i'] nell'elemento X'Y'. Uguagliando i corrispondenti coefficienti nelle due
funzioni, si determinano i pesi delle connessioni e le correnti di alimentazione di ogni
singolo neurone come segue:

6.25

δxx è il delta di Kroneker.


Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 87

FIGURA 6.5 - In alto schema


di un problema di Hitchcock
con 4 centri di produzione e 6
depositi. TABELLA I (A)
Matrice di costo per il
problema di Hitchcock (B)
Semplice soluzione
rappresentante il flusso dalla
sorgente X al deposito Y.
TABELLA_II Rappresentazione
neurale della matrice di flusso
del problema di Hitchcock, q
neuroni sono utilizzati per
rappresentare un elemento
della matrice di flusso.
(FONTE APPLIED OPTICS
TAKEDA/GOODMAN/1986)
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 88

6.3.6 - SISTEMA DI EQUAZIONI LINEARI

Si consideri un sistema di equazioni lineari: H x = y dove H è una matrice quadrata di


dimensioni N x N, ed x e y sono due vettori di N componenti rappresentanti
rispettivamente le incognite e i termini noti. Per utilizzare il processo di minimizzazione di
energia delle reti continue di Hopfield riformuliamo il problema introducendo una
funzione energia che include il termine || y - Hx || . La componente n del vettore
delle variabili incognite, secondo la rappresentazione descritta nel paragrafo 6.2 e:

6.26
Sostituendo la 6.26 in un'espressione di energia si ottiene:

6.27
Nella 6.27 il primo è un termine di minimizzazione binaria analogo al primo termine
della 6.24. La 6.27 può essere riportata nella forma dell'energia di Hopfield trovando
cosi le espressioni dei pesi e delle correnti in input.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 89

6.4 - COMPLESSITÀ' COMPUTAZIONALE DI UNA RETE NEURALE

I risultati delle simulazioni effettuate da Tank, Hopfield, Takeda e Goodman con


riferimento ai problemi trattati non hanno permesso di trovare alcuna relazione tra il
tempo di elaborazione, le dimensioni del problema e l'algoritmo utilizzato per
l'apprendimento. Considerando che problemi con un numero maggiore di variabili
comportano l'introduzione di ulteriori unità di elaborazione si pensa che il tempo di
elaborazione richiesto non cresca rapidamente con le dimensioni del problema.
La complessità computazionale nei calcolatori digitali è definita come il numero di
operazioni aritmetiche richieste per risolvere un dato problema (si indica con
O(f(N)) dove N sono le dimensioni del problema e f(N) è una funzione di N). Analizzando
come essa cresce con l'aumentare delle dimensioni N del problema si può misurare
l'efficienza di un algoritmo. Algoritmi con tempi di esecuzione crescenti in maniera
esponenziale con N hanno un uso molto limitato nei calcoli convenzionali. I metodi
euristici utilizzati ad esempio per risolvere il problema TSP hanno una complessità
computazionale di tipo esponenziale o addirittura fattoriale e non è noto alcun metodo
che limiti tale complessità a una potenza di N. Analogamente alla complessità
computazionale , per una rete neurale è possibile definire il concetto di complessità di
programmazione. La complessità di programmazione di una rete neurale è il numero di
operazioni aritmetiche richieste per determinare i corretti pesi delle connessioni e le
correnti esterne di alimentazione per il problema da risolvere. In una rete neurale la
fase di programmazione (apprendimento) è la fase di immissione dati non sono distinte
ma sono legate entrambe alla determinazione dei pesi e delle correnti esterne, per cui
immettendo nuovi dati si deve procedere a un ricalcolo dei pesi e delle correnti. Risulta
quindi che la complessità di programmazione di una rete è un indice dell'efficienza
computazionale della rete. Un confronto tra la complessità computazionale e quella di
programmazione riferita a un particolare problema può mostrare importanti aspetti
del calcolo neurale. Si consideri il problema della risoluzione di equazioni lineari con
N incognite del sottoparagrafo 6.3.6. Si è visto che sono richiesti qN neuroni, q e il
numero di neuroni richiesto per rappresentare ogni variabile incognita con lo schema
gruppi-pesi ed e indipendente da N. Il numero delle interconnessioni è dato da:
(1/2)qN(qN +1) ≅ O(N2), mentre il numero di correnti è qN ; O(N). La complessità di
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 90

programmazione risulta O(N3 ) poiché necessitano N operazioni per determinare ogni


peso e ogni corrente. A. V. Aho24 ed altri hanno mostrato che la complessità
computazionale dello stesso problema è O(N ), per cui in questo caso la complessità di
programmazione coincide con la complessità computazionale. Nel problema TSP la
complessità computazionale è O(N!), dove N è il numero delle città, risolvendo lo stesso
problema con la rete continua di Hopfield si può dimostrare che la complessità di
programmazione è O(N ). Si ha che il numero di pesi da determinare è N mentre le
correnti sono N, per cui dato che il numero di operazioni per determinare i pesi e le
correnti e N, risulta che O(N3 ). Il problema di Hitchcock fornisce un buon esempio di
come la complessità di programmazione dipenda dall'algoritmo usato. Nel problema di
Hitchcock con m sorgenti e n depositi occorrono qmn neuroni. Il numero di
interconnessioni è allora: (1/2)qmn(qmn + 1) ≅O(m2 n2 ), le correnti sono: qmn;
O(mn). Il calcolo di ogni peso e di ogni corrente richiede un numero costante di operazioni
per cui la complessità di programmazione è O(m2 n2 ) = O(n4 ) per m ≅ n.
Considerando la funzione energia 6.24 si ha che l'ultimo termine corrispondente alla
minimizzazione del flusso di costo totale è sempre positivo. Definendo l'energia senza
elevare al quadrato l'ultimo termine della 6.24 si ottengono dei pesi non dipendenti dai
termini CXY in tal modo la complessità di programmazione dipende solo dalle
correnti esterne ed è O(mn) ≅ O(n2 ) per m ≅ n. Attualmente non è noto quale sia
l'algoritmo che fornisce la minore complessità computazionale per il problema di
Hitchcock.

24
A.V.Aho, J.E. Hopcrroft e J.D. Ullman, The Design and Analysis of Computer Algorithms,
Addison-Wesley 1974.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 91

6.5 - APPLICAZIONE DI PERCEPTRONI MULTISTRATO CON REGOLA


BACK-PROPAGATION: RETE NETTALK

Un'applicazione molto interessante dei sistemi neurali è la rete NETtalk 25 di Sejnowsky e


Rosemberg , una macchina che impara a leggere in inglese partendo da esempi che le
vengono presentati durante la fase di apprendimento. NETtalk traduce il testo presentato
in ingresso in fonemi, un fonema è una rappresentazione simbolica del suono della
singola lettera, i quali vengono trasformati in suono da un sintetizzatore vocale.
NETtalk è essenzialmente un perceptrone multistrato che utilizza la regola di
apprendimento back-propagation. Gli strati della rete sono tre e comprendono, oltre a
due strati di ingresso e di uscita, uno strato di unità nascoste. La funzione di attivazione
della rete è mostrata in figura 6.6 ed è espressa da:

6.28

Lo strato di ingresso consiste di 7 gruppi di 29 unità, ogni gruppo codifica una lettera del
testo in input, il quale viene presentato sette lettere alla volta (203 unità di ingresso).
Il numero delle unità nascoste varia da simulazione a simulazione, in generale si
sono usate 90 unità. L'uscita voluta dalla rete è un fonema oppure un suono associato
alla lettera centrale della stringa in ingresso. Le altre sei lettere determinano un parziale
contesto per la pronuncia esatta della lettera. Lo schema rappresentativo delle lettere e
dei fonemi è diverso. La lettera e rappresentata localmente entro ogni gruppo di
unità in ingresso, che risulta costituito da 26 unità corrispondenti al numero delle lettere,
più 3 unità che rappresentano la punteggiatura e i confini della parola.
I 54 fonemi in uscita consistono in 23 caratteristiche di pronuncia più 3 legate
all'accento. Un fonema è rappresentato dall'attivazione simultanea di più unità di uscita
secondo lo schema binario. L'apprendimento della rete consiste in una vera e propria

25
Terrence J. Sejnowsky e Charles R. Rosemberg, "NETtalk: a parallel network that learns to
read aloud", The Johns Hopkins University EECS Technical Report 186/01.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 92

lettura di un testo inglese, nel caso di NETtalk è stato presentato alla rete un testo di
20012 parole. Durante la lettura viene applicata alla rete la regola back-propagation che
consente il settaggio delle connessioni della rete. La rete viene inizialmente settata
con pesi casuali distribuiti uniformemente nell'intervallo ± 0.3. Alla fine della fase di
apprendimento le prestazioni della rete sono state testate con un vocabolario di 1000
parole prese a caso dal testo imparato. Sejnowsky e Rosemberg hanno studiato la
variazione delle prestazioni con diversi numeri di unità nascoste. La fig. 6.6 mostra che
i migliori risultati si ottengono con 120 unità nascoste (98% di pronunzie esatte sui
fonemi presentati). Si nota anche che l'aumento delle unità nascoste porta ad un
miglioramento della velocità di apprendimento.
Reti Neurali: modelli e aspetti applicativi: Cap 6 Applicazioni di Reti Neurali 93

FIGURA 6.6 - In
alto si ha lo
schema della rete
NETtalk, in basso
un grafico
rappresentante le
prestazioni della
rete. Le diverse
curve si
riferiscono alle
prestazioni di
reti con 120, 60,
30, 15, 0 unità
nascoste. In
ordinata si ha la
percentuale di
errori, in ascissa
il numero di
parole che la
rete inpara. Si
noti che i migliori
risultati si hanno
con 120 unità
nascoste, e che le
performance della
rete crescono col
numero delle
parole imparate.
(FONTE
SEJNOWSKY)
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 94

7. - MEMORIE ASSOCIATIVE BASATE SUL MODELLO DISCRETO DI


HOPFIELD E NUOVI ALGORITMI DI MEMORIZZAZIONE

7.1 - INTRODUZIONE

Nei capitoli precedenti (rif. par. 4.4) si è già vista la possibilità di utilizzare il modello
discreto di Hopfield per il progetto di memorie associative o memorie a contenuto
indirizzabile (C.A.M.). In questo capitolo, dopo un approfondimento su nuove
regole di apprendimento, sono presentati i risultati di simulazioni software di
memorie associative basate sul modello discreto di Hopfield. Sono stati utilizzati due
distinti algoritmi di memorizzazione, inizialmente la regola di Hebb, successivamente
si è utilizzata la regola di apprendimento di S.H. Oh. . Le prove fatte evidenziano le
caratteristiche e i limiti di memorie associative implementate col modello discreto di
Hopfield. Inoltre risaltano i vantaggi di utilizzo della regola di Oh.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 95

7.2 - PROBLEMI ALEATORI E MEMORIE ASSOCIATIVE

I problemi come il riconoscimento di forme appartengono alla classe dei problemi aleatori
e non si prestano, per loro natura, a una soluzione algoritmica semplice. Il termine
aleatorio indica la impossibilita di definire il problema in maniera concisa e completa.
L’aleatorietà del problema è legata alla quantità di informazione richiesta per definirlo e
all'altissimo numero di soluzioni possibili. Dalla definizione di entropia di
Shannon come misura dell'informazione contenuta in un messaggio si può affermare
che un problema aleatorio ha un alto grado di entropia rispetto un problema
strutturato. Per poter risolvere problemi aleatori, oltre ai metodi euristici, già menzionati,
si potrebbero memorizzare tutte le soluzioni possibili e dopo utilizzare dei metodi per
associare direttamente i dati in ingresso con le informazioni immagazzinate, senza
bisogno di un'esatta corrispondenza. Nelle memorie convenzionali i dati memorizzati
sono accessibili mediante degli indirizzi e informazioni parziali sono insufficienti per
richiamare i dati. Le memorie biologiche sembrano essere di differente natura. L'intero
set di caratteristiche connesso a un concetto memorizzato può essere ricavato da un
set parziale di informazioni, mediante dei processi associativi. A questi processi di
associazione si ispira il progetto di memorie associative costruite mediante reti
neurali. Diversi studiosi26 hanno mostrato la possibilità di utilizzare memorie associative
per problemi di riconoscimento (vedi figura 7.1a).

26
K. Nakano, "Associatron- A Model of Associative Memory", IEEE Transactions on Systems,
Man, and Cybernetics, Vol. SMC-2, Num. 3, Luglio 1972.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 96

FIGURA 7.1a - In alto vi è l’immagine memorizzatadi una T, sotto le immagini di partenza


corrotte da cui si può risalire all’immagine iniziale in memoria. In basso c’e un esempio di
ricostruzione di un'immagine di un volto (c) da un input parziale (b) realizzato mediante una
memoria associativa. L'immagine memorizzata e la (c)
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 97

7.3 - CONSIDERAZIONI SUL MODELLO DISCRETO DI HOPFIELD

Si approfondisce adesso l'analisi del modello discreto di Hopfield . E' già noto il modo
in cui il modello può essere utilizzato come memoria associativa: dato un set di M vettori
Vis binari (0,1) i = 1,..,N s = 1,..,M, essi vengono memorizzati in una matrice T in
accordo alla regola di Hebb seguente:

7.1
Il termine Mδij permette di rendere nulli i termini diagonali (Tij = 0).
La memoria può essere indirizzata moltiplicando la matrice T per uno dei vettore di
memorizzati ad esempio Vis’ , l'elemento Vis’ V in uscita risulta:

7.2
il valore medio del termine tra parentesi quadre è (N-1)/2 per s=s' mentre è nullo se s≠s'
per cui estraendo il termine s'-esimo dalla sommatoria con indice s si ha:

7.3

consiste nella somma di due termini: il primo è il vettore in ingresso amplificato


dal termine (N - 1)/2, ed è positivo per Vis’ = 1 negativo se Vis’ = 0, il secondo è una
combinazione lineare dei rimanenti vettori memorizzati rappresenta un termine di
rumore casuale. Il valore medio del secondo termine è nullo per s≠s', ma può contribuire
ugualmente a Vis’ con un rumore dato dalla deviazione standard della somma di M-1
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 98

coefficienti à random:

7.4
se N è sufficientemente più grande di M allora Vis’ è approssimativamente un
autovettore della matrice T, inoltre il rumore è approssimativamente gaussiano e la
probabilità di errore su un singolo bit e:

per M = 10 e N = 100 si ha P = 0.0091. Per quanto visto si ha un'alta probabilità che

l'elemento in uscita sia positivo se il corrispondente elemento in ingresso Vis’


memorizzato e +1 e 0 altrimenti. Utilizzando la funzione di attivazione a soglia

otteniamo il valore Vis’ memorizzato. La grandezza del termine di rumore nella 7.3
cresce col numero M di vettori memorizzati e con l'ammontare della correlazione tra i
vettori memorizzati (la correlazione e proporzionale al numero di bit uguali tra due
vettori). Se i vettori sono ortogonali il rumore si annulla e i vettori Vs sono esattamente
autovettori della matrice T. Per quanto detto il numero M di vettori memorizzabili in
una matrice T di N dimensioni e limitato ad una frazione di N. Hopfield ha stimato
Mmax ≅ 0.15N,(M e il numero massimo di vettori memorizzabili), nelle simulazioni
fatte dall'autore del presente lavoro si sono ottenute buone prestazioni delle memorie
con M ≅ 0.1N. Recentemente Farhat e Psaltis hanno indicato un limite teorico uguale a
M ≅ N/(4*ln(N)).
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 99

7.4 - NUOVI ALGORITMI DI MEMORIZZAZIONE

E' importante notare che quasi tutti i dati contenuti in una memoria tendono ad essere
molto correlati (ad esempio i nomi di un archivio). Per tale motivo è utile definire
nuovi algoritmi di memorizzazione27 che superano i limiti derivanti dalla correlazione
dei dati da memorizzare. In questo paragrafo si accenna a tre nuove regole di
apprendimento utilizzate come algoritmi di memorizzazione in memorie associative.
Tali regole consistono in una modifica della originale regola di Hebb, e in condizioni
particolari si riducono in essa. Per esprimere tali regole in una forma più concisa
definiamo la regola di Hebb in forma incrementale:

7.5
Nella 7.5 TijAB denota una matrice T nella quale sono stati memorizzati i vettori A e B,
l'insieme delle Vic sono le componenti del nuovo vettore C da memorizzare. Il primo
algoritmo è noto come "Adaline learning rule", ed è dato da:

7.6
|| AB
Il termine: V i è una misura della correlazione tra la matrice T e il vettore Vc che si
sta memorizzando. Se Vc è ortogonale a tutti i vettori memorizzati precedentemente
nella matrice TAB allora il termine V|| i si annulla e la 7.6 si riduce alla regola di Hebb.
La 7.6 espressa nella stessa forma della 7.1 diventa:

7.7
nella 7.7 il termine T'ij consiste nella stessa sommatoria 7.7 calcolata da s = 1 a s = M-1.
La regola espressa dalle 7.6 e 7.7 ha tutte le caratteristiche della regola di Hebb anche se
la matrice T risultante non è simmetrica. Benché l'accuratezza con cui un dato vettore
è memorizzato dipende dall'ordine di presentazione alla memoria la regola Adaline,

27
J.S. Denker, "Neural network models of learning and adaptation", Physica Vol.2D
(1986), pag 216-232.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 100

applicata a memorie associative, da buoni risultati. La regola di apprendimento che segue


adesso è detta regola geometrica:

7.8
La regola 7.8 ricorda l'algoritmo di Gram-Schmidt per ortonormalizzare un insieme di
vettori e ha una semplice interpretazione geometrica: V|| è la proiezione di Vc nello
spazio costruito mediante i vettori precedentemente memorizzati nella matrice TAB ,

è la proiezione di Vc nello spazio nullo di T . I vettori e sono normali a tutti


gli altri vettori memorizzati. La regola geometrica risolve essenzialmente tutti i problemi
legati alla correlazione tra i vettori, ognuno dei vettori memorizzati è esattamente un
autovettore di T con autovalore N-1. Le memorie associative implementate con queste
nuove regole sono spesso chiamate memorie eteroassociative. In tali dispositivi, come
si è visto, non viene memorizzato direttamente il vettore, ma una sua rappresentazione
ortogonale rispetto gli altri vettori memorizzati.

FIGURA 7.1b -
Raffigurazione di una
memoria
eteroassociativa, si noti
la reppresentazione
ortogonale del pattern
memorizzato (a) e il
richiamo del pattern da
un input alterato.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 101

7.5 - ALGORITMO DI MEMORIZZAZIONE DI S.H. OH

La regola di Hebb richiede che ogni vettore memorizzato abbia approssimativamente lo


stesso numero di bit a zero e ad uno, definendo con S01 lo sbilancio tra i bit diversi, deve
essere S01 ≅ N/2 , dove N e la dimensione dei vettori memorizzati. Se S01 è
sufficientemente diverso cresce il valore del termine rumore della 7.3 e la memoria
associativa non riesce a funzionare adeguatamente. In questo paragrafo viene
descritto un nuovo algoritmo di memorizzazione, proposto recentemente da S.H. Oh,28
che permette di superare il limite prima presentato. Nel paragrafo 7.3, implementando il
modello di Hopfield, si e assunto che il valore della soglia Si di attivazione del neurone
sia nulla. In generale la scelta di Si dipende dai vettori memorizzati Vs , ad esempio la
scelta Si = 0 e valida con l'assunzione S01 ≅ N/2. Quando Si e diverso in ogni Vs ,si
nota che il vettore con il più alto numero di uno presenta una forte tendenza ad essere
stato attrattore (tale caratteristica sarà mostrata nella prima simulazione di pag. A.1).
Inoltre in casi in cui uno o più vettori hanno un bassissimo numero di bit uno, tali
vettori possono risultare non richiamabili dalla memoria (vedi seconda simulazione a
pag A.3). L'algoritmo di memorizzazione di S.H. Oh consiste in una semplice modifica
della regola di Hebb. Si supponga di volere memorizzare il vettore Vs , Oh propone di
memorizzare un vettore V’s di dimensioni 2N che è formato dalle componenti del vettore
Vs più le componenti del vettore complemento, si ha:

7.9
Tale vettore è memorizzato in una matrice T' mediante la seguente espressione:

7.10
Lo stato successivo del neurone è definito da:

7.11 con 7.12

28
Sang-Hoon Oh, Tae-Hoon Yoon e Jae-Chang Kim, "Associative memory model based on
neural networks: modification of Hopfield model", Optics Letters, Vol.13, Num.1, Gen. 1988.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 102

In questo modo il numero di bit a uno sarà sempre uguale al numero degli zeri, quindi
l'applicazione di tale algoritmo al modello di Hopfield risolve il problema dello sbilancio
dei bit. Si noti che l'algoritmo di Oh può essere applicato senza costruire una memoria
di dimensioni 2N, infatti si può facilmente verificare che per un vettore nel quale le
ultime N componenti sono il complemento delle prime N si ha:

7.13
Tij è l'elemento della matrice T definita dalla 7.1. Utilizzando le 7.13 la 7.12 può
essere riscritta come:

7.14

Dalla 7.14 si nota che è espresso utilizzando solamente gli elementi Tij della matrice

T e lo stato attuale ViS . La 7.14 mostra che il prossimo stato corrisponde agli

elementi indice 1 ó i ó N. Si ha allora la seguente funzione di attivazione:

con 7.15
Nella funzione di attivazione 7.15 lo stato successivo di ogni neurone i dipende sia dal
proprio stato attuale, sia dallo stato corrente degli altri neuroni. L'algoritmo di
memorizzazione esposto, risolvendo il problema dello sbilancio dei bit dei vettori
memorizzati, permette di incrementare il numero M di vettori memorizzabili in una
matrice di N neuroni. Tale miglioramento di prestazioni è evidenziato nelle simulazioni
descritte più avanti.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 103

7.6 - SIMULAZIONI AL CALCOLATORE DI MEMORIE ASSOCIATIVE

In questo paragrafo sono descritte e commentate le simulazioni di memorie associative


fatte al calcolatore. I risultati di tali simulazioni sono raccolti nelle figure
nell'appendice A. Segue adesso una descrizione generale, valida per tutti le prove
effettuate del significato di tali figure. Dopo avere mostrato in una figura iniziale i vettori
memorizzati Vs (s = 1,..M) (compresi i vettori complemento, la distanza di Hamming tra
tali M vettori e la matrice delle connessioni ), seguono delle tabelle che si riferiscono a
diversi test sulla memoria. Il test al quale si riferisce è indicato in alto alla tabella.
Generalmente i test effettuati consistono nel presentare alla memoria un vettore di ingresso
Us (s = 1,..,M) corrispondente al vettore memorizzato Vs è alterato in vari modi. Nei test
1A e 1B la modifica di Us consiste nel far crescere la distanza di Hamming H tra esso e
il vettore memorizzato Vs . Nel test 1A la distanza H viene modificata invertendo
successivamente gli stati di 1,2,.. fino al bit N-esimo del vettore Us . Nel test 1B
vengono posti a 0 tutti i bit di Us da una certa posizione fino alla N. Le tabelle dei test
1A e 1B sono molto simili, differisce solo la prima colonna, che nel test 1A
corrisponde alla distanza di Hamming H0 crescente, mentre nel test 1B H0 è il numero
di bit posti a 0 a partire dal bit N-esimo. Le colonne Vf, I, H successive rappresentano
rispettivamente l'indice del vettore memorizzato finale raggiunto, il numero di iterazioni
effettuate e la distanza di Hamming tra Vf e il vettore in ingresso Us iniziale.
Analizzando la distanza di Hamming H si ha che H=0 se Vf corrisponde al vettore Vs
ricercato, mentre se H = N Vf è il complemento del vettore Vs . Si noti che se l'indice
del vettore finale è negativo, Vf corrisponde al complemento di uno dei Vs vettori
memorizzati. Se l'indice di Vf è nullo, dall'analisi del numero di iterazioni I si deduce uno
dei due casi seguenti:

Imax è un numero massimo di iterazioni consentite ed è scelto in modo da ottimizzare la


ricerca degli stati oscillatori. Il secondo test consiste nell'immissione di una percentuale
crescente di rumore sul vettore di ingresso Us . La prima colonna della tabella indica
la percentuale di rumore introdotta, le altre colonne e la tabella riassuntiva finale hanno
il significato visto nel test 1A e 1B. Nel terzo test, utilizzato solo nella prima
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 104

simulazione vengono presentati ad una rete di 16 neuroni tutti i 2 vettori possibili, e


vengono conteggiati i risultati. Le prestazioni di una memoria associativa sono
sintetizzate dall'analisi delle variazioni dei seguenti elementi:
• percentuali di successi nei richiami
• numero attrazioni indotte
• numero stati oscillatori
• numero stati metastabili

in funzione di condizioni iniziali come:


• numero M dei vettori memorizzati.
• algoritmo di memorizzazione utilizzato
• codice rappresentativo dei dati

In basso alle tabelle sono sintetizzati i risultati dei test. Le varie righe, che si riferiscono ai
vettori memorizzati totalizzano per ogni vettore la percentuale di successi dei richiami,
il numero di stati oscillatori e il numero di attrazioni indotte sui vettori di ingresso non
corrispondenti (ad esempio il vettore V1 può attrarre il vettore ingresso U2 costruito dal
vettore memorizzato V2 invertendo un certo numero di bit). Le simulazioni effettuate
sono:
1. - HOP16211, HOP16221, HOP16311, HOP16321
2. - HOP20211, HOP20221, HOP20311, HOP20321
3. - HOP3231, HOP3232, HOP3241, HOP3242, HOP3251, HOP3252
4. - PARE64412, PARE64411, PARE64422, PARE64421, PARE64522, PARE64521,
PARE128422, PARE128421, PARE128522, PARE128521
5 - HOP120221, HOP120321, HOP128621

Le simulazioni sono basate su diversi set di dati. I primi 5 set sono vettori di 16, 20, 32,
64 e 128 bit utilizzati rispettivamente nelle simulazioni 1, 2, 3 e 4. Gli ultimi due set di dati
di 120 e 128 bit sono impiegati nella simulazione 5. Nelle routine base dei programmi
utilizzati il termine del ciclo delle iterazioni è stabilito dalle seguenti condizioni:
1. il vettore in uscita è uguale a quello in ingresso.
2. il numero delle iterazioni supera un numero massimo di iterazioni prefissato I .
Segue adesso un breve commento ad ogni simulazione.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 105

7.6.1 - SIMULAZIONE 1

Nelle prove della prima simulazione (pag. A.1-A.2) si è utilizzato un set di 3 vettori di
16 bit e si sono misurare le prestazioni della memoria, presentando in ingresso tutti i 2
vettori possibili. Si sono utilizzate sia la regola di Hebb, sia la regola di Oh,
memorizzando prima 2 vettori e successivamente 3 vettori. Il terzo test mostra i
risultati: nelle prove HOP16311 e HOP16211, fatte con la regola di Hebb, il vettore 8768
caratterizzato da una bassa percentuale di 0 è completamente irrecuperabile e si ha la
presenza di 4 stati attrattori metastabili 577, 3478, 53388 e 56766 nella prova
HOP16211 e uno stato metastabile 48283 nella prova HOP16311; lo stesso vettore 8768
risulta perfettamente richiamabile insieme a tutti i vettori normali e complemento
memorizzati nelle prove HOP16312 e HOP16212, nelle quali è applicata la regola di Oh.

7.6.2 - SIMULAZIONE 2

Nelle prove HOP20221, HOP20211, HOP20321 e HOP20311 della seconda


simulazione, si applicano rispettivamente la regola di apprendimento di Hebb e la regola
di Oh e si è utilizzato lo stesso set di vettori di 20 bit . Nelle prove HOP20221 e
HOP20211 si sono memorizzati 2 vettori, mentre nelle altre due si sono memorizzati
3 vettori. Tali vettori sono caratterizzati da una distanza di Hamming media uguale a 10
e da una bassa percentuale di uno (25%). Le prove HOP20221 e HOP20211 mostrano il
buon funzionamento della regola di Hebb, al contrario le prove HOP20321 e
HOP20311 indicano la impossibilita di richiamare tali vettori con la stessa regola.
I test 1A e 1B delle prove HOP20321 e HOP20311 mostrano un netto miglioramento
delle prestazioni della memoria applicando la regola di Oh come algoritmo di
memorizzazione. La Fig. A.6 (riferentesi alle prove HOP20321 e HOP20311) è un
esempio di richiamo di un vettore memorizzato con le diverse regole di
apprendimento. La regola di Hebb porta al richiamo di uno stato metastabile, la regola di
Oh permette di richiamare il vettore memorizzato con la più bassa distanza di Hamming
dal vettore di ingresso.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 106

7.6.3 - SIMULAZIONE 3

La terza simulazione evidenzia il degrado di prestazioni di una memoria associativa al


crescere del numero M di vettori memorizzati, e mostra che l'impiego della regola di
Oh consente di memorizzare più vettori rispetto la regola di Hebb. Nella varie prove si
sono memorizzati progressivamente un numero M ( M = 3,4,5 ) crescente di vettori di 32
bit. I vari test dimostrano che al crescere di M, la memoria aumenta il numero degli errori
nei richiami utilizzando la regola di Hebb. La regola di Oh permette di avere una bassa
percentuale di errori della memoria anche con vettori memorizzati. Il massimo numero
di vettori memorizzabili mediante il modello utilizzato era stato fissato da Hopfield ad
una frazione di N (N < 100) corrispondente a 0.15N. Le prove fatte mostrano che tale
limite è raggiungibile a condizione che i vettori memorizzati siano abbastanza
diversi, cioè siano poco correlati, e abbiano uno basso sbilancio S01 tra bit a zero e bit
a uno. Se tali condizioni non sono soddisfatte la saturazione della memoria si
presenta prima del limite visto. Con riferimento alla figura A.8, che mostra le matrici di
connessione costruite per M crescente, si è notato che un indice della saturazione della
memoria è la percentuale di zeri della matrice di connessione. Il numero ottimale di
vettori memorizzati sembra corrispondere ad una matrice di connessioni con una alta
percentuale di zeri (si veda la matrice corrispondente a M=4 di Fig. A.8). Una
percentuale uguale a 1/N, per una matrice N-dimensionale, indica una scarsa
utilizzazione della memoria oppure una saturazione della stessa (matrici con M=3 e
M=5 di Fig. A.8). Il numero ottimale di vettori memorizzati può essere incrementato
almeno di un'unità con l'utilizzo della regola di Oh.

7.6.4 - SIMULAZIONE 4

Le prove di tale simulazione si riferiscono ad una applicazione del modello discreto


di Hopfield ad un problema di classificazione di forme. Si sono utilizzati 2 set di
immagini corrispondenti ad una matrice quadrata rispettivamente di 64 e 128 bit.
In tutti i casi è stato necessario adottare la regola di Oh poiché la regola di Hebb non
forniva buoni risultati. Le Fig. da A.15 a A.24 mostrano la fase operativa di recupero
informazioni da un input parziale o disturbato. Nel casi esaminati si è visto che la
saturazione della memoria si ha con M=5 per N=64 e M=6 per N=128.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 107

7.6.5 - SIMULAZIONE 5

Quest'ultima simulazione (da pag. A.25) indica l'importanza del codice utilizzato per
la rappresentazione di dati alfanumerici memorizzati. Nella prova HOP120221 e
HOP120321 si è utilizzato un codice binario a 5 bit per le 27 lettere impiegate.
Tale codice permette di memorizzare stringhe di 24 lettere in una memoria associativa
di 120 neuroni. Lo svantaggio di tale codice è dato da un bassissimo numero di
stringhe memorizzabili perché il suo utilizzo comporta un alto grado di correlazione per le
stringhe da codificare, si noti infatti la bassa distanza di Hamming media (H ) tra le
stringhe memorizzate. Nella prova HOP120321 le tre stringhe memorizzate sono
completamente non richiamabili anche mediante la regola di Oh. Tale limite deriva dal
fatto che le stringhe memorizzate mediante il codice a 5 bit sono molto correlate.
Questo limite di utilizzo è intrinseco nel modello di Hopfield e non può essere superato
con la regola di Oh. Una soluzione è di mantenere la media delle distanze di
Hamming H uguale circa a N/2. Il codice binario a 8 bit utilizzato nella prova
HOP128621 permette di aumentare notevolmente il numero di vettori memorizzabili.
Nell'esempio vengono memorizzate 6 stringhe di 16 lettere con buone prestazioni
della memoria.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 108

7.7 - MEMORIE OTTICHE ASSOCIATIVE

Accenniamo brevemente all'utilizzo della tecnologia ottica per costruire memorie


associative basate sul modello di Hopfield. Diversi ricercatori2930 hanno già realizzato
memorie associative ottiche . Una memoria associativa ottica è costituita da tre
componenti principali. Il primo è una matrice bidimensionale di elementi ottici di
commutazione, che cambiano stato in funzione degli stati degli elementi a cui sono
connessi, ogni elemento della matrice può essere connesso a tutti gli altri mediante fasci
di luce. Il secondo è un ologramma che definisce i collegamenti variabili tra i vari
elementi. Il terzo elemento è un rivelatore dell'immagine in uscita. Il dispositivo
comprende anche un sistema di feedback, per riproporre in ingresso alla memoria
l'immagine ottenuta in uscita. Si pensi che un ologramma del volume di un centimetro
cubo può specificare le connessioni tra un milione di elementi ottici di
commutazione. La possibilità di immagazzinare le informazioni nelle
interconnessioni di un ologramma tridimensionale permette di costruire dispositivi con
un enorme memoria potenziale. Nel caso di memorie associative utilizzate per il
riconoscimento di forme lo schema di connessione consiste in un ologramma di tutte le
immagini da identificare (Vedi fig 7.2).

29
J. Jang ed altri, "Optical implementation of the Hopfield model for two dimensional
associative memory", Optics Letters, Vol. 13, Num. 3, Marzo 1988.
30
N. H. Farthat, D. Psaltis, A. Prata e E. Paek, "Optical implementation of the Hopfield
Model", Applied Optics, Vol. 24, Num.10, 15 Maggio 1985.
Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 109

FIGURA 7.2 - Modello di memoria ottica associativa


Reti Neurali: modelli e aspetti applicativi: Cap 7 MA basate sul MDH e nuovi algoritmi di memorizzazione 110

7.8 - CONCLUSIONI

Attualmente non si intravede la possibilità di costruire un sistema neurale adattabile a


qualsiasi problema, cioè una rete neurale general-purpose. Per questo motivo il
sistema neurale non è inteso a sostituire il calcolatore tradizionale, il quale
resterà insostituibile per la risoluzione di problemi algoritmici. A sua volta i sistemi
neurali descritti finora, per i quali si è mostrata una vasta gamma di applicazioni,
definiscono un insieme di nuove macchine adatte a risolvere problemi particolari, che
non sono algoritmicamente esprimibili, oppure sono risolti con difficoltà dai computer.
La prospettiva ragionevole è dunque quella di vedere in futuro sistemi di calcolo
misti, costituiti da computer convenzionali e reti neurali, giungendo alla
realizzazione di sistemi efficienti per qualsiasi compito.
Reti Neurali: modelli e aspetti applicativi 111

8. - BIBLIOGRAFIA

1
A. Turing, “On computable numbers, with an application to the entscheidungsproblem”,
Proceedings of the London Mathematical Society, Num. 2 Vol XLII, 1936.
2
Robert McNaugthon, “Elementary Computability, Formal Languages and Automata”, Prentice
Hall International 1982.
3
W.S. McCullock e W. Pitts, “A logical Calculus of the Ideas Immanent in Nervous Activity”,
Bullettin of Mathematical Biophysics, Num. 5 1943, pag. 115-133.
4
John Von Neumann, “Primo abbozzo di relazione sull'EDVAC (Electronic Discrete
Variable Computer)”, Princeton University 1945.
5
Michael Conrad, "On Design Principles\ for a Molecular Computer", Communications of
the ACM 1, Vol. 28, Num. 5, Maggio 1985.
6
J.J. Hopfield, "Physics, biological computation, and complementarity", Proceedings of
Niels Bohr Centenary Symposium, Copenhagen 4 Ottobre 1985.
7
T. J. Sejnowsky, "Neural Network Learning Algorithms", NATO ASI Series, Vol. F41,
Springer-Verlag, Berlino 1988.
8
Donald O. Hebb, “The Organization of Behavior”, Wiley, New York 1949.
9
Kohonen Teuvo. “An Introduction to Neural Computing”, Neural Networks, Vol. 1. 1988,
pag 3-16.
10
Richard P. Lippmann, "An Introduction to Computing with Neural Nets", IEEE ASSP
Magazine, Aprile 1987, pag 4-22 .
11
J.J.Hopfield, "Neural Networks and Physical Systems with Emergent Collective
Computational Abilities", Proc. Natl. Acad. Sci. 179, pag. 2554 (1982).
12
J.J Hopfield, “Neuron with graded response have collective computational properties like two-
state neurons”, Proc. Natl. Acad Sci. 81, pag. 3088 (1984).
13
S. Kirkpatrick ,C.D. Gelatt, M.P. Vecchi, “Optimization by simulated annealing”, Science Vol.
220, Num. 4598, 13 Maggio 1983, pag 671-680.
14
C. Kittel , “Introduzione alla Fisica dello Stato Solido”, Boringhieri 1971, Terza edizione.
15
S.E. Fahlman G.E. Hinton. “Connectionist Architectures for Artificial Intelligence”. IEEE
Computer, Gennaio 1987, pag. 100-109.
16
Frank Rosemblatt, “The perceptron, a probabilistic model for information storage and
organization in the brain”, Psychological review, 65 pag 386-408.
17
B. Widrow e M. Hoff, “Adaptive switching circuits”, Institute of Radio Engineers, 1960
WESCON Convention, Record Part IV, pag 96-104.
18
D. E. Rumelhart, J. L. McClelland, “Exploration in Parallel Distributed Processing”, The
Reti Neurali: modelli e aspetti applicativi 112

MIT Press, Cambridge 1989.


19
D. E: Rumelhart, G. Hinton e R.J. Williams, “Learning representations by back-propagating
errors”, Nature Vol. 323, 9 ottobre 1986.
20
Luis B. Almeida, "Backpropagation in perceptron with feedback", NATO ASI Series 1, Vol.
F41 Neural Computers Springer-Verlag Berlino 1988.
21
Mitsuo Takeda e Joseph W. Goodman, "Neural networks for computation: number
representations and programming complexity", Applied Optics, Vol. 25, Num. 18, 15 Settembre
1986, pag. 3033-3046.
22
J.J. Hopfield,"Computing with Neural Circuit: A Model",Science,Num.233,1986, pag.625-633.
23
David W. Tank, John J. Hopfield, "Simple 'Neural' Optimization Networks: An A/D
Converter, Signal Decision Circuit, and a Linear Programming Circuit", IEEE Transactions
on Circuits and Systems, Vol. CAS-33, Num. 5, Maggio 1986.
24
A.V.Aho, J.E. Hopcrroft e J.D. Ullman, The Design and Analysis of Computer Algorithms,
Addison-Wesley 1974.
25
Terrence J. Sejnowsky e Charles R. Rosemberg, "NETtalk: a parallel network that learns to
read aloud", The Johns Hopkins University EECS Technical Report 186/01.
26
K. Nakano, "Associatron- A Model of Associative Memory", IEEE Transactions on Systems,
Man, and Cybernetics, Vol. SMC-2, Num. 3, Luglio 1972.
27
J.S. Denker, "Neural network models of learning and adaptation", Physica Vol.2D
(1986), pag 216-232.
28
Sang-Hoon Oh, Tae-Hoon Yoon e Jae-Chang Kim, "Associative memory model based on
neural networks: modification of Hopfield model", Optics Letters, Vol.13, Num.1, Gen. 1988.
29
J. Jang ed altri, "Optical implementation of the Hopfield model for two dimensional
associative memory", Optics Letters, Vol. 13, Num. 3, Marzo 1988.
30
N. H. Farthat, D. Psaltis, A. Prata e E. Paek, "Optical implementation of the Hopfield
Model", Applied Optics, Vol. 24, Num.10, 15 Maggio 1985.
Reti Neurali: modelli e aspetti applicativi 113

9. - INDICE DELLE FIGURE

FIGURA 2.1 - Rappresentazione della Macchina di Turing, in alto il dispositivo A e l'unità di controllo, in
basso si ha il nastro coi simboli dell'alfabeto esterno in ingresso, sopra il nastro in grigio e
posizionata la testina di lettura. (FONTE COMMUNICATIONS OF ACM 5/85/M.CONRAD) ____ 10
FIGURA 2.2a - (a) Neurone formale di Mc Cullock e Pitts (b) Rete di neuroni formali costituente un
semiautoma strutturalmente programmabile. (FONTE COMMUNICATIONS OF ACM
5/85/M.CONRAD) _________________________________________________________________ 12
FIGURA 2.2b - Una rappresentazione più generale della regola di funzionamento del neurone artificiale di
McCullock e Pitts detto anche TLU (Threshold Logic Unit), x(i) sono gli ingressi, w(i) sono i pesi, θ è
il valore della soglia per la funzione di attivazione. Si noti che nella formula semplificata 2.4 i pesi w(i)
sono tutti uguali a 1. _______________________________________________________________ 12
FIGURA 2.2c - Semplice rappresentazione dell’architettura di Elaboratore Von Neumann ____________ 13
FIGURA 2.3. - Anatomia di un sistema di tre neuroni interagenti. (FONTE NEUROPHYSIOLOGY:A
PRIMER WILEY/1966/C.F. STEVENS) ________________________________________________ 20
FIGURA 2.4 - Grafico rappresentante il numero medio di potenziali d'azione nell'unità di tempo in
funzione della corrente positiva in ingresso a un neurone. (FONTE PROCEDINGS OF THE NIELS
BOHR CENTENARY SYMPOSIUM 10/85/J.J. HOPFIELD) ________________________________ 20
FIGURA 2.5 - Processo di creazione di più proteine da parte di una cellula in crescita, analogo alla
computazione di una macchina di Turing .Il nastro in uscita contiene gli amminoacidi
costituenti la proteina. _____________________________________________________________ 22
FIGURA 3.1a - Rappresentazione grafica della funzione di attivazione V(t+1), che dipende dall’ ingresso del
neurone Ui e dallo stato Vi al tempo t. _________________________________________________ 27
FIGURA 3.1b - Rappresentazione dell'ingresso pesato di un neurone e delle tre principali funzioni di
attivazione. (FONTE IEEE ASSP MAGAZINE 4/1987 R.P. LIPPMANN _______________________ 28
FIGURA 3.2 - Tipi generali di architetture di reti neurali _______________________________________ 31
FIGURA 4.1a - In alto è mostrata la funzione di attivazione di una rete discreta di Hopfield, il cui schema è
mostrato in basso. (FONTE P.N.A.S. 79/1982 J.J. HOPFIELD)____________________________ 36
FIGURA 4.1b - Sequenza di transizioni di un sistema fisico da uno stato iniziale V1 ad uno finale stabile V8,
corrispondente ad un minimo di energia. _______________________________________________ 38
FIGURA 4.1c - In alto è lo schema architetturale del modello discreto di Hopfield che implementa una
memoria associativa, in basso si vede il proncipio di funzionamento _________________________ 41
FIGURA 4.2a - In alto è mostrata la funzione di attivazione di una rete continua di Hopfield, in basso è
mostrato lo schema elettrico della rete. (FONTE P.N.A.S. 81/1984/J.J. HOPFIELD)____________ 43
FIGURA 4.2b - In alto è mostrato lo schema elettrico di una rete continua di Hopfield. _______________ 44
FIGURA 4.3 - In alto è mostrata la superficie energetica nello spazio delle coordinate r ed E, in basso
si ha la stessa superficie vista dall'alto. (FONTE P.N.A.S. 81/1984 J.J.HOPFIELD;
PHYSICAL D 1986/J.S DENKER) ____________________________________________________ 47
Reti Neurali: modelli e aspetti applicativi 114

FIGURA 4.4 - (a) La funzione di attivazione tipica di un neurone. (b) La funzione V=g(λu) mostrata per
tre valori del parametro l. ((c) Relazione inversa u=g-1 (V) della funzione V=g(λu). (d) Il contributo
di g all'energia della relazione 4.15 in funzione di V. (FONTE P.N.A.S. 81/1984/J.J. HOPFIELD)48
FIGURA 4.5 - Funzione di attivazione probabilistica della macchina di Boltzman _________________ 52
FIGURA 5.1a - Sono mostrati due schemi dell'originale perceptrone di Rosemblatt.. (FONTE IEEE ASSP
MAGAZINE 4/1987/R. P. LIPPMANN) ________________________________________________ 59
FIGURA 5.1b - Perceptrone a singolo strato, che classifica un vettore in ingresso in due classi
denominate A e B. Tale rete divide lo spazio degli ingressi in due regioni separate dalla linea
tratteggiata. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. LIPPMANN) ____________________ 60
FIGURA 5.2 - (A) Semplice Perceptrone a singolo strato e 2 input (B) Rappresentazione grafica delle
funzioni logiche AND, OR e XOR, e della loro solubilità tramite il perceptrone. (FONTE
Exploration in P.D.P 1989/D. E. RUMELHART) ____________________________________ 62
FIGURA 5.3 - Perceptrone con uno strato di neuroni nascosto e 3 nodi in grado di risolvere la funzione
XOR, la cui rappresentazione grafica e mostrata a destra. (FONTE Exploration in P.D.P
1989/D. E. RUMELHART) __________________________________________________________ 62
FIGURA 5.4 - Perceptroni a tre strato di connessioni e N input e M output. (FONTE IEEE ASSP
MAGAZINE 4/1987/R. P. Lippmann)_________________________________________________ 64
FIGURA 5.5 - Tipi di regioni di decisione che possono essere formate da perceptroni a uno, due e tre
strati. I nodi utilizzano una funzione di attivazione hard-limiter non lineare. (FONTE IEEE ASSP
MAGAZINE 4/1987/R. P.Lippmann)___________________________________________________ 65
FIGURA 5.6 - Matrice bidimensionale di nodi di uscita rappresentante una rete di Kohonen. Ogni
ingresso è connesso a tutti i nodi di uscita tramite una connessione variabile. In basso è mostrato
un intorno del nodo j a tempi variabili t. In basso si vede l’evoluzione temporale di una rete
autoorganizzante di Kohonen. (FONTE IEEE ASSP MAGAZINE 4/1987/R. P. Lippmann) ________ 69
FIGURA 6.1 - In alto si ha un grafico rappresentante la parola digitale V3 V2 V1 V0 computata dal
convertitore A/D in funzione dell'ingresso analogico x. In basso si ha lo schema circuitale della rete
neurale di Hopfield corrispondente al convertitore A/D. (FONTE IEEE TRANSACTIONS
CAS/TANK E HOPFIELD/1986) _____________________________________________________ 75
FIGURA 6.2 - (A) Andamento temporale di un segnale analogico ottenuto mediante la combinazione
lineare di inpulsi di forma gaussiana. (B) Singoli impulsi che compongono il segnale in (A). (C)
Schema circuitale della rete neurale di Hopfield per il problema della scomposizione di un segnale
analogico. (FONTE IEEE TRANSACTIONS CAS/TANK E HOPFIELD/1986) __________________ 78
FIGURA 6.3 - Una figura stilizzata della rete implementate il problema TSP. Ogni neurone e
simbolicamente indicato da un quadrato. La soluzione del problema e rappresentata dai quadrati
scuri come nella matrice 6.14. Sono indicate anche le connessioni di due differenti
neuroni.(FONTE SCIENCE VOL.33/HOPFIELD) _______________________________________ 81
FIGURA 6.4 - Schema circuitale della rete neurale di Hopfield per un problema di programmazione
lineare. (FONTE APPLIED OPTICS TAKEDA/GOODMAN/1986) _________________________ 83
FIGURA 6.5 - In alto schema di un problema di Hitchcock con 4 centri di produzione e 6 depositi.
TABELLA I (A) Matrice di costo per il problema di Hitchcock (B) Semplice soluzione
Reti Neurali: modelli e aspetti applicativi 115

rappresentante il flusso dalla sorgente X al deposito Y. TABELLA_II Rappresentazione neurale


della matrice di flusso del problema di Hitchcock, q neuroni sono utilizzati per rappresentare un
elemento della matrice di flusso. (FONTE APPLIED OPTICS TAKEDA/GOODMAN/1986) _____ 87
FIGURA 6.6 - In alto si ha lo schema della rete NETtalk, in basso un grafico rappresentante le prestazioni
della rete. Le diverse curve si riferiscono alle prestazioni di reti con 120, 60, 30, 15, 0 unità
nascoste. In ordinata si ha la percentuale di errori, in ascissa il numero di parole che la rete
inpara. Si noti che i migliori risultati si hanno con 120 unità nascoste, e che le performance della
rete crescono col numero delle parole imparate. (FONTE SEJNOWSKY)_____________________ 93
FIGURA 7.1a - In alto vi è l’immagine memorizzatadi una T, sotto le immagini di partenza corrotte da cui si
può risalire all’immagine iniziale in memoria. In basso c’e un esempio di ricostruzione di un'immagine
di un volto (c) da un input parziale (b) realizzato mediante una memoria associativa.
L'immagine memorizzata e la (c) _____________________________________________________ 96
FIGURA 7.1b - Raffigurazione di una memoria eteroassociativa, si noti la reppresentazione ortogonale del
pattern memorizzato (a) e il richiamo del pattern da un input alterato._______________________ 100
FIGURA 7.2 - Modello di memoria ottica associativa _________________________________________ 109

Potrebbero piacerti anche